مارا دنبال کنید : 

الگوریتم Q-Learning (بخش دوم)
Q-table چیست؟

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

به عنوان مثال:

فرض کنید یک ربات در یک هزارتو قرار دارد و هدف آن رسیدن به یک نقطه خاص (خروجی) است. برای کمک به ربات در یادگیری بهترین راه‌ها برای رسیدن به هدف، از جدول Q (Q-table) استفاده می‌کنیم.

وضعیت‌ها و اقدامات

در این مثال، وضعیت‌های مختلف می‌توانند مکان‌های مختلف ربات در هزارتو باشند، مانند S1 (شروع)، S2 (نزدیک دیوار)، S3 (نزدیکی خروجی)، S4(خروجی). همچنین، اقدامات ممکن برای ربات در هر وضعیت شامل A1 (حرکت به بالا)، A2(حرکت به پایین)، A3(حرکت به چپ)، A4(حرکت به راست).

Q-table 

جدول Q به‌صورت زیر خواهد بود:

وضعیتA1(بالا)A2(پایین)A3(چپ)A4(راست)
S10.20.10.00.4
S20.30.20.10.2
S30.00.40.50.1
S40.00.00.00.0

توضیحات جدول

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

با استفاده از جدول Q، ربات می‌تواند به‌مرور زمان یاد بگیرد که در هر وضعیت بهترین اقدام کدام است تا به هدف (خروجی) برسد. به‌عبارتی، Q-table به ربات کمک می‌کند تا تصمیم‌گیری‌های بهینه‌تری داشته باشد و در نهایت به موفقیت برسد.

مراحل کلیدی الگوریتم Q-Learning
1.مقدمه‌سازی (Initialization): جدول Q با مقادیر دلخواه، معمولاً با صفرها، مقدمه‌سازی می‌شود.

2.کاوش و بهره‌برداری (Exploration and Exploitation): عامل با محیط تعامل می‌کند و اقدام‌هایی را بر اساس جدول Q انجام می‌دهد. این عامل تعادلی بین کاوش (تلاش برای انجام اقدام‌های تصادفی به منظور جمع‌آوری اطلاعات) و بهره‌برداری (انتخاب اقدام‌هایی با بالاترین مقادیر Q به منظور حداکثر کردن جوایز) برقرار می‌کند.

3.انتخاب اقدام (Action Selection): عامل بر اساس مقادیر Q در وضعیت کنونی یک اقدام را انتخاب می‌کند. ممکن است اقدام با بالاترین مقدار Q را انتخاب کند (رویکرد طمع‌ورزانه (greedy approach)) یا مقداری تصادفی برای کاوش اضافه کند (رویکرد ائپسیلون-طمع‌ورزانه (epsilon-greedy approach)).

4.مشاهده و پاداش (Observation and Reward): عامل وضعیت بعدی را مشاهده کرده و بر اساس اقدام انجام‌شده، پاداشی دریافت می‌کند.

5.به‌روزرسانی مقدار Q (Q-Value Update): مقدار Q برای جفت اقدام-وضعیت قبلی با استفاده از معادله بلمن به‌روزرسانی می‌شود. این معادله پاداش فوری را با حداکثر پاداش آینده مورد انتظار تخفیف‌یافته از وضعیت بعدی ترکیب می‌کند.

6.تکرار (Iteration): مراحل ۲ تا ۵ تا زمانی که جدول Q همگرا شود، تکرار می‌شوند، به این معنی که مقادیر Q تثبیت می‌شوند و نشان‌دهنده این است که عامل سیاست بهینه را یاد گرفته است.

ملاحظات کلیدی

1.کاوش در برابر بهره‌برداری (Exploration vs. Exploitation): برقراری تعادل بین کاوش (تلاش برای چیزهای جدید) و بهره‌برداری (استفاده از آنچه که مؤثر است) برای یادگیری مؤثر بسیار مهم است.

2.عامل تخفیف (Discount Factor): این عامل اهمیت جوایز آینده را کنترل می‌کند. یک ضریب تخفیف بالاتر بر روی دستاوردهای بلندمدت تأکید می‌کند.

3.نرخ یادگیری (Learning Rate): این عامل میزان سرعت به‌روزرسانی مقادیر Q را تعیین می‌کند. یک نرخ یادگیری بالاتر به یادگیری سریع‌تر ولی احتمالاً کمتر پایدار منجر می‌شود.

مزایای Q-Learning

1.نتایج بلندمدت، که دستیابی به آن‌ها بسیار چالش‌برانگیز است، به بهترین شکل ممکن با این استراتژی تحقق می‌یابند.

2.این الگوی یادگیری به طرز نزدیکی شبیه به نحوه یادگیری انسان‌ها است؛ بنابراین، تقریباً ایده‌آل به شمار می‌آید.

3.مدل می‌تواند اشتباهات انجام‌شده در حین آموزش را اصلاح کند.

4.پس از اینکه یک مدل اشتباهی را اصلاح کرد، احتمال تکرار آن اشتباه به‌طور قابل توجهی کاهش می‌یابد.

5.این مدل قادر است یک راه‌حل ایده‌آل برای یک مسئله خاص ارائه دهد.

معایب Q-Learning

1.معایب استفاده از نمونه‌های واقعی را باید در نظر گرفت. به‌عنوان مثال، در زمینه یادگیری ربات‌ها، سخت‌افزار این ربات‌ها معمولاً بسیار گران، مستعد خرابی و نیازمند نگهداری دقیق است. هزینه تعمیر یک سیستم رباتیکی نیز بالا است.

2.به‌جای کنار گذاشتن کامل یادگیری تقویتی، می‌توان آن را با سایر تکنیک‌ها ترکیب کرد تا بسیاری از مشکلات آن کاهش یابد. یکی از ترکیب‌های رایج، ادغام یادگیری عمیق با یادگیری تقویتی است.

محدودیت‌های Q-Learning

1.فضاهای وضعیت و اقدام محدود(Finite State and Action Spaces):

Q-Learning نیاز به مجموعه‌ای محدود و گسسته از وضعیت‌ها و اقدام‌ها دارد. این به این دلیل است که بر اساس نگهداری یک جدول (جدول Q) عمل می‌کند که در آن سطرها نمایانگر وضعیت‌ها و ستون‌ها نمایانگر اقدام‌ها هستند. در محیط‌هایی که وضعیت‌ها یا اقدام‌ها بی‌نهایت یا بسیار بزرگ هستند، جدول Q به طرز غیرقابل مدیریتی بزرگ می‌شود یا مدیریت آن غیرممکن می‌گردد.

2.مشکلات مقیاس‌پذیری (Scaling Issues):

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

3.سرعت همگرایی (Convergence Speed):

Q-Learning می‌تواند در همگرایی به سیاست بهینه به‌خصوص در محیط‌های بزرگ یا پیچیده کند باشد. این الگوریتم نیاز دارد تا تمام جفت‌های وضعیت-اقدام را به اندازه کافی بازدید کند تا بتواند مقادیر Q را به‌طور دقیق تخمین بزند، که این کار ممکن است زمان بسیار طولانی ببرد.

4.عدم تعمیم پذیری (Lack of Generalization):

از آنجایی که Q-Learning برای هر جفت وضعیت-اقدام خاص یک ارزش یاد می‌گیرد، نمی‌تواند در وضعیت‌های مشابه تعمیم یابد. این در تضاد با روش‌هایی است که مقادیر Q را تقریب می‌زنند و می‌توانند ارزش وضعیت‌های نادیده را بر اساس شباهت به وضعیت‌های قبلاً مشاهده‌شده استنباط کنند.

5.نیاز به کاوش (Requirement for Exploration):

Q-Learning نیاز به برقراری تعادل دقیق بین کاوش اقدام‌های جدید و بهره‌برداری از اقدام‌های شناخته‌شده برای حداکثر کردن جوایز دارد. پیدا کردن استراتژی مناسب کاوش (مانند  ε-greedy) حیاتی است و می‌تواند چالش‌برانگیز باشد، به‌ویژه در محیط‌هایی که برخی از اقدام‌ها می‌توانند به عواقب منفی قابل‌توجهی منجر شوند.

6.وابستگی به تمامی پاداش‌ها (Dependency on All Rewards):

عملکرد Q-Learning به شدت به ساختار پاداش‌ها وابسته است. اگر پاداش‌ها نادر یا گمراه‌کننده باشند، این الگوریتم ممکن است نتواند سیاست‌های مفیدی را یاد بگیرد.

7.مشاهده جزئی (Partial Observability):

Q-Learning فرض می‌کند که عامل دارای مشاهده کامل از وضعیت محیط است. در بسیاری از سناریوهای دنیای واقعی، عامل‌ها فقط مشاهده جزئی دارند که می‌تواند منجر به یادگیری و تصمیم‌گیری غیر بهینه شود.

به دلیل این محدودیت‌ها، پژوهشگران معمولاً به روش‌های دیگری مانند شبکه‌های Q عمیق (DQN) روی می‌آورند که از شبکه‌های عصبی برای تقریب مقادیر Q استفاده می‌کنند و می‌توانند با فضاهای وضعیت پیوسته و بزرگ مقابله کنند، یا انواع دیگری از الگوریتم‌های یادگیری که قادر به مدیریت مشاهده جزئی و پاداش‌های نادر هستند.

کاربردهای Q-Learning

کاربردهای Q-Learning، یک الگوریتم یادگیری تقویتی، در زمینه‌های مختلفی وجود دارد. در اینجا چند مورد قابل توجه آورده شده است:

1.بازی‌های آتاری (Atari Games): بازی‌های کلاسیک آتاری ۲۶۰۰ اکنون با استفاده از Q-learning قابل بازی هستند. در بازی‌هایی مانند Space Invaders و Breakout، شبکه‌های عمیق Q (DQN)، که نسخه‌ای از Q-learning است و از شبکه‌های عصبی عمیق استفاده می‌کند، عملکردی فراتر از انسان را نشان داده است.

2.کنترل ربات (Robot Control): Q-learning در رباتیک برای انجام وظایفی مانند ناوبری و کنترل ربات‌ها استفاده می‌شود. با استفاده از الگوریتم‌های Q-learning، ربات‌ها می‌توانند یاد بگیرند که چگونه در محیط‌ها حرکت کنند، از موانع دوری کنند و حرکات خود را بهینه‌سازی کنند.

3.مدیریت ترافیک (Traffic Management): سیستم‌های مدیریت ترافیک خودروهای خودران از Q-learning استفاده می‌کنند. این سیستم با بهینه‌سازی برنامه‌ریزی مسیر و زمان‌بندی چراغ‌های ترافیکی، موجب کاهش ترافیک و بهبود جریان کلی ترافیک می‌شود.

4.معامله‌گری الگوریتمی (Algorithmic Trading): استفاده از Q-learning برای اتخاذ تصمیمات معاملاتی در زمینه معامله‌گری الگوریتمی مورد بررسی قرار گرفته است. این روش به عوامل خودکار این امکان را می‌دهد که بهترین استراتژی‌ها را از داده‌های گذشته بازار یاد بگیرند و به شرایط متغیر بازار سازگار شوند.

5.برنامه‌های درمانی شخصی‌سازی‌شده (Personalized Treatment Plans): در حوزه پزشکی، از Q-learning برای ایجاد برنامه‌های درمانی منحصر به فرد استفاده می‌شود. با استفاده از داده‌های بیماران، عوامل می‌توانند مداخلات شخصی‌سازی‌شده‌ای را پیشنهاد دهند که پاسخ‌های فردی به درمان‌های مختلف را در نظر بگیرند.

Applications_Q-Learning
تصویر1-کاربردهای الگوریتم Q-Learning

ترتیبی که هوشینو برای خواندن مطالب یادگیری تقویتی به شما پیشنهاد می‌کند:

 

1.یادگیری تقویتی بخش اول

2.یادگیری تقویتی بخش دوم

3.یادگیری تقویتی بخش سوم

4.زنجیره مارکوف بخش اول

5.زنجیره مارکوف بخش دوم

6.زنجیره مارکوف بخش سوم

7.زنجیره مارکوف بخش چهارم

8.الگوریتم Q-Learning بخش اول

9.الگوریتم Q-Learning بخش دوم

10.الگوریتم Q-Learning بخش سوم

11.الگوریتم SARSA-بخش اول

12.الگوریتم SARSA-بخش دوم

13. تفاوت بین Q-Learning و SARSA

یادگیری‌تقویتی (reinforcement learning) - بخش اول
یادگیری تقویتی چیست ؟

به یادگیری نحوه تعامل یک وضعیت به یک اقدام به طوری که یک سیگنال پاداش عددی را به حداکثر نماید ، یادگیری تقویتی می‌گویند .

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

یادگیری تقویتی در موقعیت‌هایی که باید تصمیمات متوالی گرفته و یا هدف‌های بلندمدت داشته باشد، بسیار خوب عمل می‌کند. مثال‌هایی از این کاربردها شامل بازی شطرنج و رباتیک است.

هدف اصلی در یادگیری تقویتی، حداکثر کردن دقت و کارایی است تا بیشترین پاداش‌های مثبت را مدل دریافت نماید.

Reinforcement learning performance
تصویر1- عملکرد یادگیری تقویتی

این روش مشابه فرآیند یادگیری آزمایش و خطا است که انسان‌ها برای رسیدن به اهداف خود استفاده می‌کنند . اقداماتی که به سمت هدف شما پیش می‌روند تقویت می‌شوند، در حالی که اقداماتی که از هدف منحرف می‌شوند نادیده گرفته می‌شوند.

دلایل اصلی استفاده از یادگیری تقویتی عبارتند از:

1. یادگیری از تعاملات

الگوریتم یادگیری‌تقویتی یک الگوریتم تعاملی است .

تعامل در یادگیری تقویتی به معنای ارتباط بین عامل (Agent) و محیط (Environment) است.

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

2. تصمیم‌گیری قابل تنظیم

تصمیم‌گیری در یادگیری تقویتی به این معناست که عامل می‌تواند بر اساس تغییرات محیط خود عمل کند.

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

به عبارت ساده‌تر، عامل نمی‌تواند فقط یک بار یاد بگیرد و تمام؛ بلکه باید همیشه آماده باشد تا با تغییرات محیطی سازگار شود و بهترین تصمیم را بگیرد.

3. یادگیری مداوم

به این معنی است که عامل همیشه در حال یادگیری می‌باشد و از بازخوردهایی که دریافت می‌کند، برای تصمیمات خود استفاده می‌کند.

این بازخوردها ممکن است دیر به او برسند یا خیلی کم باشند.

برای مثال، اگر ربات یک اقدام اشتباه انجام دهد و بعداً متوجه شود که آن اقدام باعث تنبیه شده است، این بازخورد ممکن است کمی زمان ببرد تا به او برسد. اما ربات یاد می‌گیرد که در آینده آن کار را انجام ندهد.

بنابراین، حتی اگر بازخوردها کم و دیر دریافت شود ، ربات به تدریج بهبود می‌یابد و تصمیمات بهتری خواهد گرفت .

دو مشخصه مهم در یادگیری تقویتی

دو مشخصه جستجو با آزمون و خطا و پاداش‌های تاخیردار دو ویژگی بسیار مهم در یادگیری‌تقویتی هستند .

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

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

اجزای کلیدی یک سیستم یادگیری تقویتی عبارتند از :

1.عامل (Agent) : موجودیتی که محیط خود را درک کرده ، تصمیم گیری می‌کند و با آن تعامل دارد .

2.محیط (Environment) :

تعاریف مختلف

هر چیزی که عامل برای رسیدن به هدف خود با آن تعامل می‌کند .

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

3.وضعیت (State) :

تعاریف مختلف

وضعیت فعلی محیط که توسط عامل درک می‌شود .

وضعیت در یادگیری تقویتی به معنای نمایی از شرایط کنونی محیط است که عامل بر اساس آن تصمیم‌گیری می‌کند. این وضعیت شامل اطلاعاتی است که به عامل کمک می‌کند تا بفهمد چه اقدامی باید انجام دهد. به عبارت دیگر، وضعیت نشان‌دهنده ویژگی‌ها و شرایط محیط در لحظه‌ای خاص است و عامل با استفاده از آن، بهترین تصمیم را برای رسیدن به هدفش اتخاذ می‌کند.

4.اقدام (Action) :

تعاریف مختلف

تصمیمات یا حرکت هایی که عامل می تواند بگیرد .

هر تصمیمی که یک عامل درمورد نحوه تعامل با محیط خود می‌گیرد .

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

5.پاداش (Reward) :

تعاریف مختلف

بازخورد محیط در پاسخ به اقدام عامل ، نشان دهنده موفقیت یا شکست عمل است.

بازخوردی که پس از هر اقدام از محیط به عامل باز می گردد. این به عامل کمک می کند تا خود را ارزیابی کند.

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

6.سیاست (Policy) :

تعاریف مختلف

استراتژی که عامل برای تعیین اقدامات خود بر اساس وضعیت فعلی استفاده می کند.

تکنیکی که یک عامل برای تصمیم گیری در مورد اقدام بعدی استفاده می کند.

سیاست در یادگیری تقویتی به معنای یک استراتژی است که عامل برای انتخاب اقداماتش در پاسخ به وضعیت‌های مختلف استفاده می‌کند. این سیاست می‌تواند به صورت یک تابع باشد که برای هر وضعیت، اقدام مناسب را تعیین می‌کند.

هدف سیاست این است که به عامل کمک کند تا با توجه به وضعیت‌های مختلف، بهترین اقدام را انتخاب کند تا در نهایت پاداش‌های بیشتری را کسب کند و به هدف‌هایش برسد. به طور کلی، سیاست نقش کلیدی در یادگیری و تصمیم‌گیری مؤثر عامل دارد.

7.تابع ارزش (Value Function):

تعاریف مختلف

یک تابع که پاداش‌های آینده مورد انتظار را که می‌توان از هر وضعیت به دست آورد، تخمین می‌زند.

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

هدف تابع ارزش این است که به عامل کمک کند تا تصمیمات بهتری بگیرد و اقداماتی را انتخاب کند که منجر به بیشترین پاداش ممکن شود. به عبارت دیگر، تابع ارزش ابزاری است که به عامل کمک می‌کند تا ارزش وضعیت‌ها و اقداماتی که می‌تواند انجام دهد را درک کند.

8.تابع Q (Q-Value(Action-Value)Function) :

تابعی که پاداش های مورد انتظار آینده را برای انجام یک اقدام خاص در یک وضعیت مشخص تخمین می زند.

Reinforcement learning in machine learning
تصویر2- یادگیری تقویتی در یادگیری ماشین
مثال عملیاتی از موارد بالا

بازی مار و پله ، در این بازی، هدف بازیکن این است که با انجام حرکات مناسب از خانه‌ی شروع (خانه‌ی ۱) به خانه‌ی پایان (خانه‌ی ۱۰۰) برسد. بازیکن باید تلاش کند از مارها دوری کرده و با استفاده از نردبان‌ها سریع‌تر به هدف برسد.

1.عامل (Agent)

عامل همان بازیکن است که در این بازی قصد دارد به خانه‌ی ۱۰۰ برسد. عامل تصمیم می‌گیرد چه اقدامی انجام دهد (برای مثال، حرکت به جلو در خانه‌ها).

2.محیط (Environment)

محیط، همان صفحه‌ی بازی مار و پله است که شامل خانه‌ها، مارها و نردبان‌ها می‌باشد. عامل با این محیط تعامل دارد و اقداماتش را بر اساس وضعیت فعلی محیط انجام می‌دهد.

3.وضعیت (State)

هر خانه‌ای که بازیکن در آن قرار دارد، یک وضعیت محسوب می‌شود. به عنوان مثال، اگر بازیکن در خانه‌ی ۲۵ باشد، وضعیت فعلی او (خانه‌ی ۲۵) است. وضعیت‌ها می‌توانند اطلاعات بیشتری را نیز شامل شوند؛ مثلاً اینکه آیا بازیکن در نزدیکی یک مار یا نردبان قرار دارد.

4.اقدام (Action)

اقدام‌ها همان تصمیماتی هستند که عامل می‌گیرد. در این بازی، اقدام‌ها شامل پرتاب تاس است که مقدار حرکت را تعیین می‌کند. برای مثال، اگر عامل تاس را بیندازد و عدد ۴ بیاید، به اندازه‌ی ۴ خانه به جلو حرکت می‌کند.

5.پاداش (Reward)

پاداش مقدار ارزشی است که عامل پس از انجام یک اقدام دریافت می‌کند. در این مثال، اگر عامل روی خانه‌ای بیفتد که او را به سمت نردبان بالا ببرد، پاداش مثبت می‌گیرد (مثلاً مثبت۱۰). اما اگر بر روی مار بیفتد و به خانه‌های پایین‌تر برگردد، پاداش منفی دریافت می‌کند (مثلاً منفی۱۰).

6.سیاست (Policy)

سیاست، همان استراتژی یا قوانینی است که عامل برای تصمیم‌گیری استفاده می‌کند. سیاست تعیین می‌کند که در هر وضعیت، عامل چه اقدامی انجام دهد. به عنوان مثال، سیاست ممکن است به این صورت باشد که اگر عامل به نزدیکی یک نردبان رسید، تلاش کند بر روی آن قرار گیرد.

7.تابع ارزش (Value Function)

تابع ارزش به عامل کمک می‌کند تا بفهمد هر وضعیت چقدر خوب است. به عبارت دیگر، هر چه یک وضعیت به هدف نزدیک‌تر باشد، ارزش بیشتری خواهد داشت. برای مثال، خانه‌ی ۹۸ ارزش بیشتری نسبت به خانه‌ی ۵۰ دارد، زیرا به خانه‌ی ۱۰۰ نزدیک‌تر است.

8.تابع Q (Q-Function)

تابع Q شبیه به تابع ارزش است، اما به ترکیب وضعیت و اقدام توجه می‌کند. به عبارت دیگر، تابع Q به عامل می‌گوید که اگر در وضعیت فعلی یک اقدام خاص انجام دهد، چقدر احتمال دارد که به پاداش برسد. برای مثال، اگر عامل در خانه‌ی ۱۰ باشد و تاس بیندازد، تابع Q تخمین می‌زند که آیا این اقدام به اندازه‌ی کافی خوب است تا به خانه‌های بهتری برسد.

Snake and ladders in reinforcement learning
تصویر3- بازی مار و پله
مفاهیم کلیدی در یادگیری تقویتی

1. فرآیند تصمیم‌گیری مارکوف (Markov Decision Process (MDP))

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

2.اکتشاف (Exploration) و بهره‌برداری (Exploitation)

Exploration: به عاملی اشاره دارد که اقدامات جدیدی را برای کشف و جمع‌آوری اطلاعات بیشتر در مورد محیط انجام می‌دهد.

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

Exploitation: به عامل اشاره دارد که اقداماتی را انتخاب می کند که می داند بر اساس دانش فعلی خود بالاترین پاداش را به همراه خواهد داشت.

بهره‌برداری به معنای استفاده از تجربیات قبلی برای گرفتن بهترین تصمیمات است. وقتی ربات مسیری را پیدا کند که به غذا می‌رسد ، در مرحله‌ی بهره‌برداری از همان مسیر استفاده می‌کند تا سریع‌تر و با اطمینان بیشتر به هدفش برسد.

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

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

چرا تعادل مهم است ؟

Exploration , Exploitation in reinforcement learning
تصویر4- Exploration , Exploitation

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

کدام یک دید بیشتری به آینده دارد ؟

در یادگیری تقویتی، Exploitation بیشتر بر اساس تجربه‌های قبلی و پاداش‌های به دست آمده است، یعنی این رویکرد به نوعی گذشته‌نگر است. الگوریتم در این حالت از تصمیم‌هایی استفاده می‌کند که قبلاً پاداش‌های خوبی به همراه داشته‌اند. اما Exploration به آینده نگاه می‌کند؛ یعنی الگوریتم به جای تکیه بر تجربیات قبلی، به دنبال این است که اطلاعات بیشتری از محیط جمع کند تا در آینده تصمیمات بهتری بگیرد.

بنابراین، Exploration دید بیشتری به آینده دارد، زیرا به دنبال کشف احتمالات جدید و شاید بهتر است که ممکن است در آینده سودمند باشند.

3.سیگنال پاداش (Reward Signal)

سیگنال پاداش، بازخوردی است که عامل پس از انجام یک اقدام از محیط دریافت می‌کند. هدف عامل این است که پاداش‌هایی را که در طول زمان دریافت می‌کند به حداکثر برساند، و این امر فرآیند یادگیری او را هدایت می‌کند.

4.سیاست (Policy)

یک سیاست رفتار عامل را با تبدیل وضعیت‌ها به اقدامات تعریف می‌کند. دو نوع سیاست وجود دارد:

سیاست قطعی: هر وضعیت را به یک اقدام خاص متصل می‌کند.

این نوع سیاست به هر وضعیت یک اقدام خاص را اختصاص می‌دهد. به عبارت دیگر، وقتی عامل در یک وضعیت خاص قرار دارد،همیشه یک اقدام مشخص را انتخاب می‌کند.

مثال: فرض کنید یک ربات در حال حرکت در یک اتاق است. اگر ربات در نزدیکی درب خروج قرار گیرد، طبق سیاست قطعی، همیشه از درب خارج می‌شود. بنابراین، در وضعیت «نزدیک درب خروج»، اقدام او «خروج از درب» است. این بدان معناست که او هیچ گزینه دیگری را در نظر نمی‌گیرد و همواره همین کار را انجام می‌دهد.

سیاست تصادفی: هر وضعیت را به یک توزیع احتمال بر روی اقدامات متصل می‌کند.

در این نوع سیاست، به هر وضعیت یک توزیع احتمال برای انتخاب اقدامات اختصاص داده می‌شود. به این معنا که عامل در هر وضعیت، با احتمال‌های مختلف ممکن است اقدام‌های متفاوتی را انتخاب کند.

مثال: فرض کنید یک ربات در یک اتاق با سه مسیر مختلف برای حرکت قرار دارد: راست، چپ و جلو. اگر ربات در وضعیت «نزدیک درب» قرار گیرد، ممکن است با ۵۰٪ احتمال به راست برود، با ۳۰٪ احتمال به چپ برود و با ۲۰٪ احتمال به جلو برود. در اینجا، هیچ تصمیم مشخصی وجود ندارد و انتخاب مسیر به صورت تصادفی و بر اساس این احتمال‌ها انجام می‌شود.

5.تابع ارزش (Value Function)

تابع ارزش، پاداش تجمعی مورد انتظار را برای هر وضعیت تخمین می‌زند و نشان می‌دهد که یک وضعیت از نظر پاداش‌های آینده چقدر ارزشمند است. این تابع به عامل کمک می‌کند تا اقداماتی را انتخاب کند که منجر به وضعیت‌هایی با پاداش‌های مورد انتظار بالاتر شود.

6.تابع Q (Q-Function (Action-Value Function)

تابع Q، یا تابع ارزش اقدام، پاداش تجمعی مورد انتظار را برای انجام یک اقدام خاص در یک وضعیت مشخص و پیروی از سیاست بهینه تخمین می‌زند. این مفهوم در بسیاری از الگوریتم‌های یادگیری تقویتی اهمیت زیادی دارد و به عامل کمک می‌کند تا تصمیمات بهتری را بر اساس ارزش اقدامات مختلف بگیرد.

تابع ارزش به دو نوع اصلی تقسیم می‌شود :

تابع ارزش وضعیت (V(s) یا Value Function) : این تابع ارزش هر وضعیت را بر اساس پاداش‌هایی که می‌توان از آن وضعیت به دست آورد تخمین می‌زند.

تابع ارزش عمل (Q(s,a) یا Q-Function (Action-Value Function)) : این تابع ارزش یک عمل خاص در یک وضعیت خاص را محاسبه می‌کند و نشان می‌دهد که انجام آن عمل در آن وضعیت چه مقدار پاداش به ارمغان می‌آورد.


ترتیبی که هوشینو برای خواندن مطالب یادگیری تقویتی به شما پیشنهاد می‌کند:

1.یادگیری تقویتی بخش اول

2.یادگیری تقویتی بخش دوم

3.یادگیری تقویتی بخش سوم

4.زنجیره مارکوف بخش اول

5.زنجیره مارکوف بخش دوم

6.زنجیره مارکوف بخش سوم

7.زنجیره مارکوف بخش چهارم

8.الگوریتم Q-Learning بخش اول

9.الگوریتم Q-Learning بخش دوم

10.الگوریتم Q-Learning بخش سوم

11.الگوریتم SARSA-بخش اول

12.الگوریتم SARSA-بخش دوم

13. تفاوت بین Q-Learning و SARSA