تابع هزینه چیست؟ What is Cost Function – قسمت پنجم دوره یادگیری ماشین دانشگاه استنفورد

تابع هزینه چیست؟ What is Cost Function – قسمت پنجم دوره یادگیری ماشین دانشگاه استنفورد

تابع هزینه چیست؟ (Cost Function) این پرسشی است که در قسمت پنجم از دوره یادگیری ماشین دانشگاه استنفورد به آن پاسخ می‌دهیم. در جلسه پیش دیدیم که به داده‌هایی که مجموعه آموزشی هستند می‌توان خط راستی را نسبت داد که برای پیش‌بینی از آن استفاده می‌کنیم. با استفاده از تابع هزینه می‌توانیم بهترین خط مستقیم را برای این داده‌ها بدست آوریم.

ردیف قیمت (هزار دلار) \( \Large (y) \) متراژ (فوت مربع) \( \Large (x) \)
۱ ۴۶۰ ۲۱۰۴
۲ ۲۳۲ ۱۴۱۶
۳ ۳۱۵ ۱۵۳۴
۴ ۱۷۸ ۸۵۲
۵

در رگرسیون خطی، مجموعه داده‌هایمان همانند جدول بالا است. و حتماً به خاطر دارید که حرف \( \Large m \) نشان‌دهنده‌ٔ تعداد مثال‌های آموزشی است. همچنین در جلسه رگرسیون خطی دیدیم که تابعی که بوسیله‌ٔ آن داده‌های جدید را پیش‌بینی می‌کردیم به صورت زیر است:

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

این تابع یک تابع خطی است. در ادامه و در جلسات بعدی دوره با اصطلاحات تخصصی بیشتری آشنا خواهیم شد. اما در این جلسه می‌خواهیم بیشتر در مورد دو پارامتر \( \Large \theta_{0} \) و \( \Large \theta_{1} \) صحبت کنیم. این دو پارامتر تثبیت کننده‌ٔ پارامترهای دیگری هستند که به آن‌ها پارامتر‌های مدل Model Parameters گفته می‌شود. در این جلسه در این مورد صحبت خواهیم کرد که این دو پارامتر \( \Large \theta_{0} \) و \( \Large \theta_{1} \) چگونه انتخاب می‌شوند.

تابع هزینه: همه‌چیز به ریاضیات پایه باز می‌گردد!

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

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

حتما بخوانید:  ترانهاده و وارون ماتریس Inverse and Transpose– قسمت شانزدهم دوره یادگیری ماشین دانشگاه استنفورد

پیدا کردن تابع فرضیه یا تابع هزینه در یادگیری ماشین

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

پیدا کردن بهترین مقادیر برای \( \Large \theta_{0} \) و \( \Large \theta_{1} \)

مجموعهٔ آموزشی زیر را در نظر بگیرید. می‌خواهیم خطی پیدا کنیم که بهترین تطابق را با این داده‌ها داشته باشد. برای اینکار باید مناسب‌ترین مقادیر ممکن برای \( \Large \theta_{0} \) و \( \Large \theta_{1} \) را پیدا کنیم که خط راست بهترین تطابق را با به ما بدهد.

تعیین تتا صفر و تتا یک برای تابع هزینه

تعیین مقادیر \( \Large \theta_{0} \) و \( \Large \theta_{1} \) برای گرفتن بهترین تطابق با داده‌ها

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

پارامتر‌‌های \( \Large \theta_{0} \) و \( \Large \theta_{1} \) را به گونه‌ای انتخاب کنیم که تابع \( \Large h(x) \) در مقادیر \( \Large x \) تا جای ممکن به مقادیر \( \Large y \) که مجموعه آموزشی ما است نزدیک باشد.

یعنی \( \Large (h_{\theta}(x) , x) \approx (y,x) \)

در مجموعهٔ آموزشی که در اختیار داریم \( \Large (x,y) \) تصمیم گیرندهٔ اصلی متراژ خانه‌ها یا همان \( \Large x \) است. همچنین قیمت خانه‌ها \( \Large y \) را هم می‌دانیم. در نیتجه باید پارامتر‌های \( \Large \theta_{0} \) و \( \Large \theta_{1} \) را طوری تعیین کنیم که با توجه به مقادیر ورودی یا \( \Large x \)های آموزشی، پیش‌بینی‌های واقعی برای مقادیر خروجی اتفاق بیفتد.

چگونه بهترین مقادیر را برای \( \Large \theta_{0} \) و \( \Large \theta_{1} \) را پیدا کنیم؟

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

 \( \Large (h_{\theta}(x)-y)^2 \)

در عبارت بالا، ما در حال مینیمم کردن مجذورِ تفاضل خروجی تابع فرضیه و قیمت واقعی خانه‌ها هستیم. اما اجازه دهید دقیق‌تر این عبارت را بنویسیم. به خاطر دارید که عبارت \( \Large (x^{(i)} , y^{(i)}) \) را برای نشان دادن \( \Large i \)اُمین مثال آموزشی استفاده می‌کردیم. همچنین مقدار کل مثال‌های آموزشی را با  \( \Large m \) نشان می‌دادیم.

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

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

 \( \Large \displaystyle \sum_{i = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})^2 \)

پس می‌توان به زبان غیر ریاضی گفت که ما در واقع برای مجموعهٔ آموزشی از ۱\( \Large i= \) تا \( \Large m \) ، مجموعه مجذور تفاضل میان مقادیر پیش‌بینی تابع فرضیه که ورودی آن خانه است، و قیمت واقعی خانه‌هایی که به فروش رفته است را حساب می‌کنیم. و در نهایت هدف ما مینیمم کردن این مقدار است.

ساده کردن عبارت مینیمم برای محاسبات بعدی

خب اجازه دهید که من برای ساده‌تر کردن محاسباتی که بعداً با آن روبه‌رو خواهیم شد، تغییری در عبارت فوق بوجود بیاورم. من می‌خواهم به ابتدای عبارت بالا یک \( \Large \frac{1}{2m} \) اضافه کنیم.

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

شاید با خود بپرسید که با این‌کار حاصل عبارت قبلی متفاوت خواهد شد. بله درست است. اما هدف ما محاسبهٔ مقدار عبارت بالا نیست! هدف ما مینیمم کردن عبارت بالاست. در چنین حالتی اضافه کردن \( \Large \frac{1}{2m} \) در مینیمم کردن عبارت بالا تفاوتی ایجاد نمی‌کند. اما محاسبات بعدی ما را ساده‌تر خواهد کرد.

قبل از پرده‌برداری از تابع هزینه : هدف نهایی رگرسیون خطی چیست؟

با توجه آنچه تا به الان گفته شد، مقدار دقیق تابع فرضیه  \( \Large (h_{\theta}(x^{(i)}) \) برابر با عبارت زیر است:

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

پس تا به اینجای کار متوجه شدیم که باید مقادیر \( \Large \theta_{0} \) و \( \Large \theta_{1} \) را که در معادله \( \Large h_{\theta}(x^{(i)}) \) قرار می‌گیرند طوری تعیین کنیم که عبارت  \( \Large \frac{1}{2m} \displaystyle \sum_{i = 1}^{m} (h_{\theta}(x^{(i)})-y^{(i)})^2 \) مینیمم شود. این همان هدف نهایی رگرسیون خطی است.

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

پس محاسبه تابع هزینه چه شد؟

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

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

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

 \( \Large \begin{align}
& minimize   \\
& \theta_{1} , \theta_{0}
\end{align} \)  \( \LARGE J(\theta_{1} , \theta_{0}) \)

که در این عبارت \( \Large J(\theta_{1} , \theta_{0}) \) همان تابع هزینه است.

چرا برای تابع هزینه باید مجذور خطاها را محاسبه کنیم؟

به طول کلی شاید دو اسم دیگر نیز برای تابع هزینه رایج باشد که البته بسیار شبیه هم هستند. این دو اسم عبارتند از:

  • تابع خطای مجذور Squared error function
  • تابع هزینه خطای مجذور Squared error cost function

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

ویدیو قسمت پنجم دوره یادگیری ماشین دانشگاه استنفورد

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

در این جلسه با مفهوم ریاضی تابع هزینه آشنا شدیم. دیدیم که این تابع در رگرسیون خطی باید بر اساس  \( \Large (h_{\theta}(x^{(i)}) \) نوشته شود که این تابع خود تابعی از دو پارامتر \( \Large \theta_{0} \) و \( \Large \theta_{1} \) است.

در نهایت دیدیم که مقدار تابع هزینه را با \( \Large J(\theta_{1} , \theta_{0}) \) نشان می‌دهیم. ما در این جلسه بیشتر با مفاهیم ریاضی تابع هزینه آشنا شدیم. در جلسات آینده خواهیم که \( \Large J(\theta_{1} , \theta_{0}) \) دقیقاً چه چیزی را محاسبه می‌کند و چرا باید از این تابع استفاده کنیم.

۲ دیدگاه در “تابع هزینه چیست؟ What is Cost Function – قسمت پنجم دوره یادگیری ماشین دانشگاه استنفورد

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

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

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

-->