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

تفاوت بین Q-Learning و SARSA
تفاوت بین Q-Learning و SARSAمروری بر Q-Learning

Q-learning یک الگوریتم یادگیری تقویتی خارج از سیاست (off-policy) است که ارزش بهترین عمل ممکن را مستقل از سیاستی که دنبال می‌شود، یاد می‌گیرد.

هدف این الگوریتم یادگیری تابع ارزش عمل بهینه Q∗(s,a) است که بیشترین پاداش مورد انتظار آینده را برای انجام عمل a  در حالت s می‌دهد. قانون به‌روزرسانی برای Q-learning به این صورت است:

The Q-Learning equation

مروری بر SARSA

در مقابل، SARSA یک الگوریتم یادگیری تقویتی روی سیاست (on-policy) است. این الگوریتم نیز یک تابع ارزش عمل را یاد می‌گیرد، اما تخمین‌های خود را براساس عملی که واقعاً توسط سیاست فعلی انجام شده، به‌روزرسانی می‌کند. قانون به‌روزرسانی برای SARSA به این صورت است:

The SARSA equation

در SARSA، مقدار Q(s,a)  با توجه به عمل واقعی a′  که در حالت بعدی s′ انتخاب شده است، به‌روزرسانی می‌شود. این تفاوت کلیدی بین SARSA و Q-learning است، زیرا SARSA وابسته به سیاست جاری است.

تفاوت‌های کلیدی بین Q-Learning و SARSA

1.اکتشاف در مقابل بهره‌برداری (Exploration vs. Exploitation)

  • Q-Learning: به‌عنوان یک روش خارج از سیاست (off-policy) است، Q-learning مقدارهای Q خود را با استفاده از بیشترین پاداش ممکن آینده به‌روزرسانی می‌کند، بدون توجه به اینکه کدام عمل انجام شده است. این ویژگی می‌تواند به جستجوی تهاجمی‌تر محیط منجر شود.

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

  • SARSA: به‌عنوان یک روش روی سیاست (on-policy) است، SARSA مقدارهای Q خود را براساس اعمالی که واقعاً توسط سیاست انجام شده‌اند، به‌روزرسانی می‌کند. این ویژگی معمولاً به یک رویکرد محتاطانه‌تر منجر می‌شود که به شکل محافظه‌کارانه‌تری بین اکتشاف (exploration) و بهره‌برداری (exploitation) تعادل برقرار می‌کند.

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

2.به‌روزرسانی قوانین (Update Rules)

  • Q-Learning: از عملگر بیشینه (max) برای به‌روزرسانی مقادیر Q استفاده می‌کند و روی بهترین عمل ممکن تمرکز دارد.

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

  • SARSA: از عملی که توسط سیاست فعلی انتخاب شده است استفاده می‌کند، که باعث می‌شود فرآیند یادگیری بیشتر به رفتار سیاست وابسته باشد.

این بدان معناست که SARSA مقادیر Q را براساس عمل واقعی انجام‌شده طبق سیاست فعلی به‌روزرسانی می‌کند، و به همین دلیل، یادگیری آن به شدت به نحوه رفتار سیاست در محیط بستگی دارد. این وابستگی به سیاست باعث می‌شود SARSA به‌طور طبیعی تعادلی میان اکتشاف و بهره‌برداری برقرار کند، و در نتیجه رفتار محتاطانه‌تری را نسبت به Q-learning ارائه دهد.

3.یادگیری Off-Policy در مقابل On-Policy (On-policy vs. Off-policy Learning)

  • Q-Leaning: یک روش خارج از سیاست (off-policy) است، به این معنا که ارزش سیاست بهینه را به‌طور مستقل از اعمالی که عامل انجام می‌دهد، یاد می‌گیرد.

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

  • SARSA: یک روش روی سیاست (on-policy) است، به این معنا که ارزش سیاستی را که عامل در حال دنبال کردن آن است، یاد می‌گیرد.

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

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

ویژگیQ-LeaningSARSA
نوع سیاست (Policy Type)خارج از سیاست ( Off-policy)روی سیاست ( On-policy)
به‌روزرسانی قوانین (Update Rule)The Q-Learning equationThe SARSA equation
رویکرد یادگیری ( Learning Approach)ارزش سیاست بهینه را یاد می‌گیرد.ارزش سیاست فعلی را یاد می‌گیرد.
ثبات ( Stability)به‌خاطر به‌روزرسانی‌های خارج از سیاست، ممکن است کمتر پایدار باشد.به‌خاطر به‌روزرسانی‌های درون‌سیاست، پایدارتر است.
سرعت همگرایی ( Convergence Speed)معمولاً همگرایی سریع‌تری به سیاست بهینه دارد.معمولاً همگرایی کندتری به سیاست بهینه دارد.
تاثیر اکتشاف ( Exploration Impact)سیاست کاوش می‌تواند با سیاست یادگیری متفاوت باشد.کاوش به‌طور مستقیم بر به‌روزرسانی‌های یادگیری تأثیر می‌گذارد.
انتخاب اقدام برای بروزرسانی
( Action Selection for Update)
به‌روزرسانی‌ها بر اساس حداکثر پاداش آینده انجام می‌شوند.به‌روزرسانی‌ها بر اساس عملی که واقعاً انجام شده‌اند، صورت می‌گیرند.
کاربرد
(Use Case Suitability)
مناسب برای محیط‌هایی که کارایی حیاتی است.مناسب برای محیط‌هایی که ثبات حیاتی است.
سناریوهای نمونه
( Example Scenarios)
بازی‌سازی (Gaming)، رباتیک (robotics)، تجارت مالی (financial trading)بهداشت و درمان (Healthcare)، مدیریت ترافیک تطبیقی (adaptive traffic management)، یادگیری شخصی‌سازی‌شده (personalized learning)
رسیدگی به اقدامات اکتشافی
( Handling of Exploratory Actions)
بیشتر کارآمد است اما ممکن است با تجربیات واقعی کمتر هم‌راستا باشد.بیشتر محتاط و هم‌راستا با تجربیات واقعی است.
تمرکز الگوریتم

( Algorithm Focus)
بر روی یافتن بهترین اقدامات ممکن تمرکز دارد.بر روی اقداماتی که در حال حاضر توسط عامل انجام می‌شود تمرکز دارد.
تحمل ریسک
( Risk Tolerance)
تحمل بالاتری برای ریسک و بی‌ثباتی دارد.تحمل کمتری برای ریسک دارد و ایمنی را در اولویت قرار می‌دهد.

1.Q-Learning: کارایی حیاتی

Q-Learning یک الگوریتم یادگیری تقویتی غیرنظارتی است که هدف آن یادگیری یک سیاست بهینه برای انتخاب عمل‌ها در یک محیط است. در Q-Learning، عامل (Agent) به دنبال یادگیری بهترین عمل برای هر حالت است تا حداکثر پاداش را کسب کند.

کارایی حیاتی: در محیط‌هایی که کارایی (Performance) بالایی نیاز است، Q-Learning می‌تواند انتخاب‌های بهتری را انجام دهد زیرا از تجربیات گذشته‌اش برای بهبود تصمیمات آینده استفاده می‌کند. به عبارت دیگر، Q-Learning به عامل این امکان را می‌دهد که خود را سریعاً با تغییرات محیط سازگار کند و یادگیری سریعی داشته باشد.

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

2.SARSA: ثبات حیاتی

SARSA (State-Action-Reward-State-Action) نیز یک الگوریتم یادگیری تقویتی است، اما تفاوت آن با Q-Learning در این است که SARSA از سیاست فعلی خود برای به‌روزرسانی Q-Values استفاده می‌کند. این به این معنی است که SARSA یاد می‌گیرد که چطور به‌طور پیوسته با سیاست فعلی‌اش عمل کند.

ثبات حیاتی: در محیط‌هایی که ثبات (Stability) مهم است، SARSA می‌تواند مفیدتر باشد. زیرا این الگوریتم در هنگام یادگیری به عمل‌هایی که بر اساس سیاست فعلی انتخاب می‌شوند، بیشتر توجه می‌کند و به همین دلیل، تغییرات شدید در یادگیری را کاهش می‌دهد. این باعث می‌شود که رفتار عامل در مواجهه با تغییرات ناگهانی محیط کمتر تحت تأثیر قرار گیرد و ثبات بیشتری داشته باشد.

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

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

نقاط قوت و ضعف (Strengths and Weaknesses)
Q-Learning

نقاط قوت (Strengths):

  • معمولاً سریع‌تر به سیاست بهینه همگرا می‌شود.

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

  • Q-learning در اکتشاف محیط بسیار تهاجمی‌تر است که می‌تواند در سناریوهای پیچیده مفید باشد.

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

نقاط ضعف (Weaknesses):

  • Q-learning می‌تواند به دلیل اکتشاف تهاجمی، از نظر پایداری کمتر قابل اعتماد باشد.

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

  • Q-learning ممکن است به سیاست‌های زیر بهینه همگرا شود اگر اکتشاف به درستی مدیریت نشود.

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

SARSA

نقاط قوت (Strengths):

  • فرآیند یادگیری در SARSA به دلیل رویکرد روی سیاست (on-policy) پایدارتر است.

این ثبات به این دلیل است که SARSA مقادیر Q را براساس اعمال واقعی انجام‌شده طبق سیاست فعلی به‌روزرسانی می‌کند. به همین دلیل، یادگیری کمتر تحت تأثیر نوسانات ناشی از اکتشافات تهاجمی قرار می‌گیرد و معمولاً به تغییرات تدریجی‌تری در مقدارهای Q منجر می‌شود. این ویژگی به عامل کمک می‌کند تا به آرامی به یک سیاست بهینه نزدیک شود و در عین حال رفتار مطمئن‌تری را در محیط ارائه دهد.

  • SARSA در مدیریت محیط‌هایی با سطوح بالای عدم قطعیت بهتر عمل می‌کند.

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

نقاط ضعف (Weaknesses):

  • SARSA ممکن است به دلیل تعادل بین اکتشاف و بهره‌برداری، به آهستگی همگرا شود.

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

  • SARSA ممکن است به اندازه Q-learning به‌طور کامل اکتشاف نکند و در نتیجه ممکن است سیاست‌های بهینه را از دست بدهد.

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

نتیجه گیری

در نتیجه، Q-learning و SARSA الگوریتم‌های بنیادی یادگیری تقویتی هستند که رویکردهای متفاوتی دارند: Q-learning یک روش خارج از سیاست (off-policy) است، زیرا به دنبال یافتن مقادیر بهینه برای جدول Q است که در آینده بیشترین بازده را به همراه داشته باشد. این ویژگی آن را برای محیط‌های پویا مانند بازی‌ها و رباتیک مناسب می‌سازد. از سوی دیگر، SARSA یک روش روی سیاست (on-policy) است، زیرا از عمل فعلی عامل یاد می‌گیرد و به همین دلیل از نظر ایمنی و ثبات بیشتر، به‌ویژه در حوزه‌های مراقبت‌های بهداشتی، کنترل ترافیک و مدیریت، بهتر عمل می‌کند.

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

سوالات متدوال
تفاوت اصلی در قانون به‌روزرسانی بین Q-learning و SARSA چیست؟

به‌روزرسانی مقدار Q در Q-learning بر اساس حداکثر پاداش ممکن در حالت بعدی انجام می‌شود، نه بر اساس پاداشی که در عمل انتخاب شده است (روش خارج از سیاست یا off-policy)  این ویژگی اهمیت دارد زیرا SARSA مقدار Q را با استفاده از عملی که واقعاً توسط عامل انجام شده است، به‌روزرسانی می‌کند (روش روی سیاست یا on-policy)

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

تفاوت از نظر یادگیری سیاست در Q-learning و SARSA.

Q-learning ارزش سیاست بهینه را یاد می‌گیرد و به اعمال عامل وابسته نیست. در مقابل، SARSA به یادگیری ارزش سیاستی که عامل در یک لحظه خاص دنبال می‌کند، متمرکز است.

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

در Q-learning، (off-policy) به موقعیت‌هایی اشاره دارد که یک عامل عملی را انتخاب می‌کند که توسط الگوریتم مشاهده نشده است.

روش خارج از سیاست (off-policy) به این معناست که مقدار Q به ارزش بهترین عمل ممکن در حالت بعدی به‌روزرسانی می‌شود، در حالی که به اعمالی که احتمالاً عامل انتخاب می‌کند، توجهی نمی‌شود.

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

کدام الگوریتم به سرعت به سیاست بهینه همگرا می‌شود؟

الگوریتم Q-learning به طور کلی به سیاست بهینه نزدیک‌تر همگرا می‌شود، زیرا تمایل دارد از عملگر بیشینه (max) برای پاداش‌های آینده مورد انتظار استفاده کند. با این حال، این ویژگی ممکن است بر پایداری الگوریتم تأثیر بگذارد.

به این معنا که اگرچه Q-learning می‌تواند سریع‌تر به یک سیاست بهینه دست یابد، اما این فرآیند ممکن است با نوسانات و عدم ثبات همراه باشد. این ناپایداری می‌تواند در مراحل اولیه یادگیری و در نتیجه اکتشافات تهاجمی بیشتر ایجاد شود. بنابراین، در حالی که 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

الگوریتم Q-Learning(بخش سوم)
پیاده سازی الگوریتم Q-Learning در پایتون

مرحله 1: تعریف محیط (Define the Environment)

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

				
					import numpy as np

# Define the environment
n_states = 16
n_actions = 4
goal_state = 15
# Initialize Q-table with zeros
Q_table = np.zeros((n_states, n_actions))
				
			

مرحله 2: تنظیم هایپرپارامترها (Set Hyperparameters)

پارامترهای الگوریتم Q-Learning را تعریف کنید، از جمله نرخ یادگیری، عامل تخفیف، احتمال کاوش، و تعداد دوره‌های آموزشی.

				
					# Define parameters
learning_rate = 0.8
discount_factor = 0.95
exploration_prob = 0.2
epochs = 1000
				
			

مرحله 3: پیاده‌سازی الگوریتم Q-Learning (Implement the Q-Learning Algorithm)

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

				
					# Q-learning algorithm
for epoch in range(epochs):
    current_state = np.random.randint(0, n_states)
    while current_state != goal_state:
        if np.random.rand() < exploration_prob:
            action = np.random.randint(0, n_actions)
        else:
            action = np.argmax(Q_table[current_state])
        next_state = (current_state + 1) % n_states
        reward = 1 if next_state == goal_state else 0
        Q_table[current_state, action] += learning_rate * \
            (reward + discount_factor *
             np.max(Q_table[next_state]) - Q_table[current_state, action])
        current_state = next_state
				
			

مرحله 4: خروجی Q-table (Output the Learned Q-Table)

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

				
					print("Learned Q-table:")
print(Q_table)
				
			

مرحله5: خرجی کد

				
					Learned Q-table:
[[0.48767498 0.48751892 0.46816798 0.        ]
 [0.51334208 0.49211897 0.51330921 0.51333551]
 [0.54036009 0.54035317 0.54036003 0.5403598 ]
 [0.56880004 0.56880008 0.56880003 0.56880009]
 [0.59873694 0.59873694 0.59873693 0.59873694]
 [0.63024941 0.63024941 0.63024941 0.63024941]
 [0.66342043 0.66342043 0.66342043 0.66342043]
 [0.6983373  0.6983373  0.6983373  0.6983373 ]
 [0.73509189 0.73509189 0.73509189 0.73509189]
 [0.77378094 0.77378094 0.77378094 0.77378094]
 [0.81450625 0.81450625 0.81450625 0.81450625]
 [0.857375   0.857375   0.857375   0.857375  ]
 [0.9025     0.9025     0.9025     0.9025    ]
 [0.95       0.95       0.95       0.95      ]
 [1.         1.         1.         1.        ]
 [0.         0.         0.         0.        ]]
				
			

الگوریتم Q-Learning شامل آموزش تکراری است که در آن عامل محیط را کاوش کرده و Q-table خود را به‌روزرسانی می‌کند. این فرایند از یک حالت تصادفی شروع می‌شود، اقدامات را از طریق استراتژی ϵ-greedy انتخاب می‌کند و حرکات را شبیه‌سازی می‌کند. یک تابع پاداش به‌ازای رسیدن به حالت هدف، مقدار ۱ را ارائه می‌دهد. مقادیر Q با استفاده از قاعده Q-Learning به‌روزرسانی می‌شوند و پاداش‌های دریافتی و مورد انتظار را ترکیب می‌کنند. این فرایند ادامه می‌یابد تا زمانی که عامل استراتژی‌های بهینه را یاد بگیرد. Q-Learning نهایی نمایانگر مقادیر حالت-عمل به‌دست‌آمده پس از آموزش است.

الگوریتم 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

الگوریتم Q-Learning(بخش اول)
مقدمه

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

Q-Learning چیست؟

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

Labyrinth_Q-Learning
تصویر1-هزارتو

 

 

تصور کنید رباتی در یک هزارتو در حال حرکت است. Q-Learning به ربات این امکان را می‌دهد که هزارتو را کاوش کند، جوایز (مانند رسیدن به خروجی) را کشف کند و بیاموزد که کدام اقدامات (مثل چرخش به چپ یا راست) در مکان‌های مختلف هزارتو به آن جوایز منجر می‌شوند.

 

 

 

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

تفاوت الگوریتم‌های بدون مدل (Model-Free) و با مدل (Model-Based)

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

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

برای مثال، اگر بخواهید برای رباتی که در آزمایشگاهی حرکت می‌کند، الگوریتمی طراحی کنید:

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

الگوریتم با مدل: در این حالت، از پیش به ربات اطلاعات کامل محیط را می‌دهید، مانند «اگر از نقطه‌ی A به سمت B حرکت کنی، با ۹۰٪ احتمال به نقطه C خواهی رسید». ربات از این اطلاعات برای پیش‌بینی بهترین مسیر استفاده کرده و تصمیمات خود را بر اساس این پیش‌بینی‌ها بهینه می‌کند.

مولفه‌های کلیدی Q-Learning

1.Q-Values or Action-Values

مقادیر Q برای حالت‌ها و اقدامات تعریف می‌شوند. به طوری که Q(s,a) نشان‌دهنده‌ی تخمینی از میزان مطلوبیت انجام اقدام a در حالت s است. این مقدار، به‌طور تدریجی با استفاده از قانون به‌روزرسانی تفاوت زمانی (TD-Update) محاسبه می‌شود.

2.پاداش‌ها و قسمت‌ها (Rewards and Episodes)

یک عامل در طول عمر خود از یک حالت شروع (start state) آغاز می‌کند و با انتخاب اقدامات مختلف و تعامل با محیط، چندین انتقال از حالت فعلی به حالت بعدی را تجربه می‌کند. در هر مرحله، عامل از یک حالت عملی را انتخاب می‌کند، پاداشی از محیط دریافت می‌کند و سپس به حالت دیگری منتقل می‌شود. اگر در هر نقطه از زمان عامل به یکی از حالت‌های پایانی (terminating states) برسد، به این معناست که دیگر امکان انجام انتقال‌های بیشتر وجود ندارد و این وضعیت به عنوان پایان یک قسمت (episode) شناخته می‌شود.

3.تفاوت زمانی (Temporal Difference یا TD-Update)

قانون تفاوت زمانی یا TD-Update به صورت زیر نمایش داده می‌شود:

 

Q Function

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

s: وضعیت فعلی عامل است.

a: عملکرد فعلی که بر اساس یک سیاست خاص انتخاب شده است.

s’: حالت بعدی که عامل به آن منتقل می‌شود.

a’: بهترین اقدام بعدی که باید با استفاده از تخمین فعلی مقدار Q انتخاب شود، به این معنی که اقدام با حداکثر مقدار Q در حالت بعدی انتخاب شود.

پاداش فوری (R): پاداشی است که عامل بلافاصله پس از انجام اقدام a در حالت s دریافت می‌کند. این پاداش به عنوان بازخوردی از محیط عمل می‌کند.

ضریب تخفیف (𝛾): این پارامتر اهمیت پاداش‌های آینده را نسبت به پاداش‌های فوری مشخص می‌کند که معمولا بین 0 و 1 است. مقدار γ نزدیک به 1 به این معناست که عامل به پاداش‌های آینده بیشتر اهمیت می‌دهد.

نرخ یادگیری  (α): این پارامتر تعیین‌کننده‌ی سرعت به‌روزرسانی مقادیر Q است و مقدار آن بین 0 و 1 قرار دارد. مقادیر بالاتر α به معنای یادگیری سریع‌تر هستند، اما ممکن است موجب ناپایداری مقادیر Q شوند.

Q(s,a): مقدار Q برای حالت s و اقدام a است که نشان‌دهنده‌ی تخمینی از مطلوبیت انجام اقدام a در حالت s می‌باشد.

maxQ  : این عبارت نشان‌دهنده‌ی بیشترین مقدار Q برای تمام اقدامات ممکن a’ در حالت جدید s’ است و به عامل کمک می‌کند تا بهترین گزینه را برای اقدامات آینده شناسایی کند.

این قانون به‌روزرسانی با مقایسه مقدار فعلی Q(s,a) با ترکیب پاداش فوری و بهترین مقدار Q در حالت جدید، به تدریج مقادیر Q را به سمت مقادیر بهینه هدایت می‌کند.

4.انتخاب مسیر عمل با استفاده از سیاست ϵ-greedy (Selecting the Course of Action with ϵ-greedy policy)

یک روش ساده برای انتخاب اقدام بر اساس تخمین‌های کنونی مقدار Q، سیاست ϵ-greedy است. این سیاست به این صورت عمل می‌کند:

اقدام با مقدار Q برتر (بهره‌برداری یا Exploitation) (Superior Q-Value Action (Exploitation)):

1.استراتژی ϵ-greedy: عامل تصمیم‌گیری خود را بر اساس این استراتژی انجام می‌دهد که در بیشتر موارد به انتخاب اقدامات می‌پردازد.

2.انتخاب اقدام با بالاترین مقدار Q: در حالتی که عامل بهره‌برداری می‌کند، او عملی را انتخاب می‌کند که در حال حاضر بالاترین مقدار Q را دارد.

3.بهینه‌سازی بر اساس درک کنونی: در این حالت بهره‌برداری، عامل مسیری را انتخاب می‌کند که با توجه به درک کنونی‌اش، آن را بهینه می‌داند.

کاوش از طریق اقدام تصادفی (Exploration through Random Action):

1.احتمال ϵ: با احتمال ϵ ، عامل به‌جای انتخاب مسیری که بالاترین مقدار Q را دارد، تصمیم‌گیری می‌کند.

2.انتخاب تصادفی اقدام: در این حالت، عامل هر اقدامی را به‌صورت تصادفی انتخاب می‌کند، صرف‌نظر از مقادیر Q مربوط به آن اقدامات.

3.کاوش برای یادگیری: این انتخاب تصادفی به عامل این امکان را می‌دهد که درباره مزایای احتمالی اقدامات جدید یاد بگیرد و به نوعی کاوش کند.

Q-Learning چگونه کار می‌کند؟

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

مولفه‌های کلیدی Q-Learning عبارتند از:

1.عامل (Agents): موجودیت‌هایی که در یک محیط فعالیت می‌کنند، تصمیم‌گیری می‌کنند و اقداماتی را انجام می‌دهند.

2.وضعیت (States): متغیرهایی که موقعیت کنونی یک عامل را در محیط شناسایی می‌کنند.

3.اقدام (Actions): عملیاتی که عامل در حالت‌های خاص انجام می‌دهد.

4.پاداش (Rewards): پاسخ‌های مثبت یا منفی که بر اساس اقدامات عامل به او ارائه می‌شود.(بازخوردهایی که بعد از انجام یک عمل دریافت می‌کنیم.)

5.قسمت (Episodes): مواردی که در آن عامل فعالیت‌های خود را به پایان می‌رساند و پایان یک قسمت را مشخص می‌کند.

6.Q-Value: معیارهایی که برای ارزیابی اقدامات در حالت‌های خاص استفاده می‌شوند.

روش‌های تعیین ارزش Q  (Q-Values)

دو روش برای تعیین مقادیر Q وجود دارد:

1.تفاوت زمانی (Temporal Difference): محاسبه شده با مقایسه مقادیر حالت و اقدام کنونی با مقادیر قبلی.

2.معادله بلمن (Bellman’s Equation):

  • الگوریتم Q-Learning بر پایه‌ی معادله‌ی بلمن است که ابتدا توسط ریچارد بلمن برای محاسبه‌ی ارزش یک حالت خاص در فرآیندهای تصمیم‌گیری مارکوف (MDP) معرفی شد. این معادله بیان می‌کند که ارزش یک وضعیت، برابر است با مجموع پاداش فوری آن و ارزش تخفیف‌یافته‌ی بهترین موقعیتی که می‌توان از آن به دست آورد.
  • Q-Learning این مفهوم را گسترش داده و به ارزیابی اقدام‌های ممکن در هر وضعیت می‌پردازد، با این هدف که بهترین اقدام را برای هر وضعیت شناسایی و ارزش آن را محاسبه کند. به این ترتیب، Q-Learning به دنبال پاسخ به این سؤال است: “در هر وضعیت، کدام اقدام بیشترین ارزش را دارد و به تصمیم‌گیری بهینه منجر می‌شود؟”

فرمول معادله بلمن:

Bellman equation

توضیح بخش‌ها:

Q(s,a): مقدار Q  ارزش تخمینی ناشی از انجام اقدام a در وضعیت s

R(s,a): پاداش فوری دریافتی به خاطر انجام اقدام a  در وضعیت s.

γ: عامل تخفیف است که اهمیت پاداش‌های آینده را نشان می‌دهد. که معمولا بین 0 و 1 است.

maxqa : حداکثر مقدار Q برای حالت بعدی s′ و تمام اقدامات ممکن است.


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

 

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

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

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

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

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

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

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

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

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

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

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

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

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