درک عمیقتر از مفهوم تابع هزینه با دو پارامتر
همانطور که پیشتر گفتیم در این جلسه قصد داریم تابع هزینه با دو پارامتر را بررسی کنیم. در جلسه قبل در رابطه با مفهوم تابع هزینه باهم صحبت کردیم. دیدیم که چطور میتوان با چشمپوشی از یکی از پارامترها و فقط در نظر گرفتن \( \Large \theta_{1} \) ، تابع \( \Large h_{\theta}(x) \) را به صورت یک خط که از مبدأ مختصات میگذرد را رسم کرد. در ادامه و براساس حالتهای مختلف تابع \( \Large h_{\theta}(x) \) توانستیم تابع \( \Large J(\theta_{1}) \) را بهینه کنیم.
در این جلسه که مربوط به بخش دوم مفهوم تابع هزینه است، میخواهیم تابع \( \Large h_{\theta}(x) \) را با دو پارامتر \( \Large \theta_{1} \) و \( \Large \theta_{0} \) به صورت همزمان در نظر بگیریم. و در نهایت به هدف اصلی که بهینه کردن \( \Large J(\theta_{1},\theta_{0}) \) که تابع هزینه با دو پارامتر است برسیم.
یادآوری آنچه در جلسه قبل از مفهوم تابع هزینه گذشت
اینها همان فرمولهایی هستند که در دو جلسه گذشته با آنها آشنا شدیم. تابع فرضیه:
\( \Large h_{\theta}(x) = \theta_{1}x + \theta_{0} \)
دو پارامتر اصلی در تابع فرضیه:
\( \Large \theta_{1} , \theta_{0} \)
تابع هزینه بعنوان تابعی از پارامترهای دخیل در تابع فرضیه:
\( \Large J(\theta_{1} , \theta_{0})= \frac{1}{2m} \displaystyle \sum_{i = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})^2 \)
هدف نهایی رگرسیون خطی که مینیمم کردن تابع \( \Large J(\theta_{1} , \theta_{0}) \) است:
\( \Large \begin{align}
& minimize \\
& \theta_{1} , \theta_{0}
\end{align} \) \( \LARGE J(\theta_{1} , \theta_{0}) \)
بر خلاف آنچه در بخش اول مفهوم تابع هزینه دیدیم، قصد دارم دو پارامتر \( \Large \theta_{1} \) و \( \Large \theta_{0} \) را نگهدارم و دوباره تابع هزینه با دو پارامتر را باهم رسم کنیم. پس بیایید باهم مانند جلسه گذشته برای درک مفهوم تابع هزینه دو پارامتر \( \Large J \) و \( \Large h \) را ترسیم کنیم.
بررسی مفهوم تابع هزینه با دو پارامتر \( \Large \theta_{1} \) و \( \Large \theta_{0} \)
به شکل زیر دقت کنید. در این شکل مجموعهٔ آموزشی که مربوط به قیمت و اندازهٔ خانههاست را میبینید. همچنین در کنار این دادهها خط مربوط به تابع فرضیه را رسم کردیم که \( \Large \theta_{1}=0.06 \) و \( \Large \theta_{0}=50 \) است.
شکل ۱: یک تابع هزینه با مقادیر اولیه برای متغیرهای \( \Large \theta_{1} \) و \( \Large \theta_{0} \)
اما همانطور که در شکل هم پیداست، این تابع فرضیه به هیچ وجه تابع مناسبی نیست. چرا که خط رسم شده تناسبی با دادهها ندارد. از جلسه قبل به خاطر دارید که برای پیدا کردن بهترین \( \Large \theta_{1} \) نمودار آن را بر حسب تابع هزینه \( \Large J \) رسم کردیم که تصویر آن را در زیر مشاهده میکنید:
شکل ۲: نمودار تابع هزینه \( \Large J(\theta_{1}) \) به ازای مقادیر مختلف برای \( \Large \theta_{1} \)
اما اینجا ما با دو متغیر سروکار داریم که باعث میشود رسم آن کمی پیچیدهتر باشد.
نمودار کانتور در رسم تابع هزینه با دو پارامتر بر حسب پارامترهای \( \Large \theta_{1} \) و \( \Large \theta_{0} \)
همانطور که در شکل ۲ میبینید، نمودار برای یک پارامتر به صورت سهمی است. باوجود دو پارامتر باز هم نمودار سهمی است. با این تفاوت که این نمودار سه بعدی میشود. چرا که ما آن را برای سه پارامتر مختلف (\( \Large \theta_{1} \) و \( \Large \theta_{0} \) و \( \Large J \) ) رسم میکنیم. البته شکل این نمودار برای مجموعههای آموزشی مختلف، متفاوت است. برای مثالی که ما در این جلسه بررسی میکنیم؛ شکل سه بعدی آن به صورت زیر است.
شکل ۳: نمودار سهمی برای نشان دادن سه پارامتر (\( \Large \theta_{1} \) و \( \Large \theta_{0} \) و \( \Large J \) )
این نمودار دارای سه محور مختلف است:
محورهای افقی : \( \Large \theta_{1} \) و \( \Large \theta_{0} \)
محور عمودی : \( \Large J(\theta_{1},\theta_{0}) \)
با توجه به آنچه گفتیم، زمانی که مقادیر \( \Large \theta_{1} \) و \( \Large \theta_{0} \) را تغییر میدهیم، مقادیر مختلفی برای تابع \( \Large J(\theta_{1},\theta_{0}) \) به دست میآید.
شکل۴: نمایش مفهوم ارتفاع از سطح در نمودار سهمی
مطابق شکل ارتفاع از سطح برای نقاط \( \Large \theta_{1} \) و \( \Large \theta_{0} \) مشخص شده برابر مقدار تابع \( \Large J \) است.
در ادامهٔ این جلسه برای نشان دادن تابع هزینه \( \Large J(\theta_{1},\theta_{0}) \) به جای استفاده از شکل سه بعدی، از اشکال کانتور بهره خواهیم برد.
شکل۵: مثالی از نمودار کانتور
تصویر بالا مثالی از یک کانتور است که محورهای آن \( \Large \theta_{1} \) و \( \Large \theta_{0} \) است. نکته قابل توجه اینجا است که تمام نقاط روی یک بیضی مقادیر یکسانی از تابع هزینه \( \Large J(\theta_{1},\theta_{0}) \) را به خود اختصاص میدهند.
شکل ۶: مقادیر مساوی برای نقاط روی یک بیضی در نمودار کانتور
برای مثال در تصویر بالا، هر سه نقطه مشخص شده مقدار یکسانی از تابع هزینه با دو پارامتر را خواهند داشت. با وجود اینکه این نقاط دارای مقادیر \( \Large \theta_{1} \) و \( \Large \theta_{0} \) مختلف هستند، اما مقدار یکسانی از تابع هزینه \( \Large J(\theta_{1},\theta_{0}) \) را خواهند داشت.
درک نمودار کانتور با بررسی چند مثال
شاید مانند بسیاری از دانشجویان دیگر شما هم با نقاط کانتور آشنایی نداشته باشید. برای فهم بهتر، تصور کنید تابع سهمی از صفحه بیرون آمده و هر کدام از دایرهها ارتفاع خاصی دارد. مینیمم تابع نیز همان نقطه مرکز دایرهها است. در واقع اشکال کانتور برای نشان دادن یک تصویر سه بعدی مانند تابع \( \Large J(\theta_{1},\theta_{0}) \) در دو بعد استفاده میشود. تا اینجا تابع هزینه با دو پارامتر را به صورت سه بعدی نشان دادیم. همانطور که پیشتر گفتم برای درک بهتر مینیمم تابع هزینه با دو پارامتر از نمودار کانتور استفاده میکنیم. جهت فهم بهتر مطلب چند مسئله زیر را با هم بررسی میکنیم.
مثال اول
شکل۷: نمودار کانتور در مثال اول
این نقطه قرمز معادل خطا و هزینه ما است. نقطه قرمز مشخص شده در تصویر بالا دارای مختصات زیر است:
\( \Large \theta_{0} = 800 \)
\( \Large \theta_{1} = -0.15 \)
بنابراین تابع فرضیه آن به این شکل خواهد بود:
\( \Large h_{\theta}(x) = -0.15x +800 \)
شکل۸: تابع فرضیه مثال اول
همانطور که در تصویر بالا مشاهده میکنید، تابع فرضیه ما تطابق خوبی با دادهها ندارد. به عبارت دیگر هزینه یا همان خطا از مینیمم تابع خیلی دور است.
مثال دوم
شکل۹: نمودار کانتور در مثال دوم
نقطه قرمز مشخص شده در تصویر بالا دارای مختصات زیر است:
\( \Large \theta_{0} = 360 \)
\( \Large \theta_{1} = 0 \)
بنابراین میتوانیم تابع فرضیه را به این شکل بنویسیم:
\( \Large h_{\theta}(x) = 0x +360 \)
در این صورت تابع فرضیه ما به شکل زیر خواهد بود:
شکل۱۰: تابع فرضیه مثال اول
این تابع فرضیه نیز تناسب خوبی با دادهها ندارد اما نسب به مثال قبل بهتر است.
مثال سوم
شکل۱۱: نمودار کانتور در مثال سوم
اگر این بار این نقطه را انتخاب کنیم، تابع فرضیه ما مطابق شکل زیر خواهد شد. با مشخص کردن \( \Large \theta_{1} \) و \( \Large \theta_{0} \) به تابع فرضیه زیر خواهیم رسید:
شکل۱۲: تابع فرضیه مثال سوم
همانطور که میبینید این تابع نیز مناسب نیست و فاصله زیادی با مینیمم دارد.
مثال چهارم
شکل۱۳: نمودار کانتور در مثال چهارم
این بار نقطه را نزدیک مینیمم انتخاب میکنیم. بنابراین انتظار داریم تناسب خوبی با دادهها داشته باشد.
تابع فرضیه نیز به شکل زیر خواهد شد:
شکل۱۴: تابع فرضیه مثال چهارم
همانطور که انتظار داشتیم تطابق خوبی با دادهها دارد. در واقع مجذور فاصلهٔ میان نمونههای آموزشی و فرضیه بسیار به مینیمم نزدیک است. امیدوارم این تصاویر درک بهتری از مقادیر تابع هزینه با دو پارامتر و اینکه چگونه این مقادیر با توابع فرضیه مختلف متناظر است، برایتان ایجاد کرده باشد.
ویدیو آموزش مفهوم تابع هزینه بخش دوم از دوره یادگیری ماشین دانشگاه استنفورد
جمعبندی جلسه مفهوم تابع هزینه با دو پارامتر و موضوع جلسه آینده
در این جلسه آموختیم چگونه میتوان با درنظر گرفتن مقادیر مختلف از دو پارامتر \( \Large \theta_{1} \) و \( \Large \theta_{0} \) تابع فرضیه مختلف طراحی و تطابق آن با دادهها را بررسی کرد. همچنین یاد گرفتیم از طریق نمودار کانتور نقطه مینیمم تابع را پیدا کنیم و تابع فرضیهای با حداکثر تطابق طراحی کنیم. اما نکته مهم این جا است که چگونه میتوان توابع فرضیه بهتری با کمک نقاط نزدیک به مینیمم ایجاد کرد؟
اکنون که با مفهوم تابع هزینه با دو پارامتر آشنا شدید؛ باید دریافته باشید که به الگوریتمی نیاز داریم تا به طور خودکار مقادیری از \( \Large \theta_{1} \) و \( \Large \theta_{0} \) را بیابد که تابع هزینه \( \Large J(\theta_{1},\theta_{0}) \) را مینیمم کند. برای انجام این کار نیازی نیست که نرمافزار طراحی کنیم و سپس به صورت دستی این اعداد را بخوانیم. در ادامه آموزش با مثالهای پیچیدهتر و پارامترهای بیشتری سر و کار خواهیم داشت که نمایش آنها دشوار است. پس به ابزاری نیاز داریم که بتواند مقادیر \( \Large \theta_{1} \) و \( \Large \theta_{0} \) را برای مینیمم کردن تابع پیدا کند.
در جلسه آینده از یادگیری ماشین دانشگاه استنفورد به بررسی الگوریتمی به نام گرادیان نزولی خواهیم پرداخت. این الگوریتم به صورت خودکار نقاط خاص را برای بهینه کردن تابع هزینه \( \Large J(\theta_{1},\theta_{0}) \) پیدا میکند.
به نام خدا
با عرض سلام و خسته نباشید. مطالب بسیار آموزنده و مفید بود .مخصوصا که بهمراه شکل و مثال بیان می گردد. سپاسگزارم.
ضمن عرض سلام و احترام
خوشحالیم که این مطلب برای شما مفید بوده
موفق و پیروز باشید در پناه حق