您的位置:首页 > 移动开发

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

2017-05-18 15:44 471 查看
本节课主要内容:

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)⎞⎠⎟⎟⋅⎛⎝⎜⎜w1⋮wn⎞⎠⎟⎟

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

线性函数逼近MCTD(0)forward-view TD(λ)backward-view TD(λ)
targetunbiasedbiasedbiasedbiased
targetGtRt+1+γv^(St+1,w)GλtRt+1+γv^(St+1,w)
Δwα(Gt−v^(St,w))x(St)α(Rt+1+γv^(St+1,w)−v^(St,w))x(St)α(Gλt−v^(St,w))x(St)Δw=αδtEt
δt=Rt+1+γv^(St+1,w)−v^(St,w)
Et=γλEt−1+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πt−v^(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,s′∼Di[(r+γmaxa′Q(s′,a′;w−i)−Q(s,a;wi))2]

使用随机梯度下降的变种。

DQN适用于神经网络,因为:经验回放池打破了数据之间的相关性;fixed Q-targets相当于再建立起第二个神经网络。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: