نشریه دانشکده کامپیوتر دانشگاه صنعتی اصفهان
گشت و گذار در دنیای ناشناختهها (مقدمهای بر یادگیری تقویتی)
به قلم مرصاد حسنجانی ورودی ۹۷ کارشناسی مهندسی کامپیوتر دانشگاه صنعتی اصفهان
![](https://files.virgool.io/upload/users/180992/posts/jxapndvx2yd8/zd3mkeiacznv.jpeg)
انسانها به وسیلهی تعامل با محیطهای مختلف، درکی از جهانی که در اون هستن پیدا میکنن. نوزادی که با دست زدن به اشیای داغ میسوزه، جوانی که برای اولین بار هدایت ماشین رو به عهده میگیره و مکالمههایی که ما با دیگران داریم تا شخصیتشون رو بهتر بشناسیم؛ مثالهایی از تعامل با محیط هستن که آگاهیمون رو بالاتر میبرن.
هوشمندی در یادگیری نهفتهست و بدون یادگیری، هوشمندی معنایی نداره. این تعاملها اولین مرتبه از یادگیری هستن.
یادگیری تقویتی و المانهاش
یادگیری تقویتی بخشی از یادگیری ماشین هست که در اون یک (یا چند) عامل تلاش میکنه با استفاده از تعامل با محیط موردنظرش، بیشترین پاداش تجمعی (مجموع پاداش در طول زمان) رو بدست بیاره.
خب این عامل (agent) در یک حالتی (state) هست و با محیط (environment) تعامل میکنه یعنی یک کاری (action) رو انجام میده که روی محیط تغییری ایجاد میکنه. محیط هم این تغییرات رو با پاداش (reward) و یا تغییر حالت به عامل نشون میده. حالا عامل به یک حالت دیگه رفته و باید دوباره این تعامل رو با اطلاعات جدیدی که داره، انجام بده.
![](https://files.virgool.io/upload/users/180992/posts/jxapndvx2yd8/4yiyvwrwv5ou.jpeg)
پاداش تجمعی
منظور از بیشترین پاداش تجمعی اینه که مثلاً فرض کنیم ما وارد بازار رمزارز شدیم. هدفمون اینه که تا زمانی که داخل این بازار هستیمT سودمون بیشترین حالت ممکن باشه. این سودی که بدست میاریم همون پاداشیه که محیط بازار داره به ما میده تا وضعیتمون داخل بازار مشخص بشه. البته همونطور که میدونین همیشه قرار نیست سود بدست بیاریم و بعضی وقتها هم ضرر میکنیم که درواقع، این هم یک نوع پاداش، اما از نوع منفیه که به ما میگه این سود منفی داره اتفاق میافته و اگر نیازه اعمالمون رو باید عوض کنیم.
خب یک نکتهی مهم اینجا پیش میاد، اونم اینه که دنبال چه نوع پاداش یا سودی هستیم؟ بلندمدت یا کوتاهمدت؟ اگر هدفمون کوتاهمدت باشه، همین سودهایی که محیط بازار بهمون میده رو جمع میزنیم و سعی میکنیم اصلاً ضرر نکنیم. ولی برای هدف بلندمدت، ممکنه مجبور باشیم بعضی وقتها ضرر کنیم تا به سود هنگفتتر برسیم. این اهداف بلند مدت بستگی به میدان دیدمون (horizon) داره و اگر میدان دیدمون محدود باشه قطعاً این سودها برامون دستنیافتنی میشن.
یک نکته دیگهای هم که این میدان دید بهمون نشون میده، بحث ریسک کردن و امتحان اعمال جدیدی هست که ممکنه در کوتاهمدت سودی بهمون ندن که هیچ، بهمون ضرر هم بزنن ولی در بلندمدت به نفعمون میشن.
نکتهای که در بالا گفتیم رو به شکل exploration vs exploitation در بحث یادگیری تقویتی داریم. حالا این اصلاً یعنی چی؟
دوراهی exploration vs exploitation
بیاین این مسئله رو با یک مثال بررسی کنیم. فرض کنین من سگی دارم که جلوم نشسته و منتظر دستور منه. من بهش میگم بلند شو و این دستور براش جدیده و نمیدونه که کدوم کار بهتره، ولی دوست نداره که من دعواش کنم پس به صورت تصادفی یک کاری انجام میده. خب فرض کنیم که حرف من رو گوش میکنه و بلند میشه و من بهش یک بیسکوییت میدم. الان سگ با من که محیطش هستم یک تعامل برقرار کرد که با دریافت بیسکوییت به عنوان پاداشی از تعاملش متوجه شد که این پاداش مثبته. پس بیاین فرض کنیم هدفش این باشه که تلاش کنه کارهایی رو انجام بده که این پاداش رو بیشترین حد ممکن کنه.
دستور بعدی که بهش میدم اینه که بشینه. این دستور جدیده ولی موقع تصمیمگیری، سگ یادش هست که با بلند شدن یک بیسکوییت هدیه میگیره و شاید بهتر باشه که کار جدیدی رو امتحان کنه. فرض کنیم تصمیم بگیره که بدوه و من به خاطر دویدن بهش بیسکوییتی ندم و دعواش هم بکنم. حالا باید تصمیم بگیره که آیا عمل دویدن در کل عمل بدیه یا این عمل در اینجا و برای این دستور خاص من عمل مناسبی نبود؟ جواب این سوال رو فقط از تعامل بیشتر با محیط میتونه پیدا کنه. این تعامل تا وقتی ادامه پیدا میکنه که سگ با توجه به دستورات من کاری رو انجام بده و همزمان، یک واکنش هم از طرف من دریافت کنه. همچنین سگ با توجه به تعاملات مشاهدات (observation) خودش رو بروز میکنه.
حالا ممکنه که فکر کنین بالاخره بعد از تعداد زیادی تعامل، سگ متوجه میشه که من چی ازش میخوام ولی حتی همین مثال هم چندان ساده نیست. سگ باید بین انتخاب یک سیاست (policy) جدید برای انتخاب عمل (exploration) و یا استفاده از دانش محدودش که مطمئنه خوب کار میکنه (exploitation)، یکی رو انتخاب کنه. پس سگ میتونه به یک بیسکوییت راضی باشه یا سعی کنه بیسکوییتهای بیشتری بدست بیاره.
![](https://files.virgool.io/upload/users/180992/posts/jxapndvx2yd8/pue5jb2ggiy5.png)
این مفهوم و تعادل برقرار کردن بین این دو اهمیت زیادی در یادگیری تقویتی داره. مثالهای دیگری از یادگیری تقویتی رو میتونین در ادامه بخونین:
- رباتی که هدفش جمعآوری زبالهست و بین اینکه به اتاق بعدی بره تا زباله بیشتری جمع کنه ولی احتمال داره باتریش در اتاق خاموش بشه و یا اینکه به سمت شارژر بره تا باتریش رو شارژ کنه، باید انتخاب کنه. ربات این تصمیم رو بر اساس درصد شارژ باتری خود و زمانی که در گذشته طول کشیده تا شارژر رو پیدا کنه، میگیره.
- غزالی که تازه به دنیا اومده، به سختی روی پای خودش میایسته ولی بعد از نیم ساعت با سرعت ۳۲ کیلومتر بر ساعت میدوه!
- خودروهای هوشمندی که بدون احتیاج به راننده میتونن مسافران رو به مقصد برسونن.
- پروژه AlphaGo Zero که در بازی Go (پیچیدهترین بازی ساخته شده به دست بشر) قهرمان دنیا رو شکست داد.
خب تا اینجا به صورت کلی دیدیم که یادگیری تقویتی چیه و از چه بخشهایی تشکیل شده. خوشحال میشم که نظرات و یا سوالاتتون رو در کامنتها بنویسین تا دانشمون رو با هم به اشتراک بذاریم:)
لینکهای مفید:
کتاب یادگیری تقویتی نوشته ساتون و بارتو
کورس مقدمهای بر یادگیری تقویتی دیوید سیلور در سایت دیپ مایند
مطلبی دیگر از این انتشارات
از آن زمان که بر این آستان نهادم روی
مطلبی دیگر از این انتشارات
مدل زبانی بزرگ[1] چجوری یاد میگیره و حرف میزنه؟ یه راهنمای ساده
مطلبی دیگر از این انتشارات
بازی تقلید