值函数近似算法

在前面介绍的所有强化学习算法中,我们所有的状态-动作价值(Q值)或状态价值(V 值)都是存放在表中的,这种方法在状态空间和动作空间都不大的情况下还适用,一旦状态空间和动作空间变得很大,那么表格的尺寸也会变得很大,有时甚至大到无法存储(例如围棋),即使能够存储,算法的效率也会受到很大影响。

而且如果是连续的状态和动作(例如无人驾驶),使用表格势必会将状态和动作离散化,这可能会导致误差。因此,我们想用一个函数来近似地表示 Q 值表(或 V 值表),这种方法称为值函数近似(Value Function Approximation)。

利用函数去逼近 Q 值表(或 V 值表)的问题可以看作一个回归问题,以 Q-Learning 为例,我们定义一个回归器 Q(s, a|θ),其中 θ 是一个参数向量。输入的数据是状态-动作对 (st, at),希望输出的是 rt+1+γmax(Q(st+1, at+1)) 的值,因此,误差函数可以定义为:

[Q(st,at)-(rt+1+γmax(Q(st+1, at+1)))]2

具体这个回归器的选择,可以是一个线性的模型,也可以是一个非线性的模型,例如神经网络。