هر چند این یک برداشت شخصی از یادگیری ماشین محسوب میشه اما اگر علاقه مند یا مشغول به فعالیت در زمینهی یادگیری ماشین هستید توصیه میکنم حتما تا آخر همراه من باشید.حتی اگر در آخر نوشته مخالف صد در صد هم باشید قطعا این نگاه میتونه زمینهی مناسبی برای بحث و تبادل نظر پیرامون چیستی یادگیری ماشین ایجاد کنه. اگر احیانا مطلب مشابه این در جای دیگری بود و نوشتههای من تکراری به نظر میرسید زیاد خرده نگیرید چون من مطالعهام خیلی زیاد نیست :)
به نظر میرسه بنیان یادگیری ماشین بر محور یک تنازع قدیمی و چالش بر انگیز شکل گرفته. تنازعی که ممکنه به شکلهای مختلف در بیاد و نام های متفاوتی به خودش بگیره. این جدال بین دو دانش متفاوت شکل میگیره:
هنر یه متخصص یادگیری ماشین اینه که بین بهره گیری از این دو دانش تعادل ایجاد کنه تا به بهترین حالت برسه.
دانش پیشین شامل چیزهای متفاوتی هست. از جمله ساختار مدل یا به طور جامعتر، الگوریتم یادگیری (طبیعتا هر الگوریتمی دادهساختارهای خودش رو توضیح میده).
از طرفی دانش پسین به نوع داده، حجمداده و ویژگی هایی که از داده مدنظر قرار میگیره بستگی داره.
خوب قبل از این که وارد توضیح دقیق تر این جدال قدیمی بشیم اجازه بدید دو تا مفهوم رو بر اساس همین نگاه بررسی کنیم.
یادگیری انتقالی یعنی این که شما بتونید دانش پسین یک مدل رو به عنوان دانش پیشین در یه مدل دیگه به کار بگیرید! به همین سادگی.
یادگیری بازنمایی یعنی این که شما از دادههای خام و در حالت بدون ناظر Unsupervised Learning بتونید یه بازنمایی جدید معنادار از دادهها پیدا کنید. این یعنی شما تونستید دانش پسین خودتون رو علاوه بر دادههای برچسب خورده از دادههای برچسب نخورده هم استخراج کنید.
پیشنهاد میکنم پیرامون یادگیری بازنمایی این پست رو هم مطالعه بفرمایید.
یکی از رویکردهای اساسی در یادگیری ماشین رویکرد مبتنی بر احتمال هست. در این رویکرد، ما به دادهها به عنوان مقادیرِ یه متغیر تصادفی نگاه میکنیم. در دنیای یادگیری ماشین مبتنی بر احتمالات دو رویکرد اساسی وجود داره.
تفاوت اصلی این رو رویکرد در میزان دخالت دادن دانش پیشین در یادگیری از روی داده است. در رویکرد بسامد گرا تنها ساختار مدل (یا همون توزیع احتمال) از قبل، توسط دانش پیشین تعیین میشه. اما در رویکرد بیزین ، دانش پیشین در مورد توزیع احتمال پارامتر ها هم اظهار نظر میکنه. در حقیقت در حالت بسامدگرا تنها دادهها متغیر تصادفی هستند. اما در رویکرد بیزین علاوه بر دادهها پارامترها هم متغیر تصادفی هستن و ما باید برای اونها هم یک توزیع با پارامتر نامعلوم تعیین کنیم.
در رویکرد بسامد گرا فرض میکنیم که دادهها از یک توزیع احتمال خاص پیروی میکنند. پس فرآیند یادگیری شامل پیدا کردن مقدار درست پارامترهای اون توزیع خاصه. یعنی ما به دنبال مقداری هستیم که این تابع رو ماکزیموم کنه:
توضیح این فرمول هم خیلی ساده است. ما در رویکرد بسامد گرا هستیم و دادهها همه کاره هستند. پس مدل ما باید به داده های دیده شده بیشترین احتمال رو نسبت بده. به همین راحتی!
خوب حالا برای این که بشه فرمول بالا رو مسائل یادگیری با نظارت (Supervised Learning) هم استفاده کرد. اون رو یه خرده دست کاری میکنیم:
توی این فرمول هم دادهها حرف اول و آخر رو میزنن. ما باید پارامتر تتا رو طوری پیدا کنیم که احتمال وقوع مجموعه دادههای خروجی به شرط وقوع مجموعه دادههای ورودی بیشینه بشه.
در رویکرد بیزین، مداخلهی دانش پیشین بیشتر میشه. همون طور که قبلا هم گفته شد این مداخله به این شکله که ما در رویکرد بیزین، پارامتر مدل رو یه متغیر تصادفی دارای یک توزیع خاص در نظر میگیریم.
در فرمول ML احتمال برای تتا بی معنا است. اما در فرمول MAP این طور نیست. توی این فرمول یه نکتهی جالب وجود داره این که خیلی روشن و واضح دستکاری که مد نظرمون بود انجام شده. قسمت سبز رنگ یادگاری از فرمول قبلیه و قسمت قرمز رنگ تاکید میکنه که تتا یه متغیر تصادفیه که در چارچوب یه توزیع احتمال مقدار میگیره. تتای خوب تتایی هست که هم دادهها اون رو تایید کنن و هم ما!
تنظیم، روالیه که در همهی مدل های یادگیری ماشین میتونه حضور داشته باشه. مثلا در شبکههای عصبی، ما معمولا مقدار نرم همهی وزنها رو به تابع هزینهاضافه میکنیم. واقعا چرا؟ این دقیقا تزریق دانش پیشین به مدله. ما از قبل می دونیم که اگه مدل بخواد روی یه دیتای خاص دچار بیشبرازش (overfit) نشه باید پارامترها مقادیر خیلی بزرگی نداشته باشن! این یه دانش پیشینه. که ما معمولا به راحتی اون رو به سیستم تزریق میکنیم.
برای پاسخ دادن به این سوال باید اول به این سوال پاسخ بدیم که واقعا ظرفیت مدل چه قدره؟ به قول معروف خودش چهقدر شعورش میرسه. معمولا برای پیدا کردن توانایی مدل از تکنیک تفکیک دادهها به دومجموعهی آموزش و ارزیابی استفاده میکنیم. مفاهیم بیشبرازش و کمبرازش (underfit) در این جا معنای واضح تری پیدا میکنن. دانش پیشین از هر دوی اون ها میتونه جلوگیری کنه. در جایی که دادهها به قدر کافی وجود ندارن میشه با تزریق قوانین پیشین به مدل کمک کرد. و در جایی که مدل دچار بیشبرازش شده میشه با قوانین محدود کننده به قدرت تعمیم مدل یاری رسوند.
اما واقعا پاسخ کامل به این پرسش به وسعت تمام دانش یادگیری ماشینه و حتی به وسعت تمام هوش مصنوعی. اساسا مهم ترین محور تلاشها و پیشرفتها در زمینهی هوش مصنوعی و یادگیری ماشین در مسیر کاهش تاثیر دانش پیشین در مدلهای هوشمنده. یعنی همه دوست دارن که یه چیزی بسازن که بشه ولش کرد به امون خدا و اون خودش همهچیزو بفهمه و یاد بگیره. اصلا خودمختاری یعنی تاثیر هر چه کمتر دانش پیشین و این از ارکان اساسی یا بهتره بگم مهم ترین رکن هوشمندیه. توی کتاب معروف AIMA میخونیم:
To the extent that an agent relies on the prior knowledge of its designer rather than on its own percepts, we say that the agent lacks autonomy. (AIMA ed3 p.39)
به میزانی که یک عامل به جای تکیه بر ادراک خودش، بر دانش پیشین طراحش متکی باشد میگوییم او فاقد خودمختاری است.
اگر همای سعادت بر شانههای این حقیر نشسته و شما مطالب قبلی من رو مطالعه کردید باید خدمتتون عرض کنم که من این مطلب رو سعی کردم با رویکرد بالا به پایین بنویسم. هدف از نگارش این مطلب تنها اشتراک دانش و بهره مندی از نظرات شما بوده و ارزش دیگری ندارد! چنانچه احساس کردید این متن اون طور که باید وشاید نظر شما رو جلب نمیکنه دعوت میکنم یک بار دیگه این مطلب رو از اول مرور کنید البته ترجیحا بعد از مطالعه پست زیر:
ممنونم