強化學習算法種類豐富,可按學習目標(基于價值 / 基于策略 / 演員 - 評論家)、數據使用方式(在線 / 離線)、是否依賴環境模型(無模型 / 有模型)等維度分類。以下按核心邏輯梳理常見算法,并補充各算法的權重更新公式:
一、基于價值的算法(Value-Based)
目標是學習 “狀態 - 動作價值函數”(Q 函數),通過 Q 值指導動作選擇(如選 Q 值最大的動作)。
-
Q-Learning(表格型,1989):
經典無模型離線(Off-policy)算法,用貝爾曼方程更新 Q 表格:Q(s,a)←Q(s,a)+α[r+γmax?a′Q(s′,a′)?Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)]Q(s,a)←Q(s,a)+α[r+γmaxa′?Q(s′,a′)?Q(s,a)]
其中,α\alphaα為學習率,γ\gammaγ為折扣因子,rrr為即時獎勵,s′s's′為下一狀態。
適合狀態 / 動作空間小的場景(如網格世界)。
-
SARSA(表格型,1994):
在線(On-policy)算法,更新 Q 值時依賴實際選擇的下一個動作(而非最大 Q 值):Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)?Q(s,a)]Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s',a') - Q(s,a)]Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)?Q(s,a)]
其中,a′a'a′為實際執行的下一動作,更注重 “當前策略的一致性”,適合需要探索安全性的場景。
-
DQN(Deep Q-Network,2013):
深度強化學習里程碑,用神經網絡近似 Q 函數(深度 Q 網絡),解決高維狀態空間問題(如 Atari 游戲)。
核心改進:經驗回放(Experience Replay,打破樣本相關性)、目標網絡(Target Network,穩定訓練)。
損失函數(更新 Q 網絡權重θ\thetaθ):L(θ)=E[(r+γmax?a′Qθ?(s′,a′)?Qθ(s,a))2]L(\theta) = \mathbb{E}[(r + \gamma \max_{a'} Q_{\theta^-}(s',a') - Q_\theta(s,a))^2]L(θ)=E[(r+γmaxa′?Qθ??(s′,a′)?Qθ?(s,a))2]
權重更新:θ←θ?β?θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ?β?θ?L(θ)(β\betaβ為 Q 網絡學習率,θ?\theta^-θ?為目標網絡權重,定期從θ\thetaθ復制)。
-
Double DQN(DDQN,2015):
解決 DQN 的 “過度估計 Q 值” 問題:用當前網絡選動作,目標網絡算 Q 值,避免單一網絡既選又評的偏差。
損失函數:L(θ)=E[(r+γQθ?(s′,arg?max?a′Qθ(s′,a′))?Qθ(s,a))2]L(\theta) = \mathbb{E}[(r + \gamma Q_{\theta^-}(s', \arg\max_{a'} Q_\theta(s',a')) - Q_\theta(s,a))^2]L(θ)=E[(r+γQθ??(s′,argmaxa′?Qθ?(s′,a′))?Qθ?(s,a))2]
權重更新同 DQN。
-
Dueling DQN(2015):
將 Q 網絡拆分為 “狀態價值 V (s)” 和 “優勢函數 A (s,a)”,輸出 Q(s,a)=V(s)+A(s,a)?1∣A∣∑aA(s,a)Q(s,a) = V(s) + A(s,a) - \frac{1}{|A|}\sum_a A(s,a)Q(s,a)=V(s)+A(s,a)?∣A∣1?∑a?A(s,a)(減去均值避免歧義)。
損失函數同 DQN(用拆分后的 Q 值計算),權重更新:θ←θ?β?θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ?β?θ?L(θ)。
-
Prioritized Experience Replay(PER,2016):
改進 DQN 的經驗回放,給 “誤差大的樣本” 更高采樣優先級(如 TD 誤差δ=r+γmax?Q(s′,a′)?Q(s,a)\delta = r + \gamma \max Q(s',a') - Q(s,a)δ=r+γmaxQ(s′,a′)?Q(s,a))。
損失函數:L(θ)=∑iwi(ri+γmax?a′Qθ?(si′,a′)?Qθ(si,ai))2L(\theta) = \sum_i w_i (r_i + \gamma \max_{a'} Q_{\theta^-}(s'_i,a') - Q_\theta(s_i,a_i))^2L(θ)=∑i?wi?(ri?+γmaxa′?Qθ??(si′?,a′)?Qθ?(si?,ai?))2
其中,wi=(1N?1P(i))ηw_i = (\frac{1}{N} \cdot \frac{1}{P(i)})^\etawi?=(N1??P(i)1?)η為優先級權重(P(i)P(i)P(i)為樣本iii的優先級,η\etaη為調整因子),權重更新同 DQN。
-
Rainbow(2017):
集成 DQN 的 6 種改進(Double DQN、Dueling DQN、PER、多步回報、C51、噪聲網絡),損失函數為集成后的綜合損失,權重更新結合各組件優化邏輯。
-
分布型價值算法:
-
C51(Categorical DQN,2017):學習 Q 值的概率分布p(z∣s,a)p(z|s,a)p(z∣s,a)(zzz為離散回報值),目標分布為p′(z)=∑r+γz′=zp(r,s′∣s,a)pθ(z′∣s′,a′)p'(z) = \sum_{r + \gamma z' = z} p(r,s'|s,a) p_\theta(z'|s',a')p′(z)=∑r+γz′=z?p(r,s′∣s,a)pθ?(z′∣s′,a′)。
損失函數(交叉熵):L(θ)=?E[∑zp′(z)log?pθ(z∣s,a)]L(\theta) = -\mathbb{E}[\sum_z p'(z) \log p_\theta(z|s,a)]L(θ)=?E[∑z?p′(z)logpθ?(z∣s,a)],權重更新:θ←θ?β?θL(θ)\theta \leftarrow \theta - \beta \nabla_\theta L(\theta)θ←θ?β?θ?L(θ)。
-
QR-DQN(Quantile Regression DQN,2017):用分位數回歸估計 Q 值分布,損失函數為分位數 Huber 損失,權重更新同 C51。
二、基于策略的算法(Policy-Based)
直接學習策略函數 π(a∣s;θ)\pi(a|s;\theta)π(a∣s;θ)(動作的概率分布),通過優化策略梯度最大化累積回報,適合連續動作空間。
-
REINFORCE(1992):
蒙特卡洛策略梯度算法,用完整軌跡的回報作為梯度更新權重,公式:?θJ(θ)≈∑t=0T?θlog?πθ(at∣st)?Gt\nabla_\theta J(\theta) \approx \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t?θ?J(θ)≈∑t=0T??θ?logπθ?(at?∣st?)?Gt?
其中,Gt=∑k=tTγk?trkG_t = \sum_{k=t}^T \gamma^{k-t} r_kGt?=∑k=tT?γk?trk?為從時刻ttt開始的累積回報。
權重更新:θ←θ+α?θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α?θ?J(θ)(α\alphaα為策略學習率)。
缺點:方差大(依賴完整軌跡)。
-
Vanilla Policy Gradient(VPG,基礎策略梯度):
REINFORCE 的簡化版,用累積回報直接更新策略,是多數策略算法的基礎。
梯度公式同 REINFORCE,權重更新:θ←θ+α?θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α?θ?J(θ)。
-
TRPO(Trust Region Policy Optimization,2015):
解決策略梯度 “更新步長難控制” 的問題,通過 “信任域” 限制策略更新幅度,保證性能單調提升。
優化目標:max?θE[πθ(a∣s)πθold(a∣s)Aθold(s,a)]\max_\theta \mathbb{E}[ \frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)} A_{\theta_{old}}(s,a) ]maxθ?E[πθold??(a∣s)πθ?(a∣s)?Aθold??(s,a)],約束E[KL(πθold(?∣s),πθ(?∣s))]≤δ\mathbb{E}[ \text{KL}(\pi_{\theta_{old}}(\cdot|s), \pi_\theta(\cdot|s)) ] \leq \deltaE[KL(πθold??(?∣s),πθ?(?∣s))]≤δ(δ\deltaδ為信任域半徑)。
權重更新:通過共軛梯度法求解帶約束優化問題,更新θ\thetaθ。
-
PPO(Proximal Policy Optimization,2017):
TRPO 的簡化高效版,用 “剪輯目標函數”(Clip Objective)限制新舊策略差異,訓練穩定、實現簡單。
目標函數:LCLIP(θ)=E[min?(rt(θ)At,clip(rt(θ),1??,1+?)At)]L_{CLIP}(\theta) = \mathbb{E}[ \min(r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t) ]LCLIP?(θ)=E[min(rt?(θ)At?,clip(rt?(θ),1??,1+?)At?)]
其中,rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}rt?(θ)=πθold??(at?∣st?)πθ?(at?∣st?)?為策略比率,?\epsilon?為剪輯系數(通常取 0.2),AtA_tAt?為優勢函數。
權重更新:θ←θ+α?θLCLIP(θ)\theta \leftarrow \theta + \alpha \nabla_\theta L_{CLIP}(\theta)θ←θ+α?θ?LCLIP?(θ)(多輪小批量更新)。
-
DPG(Deterministic Policy Gradient,2014):
針對連續動作空間,學習確定性策略 a=μ(s;θ)a = \mu(s;\theta)a=μ(s;θ)(而非概率分布),梯度計算更高效。
策略梯度:?θJ(θ)=E[?θμ(s;θ)?aQ(s,a;?)∣a=μ(s;θ)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \mu(s;\theta) \nabla_a Q(s,a;\phi) |_{a=\mu(s;\theta)} ]?θ?J(θ)=E[?θ?μ(s;θ)?a?Q(s,a;?)∣a=μ(s;θ)?](?\phi?為 Q 函數權重)。
權重更新:θ←θ+α?θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α?θ?J(θ)。
三、演員 - 評論家算法(Actor-Critic,AC)
結合 “策略(Actor)” 和 “價值函數(Critic)”:Actor 負責輸出動作,Critic 評估動作好壞(用 TD 誤差替代蒙特卡洛回報),降低方差,提升效率。
- 基礎 AC:
-
Critic(V 函數,權重?\phi?)更新:L(?)=E[(Gt?V?(st))2]L(\phi) = \mathbb{E}[(G_t - V_\phi(s_t))^2]L(?)=E[(Gt??V??(st?))2],?←??β??L(?)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)?←??β???L(?)。
-
Actor(策略π\piπ,權重θ\thetaθ)更新:?θJ(θ)=E[?θlog?πθ(at∣st)(Gt?V?(st))]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \log \pi_\theta(a_t|s_t) (G_t - V_\phi(s_t)) ]?θ?J(θ)=E[?θ?logπθ?(at?∣st?)(Gt??V??(st?))],θ←θ+α?θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α?θ?J(θ)。
-
A2C(Advantage Actor-Critic,2016):
用 “優勢函數 A(s,a)=Q(s,a)?V(s)A(s,a) = Q(s,a) - V(s)A(s,a)=Q(s,a)?V(s)” 替代 Critic 的原始回報,進一步降低方差。
-
Critic(V 函數)更新:同基礎 AC,?←??β??E[(r+γV?(s′)?V?(s))2]\phi \leftarrow \phi - \beta \nabla_\phi \mathbb{E}[(r + \gamma V_\phi(s') - V_\phi(s))^2]?←??β???E[(r+γV??(s′)?V??(s))2]。
-
Actor 更新:?θJ(θ)=E[?θlog?πθ(a∣s)A(s,a)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_\theta \log \pi_\theta(a|s) A(s,a) ]?θ?J(θ)=E[?θ?logπθ?(a∣s)A(s,a)],θ←θ+α?θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α?θ?J(θ)。
-
A3C(Asynchronous Advantage Actor-Critic,2016):
A2C 的異步版本,多個線程并行探索,本地更新后同步到全局參數,更新公式同 A2C(異步執行)。
-
DDPG(Deep Deterministic Policy Gradient,2015):
結合 DQN 和 DPG,用于連續動作空間:
-
Critic(Q 網絡,權重?\phi?)更新:L(?)=E[(r+γQ??(s′,μθ?(s′))?Q?(s,a))2]L(\phi) = \mathbb{E}[(r + \gamma Q_{\phi^-}(s', \mu_{\theta^-}(s')) - Q_\phi(s,a))^2]L(?)=E[(r+γQ???(s′,μθ??(s′))?Q??(s,a))2],?←??β??L(?)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)?←??β???L(?)(??\phi^-??、θ?\theta^-θ?為目標網絡權重)。
-
Actor(策略μ\muμ,權重θ\thetaθ)更新:?θJ(θ)=E[?aQ?(s,a)∣a=μθ(s)?θμθ(s)]\nabla_\theta J(\theta) = \mathbb{E}[ \nabla_a Q_\phi(s,a) |_{a=\mu_\theta(s)} \nabla_\theta \mu_\theta(s) ]?θ?J(θ)=E[?a?Q??(s,a)∣a=μθ?(s)??θ?μθ?(s)],θ←θ+α?θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α?θ?J(θ)。
-
TD3(Twin Delayed DDPG,2018):
改進 DDPG 的 “過度估計” 問題,雙 Critic 網絡取最小值:
-
Critic 更新:L(?i)=E[(r+γmin?j=1,2Q?j?(s′,μθ?(s′))?Q?i(s,a))2]L(\phi_i) = \mathbb{E}[(r + \gamma \min_{j=1,2} Q_{\phi_j^-}(s', \mu_{\theta^-}(s')) - Q_{\phi_i}(s,a))^2]L(?i?)=E[(r+γminj=1,2?Q?j???(s′,μθ??(s′))?Q?i??(s,a))2],?i←?i?β??iL(?i)\phi_i \leftarrow \phi_i - \beta \nabla_{\phi_i} L(\phi_i)?i?←?i??β??i??L(?i?)(i=1,2i=1,2i=1,2)。
-
Actor 延遲更新(每 2 次 Critic 更新后):同 DDPG 的 Actor 更新。
-
SAC(Soft Actor-Critic,2018):
最大熵強化學習代表,目標是 “最大化累積回報 + 策略熵”:
-
Critic(雙 Q 網絡)更新:L(?i)=E[(r+γ(min?j=1,2Q?j?(s′,a′)?αlog?πθ?(a′∣s′))?Q?i(s,a))2]L(\phi_i) = \mathbb{E}[ (r + \gamma (\min_{j=1,2} Q_{\phi_j^-}(s',a') - \alpha \log \pi_{\theta^-}(a'|s')) - Q_{\phi_i}(s,a))^2 ]L(?i?)=E[(r+γ(minj=1,2?Q?j???(s′,a′)?αlogπθ??(a′∣s′))?Q?i??(s,a))2],?i←?i?β??iL(?i)\phi_i \leftarrow \phi_i - \beta \nabla_{\phi_i} L(\phi_i)?i?←?i??β??i??L(?i?)。
-
Actor 更新:?θJ(θ)=E[αlog?πθ(a∣s)?Q?1(s,a)]\nabla_\theta J(\theta) = \mathbb{E}[ \alpha \log \pi_\theta(a|s) - Q_{\phi_1}(s,a) ]?θ?J(θ)=E[αlogπθ?(a∣s)?Q?1??(s,a)](α\alphaα為溫度參數),θ←θ+α?θJ(θ)\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)θ←θ+α?θ?J(θ)。
四、基于模型的強化學習(Model-Based)
先學習環境模型(狀態轉移概率 p(s′∣s,a)p(s'|s,a)p(s′∣s,a) 和獎勵函數 r(s,a)r(s,a)r(s,a)),再用模型指導策略學習,數據效率更高。
- Dyna-Q(1991):
-
模型參數更新:用真實數據學習p^(s′∣s,a)\hat{p}(s'|s,a)p^?(s′∣s,a)和r^(s,a)\hat{r}(s,a)r^(s,a)(如最小二乘擬合)。
-
Q 值更新:結合真實經驗(同 Q-Learning)和模型生成的虛擬經驗(s′~p^(?∣s,a)s' \sim \hat{p}(\cdot|s,a)s′~p^?(?∣s,a),r=r^(s,a)r = \hat{r}(s,a)r=r^(s,a))。
- MBPO(Model-Based Policy Optimization,2019):
-
模型更新:用神經網絡擬合p(s′∣s,a)p(s'|s,a)p(s′∣s,a),損失為預測誤差L=E[∥s′?p^(s′∣s,a)∥2]L = \mathbb{E}[ \|s' - \hat{p}(s'|s,a)\|^2 ]L=E[∥s′?p^?(s′∣s,a)∥2]。
-
策略更新:用模型生成虛擬軌跡,通過 PPO 優化策略(同 PPO 公式)。
五、離線強化學習(Offine RL)
僅利用固定數據集訓練策略,解決實際場景中 “交互成本高 / 危險” 的問題。
- BCQ(Batch-Constrained Q-Learning,2018):
-
Q 網絡更新:L(?)=E(s,a,r,s′)~D[(r+γmax?a′∈A?(s′)Q??(s′,a′)?Q?(s,a))2]L(\phi) = \mathbb{E}_{(s,a,r,s') \sim D}[ (r + \gamma \max_{a' \in \mathcal{A}_\epsilon(s')} Q_{\phi^-}(s',a') - Q_\phi(s,a))^2 ]L(?)=E(s,a,r,s′)~D?[(r+γmaxa′∈A??(s′)?Q???(s′,a′)?Q??(s,a))2](A?(s′)\mathcal{A}_\epsilon(s')A??(s′)為數據集動作附近的安全動作集)。
-
權重更新:?←??β??L(?)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)?←??β???L(?)。
- CQL(Conservative Q-Learning,2020):
- Q 網絡更新:L(?)=DQN??Y¨a?¤±+λE[log?∑aexp?(Q?(s,a))?Q?(s,a)]L(\phi) = \text{DQN????¤±} + \lambda \mathbb{E}[ \log \sum_a \exp(Q_\phi(s,a)) - Q_\phi(s,a) ]L(?)=DQN??Y¨a?¤±+λE[log∑a?exp(Q??(s,a))?Q??(s,a)](第二項為保守項,壓低未見過的動作 Q 值),?←??β??L(?)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)?←??β???L(?)。
六、多智能體強化學習(MARL)
多個智能體在同一環境中交互,需考慮智能體間的協作 / 競爭關系。
- MADDPG(Multi-Agent DDPG,2017):
-
智能體iii的 Actor 更新:同 DDPG,梯度依賴全局 Critic 對聯合動作的評估。
-
全局 Critic 更新:L(?)=E[(r+γQ??(s′,a1′,...,aN′)?Q?(s,a1,...,aN))2]L(\phi) = \mathbb{E}[ (r + \gamma Q_{\phi^-}(s',a'_1,...,a'_N) - Q_\phi(s,a_1,...,a_N))^2 ]L(?)=E[(r+γQ???(s′,a1′?,...,aN′?)?Q??(s,a1?,...,aN?))2],?←??β??L(?)\phi \leftarrow \phi - \beta \nabla_\phi L(\phi)?←??β???L(?)。
-
QMIX(2018):
全局 Q 值Qtotal(s,a1,...,aN)=MIX(q1(s,a1),...,qN(s,aN);ω)Q_{total}(s,a_1,...,a_N) = \text{MIX}(q_1(s,a_1),...,q_N(s,a_N); \omega)Qtotal?(s,a1?,...,aN?)=MIX(q1?(s,a1?),...,qN?(s,aN?);ω)(MIX\text{MIX}MIX為混合網絡,ω\omegaω為權重)。
- 混合網絡更新:L(ω)=E[(r+γmax?a′Qtotal(s′,a′)?Qtotal(s,a))2]L(\omega) = \mathbb{E}[ (r + \gamma \max_{a'} Q_{total}(s',a') - Q_{total}(s,a))^2 ]L(ω)=E[(r+γmaxa′?Qtotal?(s′,a′)?Qtotal?(s,a))2],ω←ω?β?ωL(ω)\omega \leftarrow \omega - \beta \nabla_\omega L(\omega)ω←ω?β?ω?L(ω)。
其他重要算法
-
N-step TD:用 N 步回報更新,如 V 函數更新:V(st)←V(st)+α[Gt:t+n?V(st)]V(s_t) \leftarrow V(s_t) + \alpha [G_{t:t+n} - V(s_t)]V(st?)←V(st?)+α[Gt:t+n??V(st?)],其中Gt:t+n=∑k=tt+n?1γk?trk+γnV(st+n)G_{t:t+n} = \sum_{k=t}^{t+n-1} \gamma^{k-t} r_k + \gamma^n V(s_{t+n})Gt:t+n?=∑k=tt+n?1?γk?trk?+γnV(st+n?)。
-
H-DQN(分層):高層策略選子目標,低層策略更新同 DQN,高層策略梯度依賴低層目標達成的回報。
這些算法的權重更新公式體現了各自的優化邏輯,從簡單的表格更新到深度網絡的梯度下降,從單步更新到多步規劃,共同推動強化學習在復雜場景中的應用。
(注:文檔部分內容可能由 AI 生成)