State-value function 给出在服从策略$\pi$时状态s的真正价值. 从等式中看出是一个递归过程.
既然不知道马尔可夫过程的模型, 直接的想法就是做大量的实验, 从实验中进行统计和参数估计得到模型的估计. monte carlo学习就是这样的一个直接的解决方法
增量更新方法
简单的增量公式推导, 为防止符号混淆, 记状态s在t时刻之前有价值V,累积回报G,累积访问计数N.
价值增量
增量更新
更新系数
该系数为一个浮动系数, 随着t增大而减小. 当模型是变动时(例如状态a到状态b的转移概率随时间变化), 采用固定系数较好,通常用 $\alpha$ 表示
前面说的是每次访问状态s都累积求平均的做法,还有一种是在一个回合中只考虑首次访问状态的累积求和方法。
monte-carlo学习的策略评估有一个问题, 那就是学习是要基于完整的回合. 因为更新需要用到回报 $G_t$. 只有当回合结束时才能计算得到
从更新公式来看, TD是有偏估计因为V的估计用到了另一个估计量, 而MC是无偏估计,无偏估计量的期望等于真值.
关于bootstrapping, 最常用的一种是.632自助法,假设给定的数据集包含d个样本。该数据集有放回地抽样d次,产生d个样本的训练集。这样原数据样本中的某些样本很可能在该样本集中出现多次。没有进入该训练集的样本最终形成检验集(测试集)。 显然每个样本被选中的概率是1/d,因此未被选中的概率就是(1-1/d),这样一个样本在训练集中没出现的概率就是d次都未被选中的概率,即 $(1-1/d)^d$ . 当d趋于无穷大时,这一概率就将趋近于e-1=0.368,所以留在训练集中的样本大概就占原来数据集的63.2%。
Driving Home Example
这里我们利用下一步(时刻t+1)的估计值来更新当前的值, 这是一步时序差分记为TD(0). 而n步时序差分为TD($\lambda$)
收敛性, 对于任何固定的策略 $\pi$ , TD学习得到的v收敛到$v_\pi$
收敛速度比较, 采用MRP过程来对比MC和TD的收敛速度. MRP是没有action的MDP. 一个随机游走的MRP过程,如下图
由中间点C开始,每一步为50%向左或者向右, 移动到最左边或者最右边结束, 如果最右边结束则有奖励1, 其他情况奖励为0.
状态A到E,的真实价值为
结果如下
上面提到的TD学习是利用t+1时刻状态价值的估计值来计算当前t时刻回报估计, 一种介于TD和MC学习之间的做法, 利用n步时刻之后(t+n)的回报估计来更新当前时刻(t)的状态价值估计. 当n趋于无穷时就是MC学习.
上式中T为最后一步的时刻, 我们有n步的回报定义为
n步TD学习的更新公式
n步TD学习(预测问题)的例子, 19状态的随机游走, n=1 就是TD(0), 而n=512时就很接近MC学习. 在下面的例子中看出有时n取中间值例如4或者8时同时 $\alpha$ 为 0.2或者0.4好于两个极端值的情况
现在的问题是实际运用中如何选取n? 用n=4或者n=8来估计V,又或者把这两个估计的V平均一下. 既然想到了平均,那么是不是可以对不同n的估计值利用加权的方法进行融合一下呢? 这就是TD ($\lambda$) 的方法. 这种思路和卷积模型中的inception模型类似,既然卷积核的大小不好选,那就都选上然后加权和,不过inception的加权系数时学习到的,而不是等比.
如何设计加权的系数呢,
在TD($\lambda$) 中各项权重系数定义为 $(1-\lambda) \lambda^{n-1}$ 能满足上面的两个要求. 于是有回报的估计为
备注, 实际上当n趋于无穷时所有系数和为1, 而在有限步后终止时, 所有系数之和不足1时的剩余部分都应该用作最终回报的系数. 其实可以想象在终止后仍然还有无穷多步,只不过每步都还停留在最终状态得到最终回报.
备注, $(1-\lambda)$ 实际上也就是归一化因子
备注, 设等比求和为1, 解方程可以得到首项为$(1-\lambda)$时能满足所有权重系数和为1
该视角也是 $TD(\lambda)$ 的定义, 需要用到将来直到回合终止时刻的回报加权和,
更新公式
更新公式中用到lambda回报 $G_t^{(\lambda)}$ 作为目标, 其计算需要用到将来知道回合结束时每步的信息. 又回到MC的同样问题.
顾名思义, 与其等待将来要发生的事情来更新当前, 不如记住过去的事情,用当前的状态来更新过去的状态值
从后往前,面朝已经经历过的状态流,获得当前回报并利用下一个状态的值函数得到TD偏差后,向已经经历过的状态通知,告诉这些已经经历过的状态处的值函数需要利用当前时刻的TD偏差进行更新。此时过往的每个状态值函数更新的大小应该跟距离当前状态的步数有关
当一系列的事件或者现象出现后,发生了某个特殊事件。 那么最终的特殊事件的发生和前面一系列的事件和现象的关联是如何设定的?
$I()$ 是指示函数,当函数内条件为真时值为1,否则为0
有了Eligibility Trace后可以定义后向更新机制如下, 在回合中的每个时刻t时
We propagate current error information into the states we visited in the past. This allows us to combine the n-step returns in an online fashion
之所以单独一节,是因为这个对理解整个TD $(\lambda)$ 很有帮助。
http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching_files/MC-TD.pdf http://www.cnblogs.com/jinxulin/p/3560737.html