A3C 原理解析

其实 A3C与前面说的 PPO 算法PPO(Proximal Policy Optimization)(一)算法原理还是比较接近的, 其实主要是增加了多 Worker 异步训练下面给出视频讲解链接:
不愧是顶会收割机!迪哥精讲强化学习4大主流算法:PPO、Q-learning、DQN、A3C 50集入门到精通!

一、 AC算法

1.1 AC原理

  • 代价函数\nabla_\theta J(\theta) \approx \sum_i \left( \sum_{t=1}^T \nabla_\theta \log \pi_\theta(\mathbf{a}_t^i | \mathbf{s}_t^i) \left( \sum_{t'=t}^T r(\mathbf{s}_{t'}^i, \mathbf{a}_{t'}^i) \right) \right)

  • 奖励函数\sum_{t'=t}^T r(\mathbf{s}_{t'}^i, \mathbf{a}_{t'}^i)

  • 引入 baseline\left( \sum_{t'=1}^T r(\mathbf{s}_{i,t'}, \mathbf{a}_{i,t'}) - b \right)并用V^{\pi}(s_t)来估计b值, 即 \left( \sum_{t'=1}^T r(\mathbf{s}_{i,t'}, \mathbf{a}_{i,t'}) - V^{\pi}(s_t) \right), 这里的 V 可以理解为老师认为你能考 100 分, 但是你只考了 80 分(Q)

  • DQN中的 Q 矩阵Q^\pi(\mathbf{s}_t, \mathbf{a}_t) = \sum_{t'=t}^T E_{\pi_\theta} \left[ r(\mathbf{s}_{t'}, \mathbf{a}_{t'}) | \mathbf{s}_t, \mathbf{a}_t \right]现在替换上面的\left( \sum_{t'=1}^T r(\mathbf{s}_{i,t'}, \mathbf{a}_{i,t'}) - V^{\pi}(s_t) \right)

根据上述结果我们可以得到优势函数A^{\pi}(s_t, a_t) = Q^{\pi}_(s_t, a_t) - V^{\pi}(s_t) , 将上述两个网络Q^{\pi}、V^{\pi}变为一个网络->A^\pi(\mathbf{s}_t, \mathbf{a}_t) \approx r(\mathbf{s}_t, \mathbf{a}_t) + V^\pi(\mathbf{s}_{t+1}) - V^\pi(\mathbf{s}_t)

1.2 AC 整体流程

  1. 获取数据: {s_i, a_i} (不断与环境交互, 通过策略\pi_{\theta}(a|s))
  2. 前向传播计算: A^\pi(\mathbf{s}_i, \mathbf{a}_i) = r(\mathbf{s}_i, \mathbf{a}_i) + V_\phi^\pi(\mathbf{s}_i') - V_\phi^\pi(\mathbf{s}_i)
  3. 计算梯度: \nabla_\theta J(\theta) \approx \sum_i \nabla_\theta \log \pi_\theta(\mathbf{a}_i | \mathbf{s}_i) A^\pi(\mathbf{s}_i, \mathbf{a}_i)
  4. 更新参数: \theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)


    下面就是用不同的 agent 多个线程在独立环境去做游戏,分别对大脑进行参数更新,但之后更新大脑一定次数之后, 大脑再将权重再分配给不同的 agent

1.3 A3C整体架构


1.4 A3C损失函数整理

  • 策略损失(Policy): - \underset{\tau \sim \pi_{\theta'}}{\mathbb{E}} \sum_{t=0}^T \log \pi_\theta(a_t | s_t) A(起决策的网络)
  • Value 网络损失:L(\theta_v) = \underset{\tau \sim \pi_\theta}{\mathbb{E}} \left[ \frac{1}{2} \sum_{t=0}^T \big(R(\tau) - V(s_t; \theta_v)\big)^2 \right] (预期与实际的差异)
  • - H(\pi_{\theta'}(a_t | s_t))(熵越大表示各种行为的可能性都能有一些, 别太绝对)
  • 整体损失函数\text{Total}_{\text{loss}} = \text{Policy}_{\text{loss}} + \alpha * \text{Value}_{\text{loss}} + \beta * \text{Entropy}_{\text{loss}}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容