强化学习过程笔记 (二) MDP 马尔可夫决策过程、贝尔曼等式详解

Markov Process & Markov chain 马尔可夫过程及马尔科夫链

如果一个状态是符合马尔可夫的,那就是说一个状态的下一状态只取决于它当前的状态,而跟它之前的状态都没有关系。

Markov Reward Process

马尔可夫过程加上一个奖励函数便构成了马尔可夫奖励过程

这里我们进一步阐述和温习一些概念及定义。

Horizon指一个回合的长度(每个回合的最大时间步数),它由有限个步数决定的

Return指把奖励折扣后所获得的收益,可以定义为奖励的逐步叠加:

G_t = R_{t+1}+\gamma R_{t+2}+ \gamma ^2 R_{t+3}+ ... +\gamma ^{T-t-1}R_{T}

正如我们上一篇博客所讲的一样。\gamma是折扣因子, 一般0\leq \gamma \leq 1,我们可以观察到越靠后时间所取得的奖励前面的折扣就越多,\gamma的作用在于我们尽可能在短的时间里面去的尽可能多的奖励,时间越向后所获得的奖励就要乘上越多的小于一的\gamma,使得奖励变少。同时,\gamma的存在也可以避免闭环的产生;

当有了G_t的定义后我们回过来看状态价值函数(state value function)

V_\pi(s) = \mathbb{E}_{\pi}[G_t|S_t = s] = \mathbb{E}_{\pi} [ R_{t+1}+\gamma R_{t+2}+ \gamma ^2 R_{t+3}+ ... +\gamma ^{T-t-1}R_{T} | S_t = s ]

 一个状态对未来取得奖励的期望决定了它的价值,期望就是说从这个状态开始,你有可能取得多大的价值,这个值越大代表当前状态越有价值

Bellman equation的定义

我们可以从价值函数里面推导出Bellman Equation (贝尔曼等式),如下

V(s)= R(s) + \gamma \sum_{s'\in S}P(s'|s)V(s')

本式可以分为两部分:即刻收益 (Immediate reward) R(s) 
以及折扣未来收益 (Discounted sum of future reward) \gamma \sum_{s'\in S}P(s'|s)V(s')

(准确来说是折扣因子 * 未来收益的期望,不清楚什么是期望的同学可以搜索全期望公式自行了解,本处不再赘述)

其中s'可以看做未来的所有状态

P(s'|s)是指从当前状态转移到未来状态的概率。

V(s')代表的是未来某一个状态的价值。

那我们如何理解Bellman Equation?

以下是Bellman Equation的推导过程。

首先我们要明确一点:贝尔曼等式就是当前状态与未来状态的迭代关系,是对价值函数的一个拆分,将其拆为了立刻可以获得的收益和未来可能的收益。以下是贝尔曼等式的推导过程:

强化学习过程笔记 (二) MDP 马尔可夫决策过程、贝尔曼等式详解_第1张图片

其中首先带入G_t的定义,再将其分开,后半部分提取一个\gamma

根据全期望等式可以推导出\mathbb{E}[V(s_{t+1}|s_t)] = \mathbb{E}[\mathbb{E}[G_{t+1}|s_{t+1}]|s_t] = \mathbb{E}[G_{t+1}|s_t]

我们可以试着这样理解贝尔曼等式:

t 时刻状态的价值 = 当前立刻可以获得的收益 + 折扣因子 * t+1状态的价值

而下一个状态的价值函数又可以同理理解为

t+1 时刻状态的价值 = t+1时刻可以立刻获得的收益+折扣因子 * t+2 状态的价值

通过如此往复迭代我们就可以将下一时刻价值V_s(t+1) 转化成未来所有状态价值V_(s')

故我们可以将贝尔曼等式理解为当前价值与“下一状态”价值之间的联系,所以\gamma \sum_{s'\in S}P(s'|s)V(s')前的\gamma就很好理解了。这里的“下一个状态”通过不断的迭代其实就是未来所有状态的收益。

贝尔曼等式是强化学习中的重中之重,一定要确保理解透彻。

对于小规模的MRP我们可以使用矩阵求逆的方法得到价值函数的解析解,不过这个方法用于大规模矩阵就很难实现了。

大规模的MRP求解价值函数可以使用动态规划算法(Dynamic Programming),蒙特卡洛算法(Monte Carlo Algorithm),时序差分学习(TD Learing)等。

动态规划就是不断迭代Bellman Equation,让状态的价值最后收敛,我们就得到了每个状态的价值。

蒙特卡洛算法即不断采样,举例来说就是让一只小船随波逐流,这样就会产生一个轨迹,进而得到一个奖励。我们可以算出折扣奖励g,通过累加最终得到G_t。通过大规模的这样进行采样后,对求得的所有G_t求一个平均值,便可以得到状态的价值。

TD Learing 是动态规划和蒙特卡洛算法的一个结合。

Markov Decision Process马尔可夫决策过程

相较于MRP,MDP多了一个decision

已知一个MDP和一个policy \pi,我们可以将MRP转换成相应的MDP。

MP/MRP 与 MDP的比较

马尔可夫过程的转移是直接就决定。比如当前状态是s,那么直接通过这个转移概率决定了下一个状态是什么。

但对于MDP,它中间多了一层动作a。采取动作后到达什么状态也是一个概率分布(采取动作与到达状态并不是一对一的关系)

强化学习过程笔记 (二) MDP 马尔可夫决策过程、贝尔曼等式详解_第2张图片

图示左边为MP/MRP,右边为MDP可以很直观地了解它们之间的差异。

 \pi(a|s)是在状态s下采取动作a的概率,P(s|s',a)是采取动作a后,从状态s转移到s'的概率。

MDP的Value Function

在MDP中,我们定义两个价值函数——状态-价值函数(statue-value function) 和动作-价值函数(action-value function)

状态-价值函数与MRP中的定义类似

v^{\pi}(s)=\mathbb{E}[G_t|s_t=s]

注意这里的期望是针对policy的期望。

动作-价值函数即Q函数,定义为在某一状态采取某一动作,它有可能得到的这个return的一个期望

q^{\pi}(s,a)=\mathbb{E}_\pi[G_t|s_t=s,A_t=a]

我们可以推导出Q函数的Bellman Equation: 

强化学习过程笔记 (二) MDP 马尔可夫决策过程、贝尔曼等式详解_第3张图片

此处的推导过程与MRP的类似,不再重复

Bellman Expectation Equation

我们将状态-价值函数拆分为及时奖励(Immediate reward)和后续状态的折扣价值(Discounted sum of future reward),得到Bellman Expectation Equation

v^{\pi}(s)=\mathbb{E}[R_{t+1}+ \gamma v^\pi(S_{t+1})|s_t=s]

有趣的一点是,贝尔曼期望等式其实就是另一种形式的贝尔曼等式,我们上述的对Bellman Equation理解方法便是根据Bellman Expectation Equation的定义来的。之所以称为贝尔曼期望等式,其实就是对贝尔曼等式求了了一个期望。可以进行如下转化

\mathbb{E}[R_{t+1}+ \gamma v^\pi(S_{t+1})|s_t=s]

\newline = \mathbb{E}[R_{t+1}]+ \gamma \mathbb{E}[ v^\pi (S_{t+1})]

\newline =R_{t+1}+\gamma \sum_{s'\in S}P(s'|s,a)v(s')

就是因为将贝尔曼等式中的\gamma \sum_{s'\in S}P(s'|s)V(s')根据期望和价值函数的定义转化为了\gamma \mathbb{E}[v_{s'}]

对于Q函数,我们也可以做类似的分解:


q^\pi(s,a) = \mathbb{E}_\pi[R_{t+1}+\gamma q^\pi(s_{t+1,A_{t+1}})|s_t=s,A_t=a] 

我们可以进行进一步的推导:

v^\pi(s)= \sum_{a\in A}\pi(a|s)q^\pi(s,a)

这个式子的意思是将在s状态下所有可能采取的动作的q函数进行一个加和,便可以得到状态-价值函数。

再给出q函数的定义

q^\pi(s,a)= R_s^a + \gamma \sum_{s' \in S} P(s'|s,a)v^\pi (s')

你可能感兴趣的:(人工智能,强化学习,机器学习)