强化学习笔记(5)价值估计函数ValueFunctionApproximation
⽂章⽬录
Introduction 之前所使⽤的算法⼀般都是使⽤字典或者查表的⽅法才存储价值函数。每⼀个状态都有⼀个V(s)
每⼀个状态⾏为价值对都有⼀个Q(s,a)
在处理⼤规模的MDPs问题时,有很多状态或者⾏为需要存储在内存中,去查和存储的开销特别⼤。如何解决这种⼤规模的MDPs问题呢?如果有⼀个估计价值的函数,那么就⽤存储了,现⽤现算
使⽤Estimate value function 来估计状态价值。
w是⼀个参数,通过MC或者TD学习来更新它。通过调整w,使得估计出来的和实际的近似。
从可见的状态可以推⼴到不可见的状态。
通过Estimate value function , 那么强化学习的任务就转变成了求解近似参数w的问题了。
如何选择Function Approximator?有许多function approximators, 例如:Linear combination of features;
Neural network;Decision tree;Nearest neighbour;Fourier / wavelet bases;
…
Incremental Methods
我们问题转化成了求解进近似参数w。
function怎么记忆Gradient Descent
(s ,w )≈v ^v (s )πor (s ,a ,w )≈q ^q (s ,a )
π
设是w的cost function,代表w和最理想的值之间的差距。使⽤梯度下降的⽅法逼近最优w。
是实际的值
是估计的值J(w)是实际的值与估计值偏差平⽅ 的数学期望。 (最⼩⼆乘法)
乘以1/2是为了求偏导消去产⽣的2
梯度的⽅向是上升速度最快的⽅向。(其实是把上升速度最快的⽅向定义成了梯度)
J(w)的梯度:就是对w⾥的每个维度都求偏导。
我们想让J(w)不断迭代变⼩,就需要使⽤梯度的反⽅向,也就是下降最快的⽅向。
每次w更新的⼤⼩():
是步长
i是第i个example 以上的公式由于需要求数学期望,在内存中,在更新某⼀个维度的信息时,需要存储所有的n个example的信息。
数学期望 = 试验中每次可能结果的概率乘以其结果的总和。
随机梯度下降(Stochastic gradient)解决了每次迭代需要存储所有example的信息的问题。为⼤规模的⾼纬度训练提供了可能。每次迭代只使⽤⼀个example。
还有介于两者之间的批量梯度下降。batch- gradient
特征向量的形式
J (w )J (w )=E [(v (s )−(s ,w ))]21
ππv
^2=(v (s )−(s ,w ))i 代表第i 个example
2n 1i =1∑n π(i )v ^(i )2v (s )π(s ,w )v
^J (w )w ←w +△w △w =α∇J (w )
w =αE [(v (S )−ππ(S ,w ))∇(S ,w )]
v ^w v ^=α(v (S )−n 1i =1∑n
π(i )(S ,w ))∇(S ,w )v ^(i )w v ^(i )α△w =α(v (S )−(S ,w ))∇(S ,w )
πv ^w v ^
Linear Value Function Approximation 线性价值估计函数
使⽤线性函数来估计价值:
以w为参数变量的⽬标函数(此处可以乘1/2)根据随机前⾯梯度下降(Stochastic gradient descent)更新规则:的梯度:w的更新量: 正确结果
使⽤supervised learning⽅法来近似,然⽽我们并不知道target: 。在RL中只有奖励。
在实际应⽤中,我们使⽤其他来代替target。
(S ,w )=v ^x (S )w =x (S )w T j =1∑n j j
J (w )=E [(v (S )−x (S )w )]
ππT 2△w =α(v (S )−π(S ,w ))∇(S ,w )
v ^w v ^v ^∇(S ,w )=x (S )
w v ^△w =α(v (S )−(S ,w ))∗x (S )
πv ^v (S )π△w =α(target −(S ,w ))∇(S ,w )
v ^t w v ^t
对于MC类,target是return(收获)MC算法收敛到局部最优解。即使使⽤⾮线性的估计函数是⽆偏差的对于TD(0),target是TD target: TD-target 和最优价值函数$v_\pi(S) $是有偏差的,但应⽤在此处效果也很好。TD(0)收敛于(接近)全局最优
对于, target是-return(收获) 也是和真正的
有偏差,可以应⽤于训练数据Batch Methods 梯度下降简单易⽤,但是没有充分利⽤采样
Batch Methods为了根据所给的agent的经验,从⽽到最适合的value function
Least Squares Prediction
Experience Replay
G t
G t R +t +1γ(S ,w )
v ^t +1TD (λ)λG t
λλ−return G t λv (S )π
给出⼀些列的状态价值对:
重复以下步骤:
1. 选取从经验中选取⼀定数量的 <state,value>
2. 使⽤随机梯度算法来更新参数
可以收敛到最⼩⼆乘法的解
DQN (Deep Q-Networks)
Q-learning更新公式:
A’是根据借鉴策略来的。
借鉴策略如果是贪婪策略,那么可化简:
: 学习率,决定每次的更新量。过⼩,会导致过于注重之前的知识,导致学习的太慢。过⼤,则会导致过于在乎新的学习,忘记之前的经验积累。
:预测出来的下⼀个状态Q值对当前的影响。范围(0,1)
如果 $ \alpha = 1$ ,那么上式(这⼀步的推导和贝尔曼⽅程有关)
这就是我们每次的Q值更新公式。我们的需要⼀个⽹络能够拟合出这个Q值的计算过程。这个⽹络的输⼊参数为state,输出参数为每个action在该状态下的Q值。这个⽹络就是Q⽹络。
当然,我们在训练时,每次的迭代⽬标target就是通过上式计算出来的。我们希望⽹络产⽣的数据和我们target相同
D ={<s ,v >11,....<s ,v >T T }
△w =α(v (S )−(S ,w ))∇(S ,w )
πv ^w v ^w =πarg min LS (w )
w Q (S ,A )←t t Q (S ,A )+t t α(R +t +1γQ (S ,A )−t +1′Q (S ,A ))
t t Q (S ,A )←t t Q (S ,A )+t t α(R +t +1γQ (S ,a )−a ′max s +1′Q (S ,A ))
t t ααγQ (S ,A )←t t R +t +1γQ (S ,a )
a ′max s +1′target =R +t +1γarg max Q (S ,a )t +1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论