在上次课介绍了 TD Learning,实际上这次课依然是介绍 TD ,但是上次是用的表格形式介绍的,这次课我们将会介绍基于函数的方式。
算法其实不太难,难的是思路和想法,另外这一节将引入神经网络。
另外最经典的 Deep Q-learning 在这里也会学习到。
大纲如下:
Motivating examples:curve fitting
这一节将使用 曲线拟合 的例子来进行表格到函数的过渡。
虽然没有明说,但是到目前为止实际上 state value 和 action value 全部都假设它们是用表格的形式表达出来的,比如下图中的 action value 就由两个下标可以围城一个表格,在编程的时候我们会将这样的表格重组成向量矩阵或者是数组,其优缺点也很明显:
而通过函数近似的方法我们可以很好的解决其缺点:
如上图所示,横坐标是 S ,其表示状态空间中的每个状态,而纵坐标表示的是 state value,那些 state value 分别就对应了那些离散的圆点。
那现在的问题是如果状态的个数非常非常多,如果要把它全部存储下来,其实要花非常大的内存,那有没有可能用一个曲线把这些离散的点给它串起来?然后用这个曲线来代表这些点呢?为什么要用曲线呢就是因为这个曲线它所对应的参数的个数其实是非常少的,我只要存储比较少的参数就能来表示所有的这些状态它的 state value。
答案肯定是可以的,最最简单的情况就是我们用一条直线来拟合这些点:
当然也可以是非线性的,但先从简单的入手嘛。
有了上面这个函数之后,我们就不需要存储大量的数据了,只需要根据近似的 vhat(s, w),第一步先计算出来特征向量,然后再用这个特征向量和参数向量 w 相乘就可以计算得到 state value ,也就是 vhat。
但其缺点就是精度有缺失,明显的这样一条直线很难拟合所有的点,这也是为什么这种方法叫 值近似 。
接下来我们就可以使用更高阶的曲线来进行拟合:
在这种情况下,参数向量和特征向量的维数提高了但是好处也是显而易见的,其拟合精度是有可能提高的。
简单小结一下:
Algorithm for state value estimation
第二节包含了很多小节,它介绍了值函数近似这种方法的思想和概念还有相关细节。
Objective function
第一种方式采用平均分布显然有缺陷,但这种缺陷将在第二种方式平稳分布中被解决:
简单说明的一个例子:
Optimization algorithms
有了刚才的目标函数,下面我们要去优化这个目标函数,来看一下这个优化的算法是什么。
第一个该想到的就应该梯度下降:
Selection of function approximators
怎么通过函数去逼近这个我们想要的值呢?有两种方法:
Illustrative examples
接下来给出一些例子。
那么 TD Linear 是不是也能很好地去估计出来 state value:
Summary of the story
尽管上述说的这一套流程对于理解值函数近似的思想是有帮助的,但从数学上来说是不严谨的。
Theoretical analysis
简单从数学上分析一下:
Sarsa with function approximation
Q-learning with function approximation
Deep Q-learning
DQN采用了两种精妙的 technique,其中一种就是刚刚说的采用了两个网络:
还有一种 technique 就是 Experience replay,经验回放:
该算法伪代码如下:
下面将会举一些例子:
这些例子说明了就算再强大的算法也得有好的数据,没有好的数据还是不行的。
Summary
就不总结了,就是前面各个章节的内容,看看标题就能回忆起来。