یادگیری تقویتی Active و Passive — راهنمای ساده
«یادگیری تقویتی» (Reinforcement Learning) از جمله مباحث داغ روز در حوزه یادگیری ماشین است. در مطالب پیشین، به مفاهیم مقدماتی، برخی روشها، کاربردها در کسبوکار، موارد عدم کاربرد و چالشها و نکات مهم پیرامون این حوزه پرداخته شد. در این مطلب، عناصر لازم برای حل یک مساله یادگیری تقویتی مورد بررسی قرار گرفته و سپس مقایسهای بین یادگیری تقویتی فعال و غیرفعال انجام میشود. سپس، روشهای فعال (Active) و غیرفعال (Passive) یادگیری تقویتی مورد بررسی قرار میگیرند.
در این مطلب فرض شده که مخاطبان با مفاهیم مقدماتی یادگیری تقویتی (RL) و فرآیندهای تصمیمگیری مارکوف (Markov Decision Processes) آشنایی دارند. به افرادی که آشنایی لازم با این دو مبحث را ندارند، مطالعه مطالب «یادگیری تقویتی (Reinforcement Learning) — راهنمای ساده و کاربردی» و «یادگیری تقویتی (Reinforcement Learning) در کسب و کار — آموزش کاربردی» توصیه میشود. پرسشهایی که در این مطلب به آنها پاسخ داده میشود در ادامه بیان شدهاند.
- عناصر لازم برای حل یک مساله یادگیری تقویتی (RL) چه هستند؟
- یادگیری تقویتی فعال و غیرفعال چه هستند و چگونه این دو با یکدیگر مقایسه میشوند؟
- روشهای متداول یادگیری تقویتی فعال و غیرفعال چه هستند؟
عناصر لازم برای حل یک مساله یادگیری تقویتی چیست؟
مسالهای مفروض است که در آن یک «عامل» (agent) میتواند در «حالتهای» (States) مختلف قرار بگیرد و یک «عمل» (Action) را از مجموعهای از اعمال برگزیند. چنین مسائلی را «مسائل تصمیمگیری دنبالهای» (Sequential Decision Problems) مینامند.
فرآیند تصمیمگیری مارکوف (MDP)، یک محیط کاملا قابل مشاهده و غیرقطعی با «مدل انتقال مارکوف» (Markovian Transition Model) و پاداش افزوده است که در آن یک عامل عمل میکند. راهکار برای MDP یک «سیاست بهینه» (optimal policy) است که به انتخاب عمل برای هر حالتی که «پاداش انبارهای کل» (overall cumulative reward) را بیشینه کند وابسته است. بدین ترتیب، «مدل انتقال»ی (transition model) که «محیط» (environment) (هنگامی که محیط شناخته شده است) یک عامل را نشان میدهد و سیاست بهینه که تعیین میکند عامل نیاز به انجام کدام عمل در هر حالت دارد عناصر لازم برای آموزش عامل جهت فراگیری یک رفتار مشخص محسوب میشوند.
یادگیری تقویتی فعال و غیرفعال چه هستند و چگونه این دو با یکدیگر مقایسه میشوند؟
یادگیری تقویتی فعال و غیر قعال هر دو از انواع یادگیری تقویتی (RL) هستند. در یادگیری تقویتی غیرفعال، سیاست عامل ثابت است و این یعنی به عامل گفته میشود که چه کاری انجام دهد. در مقابل، در یادگیری تقویتی فعال، عامل نیاز به تصمیمگیری پیرامون اینکه چه کاری انجام دهد دارد و بنابراین هیچ سیاست تعیین شدهای که عامل براساس آن عمل کند وجود ندارد.
بنابراین، هدف یک عامل یادگیری تقویتی غیرفعال، اجرای سیاست ثابت (دنبالهای از اعمال) و ارزیابی آن است در حالیکه یک عامل یادگیری تقویتی فعال براساس اعمال خود یک سیاست بهینه را فرا میگیرد.
روشهای متداول یادگیری تقویتی فعال و غیرفعال چه هستند؟
در ادامه برخی از روشهای یادگیری تقویتی فعال و غیرفعال ارائه میشوند.
یادگیری غیرفعال
از آنجا که هدف عامل ارزیابی این محسوب میشود که یک سیاست بهینه چقدر خوب است، عامل نیاز به یادگیری «مطلوبیت مورد انتظار» (expected utility) که به صورت (Uπ(s نوشته میشود برای هر حالت S دارد. این کار به سه روش قابل انجام است.
تخمین مطلوبیت مستقیم (Direct Utility Estimation)
در این روش، عامل یک دنباله از آزمایشها یا اجراها را انجام میدهد (دنباله انتقالهای اقدام-عمل که تا زمانی که عامل به حالت ترمینال برسد ادامه خواهد داشت). هر اجرا یک ارزش نمونه به دست میدهد و عامل، مطلوبیت را بر اساس ارزشهای نمونه تخمین میزند. اشکال اصلی آن است که این روش به اشتباه فرض میکند که مطلوبیتهای حالت مستقل هستند در حالیکه در حقیقت آنها مارکوفی هستند. همچنین همگرا شدن در این روش کند است. میتوان یک شبکه ۳×۴ را به عنوان محیطی که عامل در آن به چپ، راست، بالا یا پایین حرکت میکند (مجموعهای از اعمال ممکن) در نظر گرفت. یک نمونه از اجرا به صورت زیر خواهد بود.
پاداش کل از 0.72 = (1,1) آغاز میشود.
برنامهنویسی تطبیقی پویا (Adaptive Dynamic Programming)
برنامهنویسی تطبیقی پویا (ADP)، نسبت به روش تخمین مطلوبیت مستقیم هوشمندتر است، زیرا اجراها را برای یاددهی محیط به مدل با تخمین مطلوبیت یک حالت به عنوان مجموع پاداشها برای قرار داشتن در آن حالت و تنزیل مورد انتظار برای بودن در حالت بعدی انجام میدهد.
هنگامیکه، پاداش = (R(s برای قرار داشتن در حالت s، داریم که مدل انتقال = ((P(s'|s, π(s، فاکتور تنزیل = γ و مطلوبیت وقتی در حالت 's قرار دارد = (Uπ(s. این رابطه را میتوان از طریق الگوریتم تکرار ارزش (value-iteration algorithm) حل کرد. الگوریتم به سرعت همگرا میشود، اما میتواند در فضاهای حالت بزرگ برای بسیار پرهزینه باشد. ADP یک رویکرد مبتنی بر مدل و نیازمند مدل انتقال برای محیط است. از «یادگیری تفاوت زمانی» (Temporal Difference Learning) به عنوان یک رویکرد مستقل از مدل میتوان یاد کرد.
یادگیری تفاوت زمانی (Temporal Difference Learning)
یادگیری تفاوت زمانی نیازمند آن نیست که عامل مدل انتقال را بیاموزد. به روز رسانی بین حالتهای پیاپی به وقوع میپیوندد و عامل تنها حالاتی را به روز رسانی میکند که به طور مستقیم تحت تاثیر قرار میگیرند.
که در آن، نرخ یادگیری = α است و همگرایی به مطلوبیت صحیح را تعیین میکند. در حالیکه ADP مطلوبیت s را با حالتهای پیدیپی خود تعیین میکند، یادگیری تفاوت زمانی آن را با استفاده از یک حالت پیاپی مجرد 's تنظیم میکند. TD در همگرایی کندتر است اما در عین حال به لحاظ محاسباتی سادهتر محسوب میشود.
یادگیری فعال
«برنامهنویسی تطبیقی پویا با تابع اکتشاف» (ADP with exploration function) و Q-Learning از جمله روشهای یادگیری فعال هستند که در ادامه توضیح داده شدهاند.
برنامهنویسی تطبیقی پویا با تابع اکتشاف
از آنجا که هدف یک عامل فعال یادگیری یک سیاست بهینه است، عامل نیاز به یادگیری مطلوبیت مورد انتظار برای هر حالت و به روز رسانی سیاستهای آن دارد. این کار با استفاده از عامل ADP غیرفعال قابل انجام است و سپس با استفاده از تکرار ارزش یا سیاست عامل میتواند اعمال بهینه را بیاموزد. اما این رویکرد منجر به یک عامل «حریص» (greedy) میشود. از این رو، میتوان از رویکردی استفاده کرد که وزنهای بیشتری به اعمال ناشناخته و وزنهای کمتری به اعمال با مطلوبیت کمتر میدهد.
که در آن (f(u,n تابع اکتشافی است که با ارزش مورد انتظار u افزایش مییابد و با تعداد تلاشهای n کاهش پیدا میکند.
+R یک پاداش بهینه و Ne تعداد دفعاتی است که کاربر میخواهد یک عامل مجبور به انتخاب یک عمل در هر حالت باشد. تابع اکتشاف، یک عامل فعال را به غیرفعال تبدیل میکند.
Q-Learning
Q-learning یک روش یادگیری تفاوت زمانی است که نیازمند آن نیست که عامل مدل تراکنشی را بیاموزد، در عوض تابعهای Q-valueها یعنی (Q(s, a را میآموزد.
Q-valueها با استفاده از معادله زیر قابل به روز رسانی هستند.
عمل بعدی با استفاده از سیاست زیر قابل انتخاب است.
این روش نیز به لحاظ محاسباتی سادهتر اما کندتر از ADP است. در جدول زیر، کلیه این روشها با یکدیگر مقایسه شدهاند.
سیاست ثابت (فعال) | سیاست غیر ثابت (غیرفعال) | |
مستقل از مدل
(جهان واقعی) | یادگیری تفاوت زمانی (TD) | Q-learning |
مبتنی بر مدل
(شبیهسازی) | برنامهنویسی تطبیقی پویا (ADP) | برنامهنویسی تطبیقی پویا با تابع اکتشاف |
اگر نوشته بالا برای شما مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشود:
- آموزش یادگیری تقویتی با متلب
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- مجموعه آموزشهای مهندسی کنترل
- مجموعه آموزشهای مهندسی برق
- مجموعه آموزشهای هوش محاسباتی
^^