第一章 强化学习基础
强化学习(reinforcement learning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)中最大化它能获得的奖励。如图 1.1 所示,强化学习由两部分组成:智能体和环境。在强化学习过程中,智能体与环境一直在交互。智能体在环境中获取某个状态后,它会利用该状态输出一个动作 (action),这个动作也称为决策(decision)。然后这个动作会在环境中被执行,环境会根据智能体采取的动作,输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励。
图 1.1 强化学习示意
这里给大家举一些在现实生活中强化学习的例子。
(1)在自然界中,羚羊其实也在做强化学习。它刚刚出生的时候,可能都不知道怎么站立,然后它通过试错,一段时间后就可以跑得很快,可以适应环境。
(2)我们也可以把股票交易看成强化学习的过程。我们可以不断地买卖股票,然后根据市场给出的反馈来学会怎么去买卖可以让我们的奖励最大化。
(3)玩雅达利游戏或者其他电脑游戏,也是一个强化学习的过程,我们可以通过不断试错来知道怎么 玩才可以通关。
一些你需要知道的名词:
智能体与环境:强化学习研究的问题是智能体与环境交互的问题,图 1.12 左边的智能体一直在与图 1.12 右边的环境进行交互。智能体把它的动作输出给环境,环境取得这个动作后会进行下一步,把下一步的观测与这个动作带来的奖励返还给智能体。这样的交互会产生很多观测,智能体的目的是从这些观测之中学到能最大化奖励的策略。
图 1.12 智能体和环境
奖励:是由环境给的一种标量的反馈信号(scalar feedback signal),这种信号可显示智能体在某一步采取某个策略的表现如何。强化学习的目的就是最大化智能体可以获得的奖励,智能体在环境里面存在的目 的就是最大化它的期望的累积奖励(expected cumulative reward)。不同的环境中,奖励也是不同的。
强化学习通常被建模成部分可观测马尔可夫决策过程(partially observable Markov decision process, POMDP)的问题。部分可观测马尔可夫决策过程是马尔可夫决策过程的一种泛化。 部分可观测马尔可夫决策过程依然具有马尔可夫性质,但是假设智能体无法感知环境的状态,只能知道 部分观测值。比如在自动驾驶中,智能体只能感知传感器采集的有限的环境信息。部分可观测马尔可夫决策过程可以用一个七元组描述:(𝑆,𝐴,𝑇,𝑅,Ω,𝑂,𝛾)。其中 𝑆表示状态空间,为隐变量,𝐴为动作空间,𝑇(𝑠′∣𝑠,𝑎)为状态转移概率,𝑅为奖励函数,Ω(𝑜∣𝑠,𝑎)为观测概率,𝑂 为观测空间,𝛾 为折扣系数。
动作空间:不同的环境允许不同种类的动作。在给定的环境中,有效动作的集合经常被称为动作空间(action space)。
对于一个强化学习智能体,它可能有一个或多个如下的组成成分。
-
策略(policy)。智能体会用策略来选取下一步的动作。
-
价值函数(value function)。我们用价值函数来对当前状态进行评估。价值函数用于评估智能体进 入某个状态后,可以对后面的奖励带来多大的影响。价值函数值越大,说明智能体进入这个状态越有利。
-
模型(model)。模型表示智能体对环境的状态进行理解,它决定了环境中世界的运行方式。
…………………………………………我是一条分割线 …………………………………………………
第二章 马尔科夫决策过程(MDP)
1.我们先从简单的马尔科夫过程讲起
马尔科夫性质:在随机过程中,马尔可夫性质(Markov property)是指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。
马尔可夫过程是一组具有马尔可夫性质的随机变量序列 𝑠1,⋯ ,𝑠𝑡,其中下一个时刻的状态𝑠𝑡+1只取决于当前状态 st。
离散时间的马尔可夫过程也称为马尔可夫链(Markov chain)。马尔可夫链是最简单的马尔可夫过程,其状态是有限的。
例如,图 2.2 里面有4个状态,这4个状态在 𝑠1,𝑠2,𝑠3,𝑠4s1,s2,s3,s4 之间互相转移。比如从 𝑠1s1 开始,𝑠1s1 有 0.1 的概率继续存留在 𝑠1s1 状态,有 0.2 的概率转移到 𝑠2s2,有 0.7 的概率转移到 𝑠4s4 。如果 𝑠4s4 是我们的当前状态,它有 0.3 的概率转移到 𝑠2s2,有 0.2 的概率转移到 𝑠3s3,有 0.5 的概率留在当前状态。
图 2.2 马尔可夫链示例
我们可以用状态转移矩阵(state transition matrix)𝑃来描述状态转移 𝑝(𝑠𝑡+1=𝑠′∣𝑠𝑡=𝑠):
状态转移矩阵类似于条件概率(conditional probability),它表示当我们知道当前我们在状态 𝑠𝑡时,到达下面所有状态的概率。所以它的每一行描述的是从一个节点到达所有其他节点的概率。
2.马尔可夫奖励过程(马尔可夫链+奖励函数)
这里我们进一步定义一些概念。范围(horizon) 是指一个回合的长度(每个回合最大的时间步数),它是由有限个步数决定的。 回报(return)可以定义为奖励的逐步叠加,假设时刻𝑡t后的奖励序列为𝑟𝑡+1,𝑟𝑡+2,𝑟𝑡+3,⋯rt+1,rt+2,rt+3,⋯,则回报为
(很像复利函数公式,所以期望也可以看成未来可能获得奖励的当前价值的表现)
其中,𝑇是最终时刻,𝛾是折扣因子,越往后得到的奖励,折扣越多。这说明我们更希望得到现有的奖励,对未来的奖励要打折扣。当我们有了回报之后,就可以定义状态的价值了,就是状态价值函数(state-value function)。对于马尔可夫奖励过程,状态价值函数被定义成回报的期望,即
上面是价值函数的定义,那么价值函数怎么计算呢?
使用贝尔曼方程!
贝尔曼方程是从价值函数里推导出来的:
(推导过程省略)
贝尔曼方程如下贝尔曼方程就是当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动态规划创始人理查德 ⋅⋅ 贝尔曼(Richard Bellman)而得名 ,也叫作“动态规划方程”。
所以现在就可以计算价值函数了吗?还不行。
计算价值函数有以下两种方法:
1️⃣蒙特卡洛方法
方法思路:从某个状态开始,让智能体随机产生一些轨迹,每条轨迹得到一个奖励,将这些奖励加起来除以轨迹数量,就会得到某个状态的价值。
2️⃣动态规划方法
一直迭代贝尔曼方程,直到价值函数收敛,我们就可以得到某个状态的价值。我们通过自举(bootstrapping)的方法不停地迭代贝尔曼方程,当最后更新的状态与我们上一个状态的区别并不大的时候,更新就可以停止,我们就可以输出最新的 𝑉′(𝑠)V′(s) 作为它当前的状态的价值。
3.马尔科夫决策过程(马尔科夫奖励过程+决策)
相对于马尔可夫奖励过程,马尔可夫决策过程多了决策(决策是指动作),其他的定义与马尔可夫奖励过程的是类似的。此外,状态转移也多了一个条件,变成了𝑝(𝑠𝑡+1=𝑠′∣𝑠𝑡=𝑠,𝑎𝑡=𝑎)。
对于奖励函数,它也多了一个当前的动作,变成了 𝑅(𝑠𝑡=𝑠,𝑎𝑡=𝑎)=𝐸[𝑟𝑡∣𝑠𝑡=𝑠,𝑎𝑡=𝑎]。当前的状态以及采取的动作会决定智能体在当前可能得到的奖励多少。
策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,我们可以把当前状态代入策略函数来得到一个概率,即
π(a∣s)=p(at=a∣st=s)
概率代表在所有可能的动作里面怎样采取行动,比如可能有 0.7 的概率往左走,有 0.3 的概率往右走,这是一个概率的表示。另外策略也可能是确定的,它有可能直接输出一个值,或者直接告诉我们当前应该采取什么样的动作,而不是一个动作的概率。
那马尔可夫决策过程中的价值函数怎么求呢?
先看定义,马尔可夫决策过程中的价值函数可定义为:
这里我们另外引入了一个 Q 函数(Q-function)。Q 函数也被称为动作价值函数(action-value function)。Q 函数定义的是在某一个状态采取某一个动作,它有可能得到的回报的一个期望,即
这里的期望其实也是基于策略函数的。所以我们需要对策略函数进行一个加和,然后得到它的价值。 对 Q 函数中的动作进行加和,就可以得到价值函数:
(可以看出,价值函数就是所有动作的动作价值函数之和)
那么状态价值函数怎么计算呢?动作价值函数怎么计算呢?
还用贝尔曼方程!
先来看看Q函数的贝尔曼方程:
(它和马尔科夫奖励过程简直一模一样,不过多了个,a)
但是马尔科夫决策过程和马尔科夫奖励过程有很不同的一点,就是马尔可夫过程/马尔可夫奖励过程的状态转移是直接决定的。比如当前状态是 𝑠,那么直接通过转移概率决定下一个状态是什么。但对于马尔可夫决策过程,它的中间多了一层动作 𝑎 ,即智能体在当前状态的时候,首先要决定采取某一种动作,这就多了一定的不确定性,所以当智能体当前状态以及智能体当前采取的动作决定过后,智能体进入未来的状态其实也是一个概率分布。在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程/马尔可夫奖励过程很不同的一点。在马尔可夫决策过程中,动作是由智能体决定的,智能体会采取动作来决定未来的状态转移。
正因为有概率了,所以我们算的是期望!
状态价值函数的贝尔曼期望方程:
对于 Q 函数,我们也可以做类似的分解,得到 Q 函数的贝尔曼期望方程:
贝尔曼期望方程定义了当前状态与未来状态之间的关联。
最后再来复习一下这三个过程。
接下来您还将看到状态价值函数和Q函数之间的关联、什么是备份图、以及策略评估等……
稍后更新
……………………………………………………施工中……………………………………………………