强化学习之DQN和policy gradient

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

你可能感兴趣的:(强化学习)