关于深度学习:强化学习从基础到进阶常见问题和面试必知必答6演员评论员算法异步A2C与生成对抗网络的联系等详解

104次阅读

共计 4024 个字符,预计需要花费 11 分钟才能阅读完成。

强化学习从根底到进阶 - 常见问题和面试必知必答 [6]:演员 - 评论员算法(advantage actor-critic,A2C),异步 A2C、与生成反抗网络的分割等详解

1. 外围词汇

  • 劣势演员 - 评论员(advantage actor-critic,A2C)算法 :一种改良的演员 - 评论员(actor-critic)算法。
  • 异步劣势演员 - 评论员(asynchronous advantage actor-critic,A3C)算法 :一种改良的演员 - 评论员算法,通过异步的操作,实现强化学习模型训练的减速。
  • 门路衍生策略梯度(pathwise derivative policy gradient):一种应用 Q 学习来求解间断动作的算法,也是一种演员 - 评论员算法。其会对演员提供价值最大的动作,而不仅仅是提供某一个动作的好坏水平。

2. 常见问题汇总

2.1 残缺的劣势演员 - 评论员算法的工作流程是怎么的?

在传统的办法中,咱们有一个策略 $\pi$ 以及一个初始的演员与环境交互、收集数据以及反馈。通过每一步失去的反馈,咱们进一步更新咱们的策略 $\pi$,通常咱们应用的更新形式是策略梯度。然而对于演员 - 评论员算法,咱们不是间接应用每一步失去的数据和反馈进行策略 $\pi$ 的更新,而是应用这些数据和反馈进行价值函数的预计,这里咱们通常应用的算法包含时序差分和蒙特卡洛等算法以及基于它们的优化算法。接下来咱们再基于价值函数来更新策略,公式如下:

$$
\nabla \bar{R}_{\theta} \approx \frac{1}{N} \sum_{n=1}^{N} \sum_{t=1}^{T_{n}}\left(r_{t}^{n}+V_{\pi}\left(s_{t+1}^{n}\right)-V_{\pi}\left(s_{t}^{n}\right)\right) \nabla \log p_{\theta}\left(a_{t}^{n} \mid s_{t}^{n}\right)
$$

其中 $r_{t}^{n}+V_{\pi}\left(s_{t+1}^{n}\right)-V_{\pi}\left(s_{t}^{n}\right)$ 为劣势函数。咱们通过以上办法失去新的策略后,再与环境交互,而后反复预估价值函数的操作,用价值函数来更新咱们的策略。以上的整个办法咱们称为劣势演员 - 评论员算法。

2.2 在实现演员 - 评论员算法的时候有哪些技巧?

(1)预估两个网络:一个是价值网络;另外一个是策略网络。价值网络的输出是一个状态,输入是一个标签;策略网络的输出是一个状态,输入是一个动作的散布。这两个网络中,演员和评论员的输出都是状态,所以它们后面几层是能够共享的。例如,玩雅达利游戏时,输出都是图片。输出的图片都非常复杂,且比拟大,通常后期咱们都会用一些卷积神经网络来解决这些图片,把图片形象成深层次的特色,这些网络对演员与评论员网络来说是能够共用的。咱们能够让演员与评论员的后面几层共用同一组参数,这一组参数可能是卷积神经网络中的参数。先把输出的像素变成比拟高维度的特色信息,而后输出演员网络决定要采取什么样的动作,评论员网络应用价值函数计算冀望处分。

(2)摸索机制:其目标是对策略 $\pi$ 的输入散布进行限度,从而使得散布的熵不要太小,即心愿不同的动作被采纳的概率均匀一些。这样在测试的时候,智能体才会多尝试各种不同的动作,才会对环境进行充沛摸索,从而失去比拟好的后果。

2.3 异步劣势演员 - 评论员算法在训练时有很多的过程进行异步的工作,最初再将他们所取得的“后果”汇合到一起。那么其具体是如何运作的呢?

异步劣势演员 - 评论员算法,即算法一开始会有一个全局网络,其蕴含策略局部和价值局部。假如它的参数是 $\theta_1$,假如对于每一个演员都用一个 CPU 训练,每一个演员工作前都会将全局网络的参数复制进来。而后演员与环境进行交互,每一个演员与环境交互后,都会计算出梯度并且更新全局网络的参数。这里要留神的是,所有的演员都是并行运行的。所以每个演员都是在全局网络复制了参数当前,执行完再把参数传回去。所以当第一个演员执行完想要把参数传回去的时候,原本它要的参数是 $\theta_1$,等它把梯度传回去的时候,可能原来的参数曾经被笼罩,变成 $\theta_2$ 了。

2.4 比照经典的 Q 学习算法,门路衍生策略梯度有哪些改良之处?

(1)把 $Q(s,a)$ 换成了 $\pi$。经典的 Q 学习算法是用 $Q(s,a)$ 来决定在状态 $s_t$ 产生哪一个动作 $a_{t}$,门路衍生策略梯度是间接用 $\pi$ 来决定。面对前者,咱们须要解决最大值的问题,当初的门路衍生策略梯度间接训练了一个演员网络。其输出状态 $s_t$ 就会通知咱们应该采取哪一个动作 $a_{t}$。综上,经典的 Q 学习算法输出状态 $s_t$,采取哪一个动作 $a_t$ 是 $Q(s,a)$ 决定的,在门路衍生策略梯度外面,咱们会间接用 $\pi$ 来决定。

(2)经典的 Q 学习算法计算在 $s_{i+1}$ 下对应的策略采取的动作 $a$ 失去的 Q 值,咱们会采取让 $\hat{Q}$ 最大的动作 $a$。当初的门路衍生策略梯度因为咱们不须要再求解决最大化的问题,所以咱们间接把状态 $s_{i+1}$ 代入策略 $\pi$ 中,就会失去在状态 $s_{i+1}$ 下,哪一个动作会带给咱们最大的 Q 值,就执行这个动作。在 Q 函数中,有两个 Q 网络,一个是真正的 Q 网络,另外一个是指标 Q 网络。实际上在执行时,也会有两个演员网络,一个真正要学习的演员网络 $\pi$ 和一个指标演员网络 $\hat{\pi}$。

(3)经典的 Q 学习算法只须要学习 Q 函数,门路衍生策略梯度须要多学习一个策略 $\pi$,其目标在于最大化 Q 函数,心愿失去的演员能够让 Q 函数的输入尽可能的大,这与生成反抗网络外面的生成器的概念相似。

(4)与原来的 Q 函数一样,咱们要把指标 Q 网络取代掉,门路衍生策略梯度中也要把指标策略取代掉。

3. 面试必知必答

3.1 友善的面试官:请简述一下异步劣势演员 - 评论员算法(A3C),另外 A3C 是同策略还是异策略的模型呀?

A3C 是异步劣势演员 - 评论员算法,其中,评论员学习价值函数,同时有多个演员并行训练并且不断与全局参数同步。A3C 旨在并行训练,是同策略算法。

3.2 友善的面试官:请问演员 - 评论员算法有何长处呢?

(1)相比以价值函数为核心的算法,演员 - 评论员算法利用了策略梯度的技巧,这能让它在间断动作或者高维动作空间中选取适合的动作,而 Q 学习做这件事会很艰难。

(2)相比单纯策略梯度,演员 - 评论员算法利用了 Q 学习或其余策略评估的做法,使得演员 - 评论员算法能进行单步更新而不是回合更新,比单纯的策略梯度的效率要高。

3.3 友善的面试官:请问异步劣势演员 - 评论员算法具体是如何异步更新的?

上面是异步劣势演员 - 评论员算法的纲要,因为其为异步多线程算法,咱们只对其中某一单线程进行剖析。

(1)定义全局参数 $\theta$ 和 $w$ 以及特定线程参数 $\theta’$ 和 $w’$。

(2)初始化工夫步 $t=1$。

(3)当 $T \leqslant T_{\mathrm{max}}$:

  • 重置梯度:$\mathrm{d} \theta = 0$ 并且 $\mathrm{d}w = 0$。
  • 将特定于线程的参数与全局参数同步:$\theta’ = \theta$ 以及 $w’=w$。
  • 令 $t_{\mathrm{start}} =t$ 并且随机采样一个初始状态 $s_t$。
  • 当($s_t!=$ 终止状态)并且 $t−t_{\mathrm{start}} \leqslant t_{\mathrm{max}}$。

    • 依据以后线程的策略抉择以后执行的动作 $a_t\sim\pi_{\theta’}(a_t|s_t)$,执行动作后接管处分 $r_t$ 而后转移到下一个状态 $s_{t+1}$。
    • 更新 $t$ 以及 $T$:$t=t+1$ 并且 $T=T+1$。
  • 初始化保留累积处分估计值的变量。
  • 对于 $i=t_1, \dots ,t_{\mathrm{start}}$:

    • $r \gets \gamma r+r_i$;这里的 $r$ 是 $G_i$ 的蒙特卡洛预计。
    • 累积对于参数 $\theta’$ 的梯度:$\mathrm{d} \theta \gets \mathrm{d}\theta + \nabla_{\theta’} \mathrm{log} \pi_{\theta’}(a_i|s_i)(r−V_{w’}(s_i))$。
    • 累积对于参数 $w’$ 的梯度:$\mathrm{d}w \gets \mathrm{d}w+ \mathrm{\partial} (r-V_{w’}(s_i))^2 / \mathrm{\partial} w’$。
  • 别离应用 $\mathrm{d}\theta$ 以及 $\mathrm{d}w$ 异步更新 $\theta$ 以及 $w$。

3.4 友善的面试官:演员 - 评论员算法中,演员和评论员两者的区别是什么?

演员是策略模块,输入动作;评论员是判断器,用来计算价值函数。

3.5 友善的面试官:演员 - 评论员算法框架中的评论员起了什么作用?

评论员掂量以后决策的好坏。联合策略模块,当评论员判断某个动作的抉择是无益的时候,策略就更新参数以增大该动作呈现的概率,反之减小该动作呈现的概率。

3.6 友善的面试官:简述异步劣势演员 - 评论员算法的劣势函数。

劣势函数的计算公式为 $A(s,a)=Q(s,a)-V(s)=r+\gamma V(s’)-V(s)$,其能够定量地示意抉择动作 $a$ 的劣势。即当动作 $a$ 低于价值函数的平均值的时候,劣势函数为负值;反之为正值。其是一个标量,具体来说:

(1)如果 $A(s,a)>0$,梯度被推向正方向;

(2)如果 $A(s,a)<0$,即咱们的动作比该状态下的平均值还差,则梯度被推向反方向。

这样就须要两个价值函数,所以能够应用时序差分办法做误差预计:$A(s,a)=r+\gamma V(s’)-V(s)$。

更多优质内容请关注公号:汀丶人工智能

正文完
 0