سعی کردم هرچیزی که از جلسات دوره فهمیدم رو به صورت جزوه در بیارم و در این پلتفورم با بقیه به اشتراک بذارم. کل جلسات دوره 23 تاست که سعی میکنم هفتهای دو جلسه رو منتشر کنم. تا جایی که تونستم سعی کردم خوب و کامل بنویسم، اما اگر جایی ایرادی داشت، حتما تو کامنتها بهم بگید تا درستش کنم.
در واقع برای انتخاب مقدار لاندا باید قسمتی از داده تست را که validation نام دارد کنار بگذاریم و از روی آن مقدار مناسب لاندا را انتخاب کنیم.
در مدل خطا داریم:
دنبال این هستیم که ارور روی کل توزیع (true error) کم شود تا بتوانیم روی نمونههای جدید تخمین بهتری داشته باشیم:
مثالی رو در همین مورد برای واضحتر کردن مطلب ببینیم. میخواهیم برای نمونههای زیر فضای فرضیه مختلف انتخاب کنیم.
هر چه فضای فرضیه پیچیدهتر میشود میزان overfitting در آن بیشتر شده و تعمیمپذیری کمتر میشود. هر چه فضای فرضیه سادهتر باشد، میزان خطا approximation روی آن زیاد است.
پیچیده کردن فضای فرضیه در صورتی مشکلزا است که تعداد نمونهها به اندازه کافی زیاد نباشد.
برای انتخاب مدل و ست کردن درجه چندجملهای برای این مثال میتوانیم به شیوه زیر عمل کنیم:
مواردی که پیشتر به آن اشاره شد، در نمودار زیر قابل مشاهده است:
همانطور که در نمودارها مشخص است در هر مرحله یک نمونه اضافه شده است. امیدوار هستیم وقتی تعداد نمونهها زیاد شود به خطای کمتری برسیم.
وقتی مدل ساده است در مقدار خطای بیشتری دو نمودار قرمز و آبی بهم میرسند. در این صورت اگر تعداد نمونهها را زیاد هم کنیم باز بی تاثیر است، چون مدل اصلا پیچیدگی ندارد.
وقتی مدل پیچیده است، زیاد شدن تعداد سمپل کمک میکند که تخمین بهتری داشته باشیم.
حال، تاثیر مقدار لاندا را با یک مثال بررسی میکنیم. همانطور که قبلا هم گفتیم مقدار خیلی کوچک لاندا جلوی overfitting را نمیگیرد و مقدار خیلی زیاد آن باعث میشود مقدار وزن خیلی کوچک شده و مدل خیلی ساده شود.
در تابع هزینه، جملهای که شامل لاندا است (عبارت WTW)، مقدار W0 را ندارد. به این دلیل که به کمک مقدار W0 مشخص میکنیم که نمودار از کجا شروع شود (عرض از مبدا) و اگر این مقدار را هم مانند بقیه وزنها خیلی کوچک در نظر بگیریم منطقی نیست.
حالا فرض کنید توزیعی که روی دادهها داریم را میشناسیم. میخواهیم سه مورد زیر را در آن بررسی کنیم:
برای داشتن شهود بهتر روی Expectation خطا روی کل توزیع، به نموداری که در جلسات اولیه داشتیم برگردیم:
یه هدف ناشناخته داشتیم، یه سری نمونه ازش اومده بود و یه فضای فرضیه در نظر میگرفتیم. انتخاب سمپلها با یه احتمالی انجام میشه. برای درک بهتر همون مثال تخمین قیمت خونه از رو مساحت رو در نظر بگیرید. اگه مساحت بین 100 تا 150 متر بیشتر باشه از بقیه متراژها، نمونههایی که از اون بازه میان هم تعدادشون بیشتره نسبت به بقیه. حالا تو شکل پایین توزیعی که نمونهها از اون میان رو با p نشون داده.
بخشی که بعنوان target در نظر گرفتیم میتونه تابع نباشه. میتونه یه نویزی حول سمپلها وجود داشته باشه.
تو اسلاید پایین منظور از h(x) چیه؟ انگار میاد به ازای هر مقدار x تو هر نقطه میانگینگیری میکنه و جواب میانگین رو در نظر میگیره.
حالا میخوایم نشون بدیم چرا رابطه بالا برقراره:
نماد fD(x) به این معنیه که تابعی به نام f که روی مجموعه سمپلهای D پیدا شده.
جمله اول این اسلاید تو خط آخر داره اینو نشون میده که چیزی که حساب کردیم با خروجی واقعی چقدر فاصله.
حالا تو اسلاید پایین داره میگه به جای اینکه مجموعه نمونههامون فیکس باشه، تو هر مرحله بیایم اونارو تغییر بدیم و بینشون میانگین بگیریم. یعنی میخوایم ببینیم با عوض شدن train set میانگین چجوری تغییر میکنه.
الان اسلاید پایین داره چیو نشون میده؟ داره میانگین هر تابع رو با train data مختلف که حساب شده نشون میده. (میانگین توابع مختلف که با عوض کردن train data به دست اومده)
به کمک تعریف بالا میایم بقیه مراحل رو مینویسیم:
بعد از انجام محاسبات بالا به دو جمله variance و bias میرسیم:
تو عکس پایین:
حالا بیایم دو تا فضای فرضیه مختلف رو در نظر بگیریم و مقادیر بایاس و واریانس رو بررسی کنیم:
بریم یه مثال ببینیم تا مطالبی که تا اینجا گفتیم بهتر جا بیفته:
یه منحنی سینوسی داریم و فقط دو تا سمپل بیشتر نداریم. میخوایم دو تا فضای فرضیه رو باهم مقایسه کنیم ببینیم کدومش بهتره. فضای فرضیه اول خیلی سادهس قراره فقط یه مقدار ثابت باشه. فضای فرضیه دوم خطیه.
برای فضای فرضیهای که خیلی سادهست میایم بین دو تا نقطهای که داشتیم میانگین میگیریم. فضای خطی هم که مشخصه دیگه. دو تا نقطه داشتیم خط رو بهدست آورده.
حالا باید train set رو هی عوض کنیم تا ببینیم چطور میشه. تو حالتی که مدلمون فقط یه خط با شیب 0 بود، پراکندگیش تو شکل سمت چپ مشخصه. حالا اومدیم میانگین گرفتیم و میانگین همه رو با خط سبز تو شکل راست نشون دادیم. تو شکل راست اون فضای خاکستری داره انحراف از معیار رو مشخص میکنه. حالا بایاس چجوری مشخص میشه؟ مساحت ناحیه بین سینوس و خط سبز بایاس رو نشون میده.
به همون ترتیب همون مقادیر رو روی فضای فرضیه دوم حساب میکنیم.
حالا تو دو حالت مختلف اومدیم مقادیر بایاس و واریانس رو حساب کردیم.
اسلاید زیر داره میگه اگه دیتایی که داریم محدوده، پیچیدگی مدل هم باید محدود باشه.
راجع به تصویر زیر قبلا توضیحات کاملی ارائه شده. داره تاثیر تعداد سمپلهارو برای مدلهای ساده و پیچیده رو خطا بررسی میکنه.
تو مثال بالا اون فضایی که از دو نقطه خط عبور میداد رو در نظر بگیرید. تو عکس سمت چپ Regularization نداریم، تو عکس سمت راست داریم. همونطور که مشخصه تو سمت راست خطهارو محدودتر کرده و با این کار مقدار واریانس رو کم کرده.
تو تصویر زیر هم مقادیر واریانس و بایاس رو به صورت عددی نوشته. حالت سمت راست از حالت بهینهای که بالاتر به دست آوردیم بهتر شده.
یه مثال دیگه هم ببینیم.
فضای فرضیه رو بهصورت پایههای گاوسی در نظر گرفته به جای چند جملهای. (گاوسیها رو در یه وزنی ضرب میکنه و بعد باهم جمع میکنه) حالا میخواد اثر ضریب Regularization رو بررسی کنه. تو هر مرحله هم نمودارهای سمت چپ بر اساس 20 تا train set مختلف محاسبه شدن. تو نمودارهای سمت راست، اون خط قرمز میانگین نمودارهای سمت چپه. (نمودارهای سمت چپ واریانس رو نشون میدن، نمودارهای سمت راست بایاس رو)
نمودارهای حالت اول (مقدار Regularization زیاده): واریانس کمه. بایاس زیاده.
نمودارهای حالت دوم (مقدار Regularization یه مقدار متوسطه): واریانس بیشتر شده (نسبت به حالت قبلی). بایاس کمتر شده (نسبت به حالت قبلی).
نمودارهای حالت سوم (مقدار Regularization خیلی کمه): واریانس خیلی زیاد شده. بایاس خیلی کمتر شده.
تست ارور (true error) = واریانس + بایاس + نویز
پس حالا فاصله بین نمودار مشکی و صورتی داره مقدار نویز رو نشون میده.
اگر جایی ایراد یا مشکلی بود، حتما بهم بگید تا تصحیحش کنم.