آشنایی با اصول زیربنایی یادگیری تقویتی
در چند سال اخیر یادگیری تقویتی (Reinforcement Learning) دستاوردهای بزرگی داشته و مسائل مختلفی را حل کرده است، اما هنوز هم مواردی وجود دارند که اگر از این دانش در ارتباط با آنها استفاده کنید با مشکل روبهرو میشوید. در این مقاله نکات مهمی را پیرامون یادگیری تقویتی، موقعیتها و اقدامات قابل انجام پیرامون آنها، عناصر لازم برای حل یک مسئله یادگیری تقویتی و مقایسهای بین یادگیری تقویتی فعال و غیرفعال یاد خواهیم گرفت. بهعنوان یک متخصص یادگیری ماشین، به این نکته دقت کنید که برای هر پروژهای باید از گزینه مناسب و درست استفاده کنید. بهطور مثال، هنگامی که دادههای کامل و طبقهبندی شدهای در اختیار دارید و مسئله پیچیدگی خاصی ندارد، بهتر است بهجای یادگیری تقویتی از پارادایمهای دیگری مثل یادگیری ماشین تحت نظارت استفاده کنید.
فرا-یادگیری تقویتی چیست؟
پیشرفتهای اخیر در یادگیری تقویتی، ظرفیت باورنکردنی رایانهها برای انجام بهتر کارها نسبت به انسانها را نشان داده است. بهطوریکه کامپیوترها در محیطهایی مثل بازیهای آتاری، گو، شطرنج، Shogi ،Starcraft II و نمونههای مشابه عملکردی همطراز یا بهتر از انسانها دارند. این عملکرد ناشی از توسعه روشهای یادگیری عمیق و یادگیری تقویتی مانند DQN سرنام Deep Q-Networks و روشهای منتقد-عامل است. با این حال، یکی از مزیتهای اساسی هوش انسانی بر عوامل مصنوعی، توانایی درک و انطباق سریع با وظایف جدید با استفاده از تجارب قبلی در انجام کارهای مشابه است. این درست همان چیزی است که فرا-یادگیری تقویتی (Meta-Reinforcement Learning) سعی دارد به آن برسد. فرا-یادگیری تقویتی را میتوان در قالب فرا-یادگیری در زمینه یادگیری تقویتی شرح داد. بیشتر برنامههای کاربردی مبتنی بر هوش مصنوعی برای یک کار خاص طراحی شدهاند و محدودیتهایی در زمینه انطباق با وظایف جدید دارند. اگر آنها دانش یا آموزشی در مورد نحوه انجام یک کار خاص بهدست آورند و از آن بهره ببرند، میتوانند از دانش خود برای انطباق با هر محیط یادگیری جدیدی استفاده کنند. فرا-یادگیری تقویتی بر مبنای همین تئوری پدید آمده است.
همانگونه که میدانیم فرادادهها اشاره به دادههایی دارند که اطلاعاتی در مورد دادهها ارائه میدهند. بهطور مشابه، وقتی در مورد فرا-یادگیری صحبت میکنیم، باید به این نکته اشاره کنیم که این فرآیند یادگیری در ارتباط با خود مبحث یادگیری است. جایی که یک مدل در فرا-یادگیری توانایی تطبیق با محیطهای جدید را پیدا میکند، در حالی که آموزشی در این زمینه ندیده است. بهطور معمول، فرآیند یادگیری در این حوزه در شرایط محدود آزمایشگاهی قرار دارد، زیرا هدف این است که مدل بتواند از تجارب قبلی در حوزههای جدید استفاده کند. یک مدل فرا-یادگیری تقریبا سه ویژگی اصلی زیر را دارد:
- باید توانایی طبقهبندی دادههای جدید را در شرایطی داشته باشد که آموزشهای مختصری در ارتباط با دادهها کسب کرده است.
- توانایی سازگاری با محیط را داشته باشند.
- در انجام کار جدید باید از مطالبی که در طول جلسات آموزشی محدود یاد گرفته، استفاده کند.
هدف فرا-یادگیری تقویتی طراحی عاملهایی است که بتوانند بهسرعت خود را با محیط تطبیق دهند و از تجاربی که قبلا بهدست آوردهاند برای انجام کارهای جدید استفاده کنند.
در چه شرایطی استفاده از یادگیری تقویتی مناسب نیست؟
بهطور کلی، یادگیری تقویتی مجموعهای از مسائل یادگیری را تشریح میکند که در آنها یک عامل (Agent) باید اعمالی (Actions) در یک محیط برای کسب بیشترین تابع پاداش (reward function) تعریفشده انجام دهد.
درست برعکس یادگیری عمیق نظارتشده، در یادگیری تقویتی حجم زیادی از دادههای برچسبگذاریشده که مبتنی بر جفتهای ورودی و خروجی صحیح روشن و صریح هستند در اختیار مدل قرار داده نمیشود. از اینرو، بیشتر مباحث یادگیری بهشکل آنلاین و در حالتی انجام میشود که عامل در تعامل با محیط در طی چند فرآیند تکرار کسب میکند و بهتدریج به یادگیری خطمشی میپردازد که اعمال قابل انجام برای بهحداکثر رساندن پاداش (reward) را تشریح میکنند. روشی که مدلهای یادگیری تقویتی مسئله را با بهرهگیری از آن مدل میکنند مستلزم وجود شرایطی است. در یادگیری تقویتی امکان کمیسازی همه متغیرهایی که محیط را شرح میدهند وجود دارد تا بتوان به این متغیرها در هر گام زمانی (Time Step) یا حالت (State) دسترسی داشت.
در چنین شرایطی اگر مسائل مرتبط با جهان واقعی باشند یا به دادههای مختصری دسترسی داشته باشیم، با مشکل روبهرو میشویم. علاوه بر این، ممکن است اطلاعاتی که کاربر به آنها دسترسی دارد غیرصحیح و نیازمند پالایش بیشتر باشند، زیرا در ارتباط با بیشتر مدلهای دادهای فرآیند تمیزکاری دادهها بر مبنای یک دیدگاه خودمحور انجام میشوند، بهویژه در شرایطی که ربات با یک محیط ناشناخته در ارتباط است.
حالت در یادگیری تقویتی
توسعهدهنده مدل قادر است یک تابع پاداش پیوسته را تعریف و پاداش انجام عمل را محاسبه کند. کاری که امروزه بیشتر مدلسازی و متخصصان یادگیری تقویتی انجام میدهند. البته به این نکته دقت کنید که تابع پاداش ممکن است صریح و گویا نباشد. بهطور مثال، اگر توسعهدهنده عاملی ایجاد کند که برای یک وسیله نقلیه خودران برنامهریزی مسیر انجام میدهد، چگونه میتوان پاداش را در قالب فرمولهای ریاضی برای مدل شرح داد؟ چگونه باید متوجه شد تابع پاداشی که تعریف شده خوب و مطابق با انتظار است؟ یک راهکار برای حل این مشکل «یادگیری تقویتی معکوس» (Inverse Reinforcement Learning) است.
وجود خطای کاربری
نکته مهمی که باید در این زمینه به آن اشاره کنیم این است که هیچ مهندس یادگیری ماشین (تقویتی) در جهان عاری از خطا نیست و همواره ضریب خطایی وجود دارد که باید در نظر گرفته شود. بهطور مثال، فرض کنید، قصد ساخت یک وسیله نقلیه خودران با استفاده از یادگیری تقویتی را دارید. اکنون این پرسش مطرح است که خودرو قبل از آنکه بتواند سادهترین مانورها را انجام دهد، چند هزار مرتبه باید تصادف کند؟ بدیهی است، در چنین مواردی این امکان وجود ندارد که بگوییم چند هزار خودرو را برای آموزش مدل آماده میکنیم تا بتواند یاد بگیرید که چگونه آنرا هدایت کند. این فرآیند نهتنها بهلحاظ زمانی، بلکه بهلحاظ مالی نیز مقرونبهصرفه نیست. نکته مهمی که نباید نادیده گرفت آموزش در محیط شبیهسازیشده است که انعکاسدهنده دنیای واقعی است و ضمن آنکه مدل را برای ورود به دنیای واقعی آماده میکند، ضریب خطا در محیط واقعی را کاهش داده و کیفیت را بهبود میبخشد، از اینرو نباید از مسئله آموزش در محیط شبیهسازیشده غافل شد.
محدودیت زمانی
با توجه به اینکه یادگیری بیشتر بهشکل آنلاین است، توسعهدهنده باید برای ساخت یک مدل کارآمد بر مبنای الگوی آزمونوخطا کار کند. این امر زمانی قابل قبول است که وظیفه در دست اجرا ساده، گسسته و اطلاعات خوانایی در دسترس باشند. با اینحال، در بیشتر موارد، فرمولهسازی مسئله پیچیدهتر از آن چیزی است که بهنظر میرسد و توسعهدهنده باید دقت شبیهساز را با زمان آموزش و محدودیتهای عملکردی زمان واقعی متعادل کند.
به همین دلیل، بخش قابل توجهی از موفقیتهای یادگیری تقویتی بیشتر محدود به محیطهای کاملا شبیهسازی و کنترلشده است. به همین دلیل، هنوز هم نیاز به تحقیقات بیشتری برای غلبه بر این محدودیتها و تطبیق یادگیری تقویتی عمیق با دنیای واقعی نیاز است. فرا-یادگیری تقویتی، تلاشی برای غلبه بر مشکلاتی است که به آنها اشاره شد.
برای حل یک مسئله یادگیری تقویتی به چه ملزوماتی نیاز داریم؟
بخش عمدهای از مسائل دنیای یادگیری تقویتی به این صورت هستند که در آنها یک عامل میتواند در حالتهای مختلف قرار بگیرد و یک عمل را از میان مجموعهای از اعمال انتخاب کند. این مدل مسائل به «مسائل تصمیمگیری دنبالهای» (Sequential Decision Problems) معروف هستند. بهطور مثال، فرآیند تصمیمگیری مارکوف، یک محیط قابل رویت و غیرقطعی با مدل انتقال مارکوف (Markovian Transition Model) و پاداش افزوده است که در آن یک عامل کاری انجام میدهد. لازم به توضیح است که راهحل مدل انتقال مارکوف یک خطمشی بهینه است که به انتخاب عمل برای هر حالتی که پاداش انبارهای کل (Overall Cumulative Reward) را به بالاترین حد ممکن میرساند وابسته است. در این حالت، مدل انتقالی که محیط یک عامل را نشان میدهد و خطمشی بهینه که تعیین میکند عامل نیاز به اجرای کدام عمل در هر حالت دارد از مولفههای اصلی آموزش عامل جهت فراگیری یک رفتار مشخص هستند.
زنجیره مارکوف
هر چیزی که عامل قادر به تغییر آن نیست، بخشی از محیط است. به عبارت دیگر، اقدامات میتوانند تصمیماتی باشند که میخواهیم عامل بیاموزد و بر مبنای آنها کار کند. نکته ظریفی که باید در این زمینه به آن دقت کنید این است که لزوما هر چیزی در محیط برای عامل ناشناخته نیست. بهطور مثال، محاسبه پاداش بهعنوان بخشی از محیط است، حتا اگر عامل دانش کمی در مورد نحوه محاسبه پاداش بهعنوان تابعی از عملکردها و حالات داشته باشد. پاداشها نمیتوانند بهطور دلخواه توسط عامل تغییر کنند. گاهیاوقات، ممکن است عامل بهطور کامل از محیط اطلاع داشته باشد، اما باز هم دستیابی به بیشینه پاداش دشوار خواهد بود. بهطور مثال، برخی از مردم درباره نحوه حل مکعب روبیک اطلاع دارند، اما شاید نتوانند آنرا حل کنند. از اینرو، باید بگوییم که رابطه عامل و محیط نشاندهنده حد کنترل عامل است و دانش آن نیست.
یکی از مهمترین مباحث دنیای هوش مصنوعی که تقریبا تمام فارغالتحصیلان رشته هوش مصنوعی یا افراد شاغل در این حوزه با آن آشنا هستند، مدل تصمیمگیری مارکوف است. یک مدل احتمالی از یک مسئله تصمیمگیری متوالی که در آن حالتها میتوانند بهدرستی درک شوند و وضعیت فعلی و عملکرد انتخابشده، توزیع احتمال در حالتهای آینده را تعیین کنند. با این توصیف باید بگوییم که نتیجه اعمال یک کنش در یک حالت فقط به کنش و وضعیت فعلی و قبلی بستگی دارد.
زنجیره مارکوف (Markov Chain) که گاهیاوقات از اصطلاح فرآیند مارکوف (Markov Process) برای توصیف آن استفاده میشود، مدلی برای نمایش دنبالهای از متغیرهای تصادفی است که در آن احتمال رویداد هر رخداد به رخداد قبلی وابسته است. به این ترتیب احتمال بروز رخدادها در چنین مدلی فقط به زمان قبل وابسته است و دیگر رخدادها در میزان احتمال تاثیر جزئی یا گاهیاوقات بدون تاثیر هستند. فرآیندهای تصمیمگیری مارکوف چارچوبهای ریاضی هستند که برای تشریح محیط در یادگیری تقویتی استفاده میشوند و تقریبا بیشتر مسائل این حوزه با استفاده از فرآیند فوق قابل پیادهسازی هستند.
یادگیری تقویتی فعال و غیرفعال چه تفاوتهایی با یکدیگر دارند؟
یادگیری تقویتی فعال و غیرفعال هر دو از پاردایمهای اصلی یادگیری تقویتی هستند. در یادگیری تقویتی غیرفعال، خطمشی عامل ثابت است. به بیان دقیقتر، به عامل گفته میشود باید چه کاری انجام دهد. در نقطه مقابل، در یادگیری تقویتی فعال، عامل باید در مورد کاری که قرار است انجام دهد تصمیمگیری کند و از هیچ خطمشی مشخصی برای انجام یک عمل استفاده نکند. از اینرو، هدف یک عامل یادگیری تقویتی غیرفعال، اجرای خطمشی ثابت (دنبالهای از اعمال) و ارزیابی آن است، اما یک عامل یادگیری تقویتی فعال بر مبنای اعمال خود یک خطمشی بهینه را میآموزد. هر یک از پارادایمهای یادگیری تقویتی فعال و غیرفعال روشهای یادگیری خاص خود را دارند که در ادامه با چند مورد از آنها آشنا میشویم.
یادگیری غیرفعال
در این پارادایم به دلیل اینکه، هدف عامل ارزیابی این مسئله است که یک خطمشی بهینه چقدر خوب است، عامل نیاز به یادگیری مطلوبیت مورد انتظار (Expected Utility) دارد که با نماد اختصاری (s) Uπ نوشته میشود. اینکار به سه روش زیر انجام میشود:
- تخمین مطلوبیت مستقیم (Direct Utility Estimation): در راهکار مذکور، عامل دنبالهای از آزمونها یا کارها را تا رسیدن به حالت مشخص ادامه میدهد. انجام هر عمل یک ارزش نمونه در اختیار عامل قرار میدهد که اجازه میدهد مطلوبیت را بر مبنای ارزشهای نمونه تخمین بزند. مشکل روش فوق این است که همگرایی در آن کند است.
- برنامهنویسی تطبیقی پویا (Adaptive Dynamic Programming): برنامهنویسی پویا به مجموعهای از راهکارها برای حل مسائل تصمیمگیری متوالی با ساختار هزینه ترکیبی اشاره دارد و نسبت به روش تخمین مطلوبیت مستقیم عملکرد بهتر و کارآمدتری دارد.
- یادگیری تفاوت زمانی (Temporal Difference Learning): در مکانیزم یادگیری تفاوت زمانی، ضرورتی ندارد که عامل مدل انتقال را یاد بگیرد. بهروزرسانی بین حالتهای متوالی انجام میشود و عامل تنها حالاتی را بهروزرسانی میکند که بهطور مستقیم تحت تاثیر قرار دارند.
یادگیری فعال
برنامهنویسی تطبیقی پویا با تابع اکتشاف (ADP with exploration function) و Q-Learning از روشهای یادگیری فعال بهشمار میروند. از روشهای رایج این پارادایم به موارد زیر باید اشاره کرد:
- برنامهنویسی تطبیقی پویا با تابع اکتشاف: از آنجایی که هدف یک عامل فعال، یادگیری یک خطمشی بهینه است، عامل مجبور به یادگیری مطلوبیت مورد انتظار برای هر حالت و بهروزرسانی خطمشیهای مرتبط است. فرآیند فوق از طریق بهکارگیری برنامهنویسی تطبیقی و از طریق تکرار ارزش یا خطمشی توسط عامل انجام میشود تا در نهایت عامل قادر به یادگیری اعمال بهینه شود. هنگام بهکارگیری تکنیک فوق به مشکل عامل حریص (Greedy) دقت کنید. برای پیشگیری از بروز مشکل مذکور، باید وزنهای بیشتری به اعمال ناشناخته و وزنهای کمتری به اعمال با مطلوبیت کمتر اختصاص دهیم.
- Q-Learning: یک روش یادگیری تفاوت زمانی است که ضرورتی ندارد تا عامل مدل تراکنشی را یاد بگیرید. بهطور معمول، Q-learning بهعنوان یک راهکار مستقل از مدل استفاده میشود. این روش حول محور بهروزرسانی ارزشهای Q است. لازم به توضیح است که قاعده بهروزرسانی ارزش، هسته الگوریتم Q-learning بهشمار میرود.
چگونه یک مسئله یادگیری تقویتی را فرموله کنیم؟
برای ساخت یک خطمشی بهینه، عامل با مسئله جستوجوی حالتهای جدید در شرایطی که پاداش را بهطور همزمان بیشینه میکند روبهرو است. راهکار فوق «موازنه جستوجو و استخراج» (Exploration vs Exploitation trade-off)
نام دارد. با اینحال، هنگام فرمولهسازی یک مسئله یادگیری تقویتی باید در مورد اصطلاحات مرتبط با این پارادایم اطلاع کافی داشته باشید. این اصطلاحات بهشرح زیر هستند:
- محیط (Environment): جهان واقعی که عامل در آن عمل میکند.
- پاداش (Reward): بازخوردی که عامل از محیط دریافت میکند.
- خطمشی یا سیاست (Policy): روشی برای نگاشت حالت عامل به عمل است.
- حالت (State): وضعیت کنونی عامل را نشان میدهد.
- ارزش (Value): پاداش آینده که یک عامل با اقدام به یک عمل در یک حالت خاص کسب میکند.
پراستفادهترین الگوریتمهای یادگیری تقویتی کدام هستند؟
Q-learning و SARSA دو الگوریتم محبوب مرتبط با یادگیری تقویتی هستند. وجه تمایز الگوریتمهای مذکور در استراتژیهای جستوجوی آنها است، زیرا هر دو از استراتژیهای استخراج مشابهی استفاده میکنند. در شرایطی که Q-learning یک راهکار مستقل از خطمشی است که در آن عامل ارزشها را بر اساس عمل a* که از خطمشی دیگری مشتق شده یاد میگیرد، SARSA یک راهکار خطمشیمحور است که ارزشها را بر مبنای عمل کنونی a که از خطمشی کنونی آن مشتق شده یاد میگیرد. پیادهسازی این دو روش ساده است، اما قابلیت تعمیمپذیری ندارند، زیرا توانایی تخمین ارزشها برای حالتهای مشاهدهنشده را ندارند.
با استفاده از الگوریتمهای پیشرفتهتری مانند Deep Q-Networks که از شبکههای عصبی برای تخمین Q-value استفاده میکنند میتوان مشکل فوق را حل کرد، با اینحال، DQNها تنها میتوانند فضای حالت گسسته و ابعاد کم را مدیریت کنند. به همین دلیل در برخی مسائل باید از الگوریتم DDPG سرنام Deep Deterministic Policy Gradient که یک الگوریتم مستقل از مدل، مستقل از خطمشی و عامل-منتقد (actor-critic) است استفاده کرد.