الگوریتم Q-Learning در یادگیری تقویتی چیست؟

الگوریتم Q-learning در یادگیری تقویتی

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

در این مقاله در مورد الگوریتم Q-Learning در یادگیری تقویتی و نحوه اجرای آن صحبت خواهیم کرد.

یادگیری تقویتی چیست؟

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

*یادگیری تقویتی (Reinforcement Learning) با حذف تقریباً کامل نیاز به داده، بر مشکل اکتساب داده غلبه می‌کند!*

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

شامل:

  • محیطی که یک عامل برای یادگیری رسیدن به هدف یا انجام یک عمل با آن تعامل خواهد داشت.
  • اگر عمل انجام شده توسط مدل ما را به هدف نزدیکتر کند/به هدف منجر شود، یک پاداش (Reward). این کار برای آموزش مدل در جهت درست انجام می شود.
  • پاداش منفی اگر عملی را انجام دهد که به هدف منتهی نشود تا از یادگیری در جهت اشتباه جلوگیری کند.

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

مقاله پیشنهادی: “ماشین بردار پشتیبان (SVM) چیست؟

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

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

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

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

الگوریتم Q-Learning در یادگیری تقویتی چیست؟

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

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

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

هدف این مدل یافتن بهترین مسیر عمل با توجه به وضعیت فعلی آن است. برای انجام این کار، ممکن است قوانینی برای خود ایجاد کند یا ممکن است خارج از خط مشی داده شده به آن عمل کند. این بدان معنی است که هیچ نیاز واقعی به یک سیاست (Policy) وجود ندارد، بنابراین ما آن را خارج از سیاست (off-policy) می‌نامیم.

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

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

با استفاده از  Q-learning، می‌توانیم سیستم توصیه تبلیغات را برای توصیه محصولاتی که اغلب با هم خریداری می‌شوند، بهینه کنیم. پاداش در صورتی خواهد بود که کاربر روی محصول پیشنهادی کلیک کند.

اصطلاحات مهم در Q-Learning

  1. S،State :State، موقعیت فعلی یک عامل را در یک محیط نشان می‌دهد.
  2. Action :Action، گامی است که عامل در حالتی خاص انجام می‌دهد.
  3. Reward (پاداش): برای هر عمل، عامل یک پاداش مثبت یا منفی دریافت می‌کند.
  4. Episode (اپیزودها): زمانی که یک عامل در حالت (State) پایانی قرار می‌گیرد و نمی‌تواند اقدام جدیدی انجام دهد.
  5. Q-Values: برای تعیین اینکه یک Action در یک State خاص چقدر خوب است استفاده می‌شود. Q (A, S).
  6. Temporal Difference (تفاوت زمانی): فرمولی که برای یافتن Q-Value با استفاده از مقدار وضعیت فعلی و عملکرد و وضعیت و عملکرد قبلی استفاده می‌شود.

معادله بلمن (Bellman) چیست؟

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

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

معادله بلمن

چگونه یک Q-Table بسازیم؟

در حین اجرای الگوریتم، با راه حل‌های مختلفی مواجه می‌شویم و عامل چندین مسیر را طی می‌کند. چگونه بهترین را در میان آن‌ها پیدا کنیم؟ این کار با جدول‌بندی یافته‌های ما در جدولی به نام Q-Table انجام می‌شود.

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

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

*مرحله 1: یک Q-Table اولیه با تمام مقادیر اولیه 0 ایجاد کنید

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

جدول Q

*مرحله 2: یک عمل را انتخاب کنید و آن را انجام دهید. مقادیر را در جدول به روز کنید

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

Q table

*مرحله 3: ارزش پاداش را دریافت کنید و مقدار Q-Value را با استفاده از معادله بلمن محاسبه کنید

برای عمل انجام شده، باید مقدار پاداش واقعی و مقدار Q(S, A) را محاسبه کنیم

Q table

*مرحله 4: به همین ترتیب ادامه دهید تا جدول پر شود یا یک قسمت تمام شود

عامل به اقدامات خود ادامه می‌دهد و برای هر عمل پاداش و Q-value محاسبه می‌شود و جدول را به روز می‌کند.

Q table

نتیجه

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

امیدواریم این مقاله برای شما عزیزان مفید بوده باشد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *