深度增强学习David Silver(六)——Value Function Approximation

来源:互联网 发布:淘宝超级链接怎么做 编辑:程序博客网 时间:2024/06/07 14:06

本节课主要内容:

  • Value Function Approximation
  • Batch Methods

Value Function Approximation

增强学习可以用来解决大规模数据集的问题。在之前的问题中,我们通过一个lookup表格来表现价值函数:每个状态都有一个特定值V(s),或者每个状态-动作对都有一个特定值Q(s,a)看。在实际问题中,会遇到两个限制:通常需要存储很多的状态或动作,需要很大的memory;每个都学习速度未免太慢。因此我们想找到一些不受状态空间大小限制的新方法,来估计价值,这个方法是:使用函数逼近,建立一个函数逼近模型,估算出已经到过的那部分空间的函数值以及未知的数据。

v^(s,w)vπ(s)或者q^(s,a,w)qπ(s,a)

通过MC或者TD学习更新参数w
这个方法解决了那两个限制:不需要很多memory来存储;不需要一个一个地求状态行动价值,而是通过函数来求解。
我们考虑使用可微函数逼近,比如线性函数、神经网络、决策树等等,另外,我们需要一种适合于不稳定、不独立分布数据的训练方法。

随机梯度下降是一种最小化损失的参数估计法,利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数损失值逐步减小。设w是一个参数向量,J(w)是w的可微函数。定义J(w)的梯度为:

wJ(w)=(J(w)w1...J(w)wn)T
Δw=12αwJ(w)

这里加1/2是因为常常通过最小平方差误差来定义J(w)。

v^(s,w)是估计值,vπ(s)是真实值。
则:

J(w)=Eπ[(vπ(S)v^(S,w))2]
Δw=12αwJ(w)=αEπ[(vπ(S)v^(S,w))wv^(S,w)]

随机梯度下降法能随机采样梯度:
Δw=α(vπ(S)v^(S,w))wv^(S,w)

定义状态x(S)为特征的向量:

x(S)=(x1(S)...xn(S))T

通过特征的线性组合定义价值函数:

v^(S,w)=x(S)Tw=nj=1xj(S)wj

则随机梯度下降法的更新为:
Δw=α(vπ(S)v^(S,w))wv^(S,w)=α(vπ(S)v^(S,w))x(S)

lookup table是线性价值函数逼近的一个特例。
xtable(S)=(1(S=s1)...1(S=sn))T

w给定了每个状态的值:
v^(S,w=1(S=s1)1(S=s1)w1wn

以上的vπ(S)是假定有一个监督者给出,但是实际上并没有这样的监督者能给出vπ,在增强学习中,只得到奖励,事实上,我们通过使用目标来代替vπ

线性函数逼近 MC TD(0) forward-view TD(λ) backward-view TD(λ) target unbiased biased biased biased target Gt Rt+1+γv^(St+1,w) Gλt Rt+1+γv^(St+1,w) Δw α(Gtv^(St,w))x(St) α(Rt+1+γv^(St+1,w)v^(St,w))x(St) α(Gλtv^(St,w))x(St) Δw=αδtEt
δt=Rt+1+γv^(St+1,w)v^(St,w)
Et=γλEt1+x(St) 收敛 收敛到局部最优,即使是非线性价值函数逼近也收敛到局部最优 线性TD(0)收敛到全局最优

以此类推可以得出行动-价值函数q(s,a,w)的信息。

收敛

接下来讨论收敛的问题,对于prediction,如下(打钩表示收敛到正确之,打叉表示发散):
这里写图片描述

  • TD does not follow the gradient of any objective function
  • This is why TD can diverge when off-policy or using non-linear function approximation
  • Gradient TD follows true gradient of projected Bellman error
  • Gradient TD在这六种情况下都收敛到正确值

对于control,如下((打钩)表示不会离最优值差太远):
这里写图片描述

batch methods

梯度下降的方法针对一个sample,更新一次梯度之后就不用了,训练数据得不到充分利用,因此采用batch。这里的损失函数是least squares算法:

LS(w)=t=1T(vπtv^(st,w))2=ED[(vπv^(s,w))2]

由<状态,价值>对组成经验池:

D=s1,vπ1,s2,vπ2,...,sT,vπT

每次从经验池中sample状态和价值,采用随机梯度下降法更新权值w,直到收敛到最小平方差。wπ=argminwLS(w)

Deep Q-Network(DQN)
DQN使用experience replay(经验回放池)和fixed Q-targets。

  • 根据ϵ-greedy采取行动at
  • 将 transition (st,at,rt+1,st+1)存储在memory D中。
  • D中sample mini-batch的随机的transitions (s,a,r,s)
  • 根据旧的固定参数w_计算Q-learning targets
  • 通过最小化Q-network和Q-learning targets之间的MSE来最优化。
    Li(wi)=Es,a,r,sDi[(r+γmaxaQ(s,a;wi)Q(s,a;wi))2]
  • 使用随机梯度下降的变种。

DQN适用于神经网络,因为:经验回放池打破了数据之间的相关性;fixed Q-targets相当于再建立起第二个神经网络。

阅读全文
0 0