【深度强化学习 DRL 快速实践】异步优势演员评论员算法 (A3C)
Asynchronous Advantage Actor-Critic A3C (2016, DeepMind)
异步优势演员评论员算法 (A3C): 继承 actor-critic 的优势,同时通过异步多线程 (团队作战) 加速了训练过程
- model-free, actor-critic
核心改进点 | 说明 |
---|---|
异步并行训练 – Asynchronous (无经验回放) | 通过多个异步 agent 并行采样,打破数据相关性,提升训练效率 ; 并异步更新共享的全局网络,减少了训练过程中的延迟和等待 |
优势函数 – Advantage | 通过计算 A ( s t , a t ) = R t − V ( s t ; θ v ) A(s_t, a_t) = R_t - V(s_t; \theta_v) A(st,at)=Rt−V(st;θv) 来减小策略梯度的方差 |
熵正则化项(Entropy Regularization) | 引入熵正则项 H ( π ) H(\pi) H(π),鼓励策略网络保持多样性,增强探索性,避免过早收敛到局部最优 |
A3C 网络更新
Critic 网络更新: θ v \theta^v θv
Critic 通过最小化价值函数的损失来学习 (不熟悉 TD 的先看专栏下对应的那篇~):
L value = ( r t + γ V ( s t + 1 ) − V ( s t ) ) 2 L_{\text{value}} = ( r_t + \gamma V(s_{t+1})- V(s_t))^2 Lvalue=(rt+γV(st+1)−V(st))2
Actor 网络更新: θ μ \theta^\mu θμ
Actor 通过最大化期望回报来更新,使用 Advantage 来减少 PG 的方差 (不熟悉 policy gradient 的先看专栏下对应的那篇~):
L policy = − log π ( a t ∣ s t ) A ( s t , a t ) L_{\text{policy}} = - \log \pi(a_t | s_t) A(s_t, a_t) Lpolicy=−logπ(at∣st)A(st,at)
其中 Advantage A ( s t , a t ) A(s_t, a_t) A(st,at) 可以估计为:
A ( s t , a t ) = r t + γ V ( s t + 1 ) − V ( s t ) A(s_t, a_t) = r_t + \gamma V(s_{t+1})- V(s_t) A(st,at)=rt+γV(st+1)−V(st)
总的损失函数
通常,A3C 的总损失函数包含三部分:
- 策略损失(Policy Loss)
- 价值损失(Value Loss)
- 熵正则化项(Entropy Loss,用来增加探索性)
完整的目标函数为:
L = L policy + c 1 L value − c 2 H ( π ( s t ) ) L = L_{\text{policy}} + c_1 L_{\text{value}} - c_2 H(\pi(s_t)) L=Lpolicy+c1Lvalue−c2H(π(st))
其中:
- H ( π ) H(\pi) H(π) 是策略的熵,鼓励策略探索
- c 1 , c 2 c_1, c_2 c1,c2 是权重系数
参考资料:A3C详解