راهکارهای نرم افزاری سیمان
راهکارهای نرم افزاری سیمان چیست
در این مطلب به مبحث «یادگیری تقویتی» (Reinforcement Learning) پرداخته شده است. اما پیش از ورود به موضوع اصلی، نیاز است برخی مفاهیم مقدماتی مورد بررسی قرار بگیرند. از جمله این مقدمات میتوان به مفهوم یادگیری، یادگیری ماشین و انواع آن و عامل هوشمند اشاره کرد.
بر اساس تعریف ارائه شده توسط «ریچارد گروس» (Richard Gross)، در کتاب «روانشناسی: دانش ذهن و رفتار» (Psychology: The Science of Mind and Behaviour)، «یادگیری» (learning) به عنوان فرآیند کسب و یا اصلاح دانش، رفتار، مهارت، ارزش یا کارایی تعریف شده است.
«یادگیری ماشین» (Machine Learning)، علم طراحی ماشینهایی است که با استفاده از دادههایی که به آنها داده میشود (نمونهها) و تجربیات خودشان عمل کنند، بدون آنکه همه اقدامات با بهرهگیری از برنامهنویسی به آنها دیکته شود.
الگوریتمهای یادگیری ماشین در دستههای نظارت شده، نظارت نشده و تقویتی قرار دارند. در این مطلب به مبحث «یادگیری تقویتی» پرداخته خواهد شد. «یادگیری تقویتی» (Reinforcement learning | RL) نوع مهمی از یادگیری ماشین است که در آن یک عامل میآموزد چگونه در محیط با انجام اقدامات و دیدن نتایج آنها رفتار کند. در سالهای اخیر، بهبودهای متعددی در این حوزه پژوهشی فوقالعاده به وقوع پیوسته است. «دیپمایند» (DeepMind) و معماری «یادگیری Q عمیق» (Deep Q learning) در سال ۲۰۱۴، غلبه بر قهرمان بازی «گو» (GO) با «آلفاگو» (AlphaGo) در سال ۲۰۱۶ و OpenAI و PPO در سال ۲۰۱۷ تنها برخی از این پیشرفتها هستند.
در «هوش مصنوعی» (artificial intelligence)، «عامل هوشمند» (IA | Intelligent Agent) موجودیت خودکاری است که از طریق حسگرهای خود محیط را میبیند و با استفاده از محرکها اقداماتی را در محیط انجام میدهد و فعالیتهای خود را در مسیر کسب اهداف هدایت میکند. عاملهای هوشمند ممکن است از یادگیری یا دانش برای کسب اهداف خود بهره بگیرند. این عاملها ممکن است بسیار ساده یا خیلی پیچیده باشند.
در این مطلب به موضوعات زیر پرداخته شده:
یادگیری تقویتی و ایده اصلی پاداش دادن چیست؟
سه رویکرد یادگیری تقویتی چه هستند؟
«عمیق» در یادگیری تقویتی عمیق به چه معنا است؟
نکته حائز اهمیت آن است که پژوهشگران باید پیش از پیادهسازی عامل یادگیری تقویتی عمیق، بر کلیه موضوعات بیان شده در بالا مسلط باشند. ایده نهفته در پس یادگیری تقویتی آن است که یک عامل در محیط طی تعامل با آن و دریافت پاداش برای اقدامات خود، یاد بگیرد. مبحث یادگیری تقویتی از تعامل نوع بشر با محیط و یادگیری بر اساس تجربیات خود، نشات میگیرد. تصور کنید که کودکی در یک اتاق است. کودک شومینه را میبیند و به آن نزدیک میشود.
یادگیری تقویتی
شومینه گرم است، این امر مثبت تلقی شده و کودک احساس مثبتی دارد (پاداش مثبت ۱+). در اینجا کودک میفهمد که آتش چیز مثبتی است.
یادگیری تقویتی
سپس، کودک سعی میکند که آتش را لمس کند. اوه! کودک دست خود را میسوزاند (پاداش منفی ۱-). در اینجا کودک میفهمد که آتش چیز مثبتی است اما زمانی که در فاصله مناسب از آن قرار بگیرد، زیرا گرما تولید میکند. اما نزدیک شدن بیش از اندازه موجب سوختن میشود.
یادگیری تقویتی
این روشی است که طی آن، انسانها از طریق تعامل با محیط میآموزند. یادگیری تقویتی نیز یک رویکرد پردازشی است که بر اساس آن، عامل با انجام اعمال (Actions) میآموزد.
فرآیند یادگیری تقویتی
عامل، حالت و محیط
فرض میشود که یک عامل در حال یادگیری بازی برادران سوپرماریو از طریق کار روی مثالها است. فرآیند یادگیری تقویتی (RL) از طریق حلقههایی که در ادامه بیان شدهاند انجام میشود.
عامل حالت S0 را از محیط دریافت میکند (در این مثال اولین فریم (حالت) از بازی سوپر ماریو (محیط) دریافت میشود)
بر اساس حالت S0، عامل عمل A0 را انجام میدهد (عامل به سمت راست حرکت میکند)
محیط به حالت جدید S1 انتقال پیدا میکند (فریم جدید)
محیط پاداش R1 را به عامل میدهد (عامل نمرده: ۱+)
این حلقه یادگیری تقویتی دارای یک توالی از حالت، عمل و پاداش است. هدف عامل آن است که پاداش انبارهای (تجمعی) مورد انتظار (منظور از مورد انتظار همان امید ریاضی است) را بیشینه کند.
ایده اساسی فرضیه پاداش
چرا هدف عامل بیشینه کردن پاداش انبارهای مورد انتظار است؟ یادگیری تقویتی براساس ایده فرضیه پاداش بنا شده است. به همین دلیل است که در یادگیری تقویتی برای داشتن بهترین رفتار، باید پاداش انبارهای بیشینه شود. پاداش انبارهای در هر گام t را میتوان به صورت زیر نوشت.
فرضیه یادگیری عمیق
که برابر است با:
فرضیه یادگیری تقویتی
با این حال، در حقیقت نمیتوان پاداش را به این شکل اضافه کرد. پاداشی که زودتر بیاید (در آغاز بازی) احتمال وقوع آن بیشتر است، زیرا از پاداشهای بلند مدت آینده قابل پیشبینیتر هستند.
مثالی مفروض است که در آن عامل یک موش کوچک و رقیب آن گربه باشد. هدف آن است که بیشترین میزان پنیر توسط موش خورده شود، پیش از آنکه گربه موش را بخورد. همانطور که از نمودار مشهود است، احتمال خوردن پنیرهای نزدیک موش نسبت به پنیرهای نزدیک گربه بیشتر است (هرچه به گربه نزدیکتر شود، خطر آن نیز بیشتر است).
یادگیری تقویتی
در یک توالی، پاداش نزدیک گربه حتی اگر بزرگتر باشد (پنیرهای بیشتر)، تنزیل (تخفیف) پیدا میکند. زیرا عامل مطمئن نیست که قادر به خوردن آنها باشد. برای تنزیل پاداشها به صورت زیر عمل میشود.
یک نرخ تنزیل با عنوان گاما تعریف میشود. این مقدار باید بین ۰ و ۱ باشد.
هر چه گاما بزرگتر شود، تنزیل کمتر است. این یعنی عامل یادگیرنده به پاداشهای بلند مدت اهمیت بیشتری میدهد.
از سوی دیگر، هرچه گاما کوچکتر باشد، تنزیل بیشتر است. این یعنی عامل توجه بیشتری به پاداشهای کوتاه مدت (پنیرهای نزدیک) میکند.
پاداش مورد انتظار انبارهای تنزیل داده شده به صورت زیر محاسبه میشود.
یادگیری تقویتی
برای سادگی، هر پاداش با گاما به توان گام زمانی، تنزیل داده میشود. با افزایش گام زمانی، گربه به موش نزدیکتر میشود، بنابراین احتمال وقوع پاداشهای آتی کم و کمتر میشود.
وظایف اپیزودیک یا غیر اپیزودیک (مستمر)
یک وظیفه، نمونهای از مساله یادگیری تقویتی است.در یادگیری تقویتی دو نوع از وظایف را میتوان داشت: اپیزودیک و مستمر (غیر اپیزودیک).
وظایف اپیزودیک
در این نوع از وظایف، یک نقطه آغازین و یک نقطه پایانی (حالت ترمینال) وجود دارد. این منجر به ایجاد یک اپیزود یعنی لیست حالتها، اعمال، پاداشها و حالتهای جدید میشود. برای مثال، در بازی برادران سوپرماریو، یک اپیزود با وارد شدن یک ماریو جدید آغاز میشود و هنگامی که ماریو کشته شد یا به پایان مرحله رسید، به پایان میرسد.
وظیفه اپیزودیک
وظایف مستمر (غیر اپیزودیک)
چنین وظایفی برای همیشه ادامه پیدا میکنند (فاقد حالت ترمینال). در این شرایط، عامل باید بیاموزد که چگونه بهترین عمل را انتخاب کرده و به طور همزمان با محیط نیز تعامل کند. وظیفه عاملی که به طور خودکار به تجارت سهام میپردازد، نمونهای از وظایف مستمر است. برای این وظیفه، هیچ نقطه آغاز و حالت ترمینالی (نقطه پایان) وجود ندارد. عامل همواره به اجرا شدن ادامه میدهد تا کارشناس (کاربر انسانی) تصمیم به متوقف کردن آن بگیرد.
وظایف مستمر (غیر اپیزودیک)
روش یادگیری مونت کارلو و روش یادگیری TD
دو راه برای یادگیری وجود دارد که در ادامه شرح داده شدهاند.
گردآوری پاداشها در پایان هر اپیزود و محاسبه بیشینه پاداش آینده مورد انتظار: روش مونت کارلو (Monte Carlo Approach)
تخمین پاداش در هر گام: یادگیری تفاوت زمانی (Temporal Difference Learning| TD)
روش مونت کارلو
هنگامی که اپیزود به پایان میرسد (عامل به «حالت ترمینال» میرسد)، عامل به پاداش تجعمی کل نگاه میکند تا از نحوه عملکرد خود آگاه شود. در روش مونت کارلو، پاداشها تنها در پایان بازی دریافت میشوند. بنابراین، بازی جدید با یک دانش افزوده آغاز میشود. عامل در هر تکرار تصمیمات بهتری اتخاذ میکند.
روش مونت کارلو
مجددا مثال گربه و موش در نظر گرفته میشود. اگر محیط هزارتو (Maze) دریافت شود، موارد زیر را باید در نظر داشت.
آغاز همیشه از یک نقطه است.
اگر گربه، عامل (موش) را بخورد و یا موش بیش از ۲۰ گام حرکت کند، اپیزود خاتمه پیدا میکنند.
در پایان اپیزود، لیستی از حالتها، اعمال، پاداشها و حالتهای جدید موجود است.
عامل پاداشهای کل (Gt) را جمع میزند (تا از نحوه عملکرد خود آگاه شود).
سپس، (V(St با استفاده از فرمول بالا به روز رسانی میشود.
پس از آن، موش بازی جدید خود را با این دانش آغاز میکند.
عامل هوشمند
با اجرای اپیزودهای بیشتر و بیشتر، عامل میآموزد که چگونه بهتر و بهتر عمل کند.
یادگیری تفاوت زمانی: یادگیری در هر گام زمانی
از سوی دیگر، در یادگیری TD، عامل منتظر پایان اپیزود برای به روز رسانی تخمین بیشینه پاداش آینده نمیماند. بلکه، تخمین مقدار V برای حالتهای غیر ترمینال St به ایجاد شده در هنگام وقوع تجربه، به روز رسانی میشود. این روش (0)TD یا TD یک گامی نام دارد (تابع ارزش پس از هر گام منفرد به روز رسانی میشود).
روش یادگیری تفاوت زمانی
روشهای TD برای به روز رسانی مقدار تخمین، تنها منتظر گام بعدی میمانند. در زمان t+1 آنها بلافاصله یک هدف TD را با استفاده از پاداش مشاهده شده Rt+1 و تخمین کنونی (V(St+1 شکل میدهند. هدف TD یک تخمین است. در حقیقت عامل، تخمین پیشین (V(St را با به روز رسانی آن طی گامهای یک مرحلهای به روز رسانی میکند.
توازن جستوجو و استخراج (بهرهبرداری)
پیش از بررسی استراتژیهای گوناگون برای حل مساله یادگیری تقویتی، باید یک مساله مهمتر یعنی توازن بین جستوجو و استخراج را مورد بررسی قرار داد.
جستوجو، یافتن اطلاعات بیشتر درباره محیط است.
استخراج، بهرهبرداری از اطلاعات شناخته شده برای بیشینهسازی پاداش است.
توازن جستوجو و استخراج
به خاطر داشته باشید که هدف عامل RL بیشینهسازی پاداش انبارهای است. با این حال میتوان در یک تله متداول افتاد. در این بازی، موش میتواند میزان نامتناهی پنیرهای کوچک داشته باشد (۱+ برای هر کدام). اما در بالای هزارتو، حجم زیادی پنیر وجود دارد (۱۰۰۰+). اگر فقط روی پاداش تمرکز شود، عامل هیچ وقت به آن کوه عظیم پنیر نمیرسد. در عوض، تنها نزدیکترین منابع پاداش را جستوجو میکند، حتی اگر این منابع کوچک باشند. اگر عامل مقدار کمی جستوجو کند، میتواند پاداش بزرگی پیدا کند. این همان چیزی است که از آن با عنوان «توازن جستوجو و استخراج» نام برده شده است. کارشناس باید قوانینی را تعیین کند تا به برقراری توازن و مدیریت آن کمک کند. به این راهکارها در مطالب بعدی پیرامون یادگیری تقویتی پرداخته خواهد شد.
سه رویکرد به یادگیری تقویتی
اکنون که مولفههای اصلی یادگیری تقویتی تعریف شدند، به سه رویکرد ارزش محور، سیاست محور و مدل محور برای حل مسائل یادگیری تقویتی پرداخته میشود.
رویکرد ارزش محور
در رویکرد ارزش محور، هدف بهینهسازی تابع ارزش (V(s است. تابع ارزش، تابعی است که پاداش بیشینه آینده را مشخص میکند که عامل در هر حالت دریافت میکند. ارزش هر حالت برابر است با ارزش کل پاداشی که عامل میتواند انتظار داشته باشد در آینده با آغاز از آن حالت جمعآوری کند.
رویکرد ارزش محور
عامل از این تابع ارزش برای انتخاب آنکه کدام حالت در هر گام انتخاب شود، استفاده میکند. عامل حالتی با بیشترین ارزش را انتخاب میکند.
یادگیری تقویتی
در مثال هزارتو، در هر گام بیشترین ارزش، یعنی ۷-، ۶- و سپس ۵- (و به همین ترتیب) برای رسیدن به هدف اتخاذ میشود.
رویکرد سیاست محور
در یادگیری تقویتی سیاستمحور، قصد بهینهسازی تابع سیاست (π(s بدون استفاده از تابع ارزش است. سیاست چیزی است که رفتار عامل را در یک زمان داده شده، تعیین میکند. عامل یک تابع سیاست را میآموزد. این امر به او کمک میکند تا هر حالت را به بهترین عمل ممکن نگاشت کند.
یادگیری تقویتی
دو دسته از سیاستها وجود دارند.
قطعی: سیاست برای یک حالت داده شده همیشه عمل مشابهی را باز میگرداند.
تصادفی: برای هر یک از اعمال یک توزیع احتمالی در نظر میگیرد.
سیاست تصادفی
یادگیری تقویتی
همانطور که مشهود است، سیاست مستقیما بهترین عمل برای هر حالت را بیان میکند.
رویکرد مدل محور
در یادگیری تقویتی مدل محور، محیط مدل میشود. این یعنی مدلی از رفتار محیط ساخته میشود. مساله مهم در این رویکرد نیاز به مدل متفاوت برای ارائه هر محیط است.
معرفی یادگیری تقویتی عمیق
«یادگیری تقویتی عمیق» (Deep Reinforcement Learning)، از شبکههای عصبی عمیق برای حل مسائل یادگیری تقویتی استفاده میکند، از این رو در نام آن از کلمه عمیق استفاده شده است. با در نظر گرفتن Q-Learning که یادگیری تقویتی کلاسیک محسوب میشود و Deep Q-Learning میتوان تفاوت آنها با یکدیگر را دید. در رویکرد اول، از الگوریتمهای سنتی برای ساخت جدول Q استفاده میشود تا به عامل در یافتن اقدامی که باید در هر حالت انجام شود کمک کند. در دومین رویکرد، از شبکه عصبی (برای تخمین پاداش بر مبنای حالت: مقدار q) استفاده میشود. در این مطلب، اطلاعات گوناگونی پیرامون یادگیری تقویتی به صورت کلی ارائه شد. برای انجام کارهای هیجان انگیزی مانند ساخت هوش مصنوعی که بتواند بازیهای کامپیوتری انجام دهد باید بر کلیه این مفاهیم مسلط شد.
منبع
https://blog.faradars.org/