深层学习方法总结


深层学习方法
https://zhuanlan.zhihu.com/p/25913410

蒙特卡罗方法(英语:Monte Carlo method)

也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
蒙特卡罗的方法需要等到每次试验结束才能估计当前的值函数

Bootstrapping算法

1977年美国Standford大学统计学教授Efron提出了一种新的增广样本的统计方法,就是Bootstrap方法,为解决小子样试验评估问题提供了很好的思路。Bootstrapping算法指的就是利用有限的样本资料经由多次重复抽样,重新建立起足以代表母体样本分布的新样本。bootstrapping的运用基于很多统计学假设,因此假设的成立与否影响采样的准确性。
统计学中,bootstrapping可以指依赖于重置随机抽样的一切试验。bootstrapping可以用于计算样本估计的准确性。对于一个采样,我们只能计算出某个统计量(例如均值)的一个取值,无法知道均值统计量的分布情况。但是通过自助法(自举法)我们可以模拟出均值统计量的近似分布。

时间差分方法TD

结合了蒙特卡罗的采样方法和动态规划方法的bootstrapping(利用后继状态的值函数估计当前值函数)使得他可以适用于model-free的算法并且是单步更新,速度更快。

时间差分方法结合了蒙特卡罗的采样方法(即做试验)和动态规划方法的bootstrapping(利用后继状态的值函数估计当前值函数),学习效率高于蒙特卡罗

Qlearning

异策略:是指执行的策略和要评估的策略不是同一个策略,通常使用ε−greedy策略。
时间差分:是指利用时间差分目标来更新当前状态动作值函数

DQN是在Qlearning的基础上做了如下修改:

1.DQN利用深度卷积神经网络逼近值函数。
采用CNN逼近值函数,网络结构为3个卷基层,2个全连接层。

2.DQN利用了经验回放训练强化学习模型。
在训练神经网络时,假设训练数据是独立同分布的,但是强化学习数据采集过程中的数据是具有关联性的,利用这些时序关联的数据训练时,神经网络无法稳定,利用经验回放打破了数据间的关联性。在强化学习的过程中,智能体将数据保存到一个数据库中,再利用均匀随机采样的方法从数据库中抽取数据,然后利用抽取到的数据训练神经网络。

3.DQN独立设置了目标网络来单独处理时间差分算法中的TD误差。

https://zhuanlan.zhihu.com/p/26052182

这里值函数利用神经网络进行逼近,属于非线性逼近。虽然逼近方法不同,但都是参数逼近。请记住,这里的值函数对应着一组参数,在神经网络里参数是每层网络的权重,我们用Q(s,a,theta)表示。用公式表示的话值函数为:Q(s,a,theta),注意,我们这时候对值函数进行更新时其实更新的是参数Q(s,a,theta),当网络结构确定时,Q(s,a,theta)就代表值函数。

DQN无法解决Qlearning的固有缺点——过估计。过估计是指估计的值函数比真实的值函数偏大,如果过估计在所有状态都是均匀的,那么根据贪心策略,依然能够找到值函数最大的动作,但是往往过估计在各个状态不是均匀的,因此过估计会影响到策略决策,从而导致获取的不是最优策略。

过估计的产生的原因是在参数更新或值函数迭代过程中采用的max操作导致的

DDQN

DDQN中有两组不同的参数,和θ和θ-。θ用于选择对应最大Q值的动作,θ-用于评估最优动作的Q值。这两组参数将动作选择和策略评估分离,降低了过高估计Q值的风险。DDQN 使用当前值网络的参数θ选择最优动作,用目标值网络的参数θ-评估该最优动作。实验结果证明,DDQN能更准确的估计Q函数值,使得训练算法和训练得到的策略更为稳定。

duelingwork

Dueling的这种结构的优势在于学习效率,Value[V(s)]的更新将会触及到所有的动作跟着
value[V(s)]一起更新,如果是Q的话,你只能更新当前状态下的状态-动作值函数。


评论
  目录