یادگیری تقویتی (Reinforcement Learning) در چه مواردی کاربرد ندارد؟ — راهنمای ساده
در سالهای اخیر «یادگیری تقویتی» (Reinforcement Learning) به موفقیتهای زیادی در حوزههای گوناگون دست یافته است، اما موقعیتهایی نیز وجود دارند که استفاده از این دانش در آنها مشکلساز خواهد بود. در این مطلب چنین موقعیتهایی و اقدامات قابل انجام پیرامون آنها تشریح میشوند. یادگیری تقویتی مجموعهای از مسائل یادگیری را تشریح میکند که در آنها یک «عامل» (agent) باید «اعمالی» (actions) را در یک «محیط» (environment) به منظور بیشینهسازی «تابع پاداش» (reward function) تعریف شده انجام دهد.
برخلاف یادگیری عمیق نظارت شده، در یادگیری تقویتی مقدار زیادی دادههای برچسبگذاری شده یا در واقع جفتهای ورودی و خروجی صحیح صراحتا ارائه نشدهاند. بنابراین، بخش عظیمی از یادگیری به صورت «برخط» (online) و برای مثال در حالتی که عامل به طور فعال با محیط خود در طی چندین تکرار تعامل میکند به وقوع میپیوندد و به تدریج به یادگیری «سیاستی» (policy) میپردازد که اعمال قابل انجام برای بیشینه کردن «پاداش» (reward) را تشریح میکند. روشی که مدلهای یادگیری تقویتی مساله را با بهرهگیری از آن مدل میکنند نیازمند شرایطی است که در ادامه بیان شدهاند.
میتوان همه متغیرهایی که محیط تشریح میکند را کمّیسازی کرد و به این متغیرها در هر «گام زمانی» (time step) یا «حالت» (state) دسترسی داشت.
- در شرایطی که مساله مربوط به جهان واقعی باشد یا دسترسی فقط به دادههای ناچیزی وجود دارد این امر مسالهساز خواهد بود. همچنین، ممکن است اطلاعاتی که کاربر به آنها دسترسی دارد غیر صحیح و نیازمند جستوجوی بیشتر باشند، زیرا این موارد با یک دیدگاه خودمحور اندازهگیری شدهاند (دستکم در شرایطی که ربات با یک محیط ناشناخته تعامل میکند).
کاربر میتواند یک «تابع پاداش پیوسته» (concrete reward function) را تعریف و پاداش انجام عمل را محاسبه کند.
- تابع پاداش ممکن است واضح نباشد. برای مثال، اگر کاربر عاملی را میسازد که برای یک وسیله نقلیه خودران برنامهریزی مسیر انجام میدهد، چگونه میتوان پاداش را به صورت ریاضی بیان کرد؟ چطور میتوان فهمید تابع پاداشی که تعریف شده «خوب» است؟ (یک رویکرد برای مواجهه با این مساله «یادگیری تقویتی معکوس» (inverse reinforcement learning) است.)
کاربر امکان انجام خطا دارد.
- آزادی برای انجام جستوجوی بدون عواقب همیشه وجود ندارد. برای مثال اگر قصد ساختن یک وسیله نقلیه خودران با استفاده از یادگیری تقویتی وجود داشته باشد، خودرو پیش از آنکه بتواند سادهترین مانورها را داشته باشد چند هزار بار تصادف میکند؟
- آموزش در محیط شبیهسازی شده دستاوردهای عملکردی جهان واقعی دارد و نباید از آن صرفنظر شود.
کاربر زمان دارد.
- از آنجا که یادگیری عمدتا به صورت برخط انجام میشود، کاربر باید به منظور تولید یک مدل موثر، بارها و بارها سعی و خطاها را اجرا کند. این امر زمانی قابل پذیرش است که وظیفه در دست اجرا ساده، گسسته و اطلاعات به صورت قابل خواندن در دسترس باشند. اما در بسیاری از شرایط، فرمولهسازی مساله پیچیدهتر از آنچه بیان شد است و کاربر باید دقت شبیهساز را با زمان آموزش و محدودیتهای عملکردی زمان واقعی متعادل کند.
به دلیل محدودیتهای بیان شده، موفقیتهای اخیر در یادگیری تقویتی اغلب در محیطهای کاملا شبیهسازی و کنترل شده به وقوع پیوستهاند (برای مثال پژوهشهای دیپمایند (AlphaGo) روی آتاری (Atari)). از اینرو، همچنان نیاز به حجم عظیمی از پژوهشها برای غلبه بر این محدودیتها و تطبیق دادن یادگیری تقویتی عمیق برای داشتن عملکرد موثر در عاملهای زمان واقعی است.
اگر نوشته بالا برای شما مفید بود، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- آموزش یادگیری تقویتی با متلب
- مجموعه آموزشهای مهندسی کنترل
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- مجموعه آموزشهای مهندسی برق
- مجموعه آموزشهای هوش محاسباتی
^^