顺序以周博磊老师强化学习纲要课程为主,增加王树森老师强化学习基础的知识补充,和蘑菇书的知识补充,作为学习记录
第四章:价值函数近似
主要内容包括:
- 价值函数近似基本原理介绍(Value Function Approximation, VFA)
- 线性价值函数近似(在预测和控制方面的应用)
- 非线性价值函数近似(主要是DQN的介绍)
一、价值函数近似基本原理的介绍:
- 引入原因:
- 之前是问题更多是少量状态的RL问题,所以可以用Qtable,即用表格形式存储每个状态s下动作a取得的奖励(这里的少量如悬崖行走问题的4*16,mountain car问题的1600等)
- 实际强化问题大多是大规模状态的问题,包括本身状态量巨大,或是连续状态空间,状态量无穷(这里的大量如国际象棋10^47 围棋10^170次方,事实上所有可观测宇宙的原子个数也只有10^80)
- 在解决问题的过程中,我们所用到的奖励函数R(ModelFree没有)、策略函数π、状态价值函数V和动作价值函数Q都与状态有关。
- 当状态数量过大时,价值函数的计算就十分困难,出现维度灾难(即在涉及向量的计算问题中,随着维数增加,计算量会随指数倍增长,事情变得不可控)
- 导致结果:在前一章ModelFree中基于Q表格(Lookup Table)提出的的解决方法就不再适用,需要研究如何将ModelFree方法应用到这种大规模状态情况。
- 引出解决大规模马尔可夫过程问题的方法:函数近似
- 不再使用表格形式,而是通过函数近似的方法代替真实的价值函数(使用带参数的近似函数)
- 优势:从已知状态泛化到未知状态,避免学习、存储每一个状态信息,使用插值方法估计没有出现过的状态(不需要对所有状态得到观测)
- 参数w可以使用MC(蒙特卡洛采样)或TD learning方法实现近似估计
- 函数近似的多种方法:
- 线性特征(Linear feature representations)(设计特征再进行线性叠加)
- 神经网络(Neural networks)(有效的拟合函数)
- 决策树(Decision trees)
- 近邻取样(Nearest neighbors)
- 主要介绍前两类,因为前两类可微分,这种性质方便我们优化相关参数(使用梯度下降更新)
- 参数优化(以价值函数的优化为例)(本章最重要的内容就是对梯度增量中的近似函数进行优化)
- 由于某些原因需要极小化(极大化)目标函数(损失函数)J(w)
- 这里我们需要极小化的损失函数J(w)如下,这里使用了均方误差(自定义的):(在已知当前给定状态s时的真正价值Vπ的情况下,希望我们所拟合的函数能够在不断更新后逐渐接近真实值,也就是说状态时定值,通过对参数的优化来极小化函数)
- 可能存在的误区:已知的价值函数真实值(orcle)的状态是有限的,而我们希望通过优化自己估计的价值函数,从而得到更多的状态对应价值。
- 使用梯度下降的方式对参数进行优化
- 梯度在数学中
- 单变量函数,梯度就是函数的微分,代表切线斜率
- 多变量函数,梯度是一个向量,向量有方向,梯度的方向指出了函数在给定点的上升最快的方向(参数其实也是一个向量)(只知道方向不知道长度)
- 目标:通过迭代优化参数找到目标函数的最小值或收敛到最小值
- 方法:对于可微分的函数来说,由于梯度的方向是函数变化最快的方向,找到给定点的梯度,再通过我们所设定的步长,可以得到参数如何变化能让函数值下降最快。
- 结果:通过反复求梯度,就能到达局部最小值(对于只有一个最值的函数,局部最小值即全局最小值)
- 公式中:负号表示向梯度相反的方向前进,即梯度下降 ;α称为学习率或步长,控制每一步的距离,避免错过最低点;1/2是为了求偏导时消去2不影响结果
- 缺点:受学习率影响很大;对于有多个极值的函数来说,它永远不能保证全局最优性,只能保证局部最低
- 梯度在数学中
- 状态s的描述
- 输入状态,提取对应的特征向量作为状态进行后续运算
- 具体特征是人为设定的,基于要解决的问题设计自己需要的特征
- 车的位置、速度、加速度