Lecture 2:马尔可夫决策

简介: Lecture 2:马尔可夫决策

上节课说了强化学习的思想就是agent与环境不断地交互从而产生很多数据,强化学习算法利用产生的数据修改自身的动作策略,再与环境交互,产生新的数据,并利用新的数据进一步地改善自身的行为,经过数次迭代学习之后,agent最终就能学会完成给定任务的最优解。

图像识别、语音识别等解决的是感知问题,强化学习解决的是决策问题。人工智能的终极目标就是结合感知实现智能决策。我们现在要想的第一个问题就是什么样的问题可以使用强化学习来解决,也就是我们要解决问题的框架是什么样子的。前人已近给出了,这个框架就是马尔可夫决策过程,英文是Markov decision processes简称(MDP)。这节课的笔记是先从Markov processes(马尔可夫过程),或者说是Markov chain(马尔可夫链)最基本的思想开始。当我们加入奖励到Markov processes中的话,我们就有了Markov Reward Processes,加入actions之后,就有了Markov Decision Process。如果你要使用强化学习解决问题的话,那么你的第一步就是使得你的问题转化为马尔可夫决策过程。如:在优化控制的问题当中,我们将数学模型转化为差分动力学问题,这里其实我们可以将其转化为连续的Markov Decision Process;正对部分可观测问题,我们不仅可以从MDP的角度考虑这些问题,实际上任何部分可观测问题都可被完全转换成MDP;还有一个问题就是Bandits,就只有一个state,像商品推荐系统,阿里就有团队在从事这方面相关的工作。

Markov Process

MDP的本质是什么?它其实是一个概念性的东西,叫做Markov Property,它的核心思想就是系统的下一个状态仅与当前状态有关,而与之前的状态无关:

另一种理解方式就是,对于任何拥有Markov Property的问题,你从某个state s开始,有一个后续状态,你实际上就可以定义从一个状态转移到下一个状态的概率,以一定的概率值转移到一定的后继状态。

一个Markov Process基本上是一个随机的过程,对于这个随机过程的定义是,有一个随机状态的序列,这个状态会具有类似于随机的状态序列s1,s2...这种。这个序列会具有Markov Property,这其实就是Markov Process的定义。定义这个序列所需要的仅是一个状态空间S和一个转移概率。截至到目前为止的这些定义里面没有actions,也没有rewards,整个的状态转移由转移概率矩阵中的状态空间来定义。举例来说的话就是下图,也称作马尔可夫链,里面没有涉及奖励和动作,只有状态转移概率。

我们可以从中sample episodes,sample一个序列,一个从初始状态到终止状态得到的状态序列。我们可以将上图转化为一个状态转移矩阵:

Markov Reward Process

截至到目前为止,我们还没有讨论过reinforcemnt learning,因为还没有rewards,没有actions。让我们加入一些机制。第一步我们先加入一些reward,这样Markov Process就变成了Markov Reward Process。其实就是带有Value判断的Markov Process,这些Value会告诉我们,这些状态有多好。所以我们需要给Markov Process添加两样东西reward function R和discount factor gamma。

R代表的是我们能够从这个state获得多少奖励,它只是当前的奖励,我们的目标是最大化累积的rewards的总量,这是我们在增强学习中所关心的,所以我们要构建Markov Reward Process,我们要把所有东西加在一起,但是对于R,它只是告诉我们,当前时刻这一步,时间在T这个时刻,状态s的时候,时间T+1可以获得改奖励。

这时,我们之前所讲的情况就会变成上图所示的情况。我们所关心的是在整个序列决策过程中,我们能够得到的奖励总和是多少。这个Gt才是我们强化学习的学习目标。

这里我们没有计算期望,G是随机的,这里的G只是一个样本。折扣因子决定的就是我们的agent是更喜欢现在的reward还是未来的reward。使用折扣因子的愿意是我们没有一个确定的model,也就是对未来的不确定性的估计。想象一下我们只是利用Markov Process来对环境进行建模,我们在构建这个Markov Proces,我们并没有一个关于环境的完美模型,然而我们认为我们已经提出一个很不错的计划,但我们不完全相信我们的评估。总的来说就是对环境的不确定性做出一个估计。

之前说了期望的问题,由于我们策略的随机性,导致我们的G也是随机的,因此我们无法用G来衡量一个状态的好坏。我们用Value function来评估一个状态的好坏。如果你在state s,你能得到的total reward将会是多少?因为在很多情况下,策略、环境是随机的,我们需要在随机的Markov process中进行状态的评估。

我们将状态值函数公式化的话就如上图所示,用于衡量在状态s可能得到的奖励是多少。让我们举个具体的例子的话就是下图所示:

我们以之前上课的例子计算c1的value,我们有四个不同的sample,它们的不同在于他们有不同的采样序列。我们的sample是随机的,并不是说我们的value也是随机的,而是这些随机变量的期望。

接下来我们讨论是强化学习里面比较重要的知识,在我们编写程序的时候可能会经常用到。它被称为Bellman方程,它的基本思想是对Value function进行递归分解。公式如下图所示:

用矩阵的形式来表示的话,我们的贝尔曼方程就能表示成下面的式子:

对于上面这个方程,它是一个线性的代数方程,我们可以很容易地将其求解出来。但是一旦遇到更加复杂的问题的话Markov Decision Process就不好做了。所以这种性质只利于评估reward的大小,一旦我们想要最大化我们的reward的话,事情会变得更难。但是在目前阶段我们是可以直接对其进行求解的。求解方式如下:

上面的式子就是求解MDP的方法。由于上述方法的算法复杂度太高,因此,这并不是一个典型的可操作性的解决办法。对于大规模的马尔可夫决策过程并不适用。这些只是我们强化学习算法做决策的基本知识。这种方法可以找出在这个状态的value是多少。

Markov Decision Processes

MDP会更加复杂一点,它需要引入的是动作。如下图所示:

状态转移概率现在是依赖我们所采取的行动的。引入动作之后,我们的student markov decision就会变成下图所示情况:

现在的话我们需要考虑的就是我们如何来做决策,我们定义一个policy,如下图所示:

这个policy是随机的,是在给定状态s下一个关于action的概率分布。这其实就是我们agent control,它实际上是一个随机转移矩阵。随机这个概念其实很有用,它可以使得我们的agent可以进行探索。

在之前我们定义了value function,现在我们加入了动作,因此在MDP中value function的定义就如下图所示:

在Value function中我们加了一个下标policy来告诉我们在这个policy下,我们的状态有多好。

同样的话,我们可以得到状态动作值函数的贝尔曼方程(下面这个公式其实是是在加了动作之后的,属于Markov Decision Process):

                                       qπ(s,a)=Eπ[Rt+1+γq(St+1,At+1)|St=s,At=a]��(�,�)=��[��+1+��(��+1,��+1)|��=�,��=�]

下面是上述两种公式的具体推到:

字太差,这里把各个公式后面的中文再打一遍:

1.理解:状态s下采取动作a的概率。乘以当状态s下采取动作a能获得的奖励(去除原文中“的概率”)。

2.上标“ ‘ ”代表下一时刻的状态或者说是动作。

3.在状态s下采取动作a,我们就能获得环境反馈给我们的一个奖励Ras���,和对未来状态能获得奖励的一个评估值Vπ(s)��(�′),由于转移到下一个状态会是随机的(环境的随机性导致),所以我们要再乘以一个概率Pass���′�

概率乘以值就是期望,所以跟上面基于期望的推导是吻合的。

现在的话我们总结一下贝尔曼方程:

你可以用下面这个图示进一步理解一下上面的公式:

以上的这些公式并没有告诉我们什么是最大奖励的方式,我们真正关心的MDP是弄清楚,最好的方式是怎样的。也就是我们如何寻找一条最优的路径来解决我们的问题。我们定义最优值函数和最优状态动作值函数,然后对其优化求解。

总的来说的话就是我们每次选取最大的那个值函数或则说是动作值函数。但是贝尔曼方程是一个非线性的,因此我们用Matlab工具对其求解的话也比较困难。

Extensions to MDPs

下面这部分老师是没有讲的,以后我要是变厉害了再来给补充上吧,先把这个视频看完。

 

 

 

 

 

 

 

我的微信公众号名称:深度学习与先进智能决策

微信公众号ID:MultiAgent1024

公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

本文是自己学习David Silver课程的学习笔记:原视频可以在油管或者B站上搜到。

PPT的连接如下:http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html。网速慢的话可以点击这里

相关文章
|
1月前
|
机器学习/深度学习 存储 算法
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)(下)
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)
27 0
|
1月前
|
机器学习/深度学习 存储 数据可视化
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)(上)
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)
38 0
|
4月前
|
机器学习/深度学习 算法 数据可视化
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
Fisher模型在统计学和机器学习领域通常指的是Fisher线性判别分析(Fisher's Linear Discriminant Analysis,简称LDA)
|
6月前
|
资源调度 并行计算 算法
R语言马尔可夫区制转移模型Markov regime switching
R语言马尔可夫区制转移模型Markov regime switching
|
6月前
|
资源调度 并行计算 算法
R语言马尔可夫体制转换模型Markov regime switching
R语言马尔可夫体制转换模型Markov regime switching
|
机器学习/深度学习 存储 自然语言处理
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)1
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)
179 0
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)1
|
机器学习/深度学习 自然语言处理 算法
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)2
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)
67 0
|
机器学习/深度学习 算法
学习笔记: 机器学习经典算法-决策边界(decision boundary)
机器学习经典算法-个人笔记和学习心得分享
828 0
学习笔记: 机器学习经典算法-决策边界(decision boundary)
|
机器学习/深度学习 算法 数据挖掘
瞎聊机器学习——K-均值聚类(K-means)算法
瞎聊机器学习——K-均值聚类(K-means)算法
|
机器学习/深度学习 编解码
Nature子刊 | 谭济民、夏波等提出基因组构象预测模型及高通量计算遗传筛选方法
Nature子刊 | 谭济民、夏波等提出基因组构象预测模型及高通量计算遗传筛选方法