هانیه مهدوی
هانیه مهدوی
خواندن ۸ دقیقه·۳ سال پیش

جزوه دوره یادگیری ماشین دکتر مهدیه سلیمانی - جلسه پنجم - خطای روی کل توزیع و مفاهیم بایاس و واریانس

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

محتوای این جلسه

  • خطای روی کل توزیع
  • بایاس
  • واریانس
  • مفهوم Regularization (جزییاتش قبلا گفته شده در قالب یه مثال بررسی میشه)

مقادیر مختلف برای لاندا چه تاثیری روی خطا دارد؟

  • اگر لاندا خیلی کوچک شود (یعنی لگاریتم لاندا به سمت بی نهایت برود)، انگار هیچ لاندایی وجود ندارد و overfitting رخ داده و فاصله بین خطای train و test در بیشترین حالت است.
  • اگر لاندا خیلی بزرگ شود، با وجود اینکه فاصله بین خطای train و test نسبت به بقیه حالات کمتر است اما چون سعی بر این دارد که مقادیر وزن را خیلی کم کند باعث می‌شود مقدار میزان خطا (نه فاصله بین) بیشتر شود.
  • فاصله بین -35 تا -25 برای لاندا در این نمودار مقدار مناسبی است. زیرا هم میزان خطا کم است (روی train و test) هم اینکه خطای test و خطای train بهم نزدیک هستند.

در واقع برای انتخاب مقدار لاندا باید قسمتی از داده تست را که validation نام دارد کنار بگذاریم و از روی آن مقدار مناسب لاندا را انتخاب کنیم.

در مدل خطا داریم:

  • خطای approximation که همون خطای روی داده train است.
  • خطای generalization که همون خطای روی داده test است.

دنبال این هستیم که ارور روی کل توزیع (true error) کم شود تا بتوانیم روی نمونه‌های جدید تخمین بهتری داشته باشیم:

  • اگر فضای فرضیه خیلی پیچیده باشد روی داده‌های train تخمین بهتری داریم اما overfitting رخ می‌دهد. (خطای generalization بالاست)
  • اگر فضای فرضیه خیلی ساده باشد تعمیم‌پذیری بهتر است اما میزان خطا به صورت کلی بالاتر است. (خطای approximation بالاست)

مثالی رو در همین مورد برای واضح‌تر کردن مطلب ببینیم. می‌خواهیم برای نمونه‌های زیر فضای فرضیه مختلف انتخاب کنیم.

هر چه فضای فرضیه پیچیده‌تر می‌شود میزان overfitting در آن بیشتر شده و تعمیم‌پذیری کمتر می‌شود. هر چه فضای فرضیه ساده‌تر باشد، میزان خطا approximation روی آن زیاد است.

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

برای انتخاب مدل و ست کردن درجه چندجمله‌ای برای این مثال می‌توانیم به شیوه زیر عمل کنیم:

مواردی که پیش‌تر به آن اشاره شد، در نمودار زیر قابل مشاهده است:

بزرگ‌تر کردن train set چه تاثیری دارد؟

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

اگر مدل بیش از حد ساده یا پیچیده باشد، زیاد کردن تعداد نمونه‌ها چه تاثیری دارد؟

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

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

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

در تابع هزینه، جمله‌ای که شامل لاندا است (عبارت WTW)، مقدار W0 را ندارد. به این دلیل که به کمک مقدار W0 مشخص می‌کنیم که نمودار از کجا شروع شود (عرض از مبدا) و اگر این مقدار را هم مانند بقیه وزن‌ها خیلی کوچک در نظر بگیریم منطقی نیست.

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

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

یه هدف ناشناخته داشتیم، یه سری نمونه ازش اومده بود و یه فضای فرضیه در نظر می‌گرفتیم. انتخاب سمپل‌ها با یه احتمالی انجام میشه. برای درک بهتر همون مثال تخمین قیمت خونه از رو مساحت رو در نظر بگیرید. اگه مساحت بین 100 تا 150 متر بیشتر باشه از بقیه متراژها، نمونه‌هایی که از اون بازه میان هم تعدادشون بیشتره نسبت به بقیه. حالا تو شکل پایین توزیعی که نمونه‌ها از اون میان رو با p نشون داده.

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

تو اسلاید پایین منظور از h(x) چیه؟ انگار میاد به ازای هر مقدار x تو هر نقطه میانگین‌گیری میکنه و جواب میانگین رو در نظر می‌گیره.

حالا می‌خوایم نشون بدیم چرا رابطه بالا برقراره:

نماد fD(x) به این معنیه که تابعی به نام f که روی مجموعه سمپل‌های D پیدا شده.

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

حالا تو اسلاید پایین داره میگه به جای اینکه مجموعه نمونه‌هامون فیکس باشه، تو هر مرحله بیایم اونارو تغییر بدیم و بینشون میانگین بگیریم. یعنی می‌خوایم ببینیم با عوض شدن train set میانگین چجوری تغییر میکنه.

الان اسلاید پایین داره چیو نشون میده؟ داره میانگین هر تابع رو با train data مختلف که حساب شده نشون میده. (میانگین توابع مختلف که با عوض کردن train data به دست اومده)

به کمک تعریف بالا میایم بقیه مراحل رو می‌نویسیم:

بعد از انجام محاسبات بالا به دو جمله variance و bias می‌رسیم:

  • جمله bias چک می‌کنه که اون میانگینی که از توابع به دست آوردیم از بهترین تابعی که ممکن بود پیدا بشه، چقدر فاصله داره (اگر این فاصله خیلی زیاد باشه اینو نشون میده که فضای فرضیه‌ای که انتخاب کردیم شاید خیلی جالب نباشه)
  • جمله variance داره تنوع جواب‌هایی که حساب کردیم رو محاسبه می‌کنه. اگه خیلی متنوع باشه به این معنیه که اون چیزی که به دست اومده تعمیم‌پذیری خوبی نداره. (واریانس یه جورایی داره تعمیم‌پذیری رو نشون میده، هرچقدر واریانس بیشتر، تعمیم‌پذیری کمتر)

تو عکس پایین:

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

حالا بیایم دو تا فضای فرضیه مختلف رو در نظر بگیریم و مقادیر بایاس و واریانس رو بررسی کنیم:

  • شکل چپ داره فضای فرضیه محدودی رو نشون میده (مثلا فرض کنید فضای فرضیه خطی باشه، ولی بهترین جواب یه چندجمله‌ای درجه 3 هست). تو این فضا چیزی که ما حساب کردیم خیلی فاصله داره با چیزی که باید محاسبه می‌شده (h) و بخاطر همین بایاس هم خیلی زیاده. اما واریانس خیلی زیاد نیست. (اون نقطه سیاه‌ها رو فرض کنید نشون‌دهنده توابع مختلفی هستن که با train set های مختلف به‌دست اومدن)
  • شکل راست داره فضای فرضیه‌ای رو نشون میده که تابعی که دنبالشیم تو اون فضا هست. اون فضای قرمز رنگ داره جایی رو نشون میده که مثلا تو هر مرحله با یه train set خاص به‌دست اومده. پس مقدار بایاس خیلی زیاد نیست و چیزایی که ما حساب می‌کنیم حول همون نقطه h میفته. ولی واریانس خیلی زیاد میشه. چرا؟ چون گفتیم واریانس داره تنوع جواب‌هایی که به‌دست آوردیم رو مشخص می‌کنه و چون تعداد اون نقطه‌های سیاه تو اون فضای قرمز رنگ زیاده یعنی تنوع بالاست.

بریم یه مثال ببینیم تا مطالبی که تا اینجا گفتیم بهتر جا بیفته:

یه منحنی سینوسی داریم و فقط دو تا سمپل بیشتر نداریم. می‌خوایم دو تا فضای فرضیه رو باهم مقایسه کنیم ببینیم کدومش بهتره. فضای فرضیه اول خیلی ساده‌س قراره فقط یه مقدار ثابت باشه. فضای فرضیه دوم خطیه.

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

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

به همون ترتیب همون مقادیر رو روی فضای فرضیه دوم حساب می‌کنیم.

حالا تو دو حالت مختلف اومدیم مقادیر بایاس و واریانس رو حساب کردیم.

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

اسلاید زیر داره میگه اگه دیتایی که داریم محدوده، پیچیدگی مدل هم باید محدود باشه.

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

مفهوم Regularization

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

تو تصویر زیر هم مقادیر واریانس و بایاس رو به صورت عددی نوشته. حالت سمت راست از حالت بهینه‌ای که بالاتر به دست آوردیم بهتر شده.

یه مثال دیگه هم ببینیم.

فضای فرضیه رو به‌صورت پایه‌های گاوسی در نظر گرفته به جای چند جمله‌ای. (گاوسی‌ها رو در یه وزنی ضرب می‌کنه و بعد باهم جمع میکنه) حالا می‌خواد اثر ضریب Regularization رو بررسی کنه. تو هر مرحله هم نمودارهای سمت چپ بر اساس 20 تا train set مختلف محاسبه شدن. تو نمودارهای سمت راست، اون خط قرمز میانگین نمودارهای سمت چپه. (نمودارهای سمت چپ واریانس رو نشون میدن، نمودارهای سمت راست بایاس رو)

نمودارهای حالت اول (مقدار Regularization زیاده): واریانس کمه. بایاس زیاده.

نمودارهای حالت دوم (مقدار Regularization یه مقدار متوسطه): واریانس بیشتر شده (نسبت به حالت قبلی). بایاس کمتر شده (نسبت به حالت قبلی).

نمودارهای حالت سوم (مقدار Regularization خیلی کمه): واریانس خیلی زیاد شده. بایاس خیلی کمتر شده.

تست ارور (true error) = واریانس + بایاس + نویز

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

جمع‌بندی مطالب گفته شده

  • به صورت نظری خطای روی کل توزیع (true error) رو بررسی کردیم و به سه جز مختلف نویز، واریانس و بایاس شکسته شد.
  • مقدار نویز برای این مطرح شد که ما همواره دنبال تقریب با تابع بودیم اما ممکنه همواره y تابعی از x نباشه و توزیع داشته باشه و چون نمی‌تونیم اون رو به هیچ وجه پوشش بدیم پس نویز بوجود میاد.
  • واریانس پیچیدگی فضای فرضیه و تنوع مدل‌هایی که داریم رو نشون میده، هرچقدر واریانس بیشتر تعمیم‌پذیری مدل کمتر میشه که خوب نیست.
  • بایاس هم میزان تخمین رو نشون میده که چقدر خوب یا بد بوده. هرچقدر کمتر باشه، خطای approximation کمتره.

اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم.

اسلایدهای این جلسه

ویدیو این جلسه

جزوه جلسه قبلی (جلسه چهارم)

جزوه جلسه بعدی (جلسه ششم)

واریانسبایاسنویزیادگیری ماشینregularization
من هانیه‌ام. مدتیه شروع کردم به تولید محتوا در قالب متن و به زبان فارسی، از روی دوره‌هایی که می‌گذرونم. اگر دوست داشتین برام قهوه بخرید: https://coffeete.ir/honio
شاید از این پست‌ها خوشتان بیاید