强化学习的基本方法有:
(1)基于动态规划的方法(模型已知)
(2)基于蒙特卡罗的方法(模型未知)
(3)基于时间差分的方法(模型未知)
但是, 这些方法有一个基本的前提条件: 状态空间和动作空间是离散的,并且且状态空间和动作空间不能太大。
这些强化学习方法的基本步骤是:
先评估值函数,再利用值函数改善当 前的策略。其中值函数的评估是关键。
注意, 这时的值函数其实是一个表格。对于状态值函数,其索引是状态;对于行为值函数,其索引是状态-行为对。值函数的迭代更新实际上就 是这张表的迭代更新。因此,之前讲的强化学习算法又称为表格型强化学习。
对于状态值函数,其表格的维数为状态的个数 |S|,其中 S为状态空间。若状态空间的维数很大,或者状态空间为连续空间,此时值函数无法用一张表格来表示。这时,我们需要利用函数逼近的方法对值函数进行表示。
值函数可以采用线性逼近的方式,也可采用非线性逼近。非线性逼近常用的是神经网络。
下面仅讨论线性逼近:
v ^ ( s , θ ) = θ T ϕ ( s ) \hat{v}(s, \theta)=\theta^{T} \phi(s) v^(s,θ)=θTϕ(s)
这里 θ T \theta^{T} θT是我们需要寻找的最优参数, ϕ ( s ) \phi(s) ϕ(s)是我们所选的基函数
相比于非线性逼近,线性逼近的好处是只有一个最优值,因此可以收敛到全局最优。其中 ϕ ( s ) \phi(s) ϕ(s)为状态s处的特征函数,或者称为基函数。
常用的基函数的类型为:
多项式基函数,如 ( 1 , s 1 , s 2 , s 1 s 2 , s 1 2 , s 2 2 , ⋯ ) \left(1, s_{1}, s_{2}, s_{1} s_{2}, s_{1}^{2}, s_{2}^{2}, \cdots\right) (1,s1,s2,s1s2,s12,s22,⋯)
傅里叶基函数,如 ϕ i ( s ) = cos ( i π s ) , s ∈ [ 0 , 1 ] \phi_{i}(s)=\cos (i \pi s), s \in[0,1] ϕ