چیت‌شیت

روش‌های مبتنی بر ارزش در برابر روش‌های مبتنی بر سیاست

Value Methods against Policy Methods

مقایسه شانه به شانه‌ی Q-learning، SARSA، DQN، REINFORCE، A2C و PPO. تارگت‌ها، مقادیر پیش‌فرض، عیب‌یابی و راه‌حل‌ها.

  • ۱۲ بخش
  • ۵ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. مقایسه شانه به شانه‌ی چهار روش
  2. چه زمانی استفاده شود
  3. حلقه آموزش DQN
  4. حلقه آموزش PPO
  5. بخش ارزش: تارگت‌های تفاضل زمانی (TD)
  6. بخش سیاست: گرادیان، GAE، برش
  7. وظایف در قالب کد
  8. فرمول‌های کلیدی
  9. مقادیر پیش‌فرض
  10. عیب‌یابی
  11. اختصارات
  12. پرسش‌ها

مقایسه شانه به شانه‌ی چهار روش

مقایسه
فاکتورQ-learning، SARSADQNREINFORCEA2C، PPO
یادگیریجدول Qتابع عصبی $Q(s, a; \theta)$سیاست $\pi_\theta(a \mid s)$بازیگر $\pi_\theta$ به علاوه ناقد $V_\phi(s)$
انتخاب اکشن‌هااستراتژی ε-greedy روی Qاستراتژی ε-greedy روی Qنمونه‌گیری از $\pi_\theta$نمونه‌گیری از $\pi_\theta$
داده‌هاالگوریتم Q-learning برون‌سیاست، SARSA هم‌سیاستبرون‌سیاست، بافر بازپخشهم‌سیاست، یک به‌روزرسانیالگوریتم A2C یک به‌روزرسانی، PPO به تعداد K دوره (epoch)
تارگت$r + \gamma \max_{a'} Q(s', a')$همان، از شبکه هدف $\theta^-$بازده $G_t$مزیت GAE
سوگیری و واریانسسوگیری ناشی از بوت‌استرپ، واریانس پایینسوگیری بیشینه‌سازی روبه‌بالابدون سوگیری، واریانس بالاسوگیری ناشی از ناقد، واریانس بسیار پایین‌تر
اکشن‌های پیوستهخیرخیر، ارجاع به SAC یا TD3بله، سیاست گاوسیبله، سیاست گاوسی
محیط ساده‌ی GridWorldحدود 2000 اپیزودحدود 500 اپیزودحدود 500 اپیزود همراه با خط مبناالگوریتم PPO با ε برابر 0.2، دوره‌ی K برابر 4

چه زمانی استفاده شود

نکته‌ها
  • الگوریتم Q-learning: محیط‌های کوچک جدولی. سیاست بهینه را مستقیماً یاد می‌گیرد.
  • الگوریتم SARSA یا Expected SARSA: وظایف حساس به ایمنی و هم‌سیاست. در طول اکتشاف محافظه‌کار می‌مانند.
  • الگوریتم DQN: فضای حالت با ابعاد بالا و اکشن‌های گسسته. الگوریتم مرجع برون‌سیاست است.
  • الگوریتم REINFORCE: کانسپت آن را بخوانید، به‌ندرت اجرا کنید. loss = -advantage * log_prob همان REINFORCE با خط مبنا است.
  • الگوریتم A2C: محیط‌های موازی دسته‌ای روی GPU. در سال 2026 نسخه‌ی مبتنی بر GPU الگوریتم A2C کاملاً بر A3C برتری دارد.
  • الگوریتم PPO: گزینه‌ی پیش‌فرض برای MuJoCo، Atari و RLHF در LLMها.
  • الگوریتم SAC یا TD3: کنترل پیوسته. الگوریتم DQN فاقد شبکه سیاست است.
  • الگوریتم GRPO: مدل‌های زبانی استدلال‌گر. یک نسخه‌ی PPO بدون ناقد است.

حلقه آموزش DQN

معماری
گذارهامینی‌دسته 32 تاییاکشن ε-greedyy = r + γ maxq[a]کلون‌کردن هر 200 گام یک‌بارمحیطمحیط GridWorld با ابعاد 4x4بافر بازپخشظرفیت 2000شبکه آنلاینوزن‌های thetaشبکه هدفکپی منجمدتابع train_stepمربع خطای تفاضل زمانی

حلقه آموزش PPO

گام‌به‌گام
  1. مسیر پیش‌روی شبیه‌سازی‌شدهجمع‌آوری N × T گذار در میان N محیط موازی.
  2. اسنپ‌شاتذخیره مقدار log_pi_old برای هر اکشن در زمان rollout.
  3. مزیت GAEمحاسبه مزیت‌ها، انجماد آن‌ها، نرمال‌سازی در هر دسته.
  4. دوره‌ها (Epochs)بازچینی بافر به مینی‌دسته‌ها به مدت K دوره.
  5. نسبت اهمیتمحاسبه‌ی ratio = exp(logp - rec["log_pi_old"]).
  6. برشنمونه‌های فراتر از 1 ± ε در جهت سودمند، گرادیان صفر دریافت می‌کنند.
  7. توابع زیان (loss)افزودن MSE ارزش و پاداش آنتروپی. اجرای گام گرادیان.
  8. دور انداختنحذف rollout قبلی و جمع‌آوری یک نمونه جدید.

بخش ارزش: تارگت‌های تفاضل زمانی (TD)

کد
python
a = epsilon_greedy(Q, s, rng, epsilon)  # اکشن رفتاری
s_next, r, done = step(s, a)
best_next = max(Q[s_next].values())     # الگوریتم Q-learning: بیشینه‌ی حریصانه
target = r + gamma * best_next
a_next = epsilon_greedy(Q, s_next, rng, epsilon)
target = r + gamma * Q[s_next][a_next]  # الگوریتم SARSA: اکشن بعدی انجام‌شده
Q[s][a] += alpha * (target - Q[s][a])   # به‌روزرسانی تفاضل زمانی یکسان برای هر دو
Q[s][a] += alpha * (r - Q[s][a])        # گام پایانی، بدون بوت‌استرپ

بخش سیاست: گرادیان، GAE، برش

کد
python
G = r + gamma * G                                     # پاداش باقی‌مانده، پیمایش معکوس
grad = (1.0 if i == a else 0.0) - probs[i]            # بردار one-hot منهای احتمال‌ها
theta[i][j] += lr * adv * grad * x[j]                 # صعود گرادیان REINFORCE
delta = traj[t]["r"] + gamma * next_v - traj[t]["v"]  # خطای تفاضل زمانی
gae = delta + gamma * lam * gae                       # الگوریتم GAE با lam=0.95
ratio = math.exp(logp - rec["log_pi_old"])            # نسبت اهمیت PPO
clipped = (adv > 0 and ratio > 1 + eps) or (adv < 0 and ratio < 1 - eps)
pg_scale = 0.0                                        # نمونه‌ی برش‌خورده، گرادیان صفر

وظایف در قالب کد

کار و کد
وظیفهکد
الگوریتم SARSA جدولیsarsa(episodes, alpha=0.1, gamma=0.99)
الگوریتم Q-learning جدولیq_learning(episodes, alpha=0.1, gamma=0.99)
یک گام گرادیان DQNtrain_step(online, target, mb, gamma, lr)
همگام‌سازی شبکه هدفtarget = clone(online)
الگوریتم REINFORCE با خط مبناreinforce(episodes, use_baseline=True)
مزیت‌های GAEgae_advantages(traj, gamma=0.99, lam=0.95)
آموزش A2Cactor_critic(episodes, lam=0.95)
به‌روزرسانی PPO همراه با عیب‌یابیmean_kl, clip_frac = ppo_update(...)

فرمول‌های کلیدی

مفهوم‌ها
خطای تفاضل زمانی
$\delta = r + \gamma V(s') - V(s)$
تارگت SARSA
$r + \gamma Q(s', a')$ با اکشن انجام‌شده‌ی بعدی.
تابع زیان DQN
$(r + \gamma \max_{a'} Q(s', a'; \theta^-) - Q(s, a; \theta))^2$
الگوریتم Double DQN
$r + \gamma Q(s', \arg\max_{a'} Q(s', a'; \theta); \theta^-)$
گرادیان سیاست
$\nabla J = \mathbb{E}[G_t \nabla_\theta \log \pi_\theta(a_t \mid s_t)]$
مزیت
$A = G - \hat{V}(s)$. امید ریاضی یکسان، واریانس کمتر.
الگوریتم GAE
$A_t = \sum_l (\gamma \lambda)^l \delta_{t+l}$. مقدار λ برابر 0 یعنی TD، مقدار λ برابر 1 یعنی مونت‌کارلو.
برش PPO
$\min(r_t A_t, \mathrm{clip}(r_t, 1-\epsilon, 1+\epsilon) A_t)$

مقادیر پیش‌فرض

پیش‌فرض‌ها
تنظیمپیش‌فرضیادداشت
Tabular α and ε0.1تثبیت α در بازه [0.05, 0.3]
Discount γ0.99پیش‌فرض در کد درس
DQN target sync10,000گام‌های محیط Atari
GAE λ0.95پیش‌فرض سال 2026
Value weight `c_v`0.5الگوریتم A2C و PPO
Entropy weight `c_e`0.01الگوریتم A2C و PPO
PPO clip ε0.20.1 بسیار محتاطانه، 0.3 به بالا ناپایدار است
PPO epochs K10مینی‌دسته‌های 64 تایی

عیب‌یابی

عیب‌یابی
  • بیش‌برآورد مقادیر Q

    علت
    تابع max روی Q نویزی سوگیری روبه‌بالا دارد
    راه‌حل
    الگوریتم Double DQN یا Double Q-learning
  • واگرایی DQN

    علت
    سه‌گانه‌ی مرگبار
    راه‌حل
    حفظ شبکه هدف و بافر بازپخش
  • بیش‌برازش زودهنگام DQN

    علت
    محاسبه گرادیان روی حدود 20 نمونه
    راه‌حل
    صبر کردن برای جمع‌آوری چند هزار گذار
  • توقف اکتشاف در سیاست

    علت
    فروپاشی آنتروپی
    راه‌حل
    پاداش آنتروپی، مقدار c_e بالاتر از 0
  • انفجار گرادیان سیاست

    علت
    بازده‌های بسیار بزرگ
    راه‌حل
    نرمال‌سازی G به حدود N(0, 1) در هر دسته
  • یادگیری نویز توسط بازیگر

    علت
    ناقد هنوز تصادفی است
    راه‌حل
    گرم‌کردن اولیه ناقد، کاهش نرخ یادگیری بازیگر
  • میانگین دیورژانس KL در PPO فراتر از 0.1

    علت
    دوره‌های بسیار زیاد یا نرخ یادگیری بالا
    راه‌حل
    کاهش K_EPOCHS یا LR
  • کسر برش نزدیک به 0

    علت
    برش هرگز فعال نمی‌شود
    راه‌حل
    افزایش LR یا K_EPOCHS

اختصارات

اصطلاح‌ها
TD
تفاضل زمانی. به‌روزرسانی پس از هر گام بر اساس تارگت بوت‌استرپ‌شده.
SARSA
تاپل (s, a, r, s', a'). تفاضل زمانی هم‌سیاست.
GLIE
حریصانه در بی‌نهایت همراه با اکتشاف نامحدود. شرط ε.
DQN
یادگیری Q با یک شبکه عصبی Q، بافر بازپخش و شبکه هدف.
GAE
تخمین تعمیم‌یافته مزیت. مجموع وزن‌دار مزیت‌های چندگامی.
A2C, A3C
بازیگر-نقاد همگام دسته‌ای، یا ناهمگام چندنخی.
TRPO
بهینه‌سازی سیاست در ناحیه اعتماد. قید KL، گرادیان‌های مزدوج.
PPO
بهینه‌سازی سیاست نزدیک. نسبت اهمیت برش‌خورده.

پرسش‌ها

پرسش و پاسخ
چرا Q-learning برون‌سیاست است؟
عملگر max سیاست حریصانه را فرض می‌گیرد، بدون توجه به اکشنی که ایجنت انجام می‌دهد.
چرا SARSA روی لبه‌ی پرتگاه ایمن‌تر است؟
نویز ناشی از اکتشاف را درون مقادیر Q خود لحاظ می‌کند.
چرا روش‌های مبتنی بر ارزش در اکشن‌های پیوسته ضعیف هستند؟
محاسبه argmax روی گشتاورهای 10 بعدی بسیار دشوار است.
چرا خط مبنا بدون سوگیری است؟
امید ریاضی خط مبنا ضربدر گرادیان لگاریتمی سیاست برابر 0 است.
چرا PPO می‌تواند یک rollout را بازاستفاده کند؟
برش مانع از ادامه به‌روزرسانی در صورت دریفت بیش از حد سیاست می‌شود.
رایج‌ترین باگ در PPO چیست؟
معکوس شدن علامت. باید منفی تابع جایگزین برش‌خورده را کمینه‌سازی کنید.