3.1 值函数估计和Deep Q-learning
category
type
status
slug
date
summary
tags
password
icon
本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.
3.1.1 值表征方式
如图, 在之前的算法中, 我们通过离散的表格来表达每个状态对应的值. 这种表征方式数据存储量大, 我们可以用一个函数来拟合值函数.
比如使用最简单的线性函数, 是状态参数, 向量是线性函数的两个参数:
更复杂的, 也可以用更高阶的函数, 可以拟合更复杂的值曲线:
或者是用神经网络作为拟合函数, 它是一个黑盒:
之前介绍的各种迭代方法, 都需要逐步更新状态值; 如果我们用拟合函数代替值列表, 那么我们就应该更新拟合函数的参数, 下图以线性函数为例:
3.1.2 基于值函数估计的TD learning
我们将TD learning中的状态值用值函数来表达, 那么首先我们需要设计最优化问题来求解值函数.
3.1.2.1 目标函数
- 状态值的真值
- 估计状态值的值函数
显然这个目标函数的目标是让尽量逼近, 如果我们采取均匀分布, 即每个状态都有均匀的权重, 那么上式展开:
但是更多的情况下, 不同的状态的权重一定是不一样的. 比如接近终点的状态一定比世界边缘状态的权重高, 因此我们采用静态分布, 可以写成:
- 在策略下, 马尔科夫过程中状态被访问的概率. 代表该状态的权重.
上图是在一个1000时间步的episode中, 不同状态被访问的概率, 右图中的代表真值. 显然当时间步足够大时, 它们都收敛到了真值附近. 因此它的如下:
3.1.2.2 优化算法更新公式
我们用常见的梯度下降法来求解, 它的更新公式如下:
其中的值函数梯度, 我们可以进一步的展开:
我们将常数参数融入到学习率中. 我们没有必要计算完整梯度, 用随机梯度替代. 最终可以写成:
但是我们仍然不知道真值, 不过之前我们介绍了不同算法的处理方式:
- MC: 用表达真值:
- TD: 用表达真值:
至此我们完整的写出了它的更新公式, 只需要选择不同形式的值函数即可.
3.1.2.3 例子
我们给出这样一个策略的网格世界, 它的真实状态值分布如右图.
我们8.8给出不同阶数的值函数, 2阶和3阶:
以及更高的6阶和10阶:
不同阶数的拟合结果如上图, 显然值函数的阶数越高, 拟合结果越好.
3.1.2.4 Sarsa和Q-learning
基于值函数估计的Sarsa更新公式:
仿真结果:
基于值函数估计的Q-learning更新公式:
测试结果:
3.1.3 Deep Q-learning
Deep Q-learning使用神经网络代替具体的函数估计值. 它的目标函数如下:
其中是Q-learning的TD目标项, 是对的估计值. 目标是让估计值逼近TD目标项.
神经网络中使用梯度回传来优化网络参数, 但是上式中最优化问题: 无法计算梯度. Deep Q-learning采取了一个技巧: 在单次训练时, 不更新优化问题的, 将其固定为初值:
训练时网络只计算后面的的梯度并更新:
单次训练结束后, 将更新为训练之后新的, 之后重复迭代上述过程.
下图给出了Deep Q-learning的仿真结果:
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...