强化学习常见面试题:演员-评论员算法(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 完整的优势演员-评论员算法的工作流程是怎样的?

在传统的方法中,我们有一个策略 p i \\pi pi 以及一个初始的演员与环境交互、收集数据以及反馈。通过每一步得到的反馈,我们进一步更新我们的策略 p i \\pi pi ,通常我们使用的更新方式是策略梯度。但是对于演员-评论员算法,我们不是直接使用每一步得到的数据和反馈进行策略 p i \\pi pi 的更新,而是使用这些数据和反馈进行价值函数的估计,这里我们通常使用的算法包括时序差分和蒙特卡洛等算法以及基于它们的优化算法。接下来我们再基于价值函数来更新策略,公式如下:

KaTeX parse error: Expected group after '_' at position 58: …rac{1}{N} \\sum_̲^{N} \\sum\_{t=…

其中 r _ t n + V _ p i l e f t ( s _ t + 1 r i g h t ) − V _ p i l e f t ( s _ t n r i g h t ) r\_{t}{n}+V\_{\\pi}\\left(s\_{t+1}\\right)-V\_{\\pi}\\left(s\_{t}^{n}\\right) r_tn+V_pileft(s_t+1right)V_pileft(s_tnright) 为优势函数。我们通过以上方法得到新的策略后,再与环境交互,然后重复预估价值函数的操作,用价值函数来更新我们的策略。以上的整个方法我们称为优势演员-评论员算法。

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

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

(2)探索机制:其目的是对策略 p i \\pi pi 的输出分布进行限制,从而使得分布的熵不要太小,即希望不同的动作被采用的概率平均一些。这样在测试的时候,智能体才会多尝试各种不同的动作,才会对环境进行充分探索,从而得到比较好的结果。

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

异步优势演员-评论员算法,即算法一开始会有一个全局网络,其包含策略部分和价值部分。假设它的参数是 t h e t a _ 1 \\theta\_1 theta_1,假设对于每一个演员都用一个CPU训练,每一个演员工作前都会将全局网络的参数复制进来。然后演员与环境进行交互,每一个演员与环境交互后,都会计算出梯度并且更新全局网络的参数。这里要注意的是,所有的演员都是并行运行的。所以每个演员都是在全局网络复制了参数以后,执行完再把参数传回去。所以当第一个演员执行完想要把参数传回去的时候,本来它要的参数是 t h e t a _ 1 \\theta\_1 theta_1,等它把梯度传回去的时候,可能原来的参数已经被覆盖,变成 t h e t a _ 2 \\theta\_2 theta_2 了。

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

(1)把 Q ( s , a ) Q(s,a) Q(s,a) 换成了 p i \\pi pi。经典的Q学习算法是用 Q ( s , a ) Q(s,a) Q(s,a) 来决定在状态 s _ t s\_t s_t 产生哪一个动作 a _ t a\_{t} a_t ,路径衍生策略梯度是直接用 p i \\pi pi 来决定。面对前者,我们需要解决最大值的问题,现在的路径衍生策略梯度直接训练了一个演员网络。其输入状态 s _ t s\_t s_t 就会告诉我们应该采取哪一个动作 a _ t a\_{t} a_t。综上,经典的Q学习算法输入状态 s _ t s\_t s_t,采取哪一个动作 a _ t a\_t a_t Q ( s , a ) Q(s,a) Q(s,a) 决定的,在路径衍生策略梯度里面,我们会直接用 p i \\pi pi 来决定。

(2)经典的Q学习算法计算在 s _ i + 1 s\_{i+1} s_i+1 下对应的策略采取的动作 a a a 得到的Q值,我们会采取让 h a t Q \\hat{Q} hatQ 最大的动作 a a a。现在的路径衍生策略梯度因为我们不需要再求解决最大化的问题,所以我们直接把状态 s _ i + 1 s\_{i+1} s_i+1 代入策略 p i \\pi pi 中,就会得到在状态 s _ i + 1 s\_{i+1} s_i+1 下,哪一个动作会带给我们最大的Q值,就执行这个动作。在Q函数中,有两个Q网络,一个是真正的Q网络,另外一个是目标Q网络。实际上在执行时,也会有两个演员网络,一个真正要学习的演员网络 p i \\pi pi 和一个目标演员网络 h a t p i \\hat{\\pi} hatpi

(3)经典的Q学习算法只需要学习Q函数,路径衍生策略梯度需要多学习一个策略 p i \\pi pi,其目的在于最大化Q函数,希望得到的演员可以让Q函数的输出尽可能的大,这与生成对抗网络里面的生成器的概念类似。

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

3.面试必知必答

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

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

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

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

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

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

下面是异步优势演员-评论员算法的大纲,由于其为异步多线程算法,我们只对其中某一单线程进行分析。

(1)定义全局参数 t h e t a \\theta theta w w w 以及特定线程参数 t h e t a ′ \\theta' theta w ′ w' w

(2)初始化时间步 t = 1 t=1 t=1

(3)当 T l e q s l a n t T _ m a t h r m m a x T \\leqslant T\_{\\mathrm{max}} TleqslantT_mathrmmax:

  • 重置梯度: m a t h r m d t h e t a = 0 \\mathrm{d} \\theta = 0 mathrmdtheta=0 并且 m a t h r m d w = 0 \\mathrm{d}w = 0 mathrmdw=0

  • 将特定于线程的参数与全局参数同步: t h e t a ′ = t h e t a \\theta' = \\theta theta=theta 以及 w ′ = w w'=w w=w

  • t _ m a t h r m s t a r t = t t\_{\\mathrm{start}} =t t_mathrmstart=t 并且随机采样一个初始状态 s _ t s\_t s_t

  • 当 ( s _ t ! = s\_t!= s_t!= 终止状态)并且 t − t _ m a t h r m s t a r t l e q s l a n t t _ m a t h r m m a x t−t\_{\\mathrm{start}} \\leqslant t\_{\\mathrm{max}} tt_mathrmstartleqslantt_mathrmmax

    • 根据当前线程的策略选择当前执行的动作 a _ t s i m p i _ t h e t a ′ ( a _ t ∣ s _ t ) a\_t\\sim\\pi\_{\\theta'}(a\_t|s\_t) a_tsimpi_theta(a_ts_t),执行动作后接收奖励 r _ t r\_t r_t 然后转移到下一个状态 s _ t + 1 s\_{t+1} s_t+1
    • 更新 t t t 以及 T T T t = t + 1 t=t+1 t=t+1 并且 T = T + 1 T=T+1 T=T+1
  • 初始化保存累积奖励估计值的变量。

  • 对于 i = t _ 1 , d o t s , t _ m a t h r m s t a r t i=t\_1, \\dots ,t\_{\\mathrm{start}} i=t_1,dots,t_mathrmstart:

    • r g e t s g a m m a r + r _ i r \\gets \\gamma r+r\_i rgetsgammar+r_i;这里的 r r r G _ i G\_i G_i 的蒙特卡洛估计。
    • 累积关于参数 t h e t a ′ \\theta' theta 的梯度: m a t h r m d t h e t a g e t s m a t h r m d t h e t a + n a b l a _ t h e t a ′ m a t h r m l o g p i _ t h e t a ′ ( a _ i ∣ s _ i ) ( r − V _ w ′ ( s _ i ) ) \\mathrm{d} \\theta \\gets \\mathrm{d}\\theta + \\nabla\_{\\theta'} \\mathrm{log} \\pi\_{\\theta'}(a\_i|s\_i)(r−V\_{w'}(s\_i)) mathrmdthetagetsmathrmdtheta+nabla_thetamathrmlogpi_theta(a_is_i)(rV_w(s_i))
    • 累积关于参数 w ′ w' w 的梯度: m a t h r m d w g e t s m a t h r m d w + m a t h r m p a r t i a l ( r − V _ w ′ ( s _ i ) ) 2 / m a t h r m p a r t i a l w ′ \\mathrm{d}w \\gets \\mathrm{d}w+ \\mathrm{\\partial} (r-V\_{w'}(s\_i))^2 / \\mathrm{\\partial} w' mathrmdwgetsmathrmdw+mathrmpartial(rV_w(s_i))2/mathrmpartialw
  • 分别使用 m a t h r m d t h e t a \\mathrm{d}\\theta mathrmdtheta 以及 m a t h r m d w \\mathrm{d}w mathrmdw 异步更新 t h e t a \\theta theta 以及 w w w

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

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

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

评论员衡量当前决策的好坏。结合策略模块,当评论员判别某个动作的选择是有益的时候,策略就更新参数以增大该动作出现的概率,反之减小该动作出现的概率。

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

优势函数的计算公式为 A ( s , a ) = Q ( s , a ) − V ( s ) = r + g a m m a V ( s ′ ) − V ( s ) A(s,a)=Q(s,a)-V(s)=r+\\gamma V(s')-V(s) A(s,a)=Q(s,a)V(s)=r+gammaV(s)V(s) ,其可以定量地表示选择动作 a a a 的优势。即当动作 a a a 低于价值函数的平均值的时候,优势函数为负值;反之为正值。其是一个标量,具体来说:

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

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

这样就需要两个价值函数,所以可以使用时序差分方法做误差估计: A ( s , a ) = r + g a m m a V ( s ′ ) − V ( s ) A(s,a)=r+\\gamma V(s')-V(s) A(s,a)=r+gammaV(s)V(s)

最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

五、面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下。
在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值