چیتشیت
روشهای مبتنی بر ارزش در برابر روشهای مبتنی بر سیاست
Value Methods against Policy Methods
مقایسه شانه به شانهی Q-learning، SARSA، DQN، REINFORCE، A2C و PPO. تارگتها، مقادیر پیشفرض، عیبیابی و راهحلها.
فهرست مطالب
مقایسه شانه به شانهی چهار روش
مقایسه| فاکتور | Q-learning، SARSA | DQN | REINFORCE | A2C، 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
معماریحلقه آموزش PPO
گامبهگام- مسیر پیشروی شبیهسازیشدهجمعآوری N × T گذار در میان N محیط موازی.
- اسنپشاتذخیره مقدار
log_pi_oldبرای هر اکشن در زمان rollout. - مزیت GAEمحاسبه مزیتها، انجماد آنها، نرمالسازی در هر دسته.
- دورهها (Epochs)بازچینی بافر به مینیدستهها به مدت K دوره.
- نسبت اهمیتمحاسبهی
ratio = exp(logp - rec["log_pi_old"]). - برشنمونههای فراتر از 1 ± ε در جهت سودمند، گرادیان صفر دریافت میکنند.
- توابع زیان (loss)افزودن MSE ارزش و پاداش آنتروپی. اجرای گام گرادیان.
- دور انداختنحذف 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) |
| یک گام گرادیان DQN | train_step(online, target, mb, gamma, lr) |
| همگامسازی شبکه هدف | target = clone(online) |
| الگوریتم REINFORCE با خط مبنا | reinforce(episodes, use_baseline=True) |
| مزیتهای GAE | gae_advantages(traj, gamma=0.99, lam=0.95) |
| آموزش A2C | actor_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 sync | 10,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.2 | 0.1 بسیار محتاطانه، 0.3 به بالا ناپایدار است |
PPO epochs K | 10 | مینیدستههای 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 چیست؟
- معکوس شدن علامت. باید منفی تابع جایگزین برشخورده را کمینهسازی کنید.