深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)

最近需要做深度强化学习方面的内容,所以对这部分内容进行一下记录。

以下是参考的资料:

强化学习入门  量子位公众号对一篇博客的翻译,强化学习入门很不错。

Deep Reinforcement Learning: An Overview  一篇关于深度强化学习的综述文章,机器之心公众号有对其的翻译,可以看一下。

知乎--强化学习怎么入门好?  知乎上有详细的专栏介绍。

OpenAI 深度强化学习资源    包含入门基础和代码。Spinning up项目是OpenAI教育项目的一部分,主要就是提供深度强化学习的教育资源。

接下来是对一些基本概念的整理,我是从强化学习开始整理的:

1、强化学习(Reinforcement Learning,RL),序列决策的工具,有以下几类对象:

代理 (agent) 智能体,相当于进行决策的主体。

动作(action)由代理做出,相当于做出何种决策。

奖励(reward) 由代理获得。强化学习的目标就是获得尽可能多的奖励。

环境(environment) 代理所处的应用场景

状态(state) 代理当前的状态

对于整个强化学习,代理,即智能体,通过动作与环境进行交互,从而产生新的状态,环境会据此给出一个奖励(不同的动作会带来不同的奖励)。代理不断循环这个过程,与环境交互产生新的数据。目标是获取尽可能多的奖励,强化学习算法会根据产生的数据不断修改自身的动作策略,最终达到一个最优的动作,积累最多的奖励。

因此,强化学习的过程是交互的,与其他的机器学习算法如监督学习和非监督学习是不一样的。强化学习涉及的对象更多,更像是人类学习的过程

2、策略(policy), 代理agent作出何种动作的策略。它指的并不是在具体的状态下作出何种动作,而是从全局的角度,可以看做是一个函数,输入是状态state,输出是动作action,强化学习中的策略学习方法目标就是学得一个最佳的策略,获得最大的reward。

3、马尔科夫决策过程(Markov Decision Process, MDP)

(1)马尔科夫性质:系统的下一个状态s_{t+1}的概率分布只依赖于前一个状态s_{t}。即对任意时间t,对任意状态s_{t},s_{t+1} \in S,均有

                                                          P(s_{t+1}|s_{t}) = P(s_{t+1}|s_{1},...s_{t})

其核心假设是不论过去发生了什么,不论系统如何到达状态s_{t},下一个时刻转移到状态s_{t+1}的概率只与s_{t},与以前的状态均无关。

马尔科夫性质描述的是每个状态的性质,对于一个随机变量序列,如果每个状态都具有马尔科夫性质,那么这个随机过程称之为马尔科夫随机过程。

(2)马尔科夫随机过程(Markov Process):由一个二元组(S,P)表示,S={1,...,m}是状态集合,P是状态转移概率。可以用状态转移概率矩阵描述,也可以直观的用状态转移概率图来表示。

状态转移概率矩阵,为简单的二元矩阵:

\begin{bmatrix} p_{11}&... &p_{1m} \\ \vdots &... &\vdots \\ p_{m1}& ... &p_{mm} \end{bmatrix}   

注意:矩阵每行的概率之和为1,即当前状态为i,那么下一个状态为1,2,...,m的概率为p_{i1},p_{i2},...p_{im},所有状态的概率之和为1。

状态转移概率图,用节点表示状态,连接节点的有向弧线代表可能发生的转移:

深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)_第1张图片

自己手动画了一个简单的转移概率图,其中可能的状态序列可以是:进步--->落后,这个状态序列称为马尔科夫链。对于上图存在着多条马尔科夫链。

(3)马尔科夫奖励过程(Markov Reward Process) 可以用一个四元组(S, P, R, γ)表示,R代表奖励函数(回报函数),γ代表折扣因子。

R,奖励函数 R_{s_{t}} = E(R_{t+1} | S_{t} = s_{t}), 代表了从t时刻状态s_{t}转移到下一时刻t+1各种可能状态所获得奖励的期望 通常意义上是指离开这个状态所获得的奖励。

深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)_第2张图片

举例而言,就是离开进步这个状态的奖励为R=2。这里只是简单的例子,直接给出了数值。

由此,引出收获G_{t}(Return,total discounted reward ),从某一具体时刻t开始,到达终点所得的所有奖励的有衰减的总和。因为距初始状态s_{t}越远,受到的影响越小,所以加上了折扣因子。

G_{t} = R_{t+1} + \gamma R_{t+2} + ... = \sum_{k=0}^{\infty }\gamma^{k}R_{t+k+1}

个人理解:G_{t}函数关注的是时刻,即从时刻t开始之后,各个不同时刻获得的奖励的有衰减的总和因为下标是时刻,所以不代表某一具体路径,而是涵盖了所有的可能性,。

R_{t+1}就是离开t时刻获得的奖励,R_{t+2}就是离开t+1时刻获得的奖励,t+1时刻可以是各种状态。

因此,强化学习的目标是想找到t时刻之后最大的收获G_{t}

γ是一个指数函数,理解就是当前状态的转移对下一个状态影响很大,但是对之后转移的状态影响会逐渐减小。

价值函数(Value Function) 从某一状态s_{t}开始,各种可能路径所带来的收获的期望。

v(s_{t}) = E(G_{t} | S_{t} = s_{t})

很明显在复杂情况下,G_{t}是有多种情况,我们无法穷尽所有序列,得到一个最准确的值。因此,可以通过价值函数求得从t时刻的状态s_{t }到终点的每一条马尔科夫链的收益G的期望

贝尔曼期望方程 Bellman Equation:

\begin{align*} v(s_{t}) &= E(G_{t} | S_{t} = s_{t})\\ &= E(R_{t+1} + \gamma R_{t+2} + \gamma^{2} R_{t+3} + ... | S_{t} =s_{t})\\ &=E(R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + ...) | S_{t} =s_{t})\\ &=E(R_{t+1} + \gamma G_{t+1} | S_{t} = s_{t})\\ &=E(R_{t+1} + \gamma v(S_{t+1}) | S_{t} = s_{t} ) \end{align*}

采用贝尔曼期望方程就是希望采取递归的方式将价值函数进行求解,,可以看出最终分为了两部分, 一部分是该状态下的立即奖励期望,另一部分是下一时刻的状态S_{t+1}的价值期望值乘以折扣因子。

对于最后两步的推导,个人理解是v(S_{t+1}) = E(G_{t+1} | S_{t+1}),价值函数的值是一个标量,所以对v(S_{t+1})求期望还是其本身,所以可以直接代替G_{t+1}

(4)马尔科夫决策过程(Markov Decision Process)可以由一个五元组(S,A,P,R,γ)表示。相比马尔科夫决策过程多了A ,动作集。终于进一步接近强化学习了。之前就介绍了强化学习是一个交互的过程,通过加入动作集A,可以使系统从一个状态转移到另外一个状态。

涉及的参数policy π  \pi(a | s_{t}) = P(A_{t}=a] | S_{t} =s_{t})是指在给定状态s_{t }下,关于动作a的概率分布所有状态下的policy π(a|s)构成了整体策略π。

我们的目标就是不断改进策略,最终获得最大的累加奖励。

给定一个MDP M=(S,A,P,R,γ)和policy π,我们可以得到一个马尔科夫随机过程(S, P^{\pi}),一个马尔科夫奖励过程(S, P^{\pi},R^{\pi},\gamma)

其中,P_{s,s^{'}}^{\pi} = \sum _{a\in A}\pi(a|s)P_{ss^{'}}^{a}    R_{s}^{\pi} = \sum _{a\in A}\pi(a|s)R_{s}^{a}

理解P_{s,s^{'}}^{\pi} 就是一个联合概率,执行动作a的概率乘以状态转移概率。  相当于目前由状态s到状态s‘的概率为两部分组成一个是采取相应动作的概率,一个是采取动作后的状态转移概率。因为在实际情况中,你做了一件事不代表就会达到预期的效果。 所以是两部分概率相乘。

接下来,是自己感觉最绕的地方,把策略和动作与之前的马尔科夫奖励过程提到的函数相结合。

状态-价值函数(state-value function)v_{\pi}(s)

v_{\pi}(s) = E_{\pi}(G_{t} | S_{t} = s)

代表从状态s开始, 使用策略π所带来的收获G的期望。

如同在之前使用贝尔曼期望方程分解一样,状态-价值函数同样可以进行分解为两部分:

v_{\pi}(s) = E_{\pi}(R_{t+1} + \gamma v_{\pi}(S_{t+1}) | S_{t}=s)     即时奖励 + 下一时刻状态的状态-价值函数的值乘以折扣因子

动作-价值函数(action-value function)q_{\pi}(s, a):

q_{\pi}(s, a) = E_{\pi}(G_{t} | S_{t} =s, A_{t}= a)

代表从状态s开始,采取行动a,使用策略π之后所带来的收获G的期望。

同样,对动作-价值函数使用贝尔曼期望方程可以得到:

q_{\pi}(s,a) = E_{\pi}(R_{t+1} + \gamma q(S_{t+1},A_{t+1}) | S_{t}=s,A_{t}=a)   即时奖励 +  下一时刻状态的动作-价值函数的值乘以折扣因子。

为什么要提出动作-价值函数呢?而且从定义上看,动作-价值函数跟状态-价值函数基本上一样,个人理解是为将动作-价值函数作为过渡的一步,方便后续推导。动作-价值函数强调的是采取动作之后,再使用策略所带来的收获。

难点

二者的关系:这里注意是包含迭代的思想,像是动作-价值函数其实包括后续的迭代的值。

对于状态-价值函数而言:(白圈代表状态,黑圈代表动作,后续图含义相同)

深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)_第3张图片

图1代表:状态s在策略π的指导采取了各种可能的动作。 

                                                                           v_{\pi}(s) = \sum_{a \in A}\pi(a|s)q_{\pi}(s,a)      

对于上式的理解,v代表状态s采取策略后的收获的期望,π代表执行不同动作的概率,q代表执行具体动作后的收获值。 因此,v是所有可能动作的概率乘对应q的总和。

举个例子,就是s状态下,向左的概率为0.3,动作-价值函数为q1,向右的概率为0.7,动作-价值函数为q2,所以 v = 0.3 * q1 + 0.7* q2。

对于动作-价值函数而言:

深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)_第4张图片

 图2代表:s采取动作之后可能会转移到各种可能的状态。

 

                                                                                   q_{\pi}(s,a)= R_{s}^{a} + \gamma \sum_{s' \in S}P_{ss'}^{a}v_{\pi}(s')

对于上式的理解,q代表采取动作的期望收获,R代表采取动作a离开状态的即时奖励(此处的R就是多了一个上标,代表是执行了动作,与之前不带动作的R是一样的,都代表即时奖励)。

P代表采取动作后的状态转移概率(此处的P也是只多了一个上标,代表执行动作后会发生状态转移的概率),这里需要注意的就是执行动作不代表相应的状态一定会发生,所以要乘状态转移概率。举例就是,智能体执行了向左的动作,但是智能体执行动作之后不一定处于左边的状态,也有可能在右边。

v代表处于具体状态下的收获期望。

所以,q 等于即时奖励 + 各种可能的转移状态后的价值函数期望乘以概率乘以折扣因子的总和。

得到二者的关系之后,就可以进一步推导:

深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)_第5张图片

上图是图1和图2的结合, 代表状态s采取动作a之后转移到新状态s'。 

                                                                   v_{\pi}(s) = \sum_{a \in A}\pi(a|s)[R_{s}^{a} + \gamma \sum_{s' \in S}P_{ss'}^{a}v_{\pi}(s)]

上式是对完整的状态-价值函数进行的推导。、

深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)_第6张图片

上图是图2的延伸,是为了方便理解动作-价值函数的推导,代表已采取动作发生状态转移后,又采取了新的动作a'。

                                                                    q_{\pi}(s,a) = R_{s}^{a} + \gamma\sum _{s'\in S}P_{ss'}^{a}\sum_{a' \in A}\pi(a'|s')q_{\pi}(s',a')
上式是对完整的动作-价值函数的推导。

有了相应的价值函数,那么我们的目标就是希望构建算法学得最优的策略,而最优的策略自然对应着最优的价值函数。

(5)最优价值函数(Optimal Value Function )

自然有两个最优价值函数,代表在所以策略下会取得最大值奖励的价值函数:

最优状态-价值函数(optimal state-value function)  v_{*}(s) = \max_{\pi}v_{\pi}(s)   

展开可得,具体推导如难点中一样。

v_{*}(s) = \max_{a}R_{s}^{a} + \gamma \sum_{s' \in S} P_{ss'}^{a} v_{*}(s')

最优动作-价值函数(optimal action-value function)q_{*}(s,a) = \max_{\pi}q_{\pi}(s,a)

展开可得:

q_{*}(s,a) = R_{s}^{a} + \gamma \sum_{s' \in S}P_{ss'}^{a}\max_{a'}q_{*}(s',a')

对于max的位置,个人理解是确定状态下,要选择最大奖励的动作;确定动作下,即时奖励是确定的,还是要选择最大奖励的动作。

(6)最优策略(Optimal Policy)

强化学习的算法目标就是找到一个最优的策略,那么如何找呢?其实当知道最优动作-价值函数的时候就可以明确最优的策略。

举例来说,s状态下,向左的q1为80,向右的q2为40,那么自然是向左走的策略好。

深度强化学习(一) 强化学习基本概念(马尔科夫决策过程)_第7张图片

以上便是强化学习的基本概念,具体怎么求解最优策略或者最优函数就是具体的强化学习算法,之后会进一步整理。

 

你可能感兴趣的:(深度强化学习)