هانیه مهدوی
هانیه مهدوی
خواندن ۷ دقیقه·۱ سال پیش

جزوه دوره آمار و احتمال دکتر علی شریفی - جلسه بیست‌وهفتم - استنباط بیزی و روش Maximum a Posteriori

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

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

پیشنهاد می‌کنم قبل از خوندن ادامه مطلب، یک کاغذ و قلم جلو دستتون باشه تا بتونید روابط ارائه شده رو در جاهایی که لازم هست برای خودتون تو کاغذ بنویسید و محاسبات لازم رو خودتون هم انجام بدین تا بهتر متوجه بشید که در هر مرحله چه اتفاقی میفته.


تا به این جلسه با مکتب Frequentist ها در آمار آشنا شدیم که میگفتن:

اگر X یک متغیر تصادفی باشه که از توزیع نرمال با پارامترهای µ و sigma2 اومده باشه، هر دو پارامتر یک تک عدد هستن که قراره تخمین زده بشن.

ولی این دیدگاه یک ایرادی داره. مثلاً فرض کنید ما می‌دونیم که نسبت تعداد خانم‌ها به کل جمعیت یک توزیع نرمالی داره با میانگین 0.5. میریم تو یک دهکده‌ای که فقط 10 نفر جمعیت داره و 8 تاشون خانم هستن. با دیدگاه Frequentist ها در نهایت به این نتیجه می‌رسیم که توزیع نسبت خانم‌ها به کل جمعیت میانگینش برابر با 0.8 خواهد شد و این غلطه. از قبل یه دانشی داشتیم، پس اون چی میشه؟ اینجا هست که باید با مکتب جدیدی از آمار آشنا بشیم و اسمش هست مکتب Bayesian.

استنباط بیزی

تو مکتب Bayesian پارامترهای توزیع رو یک تک عدد نمی‌بینیم، بلکه یک متغیر تصادفی می‌بینیمشون که یک توزیعی دارن. قبل از اینکه بریم سراغ نمونه‌گیری یک دانش اولیه یا prior knowledge ای داریم در مورد پارامترهای توزیعمون. ممکن هم هست چنین حدسی رو از قبل نداشته باشیم ولی نکته ماجرا اینکه هیچ کدوم از پارامترها رو به صورت یک عدد ثابت در نظر نمی‌گیریم. همچنین، یک توزیع پسین یا posterior distribution هم وجود داره که بعد از نمونه‌گیری و دیدن دیتا به دست میاد.

حالا چجوری از روی توزیع prior میشه توزیع posterior رو به دست آورد؟ روابط زیر رو در نظر بگیرید:

برای به دست آوردن توزیع posterior کافیه که تابع likelihood رو در توزیع prior ضرب کرد و بعد یک نرمال سازی انجام داد و حاصل رو تقسیم کرد بر توزیع کلی دیتا که یک عدد ثابت بهمون میده.

برای حالت پیوسته هم روابط زیر رو داریم:

به صورت کلی رابطه زیر برقراره:

در ادامه، یکی دو تا مثال رو باهم بررسی می‌کنیم تا بهتر متوجه جزییات روابط ارائه شده بشید.

روش Maximum A Posterior

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

اگر بخوایم با روش MLE عمل کنیم برای تخمین µ داریم:

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

حالا اگر بخوایم posterior رو محاسبه کنیم چه باید کنیم؟ از قبل می‌دونیم که روابط زیر برقراره:

می‌دونیم که prior برابر هست با f(µ) و توزیعش برابر هست با:

برای محاسبه f(Data | µ) داریم:

حالا فرض کنید تو رابطه اول مخرج رو معادل با یک عدد ثابت در نظر بگیریم و C بنامیم. در نهایت اگر توزیع prior رو در likelihood ضرب کنیم داریم:

فرض کنید میایم نقاطی که در توزیع بالا صدق می‌کنن رو به دست میاریم و در نهایت توزیع posterior به صورت زیر در میاد:

تو این توزیع ما دنبال اون نقطه‌ای هستیم که داره توزیع posterior رو بیشینه میکنه و برابر هست با پارامتر µ توزیعمون که دنبالش بودیم. چجوری پیداش کنیم؟ با روش Maximum A Posterior یا MAP. این روش خیلی شبیه روش MLE هست که در جلسات گذشته بررسی کردیم ولی تفاوت‌هایی داره:

تو روش MAP به ما دیتا رو دادن و دنبال تتای بیشینه هستیم و این کاملاً برعکس چیزی هست که تو MLE داشتیم بررسی می‌کردیم.

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

مخرج اهمیتی برامون نداره و صرفاً یک سری عدد ثابت هستن. فقط کافیه صورت رو بیشینه کنیم. برای اینکه صورت بیشینه بشه باید توان e بیشینه بشه. پس باید رابطه زیر رو بیشینه کنیم:

میایم از رابطه بالا نسبت به µ مشتق می‌گیریم:

حاصل رو برابر با صفر میذاریم و داریم:

و در نهایت مقداری که برای u به دست میاد برابر هست با:

حالا اگر n برابر با 0 باشه مقداری که برای µ به دست میاد برابر هست با پیک توزیع prior و عملاً مقداری که برای u با این روش تخمین می‌زنیم خیلی بستگی به تعداد نمونه‌هایی داره که می‌بینیم. هرچقدر تعداد نمونه‌ها کمتر باشه مقداری که تخمین زده میشه نزدیک‌تره به مقداری که در prior به دست اومده.

در آمار بیزی یکی از چالش‌هایی که وجود داره همین انتخاب prior هست و تو جواب نهایی خیلی می‌تونه تاثیر بذاره. برای یک سری توزیع‌ها prior هایی رو ارائه دادن که در ادامه اون‌هارو بررسی خواهیم کرد.

اگر نیاز به یک prior داشتیم که می‌دونستیم پارامتر توزیع توش صرفا بین یک بازه‌ای هست و هیچ چیز دیگه‌ای ازش نمی‌دونستیم، می‌تونیم بیایم از توزیع یکنواخت استفاده کنیم. مثلاً اگه می‌دونستیم که اون عدد بین 0 تا 7 هست می‌تونیم از توزیع زیر برای prior استفاده کنیم:

حالا اگر نیاز به prior ای باشه که بدونیم مثلاً با یک احتمالی نزدیک یک سری اعداد هست، می‌تونیم از توزیع نرمال براش استفاده کنیم. مثلاً اگر بدونیم که با احتمال زیادی حدود عدد 150 هست و با احتمال‌های کمتری حدود اعداد 140 و 160 و همینطور الی آخر توزیع prior به صورت زیر در میاد:

حالا اگر نیاز به prior ای باشه که توزیع بین 0 تا 1 داره ولی توزیعش هر شکلی بتونه داشته باشه:

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

عددی که تو مخرج هست یک عدد ثابته و باعث میشه که انتگرال صورت بین بازه 0 و 1 برابر با یک بشه.

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

اگر آلفا و بتا جفتش یک باشه نمودار توزیع بتا به صورت زیر میشه:

اگر آلفا 0.5 باشه و بتا 1 باشه:

اگر آلفا و بتا هر دو برابر با 0.5 باشن داریم:

اگر آلفا 0.5 باشه و بتا برابر با 2 باشه داریم:

اگر آلفا و بتا هر دو برابر با 2 باشن داریم:

اگر آلفا برابر با 2 و بتا برابر با 2.5 باشه داریم:

اگر توزیع prior با توزیع posterior باهم هم خانواده بشن، به عبارتی دیگه، یعنی هر دو از یک توزیع مشابه با پارامترهای مختلف بیان، تو این حالت گفته میشه که conjugate prior داریم و تو این حالت تحلیل توزیع posterior خیلی برامون ساده‌تر میشه تا حالتی که توزیع posterior خیلی توزیع عجیب غریبی باشه و نشناسیمش.

یک مثال رو در ادامه باهم بررسی خواهیم کرد.

فرض کنید یک سکه‌ای رو n بار انداختیم و k بار رو اومده. احتمال رو اومدن سکه رو هم با تتا مشخص می‌کنیم. فرض کنید یه prior با توزع بتا به صورت زیر براش در نظر گرفتیم:

میایم likelihood رو هم محاسبه می‌کنیم و داریم:

حالا اگه posterior رو محاسبه کنیم داریم:

می‌بینیم که توزیع posterior هم خانواده توزیع prior هست و از توزیع بتا تبعیت می‌کنه.

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

حالا باید نسبت به تتا از تابع بالا مشتق بگیریم و برابر با صفر بذاریم:

حالا اگر صورت رو برابر با 0 قرار بدیم داریم:

در نهایت اگر تتا رو تنها کنیم جواب زیر به دست میاد:

جمع‌بندی مطالب ارائه شده

تو این جلسه با استنباط بیزی و روش MAP آشنا شدیم و یکی دو تا مثال رو بررسی کردیم.

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


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

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

صفحه گیت‌هاب مرتبط با این دوره

جزوه جلسه قبلی (جلسه بیست‌وششم)

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