قسمت اول از سری RL: مقدمهای بر یادگیری تقویتی RL
ابتدا میخواهیم با مفاهیم پایه آشنا شویم. اولین سؤالی که باید پاسخ دهیم این است که یادگیری تقویتی RL چیست؟
فرض کنید دوستتان برای آشنایی با DQN (یکی از الگوریتمهای یادگیری تقویتی) و اصلاح اشتباهی که در پیادهسازی آن مرتکب شده، از شما کمک میخواهد. برای کمک به او ابتدا خودتان باید الگوریتم را بیاموزید؛ بدین منظور سه راه پیش رو دارید:
- اقدام-1: مطالب این مجموعه را دنبال کنید تا در مورد DQN بیاموزید؛
- اقدام-2: یک منبعکد آنلاین را بررسی کنید که پیادهسازی DQN را نشان میدهد؛
- اقدام-3: مطالب این مجموعه را دنبال کنید تا توضیحی از DQN به دست آورید و سپس خودتان سعی کنید کدنویسی آن را انجام دهید.
فرض کنید اقدام-1 را انتخاب کردید، یک قسمت از این مجموعه را که به DQN پرداخته مطالعه کرده و به درک خوبی از این الگوریتم میرسید. اما وقتی به مشکلی در پیادهسازی آن میرسید، نمیدانید چه کنید. در این صورت، یک قدم به عقب برمیگردید و اقدام-2 را در پیش میگیرید. حال میدانید کدها چطور باید نوشته شوند و میتوانید از آن برای حل مشکل دوستتان استفاده کنید. اما از آنجایی که توضیحی از خود الگوریتم نخواندهاید، نمیتوانید بفهمید چرا کدها به این شکل نوشته شدهاند. بنابراین مجدداً برگشته و این بار اقدام-3 را انتخاب میکنید. مطالعه در مورد DQN همزمان با پیادهسازی آن به شما کمک میکند پاسخ همهی سؤالاتی را که داشتید به دست آورید. بدین ترتیب به هدف خود میرسید و این موفقیت را هم جشن میگیرید!
این مسئله مصداقی از یادگیری تقویتی است. پس مؤلفههای اصلی RL عبارتاند از:
- هدف goal : مسئلهای که باید تکمیل شود (توضیح DQN به دوستتان و حل مشکل او در کدنویسی)؛
- عامل agent : فردی که سعی در آموختن بهترین اقدامات برای رسیدن به هدف دارد (شما)؛
- محیط environment : هرچیزی در اطراف شما که با آن تعامل دارید (مطالبی که میخوانید و کدهایی که مینویسید).
توضیح تخصصیتر مؤلفهها
پیشنهاد میکنم به جای درگیر شدن با یک سری مفاهیم و اصطلاحات انتزاعی که در حال حاضر چندان سودی هم ندارند، به کاربرد آنها بپردازیم. در آخرین قسمت از این مجموعه همهی اصطلاحات را تعریف و جمعبندی خواهیم کرد.
شکل 1 اصل و اساس یادگیری تقویتی را نشان میدهد: عامل سعی در یادگیری رفتاری دارد که برای رسیدن به هدف در یک محیط خاص باید انجام دهد. بدین منظور عامل با انجام یک سری اقدامات با محیط تعامل برقرار کرده و در ازای آن میتواند وضعیت محیط را درک کند؛ در نتیجهی این اقدامات یک سیگنال پاداشی از محیط دریافت میکند که نشان میدهد آن اعمال چقدر در مسیر رسیدن به هدف مفید بودهاند.
تفاوت یادگیری تقویتی با یادگیری با نظارت و بدون نظارت چیست؟
در یادگیری با نظارت کلید پاسخها را در قالب یک دیتاست آموزشی برچسبدار به الگوریتم ارائه میدهیم؛ یعنی به طور کامل به الگوریتم میگوییم چه انتظاری از آن داریم. یادگیری غیرنظارتشده بدون کلید پاسخها (دادههای برچسبدار) کار میکند و در عوض روی تشخیص ساختار و الگوهای موجود در دادهها تمرکز دارد؛ در یادگیری بدون نظارت الگوریتم اطلاعات مستقیمی در مورد درست بودن کارکردش دریافت نمیکند. هردوی این روشها در کار با دیتاستهای بزرگ و از پیش جمعآوریشده کاربرد دارند و برای راهاندازی آنها نیازی به مؤلفههای عامل، محیط یا تعامل بین این دو نداریم.
همانطور که گفتیم یادگیری تقویتی RL معادل محاسباتی «یادگیری از طریق تعامل با محیط» است، طی این تعامل، عامل پیامدهای اقدامات گوناگون را میآموزد تا در نهایت به هدف خاصی دست یابد. به عبارت دیگر، یادگیری تقویتی بر یادگیری هدفمحور Goal-directed از طریق آزمون و خطا Trial-and-error تمرکز دارد.