周志华 强化学习 时序差分学习 公式推导

**爱学习的泠语啊

本文主要推导16.4.2节时序差分学习情况下的状态-动作值函数,也是刚刚学习强化学习,有问题欢迎大家反馈吐槽啊~

前面就是吧啦吧啦一顿介绍时序差分的优点,大家看书应该就能看的挺明白了,最后得到如下的值函数增量式的估计办法:

Qt+1π(x,a)=Qtπ(x,a)+1t+1(rt+1Qtπ(x,a))Q_{t+1}^{\pi}(x,a)=Q_{t}^{\pi}(x,a)+\frac{1}{t+1}(r_{t+1}-Q_{t}^{\pi}(x,a))Qt+1π​(x,a)=Qtπ​(x,a)+t+11​(rt+1​−Qtπ​(x,a)) 即公式(16.29)

这块大家注意哈,rt+1r_{t+1}rt+1​指的是本次获得的Q函数采样值,而不是状态转移之后获得的奖励值

接着他搬出了公式16.10:

Qπ(x,a)=xXPxxa(Rxxa+γVπ(x))Q_{\pi}(x,a)= \sum_{x \in X}P_{x \rightarrow x'}^a(R_{x \rightarrow x'}^a+\gamma V^{\pi}(x'))Qπ​(x,a)=∑x∈X​Px→x′a​(Rx→x′a​+γVπ(x′))

并将Vπ(x)V^{\pi}(x')Vπ(x′)替换为aAπ(x,a)Qπ(x,a)\sum_{a' \in A}\pi(x',a')Q^{\pi}(x',a')∑a′∈A​π(x′,a′)Qπ(x′,a′) ,这块就是将V函数拆分成两个部分,执行动作a,以及在当前状态和执行当前动作情况下的Q函数,然后全概率展开求期望,小伙伴们应该对这块很熟悉了吧~

然后我们得到了公式16.30:

Qπ(x,a)=xXPxxa(Rxxa+γaAπ(x,a)Qπ(x,a))Q_{\pi}(x,a)= \sum_{x \in X}P_{x \rightarrow x'}^a(R_{x \rightarrow x'}^a+\gamma \sum_{a' \in A}\pi(x',a')Q^{\pi}(x',a'))Qπ​(x,a)=∑x∈X​Px→x′a​(Rx→x′a​+γ∑a′∈A​π(x′,a′)Qπ(x′,a′))

好了!重点来了!由上式是怎么得到公式(16.31)的呢?

我们需要搞清楚上式是在模型已知情况下的Q函数表达值,而在实际情况中,也就是本节,我们并不知道模型是什么
样的,也就是说,上式中涉及一切和概率相关的表达式我们统统不知道!具体的说就是我们并不知道状态转移概率PxxaP_{x \rightarrow x'}^aPx→x′a​,我们所能获得的全部信息都来自与下一时刻对环境信息观察所获得的采样值,然后通过求取平均值估计值函数。我们知道RxxaR_{x \rightarrow x'}^aRx→x′a​,知道Qπ(x,a)Q^{\pi}(x',a')Qπ(x′,a′)(在执行一次策略并计算就好了),因此我们所能得到的一次采样值rt+1r_{t+1}rt+1​为:

rt+1=Rxxa+γQπ(x,a)r_{t+1}=R_{x \rightarrow x'}^a+\gamma Q^{\pi}(x',a')rt+1​=Rx→x′a​+γQπ(x′,a′)

然后我们将rt+1r_{t+1}rt+1​的表达式带入(16.29)就得到公式(16.31)了~

上一篇:[codeforces923D]Picking Strings


下一篇:错题总结:明确求导过程中的自变量很关键