强化学习之DQN和policy gradient

1)什么是DQN?出发点是什么?优点是什么?创新点是什么?
  简称Deep Q Network,由于之前的Q表格中状态个数可数,用之前的sarsa以及Q-learning是可以解决的,但是现实生活中会出现状态个数多到无法计数,这时再用前面的那两种方法可就不那么容易解决了。
  此时,使用神经网络来进行值函数近似即输入观察值s输出Q值,这样就避免了查表行为,值函数近似方法包括(多项式函数,神经网络)输入输出关系可以如下图所示,输入一个动作或者一个动作和观察值,输出为如下的近似函数。
  这样仅需要存储有限的参数,不需要Q表格的缺点(占用大量的内存,当表格庞大的时候查表操作效率低下)可以对状态进行泛化。
在这里插入图片描述
  这是DQN更新的图示。
在这里插入图片描述
  与监督学习相比较,其损失函数的定义如下目标Q值与神经网络输出的Q值之间的差距,将计算好的算是放入优化器中进行优化。
在这里插入图片描述  由于引入神经网络会引入非线性函数,但是在理论上无法证明可以收敛,DQN的两大创新点,经验回放以及固定Q目标值来使训练更有效率,更稳定。
在这里插入图片描述
经验回放: 使用神经网络的话,其样本数据是独立的,没有关联的,但是强化学习样本数据之间是有关系性的,利用off-policy的特点,打乱数据之间的联系我们才较为好地使用神经网络,然后存储一个batch的数据,所以在这里设置经验池(固定长度的队列),打乱样本关联性,提高样本利用率(将之前的经验重复利用,不会像之前的两种方法一样,用完之后扔掉)。
在这里插入图片描述
固定Q值: 由于使用神经网络产生Q值的时候,Q值是有一定的随机性或者不稳定的,在目标值中maxQ那部分是随机的,这样给二者的比较带来了不方便,同时也不便于收敛,所以固定目标Q值,一段时间进行更新,这样便于比较。
在这里插入图片描述
完整的DQN流程:
在这里插入图片描述
DQN代码整体结构:
在这里插入图片描述
2)什么是policy gradient,主要解决什么问题?
在此之前的所有方法都属于基于值函数的方法,policy gradient是基于策略的方法,输出的是执行动作的概率。
在这里插入图片描述
基于值函数的方法,需要得到Q值,然后再根据Q值来得到对应的动作,然而基于策略的方法,一步到位,直接得到动作。
在这里插入图片描述
考虑到基于确定性策略会出现这种观察值是某一值时,输出始终是固定的值,这样以石头剪刀布这个游戏来讲,会很不对劲儿,一直出石头,或者一直剪刀。为了表示概率,使用softmax来讲神经网络的输出映射到一个数值(0~1之间)
在这里插入图片描述
那么整个过程的优化目标是什么? 是要将所有的可能的轨迹计算出来的reward求和,但是实际过程中无法计算,那么需要采样来近似地靠近这个值,这样不需要知道环境转移概率就可以计算这个值。
在这里插入图片描述
对比监督学习,优化目标是要是其值变大,这样在构造损失函数时需要一点点技巧。这个损失表示的是真实值与目标值之间的距离。通过优化器不断优化来减少这一距离。
在这里插入图片描述
在这里插入图片描述
还有一点是,策略梯度分为两种,一种是蒙特卡罗(回合更新,一个episode之后进行更新),另一种是时序差分,下一个博客使用的就是时序差分。
在这里插入图片描述
由于并不一定在比较过程中使用到的时候真实的标签,所以设置了一个权重值,当该权重大时,那么所占的比重多,会受到重视。Gt指的是reward。
在这里插入图片描述
REINFORCE整体结构:
在这里插入图片描述
REINFORCE代码结构:
在这里插入图片描述

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值