一、介绍
找到一种适应真实情况(很大的状态空间)的RL方法,之前的价值函数表示是通过一个S×A的表(Table)来表示Q(s,a)。状态空间很大时,这种表示内存占用过大,而且单独学习每个state的价值函数太慢了。而且在遇到没有见过的状态时,表现会很差(缺少泛化能力)。
二、价值函数逼近-Incremental Online
使用参数化的价值函数V’(s,w)来逼近V(s),或者Q’(s,a,w)逼近Q(s,a)。常用的方法有:特征线性组合,神经网络等。那么我们就需要不断的优化这个逼近函数。
训练逼近函数的过程中,还要注意数据non-stationary和non-iid的性质。
- 梯度下降,以真实价值函数 vπ 和估计的价值函数的MSE作为objective,用GD进行训练。(这里用V函数举例,对Q函数同理)
但是,在RL中,真实价值函数是不知道的,因此在实际使用中,我们在不同的方法中使用不同的target:
MC中,target是 Gt ;而TD(0)中,target是 Rt+γV′(St+1,w) ;TD(λ)中,target是 Gλt 。
所以,我们采用逼近式的策略评估过程时,相当于采用MC或者TD的target,并用GD的训练方式得到一个与真实价值函数相近的函数。
三、价值函数逼近-batch method
从乱序的数据集D中采样状态价值对,然后用来优化逼近函数。这里的优化目标是所有样本的MSE经验期望(均值)。
乱序+采样,减弱了样本之间本来的相关性。
这个部分介绍的内容也就是DQN中使用的experience replay。
第二个DQN中使用的部分就是fixed Q-target,使用两个相同的神经网络,但是计算target的网络参数较老,定期从learning网络更新参数。因为target老是更新的话,不会稳定。这个trick其实理论依据不强,主要是实践中效果比较好。
从最后给出的表格可以看出,DQN的训练非常依赖这两个trick,没有这两种变化的话,效果不怎么好。
原文地址: http://cairohy.github.io/2017/09/04/deeplearning/%E3%80%8ADavid%20Silver%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%85%AC%E5%BC%80%E8%AF%BE%E3%80%8B-6%EF%BC%9AValue%20Function%20Appro/