强化学习(PPO,DQN,A3C)

目录

1.强化学习和深度学习的区别

2. 强化学习思路

3.baseline

 4.PPO

4.1on-policy和off-policy简单理解

4.2actotcritic

5.DQN(回归问题)

5.1公式

5.2Q表

6.DQN(进阶)

6.1Double DQN

6.2Dueling DQN

6.3MultiStep-DQN

7.A3C

7.1AC

7.2 A3C(AC第三代)

参考文献


1.强化学习和深度学习的区别

强化学习和深度学习的区别:在深度学习中,像分类问题,模型做出决策之后,我们会有一个标签,告诉模型你做的对不对,是否需要改进,再决定是否更新网络。但强化学习,并不是一个监督学习,没有标签告诉模型你做的是否正确,只是说,你每走一步我告诉你你得多少分,最后通过·总分来反应一系列决策的好坏。

从应用上看:假设输入为一个老虎,深度学习只能告诉你,这是个老虎,你可以选择跑或不跑(分类),强化学习可以告诉你怎么跑(往哪一个方向,每一步该怎么走最优)。

从下图进一步理解强化学习和深度学习的区别:下图游戏的目的是让小飞船平稳落地,假设我们用深度学习解决这个问题,我们发现将图像输入神经网络后,模型要输出左移还是右移的决策,这是一个二分类问题,但问题这个交互式任务,是没有标签的,在输出左移还是右移的决策之后,模型不知道和谁对比,证明左移对还是右移对。

2. 强化学习思路

 强化学习思路:以上图小飞船为例,将小飞船状态state1作为输入,进入模型,得到action1(左移或右移)和这一步的R1(奖励或者惩罚),以及state2(做完action1的下一个状态)。再将state2作为输入,得到action2(左移或右移)和这一步的R2(奖励或者惩罚),以及state3(做完action2的下一个状态)。再将state3作为输入...。以次类推,指导满足停止条件(比方说走了1000步)。

理解强化学习模型:下图\pi就是强化学习模型,可以参照前馈网络理解,就是网络的另一种表达方式或者说结构,R(奖励)是为了得到最优的模型\pi。 表示每一次训练周期所记录的数据。

 

从游戏中理解一下模型中的数据:下图第一个p表示在状态为st时,有动作at得到下一个状态st+1,第二个p表示有状态st时得到下一个at的概率,而奖励R需要去设计,在模型中我们需要的数据s不需要我们设计,是交互后自然产生的,a是我们需要设计的,但设计之后a是固定的选择,不需要变化,但第二个p也就是选择哪一个动作的概率需要我们决定,这里需要一个概率转移函数,最后设计什么样的规则怎么给奖励的选择也是多样的,这里需要一个奖励函数。最后理解一下游戏记录下右侧的函数,意思是输入为s1时,每一个t所对应的动作,及这个动作所带来的对应的st+1,

 理解强化学习的目标函数:在强化学习中目标函数为奖励最大值的期望,θ为需要更新的权重,为什么不直接用最大值,而用最大值的期望呢,简单理解,这样做泛化效果更好,进一步可以理解为,同样的权重但是无法保证同样的action,更无法保证同样的奖励(这就类似于,一个人让他重走一遍人生,即便所有的权重(人生大小事的选择相同)他的结果可能不一样)。进一步我们看,最下面的公式的右侧来替代奖励期望的计算,其中N代表epoch(每一个epoch代表一轮游戏),i=1-epoch,t是一个epoch里面每一个动作,r代表奖励。这个公式意思是将所有训练数据动作奖励叠加求平均,来近似奖励期望。

 

最后我们得到强化学习梯度计算公式:将所有训练数据带入即可更新θ。

3.baseline

在设置奖励时会发现,有些情况下无法设置惩罚,所以采用了baseline概念,就是对所有奖励求平均值,再用所有奖励减去平局值,负的为惩罚,正的为奖励。

 4.PPO

4.1on-policy和off-policy简单理解

简单理解为,像 小飞船落地,训练一千次,on-policy用这一千次的数据更新一次θ,而off-policy可以充分利用这一千次数据,进行多次更新。PPO算法就是基于off-policy

怎么找打工的:off-policy用起来就是老板使唤员工干活。简单理解,当前为θ2,打工的就是θ1,当前为θ10打工的就是θ9,因为想要的打工的是和自己最相近的,要满足两者之差小于\varepsilon,所以认为前一个和自己最像,再用前一个的θ得到的数据,训练当前θ,就是说用θ1的训练数据训练θ2,θ2保存在θ中,再用θ2的训练数据训练θ3,再将θ3替代原θ2保存在θ中,一直迭代到最后。

PPO2版本:如下图所示,限制条件做了改变,分子为当前θ,分母为打工θ。

4.2actotcritic

actor:当一个状态进来时确定选什么动作。分类任务,用神经网络解决

critic:对actor选择的动作,评价好坏,输出的是一个value(值)。回归任务,用神经网络解决,全连接即可,不是卷积,上同

进一步理解critic的作用:看下图b之前是作为奖励均值使用了,这里用critic的value替代,可以这样理解,当critic对actor选择的动作不满意时给他一个不好的评价,这个动作相对应的R-value可能会得到负值。

 PPO2版本:R-b用A替代表示。下式求解时分两种情况,第一种A大于0时,希望分子越来越大,第二种A小于0时,希望分子越来越小。

5.DQN(回归问题)

5.1公式

只看一手:666下面的公式:

红框中r表示当前状态s下,a动作的奖励,加上下一个状态下对应动作位置的Q。Q可以理解为一个神经网络函数,输入是s和a(结合下面Q表理解)。 

5.2Q表

假设下列是一个已经学习过的Q表,当处在状态s0时,看相应的几个A,找到最大值,对应为A2,作为选择动作,然后进入s1状态,继续往下。注意Q和R不同。

蓝色框对应上面一手:666下面的公式,<-应该是=。注意这个R是设计好的奖励规则。

开始迭代:令上图Q全为0,R不变开始迭代,结合一手:666下面的公式。如下图所示,假设初始为s1,此时Q为0,按照R应该选择R(1,5),此时Q(1,5)=R(1,5)+0.8*Max[Q(5,1),Q(5,4),Q(5,5)]=100+0.8*0=100。注意到[Q(5,1),Q(5,4),Q(5,5)]中选最大值,那么为什么选他们,因为在R中1,4,5是可以走的选项。那么此时Q表中就有了第一个值,然后开始第二次更新,从s3开始,如下图所示,得到另一个Q值,以此类推,进行训练。最终得到图(2.2)的Q表,图中的导线图上的Q值可以理解为神经网络的权重。在实际中,需要穷举得到可用的Q表,但不现实,所以用神经网络替代Q表的效果

 

6.DQN(进阶)

6.1Double DQN

首先我们看一下DQN的缺点:从下图DQN和Double DQN可以看出,在不同的游戏中,DQN对自己的估计远高于Double DQN,怎么理解呢,比方说一场考试,DQN平时只能考40分,然后它付出了100%的的努力,所以它认为自己应该得到100分,结果只考了50分,明显高估了自己,没有发挥全部的潜力。Double DQN就有很高的自我认知,它平时也只能考40分,它也付出了100%的努力,但它想着我下次进步10分就行,结果考了60分,充分发挥了自己的潜力,循序渐进。 

再基于DQN的缺点对其改进:上面论述DQN缺点在于对自己没有一个清醒的认知,我们从下图targetValue的公式看一下原因,明显看到有个max,可以理解为每次DQN开始认知自己的水平时,老师都说你是最棒的,久而久之,DQN这哥们就骄傲了。为了让DQN清醒点,我们看第二个公式,也就是Double DQN,它的改进之处就是,每次老师夸我最棒时,我自己对自己狠一点,打自己一巴掌,说清醒点兄弟,给自己降降温,然后就认识到了自己的真实水平,戒骄戒躁。从公式中看就是比targetValue多了一个,这个就是在max(夸赞)后,用来给自己降温的。

6.2Dueling DQN

谈一下对Dueling DQN的理解:Dueling DQN希望网络具有举一反三的能力,怎么理解呢,从下图看,比方说小时候你去网吧A被你爸揍了,那你就知道去网吧B或者C你都要挨打,我们结合模型理解你挨打的事件,先看一下神经网络公式y=wx+b,其中w1,w2,w3,分别和x1,x2,x3相乘再各自加上b,我们假设,w1*x1+b是事件你去A网吧被你爸发现挨打,此时对于网络模型绝对是负反馈,网络会修改w1的参数,下次就不会去A网吧了,但同时,我们希望模型也能明白B,C网吧(对应w2*x2+b,w3*x3+b)也不能去了,问题是人很容易理解,对于模型而言A时间不会对B,C事件的w产生影响,怎么解决呢,终于我们看到了以前感觉作用不大的b,对虽然A事件无法影响到B,C的w,但可以影响b以达到同样的结果。

进一步理解一下b:之前介绍过,Q表的值会受到副表(本质上也是Q表)的影响,从下图看第一个Q表是主表,第二个Q表是副标,DQN只有主表和副表。为了实现举一反三的效果,Duebling DQN加入了b表来实现这个效果,可以这样理解,看第一个Q表,当Duebling DQN选择,S1,A2(原值为2)意思是,去网吧1(A),挨了一顿毒打,此时要进行扣分,表现在b中扣了-10分,然后S1,A2变成-8,同时b(共用的)对该列其他值全部其效果,(S2,A2)(S3,A2)全部减-10分,达到举一反三的效果。

6.3MultiStep-DQN

结合围棋理解:DQN在下棋时只能多想一步,MultiStep-DQN在下棋时可以多想几十步,毋庸置疑,DQN是个围棋青铜,MultiStep-DQN是围棋大师。

7.A3C

7.1AC

先回忆一下actorcritic和DQN:在利用actorcritic计算时,A表示r(奖励),箭头指向A的表达式,baseline后第一个红框中为用actorcritic计算时的r(奖励),最后一行是计算在DQN时的函数,其中Q的主体也是r(奖励),所以令二者约等。

 根据上面介绍引出优势函数:下图A对应上图A,用Q替代了,用V(critic得到的value)替代了b,这就是优势函数,我们希望当A>0时,当前动作是个理想动作,尽最大可能优化Q中的权重,提高当前动作出现的可能,当A<0时,当前动作是个不好的动作,尽最大可能更新Q中权重,减少当前动作出现的可能。

 

进一步理解优势函数:我们发现Q和V是两个不同的网络,这样难度就上来了,所以我们希望将其简化成一个网络,我们看最后一行Q变成了,其中r是已知的,那么就剩下V网络需要训练。

最终得到AC算法流程

7.2 A3C(AC第三代)

理解A3C:简单理解就是AC的第三代,和AC区别在于数据的获取,随之AC的发展,人们发现AC所获得的数据全部是由一个智能体获得,这就带来一个问题,简单来讲,就好像,我想知道A网吧玩英雄联盟的数据,但所有的数据都是你一个人完成的,那么当我想以此确定游戏中每一个英雄的出场率,这合适吗,肯定不合理吧。对于数据获取同样的道理,只用一个智能体去获取数据,该智能体必然有倾向性,会导致训练数据不够全面。

进一步理解一下A3C的损失函数:第一个叫策略损失函数用于actor(分类),第二个叫价值损失函数,用于critic(回归),最后熵的损失这样理解,假设我们已经对网络进行了学习,然后对一组动作[上 下 左 右],出现的概率为[ 0 0 0 1],我们发现只要到这个状态就一定会选右,但实际中没有绝对的事件,可能有一天发现往左走反而更好,但此时没有可能往左尝试,就永远失去了新的探索能力,所以我们希望保留一定的探索能力,所以用到了熵,其实就是logA或者logB,我们发现A时,值为0,B时有一定的熵值,此时B中所有动作都保留了一定可能,也就是说保留了基本的探索能力。

参考文献

1.4-得到动作结果.mp4_哔哩哔哩_bilibili

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DQN、DDPG、TRPO、A3C、PPO、SAC、TD3 是深度强化学习算法中常见的几种。它们在算法原理和训练方式上有一些区别。 1. DQN(Deep Q-Network)是一种基于Q-learning的算法,通过使用深度神经网络来近似Q函数。它适用于离散动作空间的问题。 2. DDPG(Deep Deterministic Policy Gradient)是一种适用于连续动作空间的算法。它结合了DQN和确定性策略梯度方法,使用了一个Actor网络来学习策略函数,同时使用一个Critic网络来评估策略的价值。 3. TRPO(Trust Region Policy Optimization)是一种基于策略梯度的算法。它通过限制策略更新的幅度,来确保每次更新后的策略在一定程度上比之前的策略更好。 4. A3C(Asynchronous Advantage Actor-Critic)是一种并行化的强化学习算法。它通过多个并行的智能体来加速训练,并使用Actor-Critic框架进行更新。 5. PPO(Proximal Policy Optimization)是一种基于策略梯度的算法,它通过限制策略更新的幅度和使用剪切优化目标函数的方式来提高稳定性和效率。 6. SAC(Soft Actor-Critic)是一种基于最大熵强化学习的算法。它在策略优化过程中加入了最大熵正则化项,以提高探索性和学习效果。 7. TD3(Twin Delayed Deep Deterministic Policy Gradient)是DDPG的改进版本,它使用了双Critic网络来减轻Q函数估计的偏差,并采用延迟更新策略来增加训练的稳定性。 总体来说,这些算法在目标函数、更新策略、网络结构和训练方式等方面有所区别,针对不同的问题和环境选择适合的算法是很重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值