دوره Reinforcement Learning: مقدمه ۲

قبلی: دوره Reinforcement learning: مقدمه ۱


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


برنامه ریزی (Planning):

بازی Go
بازی Go
  • بهینه سازی (Optimization)
  • نتایج با تاخیر (Delayed consequences)
  • × اکتشاف (Exploration)
  • کلیت بخشی (Generalization)

یه دسته مهم از مسائلی که هوش مصنوعی باهاش طرفه مسائل برنامه ریزیه. مثلا این که ایجنت ما چطور بتونه حریفش رو توی بازی Go شکست بده. توی اینگونه مسائل باز هم ایجنت باید سلسله از تصمیمات خوب بگیره با این تفاوت که ما از قبل مدلی بهش دادیم که مشخص میکنه تصمیماتش چگونه روی جهانش تاثیر میزاره (مدلی از نحوه‌ی عملکرد جهان رو داره). پس بخش اکتشاف رو شامل نمیشه. چون قوانین از قبل مشخصه و لازم نیست ایجنت برای پی بردن به قوانین کار خاصی بکنه (میشه گفت مسائل planning زیر مجموعه از RL هستند).

یادگیری تحت نظارت (Supervised Learning):

  • بهینه سازی (Optimization)
  • × نتایج با تاخیر (Delayed consequences)
  • × اکتشاف (Exploration)
  • کلیت بخشی (Generalization)

وظیفه سوپروایزد لرنینگ اینه که تابعی بسازه که برای یه سری ورودی، خروجی متناسب رو پیدا کنه. مثلا با دادن متراژ و تعداد اتاق‌های یه خونه بتونه حدس بزنه قیمت اون خونه چنده یا با دیدن یک عکس بتونه بگه که مربوط کدوم دسته هست (مثلا بگه عکسه سیبه یا هلو!). اولین تفاوتش با RL در اینه که فقط یک تصمیم میگیره نه سلسله از تصمیمات، پس نگران این نیست که در آینده تصمیم الآنش چه تاثیری خواهد گذاشت زیرا نتیجه هر تصمیم همون زمان مشخص میشه. دومین تفاوتش هم در اینه که احتیاجی به اکتشاف و تجربه کردن نداره چون تجربه توسط ما در اختیارش قرار میگیره و تنها وظیفه‌ای که داره اینه که از این تجربیات یاد بگیره (تجربه همون دیتاستی هست که مدل ما روی اون تِرین میشه).

یادگیری بدون نظارت (Unsupervised Learning):

مثالی از کاری که unsupervised learning انجام میده
مثالی از کاری که unsupervised learning انجام میده
  • بهینه سازی (Optimization)
  • × نتایج با تاخیر (Delayed consequences)
  • × اکتشاف (Exploration)
  • کلیت بخشی (Generalization)

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

یادگیری تقویتی (‌گهگاهی از اسم فارسیش هم استفاده کنیم! البته دلیل اصلیش اینه که اگر مینوشتم RL چون اول خط بود چپ به راست مینوشت :d)‌ یه جورایی بین این حوزه و سوپروایزد لرنینگ قرار میگیره. چون توی سوپروایزد لرنینگ نتیجه تصمیمات مشخصه و توی آنسوپروایزد مشخص نیست. اما توی RL با اینکه نتیجه تصمیمات به طور حتم مشخص نیست اما با استفاده از احتمال میزان خوب یا بد بودنشون رو مشخص میکنیم.

یادگیری با تقلید کردن (Imitation Learning):

  • بهینه سازی (Optimization)
  • نتایج با تاخیر (Delayed consequences)
  • × اکتشاف (Exploration)
  • کلیت بخشی (Generalization)

این حوزه و Planning Learning جزو بخش سه حوزه اصلی ماشین لرنینگ نیستن (بخش های اصلی ماشین لرنینگ supervised learning و unsupervised learning و Reinforcement learning هستند). حقیقتش من نتوستم تعریف دقیق از این بخش پیدا کنم (توی ویکی پدیا الآن که من دارم این پست رو مینویسم که چیزی نبود!). اما خب بر اساس چیزی که من فهمیدم ایجنت ما توی این بخش به جای اینکه خودش تجربه کسب کنه از تجربیات یه ایجنت دیگه (مثلا انسان) استفاده میکنه و از اونا یاد میگیره. خب پس احتیاجی به اکتشاف نداره.

یه نکته‌ای که بد نیست بگم اینه که یادگیری با تقلید توسط آقای Andrew Ng معروف شده که یکی از پرفسورهای دانشگاه استنفورد و همینطور یکی از چهره‌های سرشناس هوش مصنوعیه، و کورس خیلی خوبی هم توی کورسرا (Coursera) به اسم ماشین لرنینگ داره که شدیدا پیشنهاد میکنم اگه با ماشین لرنینگ آشنایی زیادی ندارید و تازه ابتدا کار هستید حتما ببینیدش:)

اما نکته دیگه اینکه ظاهرا قرار با این بخش سروکار زیادی طی دوره داشته باشیم پس در ادامه احتمالا چیزای بیشری ازش می‌بینیم.


خب این پست رو هم همین جا تموم میکنم. فقط فیدبک و لایک فراموش نشه:))