前言

学习这个算法有一段时间了,但是因为自己犯懒一直没有整理。现整理一下,一方面有刚入门的同学可以参考,另一方面哪里写错或者理解不深的还请大家及时指正。

基本概念

基本概念

首先列出一些强化学习中的基本概念,主要是为了帮助自己回忆起学习这个算法的过程。

  1. 状态值函数:智能体在状态 ss 处的累计回报的期望值被称为智能在在采用策略 π\pi 时在状态 ss 处的状态值函数。用公式表示如下:vπ(s)=E[k=0γkRt+k+1St=s]v_{\pi}\left(s\right) = \mathbb{E}\left[\sum_{k=0}^{\infty}\gamma^{k}\mathcal{R}_{t+k+1}|S_{t}=s\right]
    不同的策略 π\pi 在相同的状态 ss 下对应的状态值函数是不同的,因为策略 π\pi 本身会影响智能体处在某一状态是的行为,进而改变累计回报 G\mathcal{G}
  2. 状态-行为值函数:智能体在状态 ss 处执行动作 aa 所获得的累计回报的期望值被定义为智能体在策略 π\pi 时处在状态 ss 处执行动作 aa 的状态-行为值函数。用公式表示如下:qπ(s,a)=Eπ[k=0γkRt+k+1St=s,At=a]q_{\pi}\left(s,a\right)=\mathbb{E}_{\pi}\left[\sum_{k=0}^{\infty}\gamma^{k}\mathcal{R}_{t+k+1}|S_{t}=s, A_{t}=a\right]

递推关系

智能体的状态值函数和状态行为值函数之间存在一种递推关系。下图给出四种递推关系:
强化学习Q-Learning算法

  1. **vπ(s)qπ(s,a)v_{\pi}\left(s\right)\rightarrow q_{\pi}\left(s,a\right) **vπ(s)=aAπ(as)qπ(s,a)v_{\pi}\left(s\right)=\sum_{a\in A}\pi\left(a|s\right)q_{\pi}\left(s,a\right)
  2. vπ(s)vπ(s)v_{\pi}\left(s\right)\rightarrow v_{\pi}\left(s'\right)vπ(s)=aAπ(as)[Rsa+γsPssavπ(s)]v_{\pi}\left(s\right)=\sum_{a\in A}\pi\left(a|s\right)\left[R_{s}^{a}+\gamma\sum_{s'}P_{ss'}^{a}v_{\pi}\left(s'\right)\right]
  3. qπ(s,a)vπ(s)q_{\pi}\left(s,a\right)\rightarrow v_{\pi}\left(s'\right)qπ(s,a)=Rsa+γsPssavπ(s)q_{\pi}\left(s,a\right)=R_{s}^{a}+\gamma\sum_{s'}P_{ss'}^{a}v_{\pi}\left(s'\right)
  4. qπ(s,a)qπ(s,a)q_{\pi}\left(s,a\right)\rightarrow q_{\pi}\left(s',a'\right)qπ(s,a)=Rsa+γsPssa[aAπ(sa)qπ(s,a)]q_{\pi}\left(s,a\right)=R_{s}^{a}+\gamma\sum_{s'}P_{ss'}^{a}\left[\sum_{a'\in A}\pi\left(s'|a'\right)q_{\pi}\left(s',a'\right)\right]

Q-learning基本原理

Q-Learning算法是一种基于表格的值函数迭代的强化学习算法。这个方法最大的特点就是建立一张Q值表(Q-Table),算法迭代时Q值表不停地被更新,直至最后表中数据收敛。等到Q值表收敛后,智能体可以根据每个状态的行为值函数的大小来确定最优策略。Q值表示意如下:

QTableQ-Table a1a_{1} a2a_{2} \cdots ama_{m}
s1s_{1} q(s1,a1)q\left(s_{1}, a_{1}\right) q(s1,a2)q\left(s_{1}, a_{2}\right) q(s1,)q\left(s_{1}, \cdots\right) q(s1,am)q\left(s_{1}, a_{m}\right)
s2s_{2} q(s2,a1)q\left(s_{2}, a_{1}\right) q(s2,a2)q\left(s_{2}, a_{2}\right) q(s2,)q\left(s_{2}, \cdots\right) q(s2,am)q\left(s_{2}, a_{m}\right)
\vdots q(,a1)q\left(\cdots, a_{1}\right) q(,a2)q\left(\cdots, a_{2}\right) \ddots q(,am)q\left(\cdots, a_{m}\right)
sns_{n} q(sn,a1)q\left(s_{n}, a_{1}\right) q(sn,a2)q\left(s_{n}, a_{2}\right) q(sn,)q\left(s_{n}, \cdots\right) q(sn,am)q\left(s_{n}, a_{m}\right)

分类:

技术点:

相关文章: