美文网首页
强化学习-资格迹(Eligibility trace)

强化学习-资格迹(Eligibility trace)

作者: 闪电侠悟空 | 来源:发表于2021-10-19 14:22 被阅读0次

    问题描述

    我个人觉得邹伟博士的《强化学习》在关于资格迹的论述不是很清晰。无法理解资格迹的突然出现,这里就简单说下我的理解。

    强化学习的主要目标就是获取价值函数(value function)或者行为价值函数(action-value function),这里我们还是以值函数为例进行说明。
    v(s)=v(s,w)

    这里用参数w 统一公式化表格型,v(s_i)=w_i,或者连续型值函数v(s_i)=f(s_i,w).

    累积回报: G_t = r_{t+1}+\gamma r_{t+2}+\gamma ^2 r_{t+1}+...,
    值函数定义: 累积回报的期望 v(s)=\mathbb{E} G_t(s)。求解最优值函数便成了一个优化问题
    w^*_i = \arg\min L(w_i)= \arg\min |v(s_i,w_i)-\mathbb{E}G_t(s_i)|^2
    (我这里分开每个状态表示表格型的RL问题)

    数学求解(梯度下降)

    用梯度下降法,求解上述优化问题不算复杂
    w_i\leftarrow w_i -\alpha \frac{\partial L}{\partial w_i}
    其中
    \frac{\partial L}{\partial w_i} = 2(v(s_i,w_i)-\mathbb{E}G_t(s_i)) \nabla_{w_i}v(s_i, w_i)
    所以,
    w_i \leftarrow w_i +\alpha [\mathbb{E}G_t(s_i)-v(s_i,w_i)] \nabla_{w_i}v(s_i, w_i)
    对于表格型强化学习v(s_i,w_i)=w_i, 所以
    v_i(s_i) \leftarrow v_i(s_i) +\alpha [\mathbb{E}G_t(s_i)-v(s_i,w_i)] \nabla_{w_i}v(s_i, w_i)
    现状还有两个问题没有解决

    • [\mathbb{E}G_t(s_i)-v(s_i,w_i)]如何计算?这一项实际上就是TD error,Sarsa & Q-learning都解决了。
    • \nabla_{w_i}v(s_i, w_i)如何计算?这个玩意儿我们暂时就称为资格迹,值函数更新是否有资格,就看这个数据的取值。

    资格迹的计算与近似

    • 直接看公式 v(s_i,w_i)=w_i,那么\nabla_{w_i}v(s_i, w_i)=1恒成立。也就是普通的算法,不是课本上的资格迹。
    • 既然如此,为什么要严格按照优化公式?将\nabla_{w_i}v(s_i, w_i)替换成类似的Z(s_i)行不行?
      v_i(s_i) \leftarrow v_i(s_i) +\alpha [\mathbb{E}G_t(s_i)-v(s_i,w_i)] Z(s_i)

    脉冲神经网络中,不就是将时序脉冲转换为膜电位的思路吗?

    所以,根据s_i出现的频率,增大Z(s_i),增大更新幅值. 所以这也是一个将全局系数\alpha,变成一个局部系数\alpha_{si}=\alpha Z(s_i)的改进.

    一种资格迹更新方程
    好了,到这里,资格迹的算法就出来。
    来自R. S. Sutton的书

    总结

    • 资格迹,是根据状态出现的时空频率,增加频繁出现数据的更新值。
    • 全局系数变成了局部系数。

    相关文章

      网友评论

          本文标题:强化学习-资格迹(Eligibility trace)

          本文链接:https://www.haomeiwen.com/subject/jmfroltx.html