گرادیان نزولی برای رگرسیون خطی Gradient Descent For Linear Regression قسمت دهم دوره یادگیری ماشین دانشگاه استنفورد

گرادیان نزولی برای رگرسیون خطی Gradient Descent For Linear Regression قسمت دهم دوره یادگیری ماشین دانشگاه استنفورد

در این جلسه قصد داریم با همراهی شما، گرادیان نزولی برای رگرسیون خطی را بررسی کنیم. با این کار تابع فرضیه‌ای با حداکثر تطابق با داده‌هایمان ایجاد خواهیم کرد. در جلسه قبل با مفهوم کامل الگوریتم گرادیان نزولی آشنا شدیم. مشتق و آلفا این معادله را به طور کامل بررسی کردیم و همچنین شیوه کار این الگوریتم را آموختیم.

یادآوری آنچه در جلسات قبل گذشت

در جلسات قبل در مورد مدلسازی رگرسیون خطی و تابع هزینه خطای مجذور صحبت کردیم. برای هر کدام از آن‌ها معادله خاص خود را معرفی کردیم. این مدلی است که برای رگرسیون خطی و تابع فرضیه تعریف کردیم:

\(\Large h_{\theta}(x) = \theta_{1}x + \theta_{0} \)

فرمول تابع هزینه مجذور:

\(\Large J(\theta_{1} , \theta_{0})= \frac{1}{2m} \displaystyle \sum_{i = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})^2 \)

الگوریتم گرادیان نزولی که قبلا با آن آشنا شدیم:

  \( \Large (For J= 0  ,  J =1) \)  \( \Large \theta_{j}:= \theta_{j}- \alpha \frac {\partial 1}{\partial \theta_{j}} J(\theta_{1},\theta_{0})  \)

در ادامه قصد داریم با همراهی یکدیگر، الگوریتم گرادیان نزولی برای رگرسیون خطی را به کار ببریم و نقطه مینیمم تابع هزینه را بیابیم.

آموزش فرمول‌های ریاضی گرادیان نزولی برای رگرسیون خطی

در جلسه مفهوم الگوریتم گرادیان نزولی با مشتق آشنا شدیم. در ادامه قصد داریم، تابع هزینه \( \Large J \) و مشتق عبارت را ترکیب کنیم. تنها کاری که اینجا انجام می‌دهیم وارد کردن تعریف تابع هزینه است. معادله ما به شکل زیر خواهد بود:

\(  \Large  \frac{\partial 1}{\partial \theta_{j}} J(\theta_{1},\theta_{0})   =   \frac{\partial 1}{\partial \theta_{j}}\frac{1}{2m} \displaystyle \sum_{I = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})^2\)

در ادامه زمانی که تعریف تابع فرضیه را به آن اضافه کنیم، مطابق زیر می‌شود:

\(  \Large  \frac{\partial 1}{\partial \theta_{j}} J(\theta_{1},\theta_{0})   =   \frac{\partial 1}{\partial \theta_{j}}\frac{1}{2m} \displaystyle \sum_{I = 1}^{m} (\theta_{0}+\theta_{1}(x^{(i)})-y^{(i)})^2\)

تعریف مشتق جزئی در گرادیان نزولی برای رگرسیون خطی

قبلا الگوریتم گرادیان نزولی برای یک پارامتر و الگوریتم گرادیان نزولی برای دو پارامتر را تعریف کردیم. اکنون زمان آن رسیده مشتق عبارت را برای دو مقدار \( \Large \theta_{0} \) و \( \Large \theta_{1} \) تعریف کنیم. برای محاسبه مشتق جزئی به معادلات زیر می‌رسیم. قبل از هرچیزی باید بگویم، محاسبه این مشتق‌های جزئی نیازمند حسابان چند متغیره است. اگر با حسابان آشنایی دارید می‌توانید خودتان مشتق‌گیری را انجام دهید. اما اگر آشنایی ندارید، می‌توانید از همین معادلات استفاده کنید. معادله برای \( \Large \theta_{0} \) :

حتما بخوانید:  الگوریتم گرادیان نزولی Gradient Descent Algorithm - قسمت هشتم دوره یادگیری ماشین دانشگاه استنفورد

\(\Large\frac{1}{m} \displaystyle \sum_{I = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})\) \( \Large j=0 : \frac{\partial 1}{\partial \theta_{0}} J(\theta_{1},\theta_{0})   \)

معادله برای \( \Large \theta_{1} \):

\(\Large\frac{1}{m} \displaystyle \sum_{I = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)}) x^{(i)} \) \( \Large j=0 : \frac{\partial 1}{\partial \theta_{1}} J(\theta_{1},\theta_{0})   \)

وارد کردن مشتق جزئی به گرادیان نزولی برای رگرسیون خطی

خب حالا که مشتق عبارت یا شیب تابع هزینه \( \Large J \) را تعریف کردیم، به گرادیان نزولی برای رگرسیون خطی بر می‌گردیم. مقادیر \( \Large \theta_{0} \) و \( \Large \theta_{1} \) به شکل زیر تغییر خواهند کرد:

\( \Large\theta_{0}:= \theta_{0}- \alpha \frac{1}{m} \displaystyle \sum_{I = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)}) \)

\( \Large \theta_{1}:=\theta_{1}- \alpha \frac{1}{m} \displaystyle \sum_{I = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)}). x^{(i)} \)

یکی از نکاتی که پیشتر با هم بررسی کردیم، روش صحیح استفاده از الگوریتم گرادیان نزولی بود. همانطور که به یاد دارید مقادیر \( \Large \theta_{0} \) و \( \Large \theta_{1} \) باید به صورت همزمان آپدیت شوند.

درک گرادیان نزولی برای رگرسیون خطی با کمک نمودار

اکنون با مفهوم کار و معادلات ریاضی آشنا شدید. بیایید بررسی کنیم گرادیان نزولی برای رگرسیون خطی چگونه کار می‌کند. یکی از اشکالات گرادیان نزولی این است که شاید ما را به نقطه مینیمم موضعی ببرد. در جلسه مفهوم الگوریتم گرادیان نزولی تصویر زیر را بررسی کردیم. این تصویر نشان می‌دهد که با توجه به نقطه شروع حرکت، ممکن است به نقاط مینیمم موضعی متفاوت برسیم.

یافتن نقطه مینیمم با گرادیان نزولی برای رگرسیون خطی شکل۱: نقاط مینیمم موضعی تابع

می‌دانیم که تابع هزینه برای رگرسیون خطی، مطابق شکل زیر سهمی شکل است. به اینگونه توابع، تابع محدب یا convex function می‌گوییم. تابع محدب، قوسی شکل است و هیچ نقطه بهینه موضعی ندارد. بنابراین زمانی که گرادیان نزولی برای رگرسیون خطی را به کار می‌بریم، همیشه به نقطه بهینه تابع همگرا می‌شود.

درک گرادیان نزولی برای رگرسیون خطی وتابع محدبشکل۲: نقطه مینیمم در تابع محدب

مفهوم گرادیان نزولی برای رگرسیون خطی در نمودار کانتور

در ادامه قصد داریم کارکرد الگوریتم گرادیان نزولی را در عمل ببینیم. یک تابع هزینه معرفی کرده و \( \Large \theta_{0} \) و \( \Large \theta_{1} \) مختلفی انتخاب می‌کنیم. جلوتر با همدیگر تطابق تابع فرضیه را داده‌ها را بررسی می‌کنیم.

حتما بخوانید:  مفهوم تابع هزینه با دو پارامتر - بخش دوم Intuition of Cost Function II - قسمت هفتم دوره یادگیری ماشین دانشگاه استنفورد

فرض کنید نقطه‌ زیر در نمودار کانتور را انتخاب کرده‌ایم:

نقطه اول در گرادیان نزولی برای رگرسیون خطی شکل۳: نقطه انتخابی اول در نمودار کانتور

مختصات نقطه ما به این شرح است:

\( \Large \theta_{0}= 900 \)

\( \Large \theta_{1}= -0.1 \)

معادله تابع فرضیه ما اینگونه است:

\(\Large h_{\theta}(x) = 900-0.1x \)

نمودار تابع فرضیه به این شکل خواهد بود:

شکل۴: نمودار تابع فرضیه برای نقطه اول

حال اگر یک قدم در جهت گرادیان نزولی قدم برداریم به نقطه دوم می‌رسیم. نقطه دوم در گرادیان نزولی برای رگرسیون خطی:


شکل۵: نقطه انتخابی دوم در نمودار کانتور

نمودار تابع فرضیه ما به شکل زیر تغییر می‌کند:


شکل۶: نمودار تابع فرضیه برای نقطه دوم

قدم دیگری برمی‌داریم:

شکل۷: نقطه انتخابی سوم در نمودار کانتور

تابع فرضیه ما:


شکل۸: نمودار تابع فرضیه برای نقطه سوم

اگر قدم دیگری در جهت گرادیان نزولی برداریم به این نقطه می‌رسیم:


شکل۹: نقطه انتخابی چهارم در نمودار کانتور

نمودار تابع فرضیه:


شکل۱۰: نمودار تابع فرضیه برای نقطه چهارم

قدم پنجم:

گرادیان نزولی برای رگرسیون خطی
شکل۱۱: نقطه انتخابی پنجم در نمودار کانتور

نمودار تابع فرضیه:


شکل۱۲: نمودار تابع فرضیه برای نقطه پنجم

قدم ششم در جهت گرادیان نزولی برای رگرسیون خطی:


شکل۱۳: نقطه انتخابی ششم در نمودار کانتور

نمودار تابع فرضیه:

گرادیان نزولی برای رگرسیون خطی
شکل۱۴: نمودار تابع فرضیه برای ششم

همانطور که می‌بینید، با هر قدم تطابق با داده‌ها افزایش می‌یابد. در نهایت به نقطه مینیمم می‌رسیم:


شکل۱۵: نقطه انتخابی هفتم در نمودار کانتور

در این نقطه تابع فرضیه ما بیشترین تناسب با داده‌ها را خواهد داشت:

گرادیان نزولی برای رگرسیون خطی
شکل۱۶: نمودار تابع فرضیه برای نقطه هفتم

مطابق شکل تطابق تابع فرضیه با داده‌های ما بالا است. حال اگر دوستتان خانه‌ای با مساحت ۱۲۵۰ فوت مربع داشته باشد، می‌توانیم بگوییم احتمالا قیمت آن حدود ۲۵۰۰۰۰ دلار خواهد بود.

گرادیان نزولی انبوه  (Batch Gradient Descent) چیست؟

تا اینجای کار الگوریتم گرادیان نزولی برای رگرسیون خطی را به کار گرفتیم. الگوریتمی که در این جلسه دیدیم، گرادیان نزولی انبوه نام دارد. گرادیان نزولی انبوه به این معنی است که در هر قدم از تمامی نمونه‌های آموزشی‌مان استفاده می‌کنیم. پس زمانی که مشتق را محاسبه می‌کنیم در واقع مجموع خطای تمام نمونه آموزشی را در نظر می‌گیریم.

حتما بخوانید:  رگرسیون خطی تک متغیره Uni-variate linear regression - قسمت چهارم دوره یادگیری ماشین دانشگاه استنفورد

نسخه‌های دیگری غیر از گرادیان نزولی انبوه نیز وجود دارد. در نسخه‌های دیگر تمامی مجموعه آموزشی را در نظر نمی‌گیریم. در واقع هربار مجموعه‌ کوچکی از نمونه را بررسی می‌کنیم. بعدا این مبحث را بررسی خواهیم کرد.

اگر مفهوم گرادیان نزولی برای رگرسیون خطی را درک کرده‌اید به این سوال پاسخ دهید

کدام مورد یا موارد زیر صحیح هستند؟

۱- برای همگرایی گرادیان نزولی، باید مقادیر آلفا را به صورت آهسته به مرور کاهش دهیم.

۲- گرادیان نزولی برای هر تابع \( \Large J(\theta_{1},\theta_{0}) \)  نقطه مینیمم سراسری را می‌یابد.

۳- گرادیان نزولی با وجود آلفا ثابت می‌تواند روی نقطه مینیمم همگرا شود. اما آلفا نباید خیلی بزرگ یا کوچک باشد.

۴- در تابع هزینه با رگرسیون خطی هیچگونه نقطه مینیمم موضعی وجود ندارد و فقط نقطه مینیمم گلوبال داریم.

گرادیان نزولی برای رگرسیون خطی Gradient descent for linear regression قسمت دهم دوره یادگیری ماشین دانشگاه استنفورد

جمع‌بندی جلسه مفهوم تابع هزینه با دو پارامتر و موضوع جلسه آینده

در این بخش، چند جلسه گذشته را مرور کردیم. دوباره مدل‌های تعریف شده برای تابع هزینه، تابع فرضیه و الگوریتم گرادیان نزولی را به یاد آوردیم. علاوه بر این یاد گرفتیم چگونه از گرادیان نزولی برای رگرسیون خطی استفاده کنیم.با استفاده از الگوریتم گرادیان نزولی  می‌توانیم نقاط مناسب را به گونه‌ای پیدا کنیم که تابع فرضیه ما حداکثر تطابق را با داده‌ها داشته باشد.

یکی دیگر از روش‌های یافتن نقطه مینیمم، معادلات نرمال است. با این روش و بدون استفاده از الگوریتم‌های تکرار شونده مانند گرادیان نزولی، می‌توانیم نقطه مینیمم تابع را بیابیم. البته گرادیان نزولی برای داده‌های بزرگ انتخاب بهتری نسبت به معادلات نرمال است.

در جلسات آینده از دوره یادگیری ماشین دانشگاه استنفورد گرادیان نزولی را برای موضوعات مختلف به کار می‌بریم و آن را به دیگر موضوعات تعمیم می‌دهیم.

۱۰ دیدگاه در “گرادیان نزولی برای رگرسیون خطی Gradient Descent For Linear Regression قسمت دهم دوره یادگیری ماشین دانشگاه استنفورد

  • سلام خیلی خوب بود ممکنه خواهش کنم سرعت ترجمه های این دوره را بیشتر کنید ممکنه مثل من افرادی باشند قصد داشته باشند زودتر یادگیری ماشین رو یاد بگیرند اینکه هر هفته منتظر یک قسمت باشیم با توجه به حجم زیاد ویدئوها/اموزش ها باید ماه ها یا سال ها صبر کنیم . اگر ممکنه روزانه اینکار رو انجام بدهید

    • ضمن عرض سلام و احترام
      و تشکر بابت اینکه ما رو دنبال میکنید
      ان شا الله از این به بعد سعی میکنیم هفته ای سه تا محتوا داشته باشیم.
      موفق و پیروز باشید.

  • ممنونم از شما خیلی خوبه اگر زودتر از ین قرار بدهید ممنون میشم همینطوری که گفتید هفته ی سه تا خیلی کمه برای فردی که قصد داره زودتر یادگیری ماشین یادبگیره و بعدش شغلی پیدا کنه

  • سلام
    میشه مطالب رو به صورت ویدیویی قرار دهید. هم سرعت بالاتر میره برای آموزش، هم فکر می کنم از آموزش دهنده هم توان و وقت کمتری رو خواهد گرفت. در واقع تدریس انگلیسی به شکل ترجمه فارسی بر روی تخته یا سیستم کامپیوتری، به صورت آموزش ویدیویی ارایه شود. امیدوارم این پیشنهاد مورد استفاده باشد
    ممنون

    • ضمن عرض سلام و احترام
      و تشکر بابت پیشنهاد سازندتون
      تصمیم بر همین چیزی هست که فرمودید. اما در حال حاضر محتوا رو به صورت متنی ارائه میدیدم. در ادامه انشاالله ویدیوهای بومی سازی شده هم قرار داده خواهد شد.
      موفق و پیروز باشید

    • ضمن عرض سلام
      جلسات جدید از این هفته به صورت مرتب بر روی سایت قرار خواهند گرفت
      برای مطالعه سایر قسمت‌ها نیاز هست که اشتراک اونها رو تهیه بفرمایید.
      برای اطلاعات بیشتر به آدرس زیر مراجعه بفرمایید:
      https://tootik.com/machine-learning/

    • ضمن عرض سلام مجدد
      مشکلی نیست. دوره های پیشنهادی خودتون رو دقیق بفرمایید، بعد از این دوره استارت تهیه اونها رو هم خواهیم زد. همچنین دوره ما را به سایر دوستان هم معرفی بفرمایید تا برای ادامه مسیر انگیزه بیشتری داشته باشیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

-->