在给定历史状态 s 0 , … , s t s_0,\dots,s_t s0,…,st的情况下,某个状态的未来只与当前状态 s t s_t st有关,与历史的状态无关。
p ( s t + 1 ∣ s t ) = p ( s t + 1 ∣ s 0 , s 1 , … , s t ) p(s_{t+1}|s_t)=p(s_{t+1}|s_0,s_1,\dots,s_t) p(st+1∣st)=p(st+1∣s0,s1,…,st)
即一个状态的下一个状态只取决于它的当前状态,而与它当前状态之前的状态都没有关系。
一组具有马尔可夫性质的随机变量序列 s 1 , … , s t s_1,\dots,s_t s1,…,st,其中下一个时刻的状态只 s t + 1 s_{t+1} st+1取决于当前状态 s t s_t st。我们设状态的历史为 h t = s 1 , s 2 , s 3 , … , s t h_t={s_1,s_2,s_3,\dots,s_t} ht=s1,s2,s3,…,st( h t h_t ht包含了之前的所有状态),则马尔可夫过程满足条件:
p ( s t + 1 ∣ s t ) = p ( s t + 1 ∣ h t ) p(s_{t+1}|s_t)=p(s_{t+1}|h_t) p(st+1∣st)=p(st+1∣ht)
即概率论和数理统计中具有马尔可夫性质且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。
离散时间的马尔可夫过程也成为马尔可夫链。
V π ( s ) = E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ ∣ S t = s ] = E [ R t + 1 ∣ s t = s ] + γ E [ R t + 2 + γ R t + 3 + γ 2 R t + 4 + ⋯ ∣ S t = s ] = R ( s ) + γ E [ G t + 1 ∣ S t = s ] = R ( s ) + γ E [ V π ( s t + 1 ) ∣ S t = s ] = R ( s ) + γ ∑ s ′ ∈ S P ( S t + 1 = s ′ ∣ S t = s ) V π ( s ′ ) = R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V π ( s ′ ) \begin{aligned} V_{\pi}(s) & =\mathbb{E}_{\pi}\left[G_t \mid S_t=s\right] \\ & =\mathbb{E}_{\pi}\left[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots \mid S_t=s\right] \\ & =\mathbb{E}\left[R_{t+1} \mid s_t=s\right]+\gamma \mathbb{E}\left[R_{t+2}+\gamma R_{t+3}+\gamma^2 R_{t+4}+\cdots \mid S_t=s\right] \\ & =R(s)+\gamma \mathbb{E}\left[G_{t+1} \mid S_t=s\right] \\ & =R(s)+\gamma \mathbb{E}\left[V_{\pi}\left(s_{t+1}\right) \mid S_t=s\right] \\ & =R(s)+\gamma \sum_{s^{\prime} \in S} P\left(S_{t+1}=s^{\prime} \mid S_{t}=s\right) V_{\pi}\left(s^{\prime}\right)\\ & =R(s)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V_{\pi}\left(s^{\prime}\right) \end{aligned} Vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+1+γRt+2+γ2Rt+3+⋯∣St=s]=E[Rt+1∣st=s]+γE[Rt+2+γRt+3+γ2Rt+4+⋯∣St=s]=R(s)+γE[Gt+1∣St=s]=R(s)+γE[Vπ(st+1)∣St=s]=R(s)+γs′∈S∑P(St+1=s′∣St=s)Vπ(s′)=R(s)+γs′∈S∑p(s′∣s)Vπ(s′)
定义了当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。
也即动态规划方程。即 V ( s ) = R ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V ( s ′ ) V(s)=R(s)+\gamma\sum_{s'\in S}P(s'|s)V(s') V(s)=R(s)+γs′∈S∑P(s′∣s)V(s′)
其中 R ( s ) R(s) R(s)表示奖励函数, P ( S t + 1 = s ′ ∣ S t = s ) P(S_{t+1}=s'|S_t=s) P(St+1=s′∣St=s)表示转移概率矩阵。
其可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态差距不大的时候,动态规划算法的更新就可以停止。
可用来计算价值函数的值。当得到一个马尔可夫奖励过程后,从某一状态开始,与环境进行交互,这样就产生一个轨迹,从而得到一个折扣后的奖励 g g g。当积累该奖励到一定数量后,用它直接除以轨迹数量,就会得到其价值函数的值。
用于免模型预测价值函数,需要观测全部状态后再进行处理。
V π ( s ) = E π [ R t + γ R t + 1 + γ 2 R t + 2 + ⋯ ∣ S t = s ] = E π [ G t ∣ S t = s ] (4.1) \tag{4.1} \begin{aligned} V_\pi(s) &=\mathbb{E}_{\pi}[R_{t}+\gamma R_{t+1}+\gamma^2 R_{t+2} + \cdots |S_t=s ] \\ &=\mathbb{E}_{\pi}[G_t|S_t=s ] \end{aligned} Vπ(s)=Eπ[Rt+γRt+1+γ2Rt+2+⋯∣St=s]=Eπ[Gt∣St=s](4.1)
其定义的是某一个状态和某一个动作所对应的有可能得到的回报的期望。
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ( s ′ ) Q_{\pi}(s,a)=R(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)V(s') Qπ(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)V(s′)
如果不具备马尔可夫性,即下一个状态与之前的状态也有关,若仅用当前的状态来求解决策过程,势必导致决策的泛化能力变差。为了解决这个问题,可以利用循环神经网络对历史信息建模,获得包含历史信息的状态表征,表征过程也可以使用注意力机制等手段,最后在表征状态空间求解马尔可夫决策过程问题。
强化学习是一个与时间相关的序列决策的问题。
概率函数定量地表达状态转移的概率,其可以表现环境的随机性。但是实际上,我们经常处于一个未知的环境中,即概率函数和奖励函数是未知的。
它结合了动态规划和蒙特卡罗的思想,通过不断更新状态值函数或者动作值函数来学习最优策略。时序差分算法的特点是它不需要知道环境的完整模型,也不需要等待一个完整的回合结束,而是在每一步都可以进行学习和更新。
KaTeX parse error: \tag works only in display equations
Sarsa算法是一种时序差分学习的方法,它是一种在线的强化学习算法,即它在学习的过程中遵循和改进同一个策略。Sarsa算法的名称来源于它的更新公式,即:
Q ( s , a ) ← Q ( s , a ) + α ( r + γ Q ( s ′ , a ′ ) − Q ( s , a ) ) Q(s,a) \leftarrow Q(s,a) + \alpha (r + \gamma Q(s',a') - Q(s,a)) Q(s,a)←Q(s,a)+α(r+γQ(s′,a′)−Q(s,a))
其中, s s s表示当前状态, a a a表示当前动作, r r r表示当前奖励, s ′ s' s′表示下一个状态, a ′ a' a′表示下一个动作, α \alpha α表示学习率, γ \gamma γ表示折扣因子, Q Q Q表示动作值函数。
Sarsa算法的步骤如下:
Sarsa算法的优点是它可以处理部分可观测(Partially Observable)的环境,即不需要知道环境的完整模型(Model),也可以适应环境的变化(Change)。Sarsa算法的缺点是它的收敛速度较慢,且可能陷入局部最优(Local Optimum)。
因为在现实世界中奖励往往是延迟的,所以强化学习需要学习远期的奖励。我们一般会从当前状态开始,把后续有可能会收到的奖励加起来计算当前动作的Q值,让Q值可以真正代表当前状态下动作的真正价值。
但有的时候我们把目光放得太长远并不好。如果任务很快就结束,那么考虑到最后一步的奖励无可厚非。但如果任务是一个持续的没有尽头的任务,即持续式任务(continuing task),我们把未来的奖励全部相加作为当前的状态价值就很不合理。
蒙特卡洛方法是基于回合的更新,即只有在一个回合结束后才可以进行学习和更新,而时序差分方法是基于单步的更新,即每一步都可以进行学习和更新。
蒙特卡洛方法是基于采样的估计,即利用真实的回报来更新估计值,而时序差分方法是基于自助的估计,即利用当前的估计值来更新下一个估计值。
蒙特卡洛方法只能处理离散的任务,即有终止状态的任务,而时序差分方法可以处理连续的任务,即没有终止状态的任务。
蒙特卡洛方法对初始值的选择比较鲁棒,即最终的学习结果不受初始值的影响,而时序差分方法对初始值的选择比较敏感,即不同的初始值可能导致不同的学习结果。
同策略和异策略的根本区别在于生成样本的策略和参数更新时的策略是否相同。对于同策略,行为策略和要优化的策略是同一策略,更新了策略后,就用该策略的最新版本对数据进行采样;对于异策略,其使用任意行为策略来对数据进行采样,并利用其更新目标策略。例如,Q学习在计算下一状态的预期奖励时使用了最大化操作,直接选择最优动作,而当前策略并不一定能选择到最优的动作,因此这里生成样本的策略和学习时的策略不同,所以Q学习算法是异策略算法;相对应的Sarsa算法则是基于当前的策略直接执行一次动作选择,然后用动作和对应的状态更新当前的策略,因此生成样本的策略和学习时的策略相同,所以Sarsa算法为同策略算法。