یادگیری تقویتی

**یادگیری تقویتی** یکی از گرایش‌های یادگیری ماشینی است که از روان‌شناسی رفتارگرایی الهام می‌گیرد. این روش بر رفتارهایی تمرکز دارد که ماشین باید برای بیشینه کردن پاداشش انجام دهد. این مسئله، با توجه به گستردگی‌اش، در زمینه‌های گوناگونی بررسی می‌شود. مانند: نظریه بازی‌ها، نظریه کنترل، تحقیق در عملیات، نظریه اطلاعات، سامانه چندعامله، هوش ازدحامی، آمار، الگوریتم ژنتیک، بهینه‌سازی بر مبنای شبیه‌سازی. در مبحث تحقیق در عملیات و در ادبیات کنترل، حوزه‌ای که در آن روش یادگیری نیروافزوده مطالعه می‌شود **برنامه‌نویسی تخمینی پویای** (approximate dynamic programming) خوانده می‌شود. این مسئله در تئوری کنترل بهینه نیز مطالعه شده است. البته دغدغه اصلی بیشتر مطالعات در این زمینه، اثبات وجود پاسخ بهینه و یافتن ویژگی‌های آن است و به دنبال جزئیات یادگیری یا تخمین نیست. یادگیری نیروافزوده در اقتصاد و نظریه بازیها بیشتر به بررسی تعادل‌های ایجاد شده تحت عقلانیت محدود می‌پردازد.

در یادگیری ماشینی با توجه به این که بسیاری از الگوریتم‌های یادگیری نیروافزوده از تکنیک‌های برنامه‌نویسی پویا استفاده می‌کنند معمولاً مسئله تحت عنوان یک فرایند تصمیم‌گیری مارکف مدل می‌شود. تفاوت اصلی بین روش‌های سنتی و الگوریتم‌های یادگیری نیروافزوده این است که در یادگیری نیروافزوده نیازی به داشتن اطلاعات راجع به فرایند تصمیم‌گیری ندارد و این که این روش روی فرایندهای مارکف بسیار بزرگی کار می‌کند که روش‌های سنتی در آنجا ناکارآمدند.

یادگیری نیروافزوده با یادگیری با نظارت معمول دو تفاوت عمده دارد، نخست اینکه در آن زوج‌های صحیح ورودی و خروجی در کار نیست و رفتارهای ناکارامد نیز از بیرون اصلاح نمی‌شوند، و دیگر آنکه تمرکز زیادی روی کارایی زنده وجود دارد که نیازمند پیدا کردن یک تعادل مناسب بین اکتشاف چیزهای جدید و بهره‌برداری از دانش اندوخته شده دارد. این سبک-سنگین کردن بین بهره‌برداری و اکتشاف در یادگیری نیروافزوده برای فرایندهای مارکف متناهی، تقریباً به‌طور کامل در مسئلهٔ راهزن چند دست بررسی شده است.

## تفاوت یادگیری تقویتی با سایر روش‌های یادگیری ماشین
یادگیری تقویتی را می‌توان شاخه‌ای مجزا در یادگیری ماشین در نظر گرفت؛ هرچند شباهت‌هایی هم با سایر روش‌های یادگیری ماشین دارد. برای دریافتن این شباهت‌ها و تفاوت‌ها بهتر است نگاهی به سایر روش‌های یادگیری ماشین هم نگاهی داشته باشیم.

### یادگیری نظارتی (supervised learning)
در یادگیری نظارتی، الگوریتم‌ها با استفاده از یک سری داده برچسب‌دار آموزش داده می‌شوند. این الگوریتم‌ها فقط ویژگی‌هایی را یادمی‌گیرند که در دیتاست مشخص شده است و به آنها هدف یا target گفته می‌شود. در واقع «هدف» در این نوع یادگیری کاملاً تعریف شده است و نمونه‌های از داده و پاسخ درست در اختیار مدل قرار می‌گیرد تا با استفاده از آنها بتواند هر دادهٔ جدیدی را که می‌بیند برچسب بزند. یکی از رایج‌ترین کاربردهای یادگیری نظارتی، مدل‌های تشخیص تصویر است. این مدل‌ها یک مجموعه عکس برچسب‌دار دریافت می‌کنند و یادمی‌گیرند بین ویژگی‌های متداول آنها تمایز قائل شوند. به عنوان مثال با دریافت عکس‌هایی از صورت انسان‌ها، می‌توانند اجزای صورت را تشخیص دهند. یا بین دو یا چند حیوان تمایز قائل شوند.

### یادگیری نیمه نظارتی (semi supervised learning)
این روش، روشی بینابینی است. توسعه‌دهندگان، یک مجموعه نسبتاً کوچک از داده‌های برچسب‌دار و یک مجموعه بزرگ‌تر از داده بدون برچسب آماده می‌کنند. سپس از مدل خواسته می‌شود، براساس چیزی که از داده‌های برچسب‌دار یادمی‌گیرد، درمورد داده‌های بدون برچسب هم پیش‌بینی انجام دهد و در نهایت داده‌های بدون برچسب و برچسب‌دار را به عنوان یک مجموعه داده کل درنظر بگیرد و نتیجه‌گیری نهایی را انجام دهد.

### یادگیری غیر نظارتی (unsupervised learning)
در یادگیری غیرنظارتی، فقط داده‌های بدون برچسب در اختیار الگوریتم قرار داده می‌شود. این الگوریتم‌ها بدون اینکه مستقیم به آنها گفته شده باشد دنبال چه ویژگی‌ها بگردند، براساس مشاهده‌های خودشان آموزش می‌بینند. نمونه‌ای از کاربرد این نوع یادگیری، خوشه‌بندی مشتری‌ها است.

### یادگیری تقویتی (Reinforcement Learning)
رویکرد یادگیری تقویتی کاملاً متفاوت است. در این روش، یک عامل در محیط قرار می‌گیرد تا با آزمون و خطا یاد بگیرد کدام کارها مفید و کدام کارها غیرمفید هستند و در نهایت به یک هدف مشخص برسد. از این جهت که درمورد یادگیری تقویتی هم هدف مشخصی از یادگیری وجود دارد، می‌توان آن را شبیه یادگیری نظارتی دانست. اما وقتی که اهداف و پاداش‌ها مشخص شدند، الگوریتم به صورت مستقل عمل می‌کند و نسبت به یادگیری نظارتی تصمیمات آزادانه‌تری می‌گیرد. به همین علت است که برخی یادگیری تقویتی را در دسته نیمه نظارتی جای می‌دهند. اما با توجه به آنچه گفته شد، منطقی‌تر این است که یادگیری تقویتی را به عنوان یک دسته جدا در یادگیری ماشین در نظر گرفت.
بندانگشتی|یادگیری تقویتی

## مقدمه
یک مدل ابتدایی یادگیری نیروافزوده از:
# S یک مجموعه از حالات مختلف مسئله.
# A یک مجموعه از تصمیمات قابل اتخاذ.
# قوانینی برای گذار از حالات مختلف به یکدیگر.
# قوانینی برای میزان پاداش به ازای هر تغییر وضعیت.
# قوانینی برای توصیف آنچه که ماشین می‌تواند مشاهده کند.
معمولاً مقدار پاداش به آخرین گذار مربوط است. در بسیاری از کارها ماشین می‌تواند وضعیت فعلی مسئله را نیز به‌طور کامل (یا ناقص) مشاهده کند. گاهی نیز مجموعه فعالیت‌های ممکن محدود است (مثلاً این که ماشین نتواند بیشتر از مقدار پولی که دارد خرج کند)

در یادگیری نیروافزوده ماشین می‌تواند در گام‌های زمانی گسسته با محیط تعامل کند. در هر لحظهٔ مفروض t، ماشین یک مجموعه مشاهدات o_t را دریافت می‌کند که معمولاً شامل پاداش r_t نیز می‌شود و پس از آن یک واکنش a_t از بین واکنش‌های ممکن از خود نشان می‌دهد که به محیط ارسال می‌شود. سپس وضعیت به حالت s + 1 گذار می‌کند و پاداش r + 1 نیز مشخص می‌شود که مربوط به گذار حاصل از (s_t, a_t) است؛ و این پاداش قبل از انجام حرکت بعدی ماشین همراه با o_{t+1} به ماشین داده می‌شود تا بر اساس آن a_{t+1} را انتخاب کند. هدف ماشین هم طبیعتاً این است که بیشترین پاداش ممکن را کسب کند. ماشین می‌تواند هر تصمیماتش را به صورت تابعی از روند تغییر بازی تا وضعیت حاضر یا حتی به صورت تصادفی انتخاب کند.

نکتهٔ مهمی که در اینجا وجود دارد این است که یادگیری نیروافزوده برای مسائلی که در آن‌ها بیشترین سود در کوتاه مدت تضمین کنندهٔ بیشترین سود در دراز مدت نیست بسیار مناسب است؛ مثلاً من برای اینکه در بزرگسالی درآمد بیشتری داشته باشیم بهتر است که به دانشگاه بروم و درس بخوانم در حالی که این امر در حال حاضر از نظر مالی برای من بهینه نیست. دلیل وجود این برتری در روش یادگیری نیروافزوده نیز این است که ماشین در هر مرحله لزوماً بهترین راه را انتخاب نمی‌کند و در نهایت هم سعی دارد مجموع پاداش. این روش به شکل موفقیت‌آمیزی بر روی مسائل مختلفی نظیر: کنترل ربات‌ها، برنامه‌ریزی آسانسورها، مخابرات، تخته نرد، چکرز(Sutton and Barto 1998, Chapter 11) و بازی گو (آلفاگو) استفاده شده است.

دو عامل مهم هستند که باعث برتری این روش می‌شوند: استفاده از نمونه‌ها برای بهینه‌سازی کارایی و استفاده از تخمین توابع برای تعامل با محیط‌های پیچیده در هریک از حالات زیر:
* برای مسئله یک مدل وجود دارد اما راه حل تحلیلی‌ای وجود ندارد.
* فقط یک محیط شبیه‌سازی شده از مسئله در دسترس است (موضوع بحث بهینه‌سازی بر مبنای شبیه‌سازی)
* هنگامی که تنها راه برای به دست آوردن اطلاعات از محیط تعامل با آن باشد.
دو حالت اول را می‌توان تحت عنوان مسائل برنامه‌ریزی بررسی کرد. (با توجه به این که مدل‌هایی از مسئله موجود است)، در حالی که سومی را باید به عنوان یک مسئلهٔ یادگیری صرف در نظر گرفت. در هر حال در چهارچوب یادگیری نیروافزوده هر سه مسئله به یک مسئلهٔ یادگیری ماشین تبدیل می‌شوند.

## اکتشاف
مسئلهٔ یادگیری نیروافزوده همان‌طور که توصیف شد، نیازمند یک راهکار هوشمندانه برای اکتشاف است. تصمیم‌گیری‌های تصادفی بدون استفاده از یک توزیع احتمال برآورد شده، معمولاً کارای بسیار ضعیفی دارد. برای فرایندهای مارکف کوچک و محدود مسئله در حال حاضر تا حدود خوبی حل شده است. اما با توجه به این که بیشتر الگوریتم‌ها به درستی با زیاد شدن تعداد حالات کارایی خود را حفظ نمی‌کنند (مخصوصا برای تعداد حالات نامتناهی)، در دنیای واقعی افراد به همان راه‌های ساده اکتشاف بسنده می‌کنند. یکی از این راه‌ها الگوریتم \epsilon-حریصانه نام دارد که در آن ماشین تصمیمی را که به اعتقاد او بیشترین سود را در درازمدت به همراه خواهد داشت به احتمال 1 - \epsilon انتخاب می‌کند و با احتمال یکنواخت نیست یکی از کارهای دیگر را انجام می‌دهد. در اینجا 0 یک متغیر برای تنظیم کردن میزان اکتشاف است و بعضاً چه به دلیل وجود یک برنامهٔ زمانبندی مشخص (کم کردن مقدار اکتشاف با گذشت زمان) و چه به دلایل ابتکاری تغییر می‌کند.

## الگوریتم‌های یادگیری کنترلی
اگر مشکل اکتشاف را نادیده بگیریم و فرض کنیم که حالت فعلی کاملاً قابل مشاهده است (که این موضوع از اینجا به بعد مفروض است)، مسئله به این تبدیل می‌شود که چه اعمالی با توجه به تجربیات گذشته بهتر هستند.

### معیار بهینگی
برای سادگی، فرض کنید مسئله به صورت دنباله‌ای از قسمت‌های مستقل باشد، که هر کدام از این قسمت‌ها با رسیدن به یک حالت انتهایی به پایان می‌رسد، (برای مثال اگر قرار باشد ماشین خروج از اتاق را یاد بگیرد، به محض خروج یک قسمت تمام می‌شود و ماشین پاداش R_t را دریافت می‌کند همچنین، فرض کنید مستقل از این که ماشین چه تصمیماتی را به چه ترتیبی اتخاذ کند، رسیدن به این حالت انتهایی اجتناب ناپذیر باشد. تحت چند شرط دیگر برای تعادل و نظم مسئله انتظار ما از پاداش نهایی به ازای هر رویکرد انتخاب شده توسط ماشین و هر شرایط اولیه‌ای تعریف شده خواهد بود. در اینجا یک رویکرد یعنی یک توزیع احتمال بر روی تمام تصمیمات ممکن ماشین بسته به روند طی شده برای رسیدن به حالت حاضر.
اگر توزیع احتمال \mu در نظر گرفته شده باشد، ما می‌توانیم \rho^\pi را به عنوان امید ریاضی پاداش مربوط به رویکرد انتخابی \pi در نظر بگیریم:
:\rho^\pi = E[R|\pi]،
که در اینجا متغیر تصادفی R نشاندهندهٔ مقدار *خروجی* است و به این صورت تعریف می‌شود:
:R=\sum_{t=0}^{N-1} r_{t+1}،
که در اینجا r_{t+1} پاداش دریافتی بعد از گذار tام است حالت اولیه در \mu، و تصمیمات گرفته شده با توجه به رویکرد در \pi نمود پیدا کرده‌اند. در اینجا، N نشان دهندهٔ زمان تصادفی‌ای است که حالت انتهایی فرا می‌رسد و قسمت یادگیری حاضر به پایان می‌رسد.
در مسئله‌هایی که به این شکل از قسمت‌های مستقل تشکیل نشده‌اند، معمولاً از خروجی کاسته می‌شود.
:R=\sum_{t=0}^\infty \gamma^t r_{t+1},
در اینجا 0 \le \gamma \le 1 اصطلاحاً ضریب نزول خوانده می‌شود.

### جستجوی جامع
روش جستجوی جامع از دو مرحلهٔ زیر تشکیل شده است:
# به ازای همهٔ رویکردهای ممکن، در حین دنبال کردن آن‌ها از پاداش‌ها نمونه برداری کن.
# رویکردی را که بیشترین مجموع پاداش را دارد انتخاب کن.
مشکل اصلی این روش این است که تعداد حالات ممکن است بسیار زیاد یا حتی نامتناهی باشد؛ و دیگر اینکه ممکن است خروجی‌ها بسیار متنوع باشند که این حالت نیازمند نمونه برداری بسیار گسترده‌ای برای تخمین خروجی نهایی هر رویکرد است.

## انواع یادگیری تقویتی
با توجه به رویکردهای متفاوتی که الگوریتم‌های یادگیری عمیق در سه مرحله جمع‌آوری داده، تخمین تابع ارزش و بهینه‌سازی سیاست در پیش می‌گیرند، می‌توان آنها را از مناظر مختلف دسته‌بندی کرد که در ذیل به دسته‌بندی‌ها رایج در این حوزه اشاره می‌گردد:

### الگوریتم‌های RL
الگوریتم‌های RL بین دو فعالیت جمع‌آوری داده و بهبود سیاست دائماً در تناوب هستند. سیاستی که برای جمع‌آوری داده استفاده می‌شود ممکن است با سیاست عامل در حین آموزش متفاوت باشد. به این رویکرد Off-policy می‌گویند. در رویکرد Off-policy سیاست بهینه بدون در نظر گرفتن اقدامات عامل یا انگیزه او برای اقدام بعدی تعیین می‌شود. در مقابل رویکرد On-policy، از همان سیاستی که در آموزش استفاده شده برای جمع‌آوری داده نیز استفاده می‌گردد. به بیانی دیگر، این رویکرد به سیاست‌هایی که عامل قبلاً در تصمیم‌گیری‌ها استفاده کرده، توجه کرده و سعی در ارزیابی و بهبود آنها می‌کند.

### الگوریتم‌های بدون مدل دربرابر الگوریتم‌های مبتی بر مدل
در خیلی از اوقات وضعیت‌های مسئله دارای ابعاد بالایی است. در چنین شرایطی، تابع انتقال نیاز به برآورد توزیع احتمال روی هر یک از این حالت‌ها است. همچنین به یاد داشته باشید که احتمالات انتقال باید در هر مرحله محاسبه شوند. در حال حاضر، انجام این کار با قابلیت‌های سخت‌افزاری فعلی تقریباً غیرقابل حل است. برای رویارویی با این چالش یک دسته‌بندی از مسائل یادگیری تقویتی ارائه شده است: در شرایطی که تلاش طراح صرف یادگیری مدلی از شرایط و محیط اطراف می‌شود، می‌توانیم بگوییم رویکرد مبتنی بر مدل را در پیش گرفته است. به عنوان نمونه، مجدداً بازی آجرشکن آتاری را در نظر بگیرید. طراح از یادگیری عمیق برای یادگیری تابع انتقال و تابع پاداش بهره می‌گیرد. وقتی روی یادگیری این مسائل تمرکز می‌شود. به اصطلاح در حال یادگیری مدلی از محیط هستیم که ما از این مدل برای دستیابی به تابعی به نام سیاست () استفاده می‌کنیم. تابع سیاست، مشخص می‌نماید که وقتی محیط در وضعیت است، عامل با چه احتمالی اقدام را برمی‌گزیند. اما با افزایش تعداد وضعیت‌ها و اقدام‌ها، الگوریتم‌های مبتنی بر مدل کارآمدی خود را از دست می‌دهند. از سوی دیگر، الگوریتم‌های بدون مدل درواقع مبتنی بر روش آزمون و خطا هستند و براساس نتیجه آن، دانش خود را به‌روزرسانی می‌کنند. این نوع از الگوریتم‌ها برای مواقعی مناسب هستند که مدلسازی محیط بسیار سخت باشد و طراح ترجیح می‌دهد الگوریتمی را مورد استفاده قرار دهد که به‌جای تلاش برای یادگیری مدل محیط، مستقیماً از تجربیات یاد بگیرد. این رویکرد بسیار شبیه روشی است که انسان‌ها اکثر وظایف خود را مبتنی بر آن یادمی‌گیرند. به عنوان نمونه، راننده ماشین برای انجام رانندگی، قوانین فیزیک حاکم بر ماشین را نمی‌آموزد، اما یادمی‌گیرد که بر اساس تجربه خود از نحوه واکنش ماشین به اقدامات مختلف، تصمیم بگیرد. از مزیت‌های این رویکرد، عدم نیاز به فضایی برای ذخیره ترکیبات احتمالی وضعیت‌ها و اقدام‌ها خواهد بود.

### رویکر مبتنی بر ارزش یا مبتنی بر سیاست
اکثر مدل‌های بدون مدل از دو رویکرد ارزش محور یا سیاست محور استفاده می‌کنند. در رویکرد سیاست محور، هدف بهینه‌سازی تابع سیاست است بدون اینکه به تابع ارزش کار داشته باشیم. به بیانی دیگر عامل یک تابع سیاست را می‌آموزد، آنرا در حین یادگیری در حافظه نگه می‌دارد و سعی می‌کند هر وضعیت را به بهترین اقدام ممکن نگاشت کند. لازم است ذکر شود سیاست‌ها ممکن است قطعی (برای یک وضعیت، همیشه اقدام مشابهی را بازمی‌گرداند) یا تصادفی (برای هر اقدام یک توزیع احتمالی در نظر می‌گیرد) باشند. در رویکرد ارزش محور، برخلاف رویکرد سیاست‌محور که به تابع ارزش کاری ندارد، هدف بهینه‌سازی تابع ارزش خواهد بود. به عبارت دیگر، عامل اقدامی را انتخاب می‌نماید که برآورد می‌کند بیشترین پاداش را در آینده دریافت خواهد کرد.

## معروف‌ترین الگوریتم‌های یادگیری تقویتی
#### روش‌های حل جدولی در مقابل روش‌های تقریبی
به‌طور کلی ایده اصلی بسیاری از الگوریتم‌های یادگیری تقویتی در ساده‌ترین حالت ممکن، نمایش تابع ارزش به صورت جدولی یا آرایه‌ای است که اصطلاحاً به آنها روش‌های حل جدولی می‌گویند. این روش‌ها برای مواردی مناسب هستند که اندازه فضای وضعیت و اقدام چندان بزرگ نباشد، در غیراینصورت با افزایش ابعاد مقیاس‌پذیر نخواهند بود و زمان یادگیری آنها به صورت نمایی افزایش می‌یابد. روش‌های حل جدولی اغلب به راهکارهای دقیق دست می‌یابند و می‌توان براساس آن‌ها مقدار بهینه تابع ارزش و سیاست را پیدا نمود. روشهای حل جدولی که مسائل را به صورت مدل‌های تصمیم‌گیری مارکوف مدلسازی می‌کنند می‌توانند از سه روش کلی حل شوند:
* **برنامه‌ریزی پویا (Dynamic Programming):** روش برنامه‌ریزی پویا که رویکردی برای حل مسائل بسیار زیادی است، یک مسئله کلی را به مسایل جز تقسیم‌بندی کرده و راه‌حل بهینه را برای هر یک از مسائل جز بدست آورده و در نهایت با ترکیب آنها پاسخ بهینه مسئله کل را محاسبه می‌نماید. روش‌هایی که معمولاً از برنامه‌ریزی پویا استفاده می‌کنند به نام‌های ارزیابی سیاست، تکرار سیاست و تکرار ارزش نیز شناخته می‌شوند که در موارد مختلفی مورد استفاده قرار گرفته‌اند. این روش‌ها از نظر ریاضی به خوبی توسعه یافته‌اند، اما نیاز به یک مدل کامل و دقیق از محیط از چالش‌های استفاده از آنها محسوب می‌شود.
* **مونت کارلو (Monte Carlo Approach):** روش مونت کارلو برخلاف روش برنامه‌ریزی پویا که نیازمند اطلاعات کامل در مورد توزیع احتمالات همه انتقال‌های ممکن بود؛ تنها به نمونه‌ای از توزیع‌های احتمال بسنده می‌کند. به بیانی دیگر، در روش مونت کارلو شناخت کامل محیط لازم نیست و با برقراری تعامل واقعی یا شبیه‌سازی شده با یک محیط می‌توان به توالی نمونه‌ای از حالت‌ها، اقدامات و پاداش‌های دست یافت. به همین دلیل است که در این روش، پاداش‌ها در انتهای دوره حساب می‌شود تا بتوان از دانش کسب شده برای دوره جدید استفاده نمود.
* **یادگیری تفاوت زمانی (Temporal Difference Learning):** یادگیری تفاوت زمانی (TD) یک نوع روش پیش‌بینی است که از ایده‌های مونت کارلو و برنامه‌نویسی پویا برای حل مسائل تقویتی استفاده می‌کند. روش‌های TD مانند روش‌های مونت کارلو، مستقیماً از تجربه خام بدون نیاز به مدلی پویا از محیط، می‌آموزند و مانند برنامه‌ریزی پویا، تخمین‌ها را تا حدی بر اساس سایر تخمین‌های آموخته شده به روز می‌کنند، بدون اینکه منتظر نتیجه نهایی باشند. 
* **الگوریتم Q-learning :** در Q-learning، الگوریتم بدون سیاست عمل می‌کند یا همان‌طور که در بخش قبل گفته شد یک الگوریتم off-policy است. این الگوریتم تابع ارزش را یادمی‌گیرد؛ به این معنی که انجام عمل a در حالت s چقدر نتایج مثبت دارد. روند کار در الگوریتم Q-learning شامل مراحل زیر می‌شود
*# جدول Q یا Q-table ایجاد می‌شود. در این جدول، تمام حالت‌ها، تمام عمل‌های ممکن و پاداش‌های مورد انتظار آمده است. کیو-یادگیری
*# یک عمل انتخاب می‌شود.
*# پاداش محاسبه می‌شود.
*# جدول Q-table به روز می‌شود. بندانگشتی|الگوریتم یادگیری کیو
* **SARSA :** الگوریتم SARSA، یک الگوریتم سیاست محور محسوب می‌شود. در این الگوریتم‌ها، عملی که در هر حالت انجام می‌شود و خود یادگیری بر اساس سیاست مشخصی است. تفاوت عمده‌ای که الگوریتم SARSA با الگوریتم Q-learning دارد این است که برای محاسبه پاداش حالت‌های بعدی، نیازی به داشتن تمام Q-table نیست. بندانگشتی|الگوریتم یادگیری سارسا
* **Deep Q-learning**: همان‌طور که از اسمش پیداست، همان Q-learning است که از شبکه‌های عصبی عمیق استفاده می‌کند. لزوم استفاده از شبکه‌های عصبی هنگامی است که با محیط‌های بزرگ با تعداد حالت‌های زیاد سروکار داریم؛ در چنین حالتی، به روز کردن Q-table کار آسانی نخواهد بود. به همین خاطر به جای تعریف مقادیر ارزش برای هر حالت، با استفاده از شبکه عصبی مقدار ارزش را برای هر عمل و حالت تخمین می‌زنیم.

#### روش‌های تقریبی
در مقابل روش‌های حل جدولی، روش‌های تقریبی مطرح می‌شوند که تنها راه‌حل‌های تقریبی را پیدا می‌کنند، اما می‌توان از آنها در مسائل بزرگتری استفاده نمود. روش‌های گرادیان سیاست از جمله روش‌های رایج در این زمینه هستند. https://hooshio.com/یادگیری-تقویتی-چیست/

## نظریه
نظریه برای فرایندهای مارکف کوچک و محدود کامل است؛ و هر دو رفتار تقریبی و نمونه برداری محدود بیشتر الگوریتم‌ها به خوبی فهمیده شده است. همان‌طور که پیش‌تر گفته شد، الگوریتم‌هایی شناخته شده‌ای که به صورت اثبات شده کارایی بالایی دارند (راجع به مسئلهٔ اکتشاف) وجود دارند. اما برای فرایندهای مارکف بزرگ همچنان کار لازم است. تقریباً الگوریتمی برای اکتشاف کردن بهینه وجود ندارد (به غیر از مسئلهٔ راهزن). اگرچه کران‌های محدودی برای زمان اجرای برخی الگوریتم‌ها در سال‌های اخیر به دست آمده، اما به نظر می‌رسد که این کران‌ها فعلاً ضعیف هستند و بدین ترتیب کار بیشتری لازم است تا بتوانیم برتری‌های نسبی این الگوریتم‌ها و محدودیت‌هایشان لازم است.

## پژوهش‌های جاری
تحقیقات جاری شامل:
* پیدا کردن راهکارهای قابل انطباق با تعداد کمتر (یا هیچ) پارامتری تحت شرط‌های بسیار زیاد.
* تخمین‌های تجربی بزرگ
* یادگیری و تصمیم‌گیری تحت اطلاعات محدود.
* یادگیری نیروافزوده سلسله مراتبی
* بهینه‌سازی راهکارهای «تابع-مقدار» و «جستجوی راهبرد» حاضر
* الگوریتم‌هایی که برای مجموعهٔ بزرگ و حتی پیوستهٔ تصمیمات ممکن کار کنند
* یادگیری‌های برای تمام عمر
* برنامه‌ریزی بهینهٔ بر پایهٔ نمونه (بر اساس درخت جستجوی مونت کارلو)
* یادگیری توزیع شده یا چند ماشینی
* استفاده از یادگیری نیروافزوده در زندگی واقعی
پیشرفت‌های اتفاق افتاده در زمینهٔ یادگیری نیروافزوده در اینجا و همچنین اینجا جمع‌آوری می‌شوند.
بر روی الگوریتم‌های یادگیری نیروافزوده نظیر یادگیری تفاوت زمانی هم به عنوان یک مدل برای یادگیری بر پایهٔ دوپامین در مغز تحقیقاتی در حال انجام است. در این مدل راه‌های دوپامینی(Dopaminergic pathways) از توده سیاه به عقده‌های قاعده‌ای به عنوان خطای پیش‌بینی عمل می‌کنند. یادگیری نیروافزوده همچنین به عنوان بخشی از مدل مهارت‌آموزی انسان مورد استفاده قرار گرفته است. به خصوص در رابطه با تعامل بین یادگیری ضمنی و صریح در اکتساب مهارت‌ها. (اولین انتشار در این رابطه به سال ۱۹۹۵–۱۹۹۶ بازمی‌گردد و در ادامه تحقیقات بسیاری هم در این رابطه انجام شد).

## پیاده‌سازی
* RL-Glue یک رابط(Interface) استاندارد ارائه می‌دهد که با کمک آن می‌توان ماشین‌ها - محیط‌ها و برنامه‌های تجربی را به هم متصل کرد، حتی اگر به زبان‌های مختلف نوشته شده باشند.
* Maja Machine Learning Framework یک چارچوب(framework) برای مسئله‌های حوزهٔ یادگیری نیروافزوده است که به زبان پایتون نوشته شده است.
* ابزارهای برنامه‌نویسی برای زبان‌های متلب و پایتون
* (PyBrain(Python
* TeachingBox یک چارچوب برنامه‌نویسی به زبان جاوا برای یادگیری نیروافزوده است که امکانات زیادی را از جمله RBF networks, gradient descent learning methods, … پشتیبانی می‌کند.
* پیاده‌سازی‌های پایتون و سی++ برای یافتن پیاده‌سازی تعداد زیادی از الگوریتم‌های یادگیری نیروافزوده معروف.
* Orange، یک برنامهٔ مربوط به داده‌کاوی(data mining)
* Policy Gradient Toolbox
* BURLAP یک کتابخانهٔ متن-باز به زبان جاوا است که راهکارهای گسترده‌ای برای برنامه‌ریزی و یادگیری یک یا چند ماشین ارائه می‌دهد.

## یادگیری نیروافزوده تقلیدی
در یادگیری نیروافزوده معکوس، هیچ تابع پاداشی وجود ندارد. در عوض، ماشین با مشاهدهٔ یک رفتار که معمولاً به رفتار بهینه نزدیک است سعی می‌کند آن را تقلید کند. اگر ماشینی که از روش یادگیری معکوس استفاده می‌کند از دنبال کردن رفتاری که باید مشاهده کند منحرف شود، معمولاً مدتی طول می‌کشد تا بتواند ثبات رفتار خود را حفظ کند. خیلی وقت‌ها بهتر است که رفتار ایده‌آل چندین بار با ایرادات کوچک به ماشین نشان داده شود.
در یادگیری شاگردی(apprenticeship learning)یک ماشین فرض می‌کند که موجود متخصصی که در حال انجام دادن یک رفتار است سعی می‌کند یک تابع پاداش را بیشینه کند، و هدف ماشین این است که به گونه‌ای این تابع پاداش را کشف کند.

## کاربردهای یادگیری تقویتی
برخی از کاربردهای عملی یادگیری تقویتی در ادامه آمده است. هرچند لازم است بدانیم کاربردهای یادگیری تقویتی به این موارد محدود نمی‌شود:
* بازی رایانه ای: بازی یکی از متداول‌ترین کاربردهای یادگیری تقویتی است؛ چرا که می‌تواند عملکردی فرا انسانی در بازی‌های زیادی از خودش نشان دهد. یکی مثال معروف از این بازی‌های، بازی پک‌من (Pac-Man) است.
* مدیریت منابع: الگوریتم‌های یادگیری تقویتی می‌توانند با این هدف به کار گرفته شوند که با استفاده از منابع محدود سعی کنند کارهای مختلف را به انجام برسانند؛ البته با در نظر گرفتن اینکه باید به هدف نهایی‌شان هم برسند. هدف نهایی در این شرایط صرفه‌جویی در زمان و مصرف منابع است.
* سیستم‌های توصیه‌گر شخصی‌سازی شده
* رباتیک: این نوع از یادگیری ماشین می‌توانند به ربات‌ها کارهایی را یاد بدهد که یک انسان نمی‌تواند به راحتی آنها را نمایش و آموزش دهد. ربات‌ها با این روش یادمی‌گیرند که بدون در اختیار داشتن فرمولاسیون خاصی، عملیات و کارهای جدید را یاد بگیرند.
* بازارهای مالی
* مسائل علیت شناسی

از یادگیری تقویتی همچنین می‌توان در حوزه‌هایی مانند تحقیق در عملیات، تئوری اطلاعات، تئوری بازی، تئوری کنترل، بهینه‌سازی براساس شبیه‌سازی، سیستم‌های چند عاملی، آمار و الگوریتم‌های ژنتیک، بهره برد.

## اصطلاحات مهم در یادگیری تقویتی
* عامل (Agent): عامل موجودی است که در محیط به اکتشاف و جستجو می‌پردازد تا با شناخت محیط بتواند متناسب با شرایط تصمیم‌گیری و عمل کند.
* محیط (Environment): شرایطی است که عامل در آن حضور دارد، یا توسط آن احاطه شده است. در یادگیری تقویتی، محیط تصادفی (stochastic) است. به این معنی که محیط به خودی خود، تصادفی است.
* عمل (Action): عمل، حرکت‌هایی است که توسط عامل در محیط انجام می‌شود.
* حالت (State): حالت، شرایطی است که بعد از هر عمل، از طرف محیط بازگردانده می‌شود.
* پاداش (Reward): بازخوردی است که از طرف محیط به عامل داده می‌شود تا عملی که انجام داده ارزیابی شود.
* سیاست (Policy): سیاست یک نوع استراتژی است که عامل براساس آن، از روی حالت فعلی محیط، عمل بعدی‌اش را انجام می‌دهد.
* ارزش (Value): میزان ارزش ایجاد شده در بلند مدت است و می‌تواند با پاداش کوتاه مدت متفاوت باشد. به این معنی که گاهی برخی از تصمیم‌ها در کوتاه‌مدت پاداشی به همراه ندارند یا حتی پاداش منفی دارند، اما در جهت رسیدن به هدف نهایی مسئله هستند.

## همچنین نگاه کنید به
* یادگیری تفاوت زمانی
* کیو-یادگیری
* سیستم طبقه‌بندی یادگیری
* کنترل بهینه
* سامانه چندعامله
* هوش مصنوعی توزیع شده

## منابع

رده:الگوریتم‌های یادگیری ماشین
رده:تجدید نظر در باور
رده:مدل‌های مارکوف
رده:یادگیری تقویتی