增强学习与马尔科夫决策过程

现有的机器学习算法根据模型的学习过程大致可以分为四类:监督式学习,无监督式学习,半监督式学习和增强学习。

① 监督式学习:从标记好的训练数据中进行模型的训练,常用来做分类和回归,例如逻辑回归、反向神经网络;

② 无监督式学习:根据数据的特征直接对数据的结构和数值进行归纳,常用来做聚类,例如周知的K-均值,谱聚类;

③ 半监督式学习:根据部分标记的和部分没有标记的训练数据进行模型的学习,常用来做回归和分类;

④ 增强式学习:作为今天要讨论的主角,是机器学习中最酷的分支之一,其通过不断的试错、反馈进行学习,常用来做序列决策或者控制问题,算法例子有Q-Learning、TD-Learning(Tempora Difference Learning)。

增强学习和人类学习的机制非常相近,在实际应用中也有这很Cool的表现,如直升机自动飞行、各种通过增强学习实现的打败人类最强选手的棋牌博弈机器,包括最近非常火的DeepMind将深度学习和增强学习融合实现的玩Atari游戏的超强程序。下面将结合一个实例,从增强学习的数学本质——马尔科夫决策过程进行阐述。

一个栗子



下面是摘自《人工智能:一种现代方法》中的一个例子:

假设一个智能体处于下图(a)中所示的4x3的环境中。从初始状态开始,它需要每个时间选择一个行动(上、下、左、右)。在智能体到达标有+1或-1的目标状态时与环境的交互终止。如果环境是确定的,很容易得到一个解:[上,上,右,右,右]。可惜智能体的行动不是可靠的(类似现实中对机器人的控制不可能完全精确),环境不一定沿这个解发展。下图(b)是一个环境转移模型的示意,每一步行动以0.8的概率达到预期,0.2的概率会垂直于运动方向移动,撞到(a)图中黑色模块后会无法移动。两个终止状态分别有+1和-1的回报,其他状态有-0.4的回报。现在智能体要解决的是通过增强学习(不断的试错、反馈、学习)找到最优的策略(得到最大的回报)。

上述问题可以看作为一个马尔科夫决策过程,最终的目标是通过一步步决策使整体的回报函数期望最优。下面介绍马尔科夫决策过程。

马尔科夫决策过程



一个马尔科夫决策过程(Markov Decision Processes, MDP)有一个五个关键元素组成{S,A,{Psa},γ,R},其中:

S:表示状态集合,例如上例中4x3的每个环境{(i,j)|i=1,2,3,4,j=1,2,3}。自动直升机系统中的所有可能的位置、方向等。

A:表示一组动作集合,例如上例中的(上、下、左、右),自动直升机系统中的让飞机向前,向后等。

Psa:状态转移概率,表示在当前s∈S状态下,通过执行动作a∈A后转移到其他状态的概率分布。例如上例中,P(1,1)上表示智能体在状态(1,1)执行向上的动作后转移到状态(1,2),(2,1)的概率分布。

γ∈[0,1):阻尼系数,表示的是随着时间的推移回报率的折扣。

R:S×A?R:回报函数,有时回报函数是只与S有关的函数,R重写为R:S?R。相当于上例中对每个状态上赋予的回报值。

MDP的动态过程如下:智能体在状态s0选择某个动作a0∈A,智能体根据概率Ps0a0转移到状态s1,然后执行动作a1,…如此下去我们可以得到这样的过程:

s0?a0s1?a1s2?a2s3?a3???

经过上面的转移路径,我们可以得到相应的回报函数和如下:

R(s0,a0)+γR(s1,a1)+γ2R(s2,a2)+???

如果回报函数R只与S有关,我们上式可重新写作

R(s0)+γR(s1)+γ2R(s2)+???

我们的目标是选择一组最佳的动作,使得全部的回报加权和期望最大:

Reward=E[R(s0)+γR(s1)+γ2R(s2)+???]

从上式可以发现,在t时刻的回报值是被打了γt倍折扣的,注意到γ<1,则越靠后的状态对回报和影响越小,为了得到最大期望回报,智能体将会尽量最先拿最大回报。

下图是上述内容的一个直观示意

下一部分将对上述过程进行进一步数学表示,以方便求解。

进一步数学表示



首先我们来定义策略,一个策略π就是一个从状态到动作的映射函数π:S?A。也就是,给定了当前状态s,根据策略π,也就确定了下一步应该执行的动作a=π(s)。

为每一个策略π我们顶一个相应的值函数(Value Function)

Vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+???|s0=s,π]

即给定初始状态s0和策略π后的累积折扣回报期望(Expected Sum Of Discounted Rewards)。

对于一个固定的策略,它的值函数Vπ满足贝尔曼等式(Bellman Equations):

Vπ(s)=R(s)+γ∑s′∈SPsπ(s)(s′)Vπ(s′)

其中s′表示状态s执行动作π(s)后的下一个可能状态,其服从Psπ(s)分布。上式由两部分构成:即时回报R(s)及未来累积折扣回报期望Es′~Psπ(s)[Vπ(s′)]。

利用贝尔曼等式能够有效的解出Vπ(给定的策略π的回报值)。尤其,对于一个有限状态的MDP(|S|<∞),对每一个状态s我们都能写出这样的等式Vπ(s),求解变为了解一个|S|个方程,|S|个未知数的线性方程组。

当然,我们求解Vπ的目的是为找到一个当前状态s下最优的行动策略π服务的(最优的策略下得到最优的值函数)。定义最优的值函数为:

V?(s)=maxπVπ(s)

其贝尔曼等式的形式为:

V?(s)=R(s)+maxa∈Aγ∑s′∈SPsa(s′)V?(s′)

也可表示为增强学习中的Q函数形式:

V?(s)=maxaQ(s,a)

其中Q(s,a)≡R(S)+γPsa(s′)V?(s′),表示在s状态下执行动作a作为第一个动作时的最大累计折扣回报。

对应最优值函数的最优的策略为:

π?(s)=argmaxa∈A∑s′∈SPsa(s′)V?(s′)

需要注意的是,π?有一个有趣的特性,即π?是针对的是所有的状态s的,确定了每一个状态s的下一个动作a,不管初始状态是哪一个状态,通过策略π?都会取得最大回报。

现在我们有了优化目标的数学表达(最优值函数,最优策略),下一部分讨论两种求解方法(针对有限状态、有限动作的MDP)。

值迭代方法和策略迭代方法


值迭代方法

算法步骤:

1 讲每一个状态s的值函数V(s)初始化为0

2 循环直至收敛{

对于每一个状态s,对V(s)做更新

V(s):=R(s)+maxa∈Aγ∑s′V(s′)

}

值迭代方法里面的内循环又有两种策略:同步迭代,异步迭代。同步迭代就是得到V(s)后不立即更新,等所有的状态s的V(s)都完成计算后统一更新。异步迭代就是对每个状态s得到新的V(s)后立即更新。两种都会使得V(s)收敛于V?(s)。求得最优的V?(s)后,可使用公式π?(s)=argmaxa∈A∑s′∈SPsa(s′)V?(s′)来求出相应的最优策略π?。

策略迭代方法

于值迭代方法不同,策略迭代法之间关注π,使π收敛到π?。

算法步骤:

1 随机初始化话一个S到A的映射π

2 循环直至收敛{

2.1 令V:=Vπ

2.2 对每一个状态s,对π(s)做更新

π(s):=argmaxa∈A∑s′Psa(s′)V(s′)

}

其中2.1步即为上述对于一个给定策略π利用贝尔曼等式求解Vπ的过程(求解|S|个方程,|S|个未知数的线性方程组)。

2.2是根据2.1步的结果,挑选出当前状态s下最优的动作a来更新π(s)。

两者比较

对于规模较小的MDP,策略迭代一般能够更快的收敛;但对于规模较大的MDP(状态多),值迭代更容易些(没有线性方程组的计算)。

MDP中的参数估计



到目前为止,我们讨论的MDP和MDP求解算法都是在已知状态转移概率Psa和回报函数R(s)的。在许多实际问题中,状态转移概率和回报函数不能显式的得到,本部分讲如何从数据中估计这些参数(通常S,A,γ是已知的)。

假设我们已知很多条状态转移路径如下:

s(1)0?a(1)0s(1)1?a(1)1s(1)2?a(1)2s(1)3?a(1)3???

s(2)0?a(2)0s(2)1?a(2)1s(2)2?a(2)2s(2)3?a(2)3???

???

其中s(j)i是i时刻第j条转移路径对应的状态,aji是sji状态要执行的动作。每条转移路径中的状态数都是有限的,在实际操作中每个转移路径要么进入终结状态,要不达到规定的步数后终结。

当我们获得了很多类似上面的转移路径后(样本),我们可以用最大似然估计来估计状态转移概率。

Psa(s′)=#times took we action a in state s and got to s′#times we took action a in state s

上式分子表示在状态s通过执行动作a后到达状态s′的次数,分母表示在状态s我们执行动作的次数。为避免分母为0的情况,当分母为0使,令Psa(s′)=1|S|。

对于未知的回报函数,我们令R(s)为在状态s下观察到的回报均值。

得到状态转移概率和回报函数的估值后,就简化为了前面部分讲述的问题,用第三部分将的值迭代或者策略迭代方法即可解决。例如我们将值迭代和参数估计结合到一块:

算法流程如下:

1 随机初始化话一个S到A的映射π

2 循环直至收敛{

2.1 在MDP中执行策略π一定次数

2.2 通过2.1得到的样本估计Psa(和R,需要的话)

2.3 使用上一节提到的值迭代方法和估计得到的参数来更新V

2.4 对于得到的V更新得到更优的策略π

}

其中2.3步,是一个循环迭代的过程。上一节中我们通过将V初始化为0然后进行迭代,当嵌套上述过程中后,如果每次都将V初始化为0然后迭代更新,速度回很慢。一个加速的方法是将V初始化我上次大循环中得到的V。

小结



至此我们讨论完了增强学习的数学本质————马尔科夫决策过程(MDP)的数学表示及求解过程(这里的MDP是非确定的MDP,即状态转移函数和回报函数是有概率的,,对于确定性的,求解会更简单些,感兴趣可参考[3]最后一章:增强学习)。全文很大部分是对Andrew Ng讲义[1]的翻译,加上了部分自己的理解。推荐大家根据参考文献进行进一步理解和学习。

参考文献



[1] 机器学习公开课-讲义-马尔科夫决策过程.Andrew Ng

[2] 机器学习公开课-视频-马尔科夫决策过程.Andrew Ng

[3] 人工智能:一种现代方法

[4] 机器学习.Tom M.Mitchell

[5] 看DeepMind如何用Reinforcement learning玩游戏

时间: 2024-10-17 03:02:37

增强学习与马尔科夫决策过程的相关文章

MDP:马尔科夫决策过程(一)

MDP:马尔科夫决策过程(Markov Decision Process) 定义: 一个马尔可夫模型包括如下部分 状态集 S     (States) 动作集 A     (Actions) 奖惩函数 R  (reward function) 在状态 s 下,执行 a 动作的影响函数 T 我们假设执行动作 a 的效果只与当前状态有关,与之前历史状态无关. 动作表示:分为 确定性动作(Determinstic Actions) 和 随机性动作(Stochastic Actions) 确定性动作:T

MDP:马尔科夫决策过程(二)

MDP:马尔科夫决策过程(Markov Decision Process) 策略评价: 对于确定性动作(deterministic actions),由于状态转换可能是无限的,那么奖惩函数之和的值也可能是无限的:对于随机性动作(stochastic actions),同样,奖惩函数期望之和也有可能是无限的. 需要定义一个客观函数(objective function)来将无穷的奖惩序列转换成单一的实数,来表示效用. 大概有三种方式: 设立一个确定的界限,只计算这几步范围内的奖惩函数之和 对每一步

MDP:马尔科夫决策过程(三)

MDP:马尔科夫决策过程(Markov Decision Process) 贝尔曼等式: 上节说到,这是对于确定性动作的模型.如果随机性动作的模型,应该表示为 即,执行动作后的状态有多个,按照概率乘以值函数得到上式. 因此,当前状态最优执行动作就是 对于每个状态都有一个Vπ(S) ,所以对于每一步来说,可以得到如下递推的形式:

马尔科夫决策过程

马尔科夫特性: 下一时刻的状态只与现在的时刻的状态相关,与之前的时刻无关,即状态信息包含了历史的所有相关信息. 马尔科夫奖励过程,$<S, P, R, \gamma>$: $S$是有限状态集 $P$是状态转移概率矩阵,${p_{ss'}} = {\rm P}[{S_{t + 1}} = s'|{S_t} = s]$ $R$是奖励函数,${R_s} = {\rm E}[{R_{t + 1}}|{S_t} = s]$ $\gamma$是折扣因子 为什么要折扣因子呢 1. 数学上方便定义描述 2.

马尔科夫链和隐马尔可夫模型(转载)

马尔可夫模型是由Andrei A. Markov于1913年提出的 ?? 设 SS是一个由有限个状态组成的集合 S={1,2,3,-,n?1,n}S={1,2,3,-,n?1,n} 随机序列 XX 在 tt时刻所处的状态为 qtqt,其中 qt∈Sqt∈S,若有: P(qt=j|qt?1=i,qt?2=k,?)=P(qt=j|qt?1=i)P(qt=j|qt?1=i,qt?2=k,?)=P(qt=j|qt?1=i) aij≥0∑jnaij=1aij≥0∑jnaij=1 则随机序列 XX构成一个一

PGM学习之七 MRF,马尔科夫随机场

之前自己做实验也用过MRF(Markov Random Filed,马尔科夫随机场),基本原理理解,但是很多细节的地方都不求甚解.恰好趁学习PGM的时间,整理一下在机器视觉与图像分析领域的MRF的相关知识. 打字不易,转载请注明.http://blog.csdn.net/polly_yang/article/details/9716591 在机器视觉领域,一个图像分析问题通常被定义为建模问题,图像分析的过程就是从计算的观点来求解模型的过程.一个模型除了可以表达成图形的形式外,通常使用一个目标函数

隐马尔科夫模型学习笔记

隐马尔科夫模型在股票量化交易中有应用,最早我们找比特币交易模型了解到了这个概念,今天又看了一下<统计学习方法>里的隐马尔科夫模型一章. 隐马尔科夫模型从马尔科夫链的概念而来,马尔科夫链是指下一个状态只和当前的n个状态有关,和历史状态无关的一个时间上的事件链,隐马尔科夫模型在这个状态链的基础上,让每一个状态都能产生观测值,从而可以产生一个可观测的数据链,让原来的状态链变成了幕后产生数据的状态链,称为因马尔科夫链. 隐马尔科夫链应用比较广泛,主要能够处理三类问题:. 一个是给定了马尔科夫模型参数和

隐马尔科夫模型—2

二 定义 (1) 基本定义 在上一篇中,我们通过一个给母亲打电话预测天气的例子,来引入隐马尔科夫模型.下面我们将结合一中的例子来形式化的定义隐马尔可夫模型.隐马尔科夫模型是关于时序的概率模型,描述的由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程.在我们这个例子中,就是由一个隐藏的马尔科夫链生成每天的天气(状态),再由每天的天气决定每天母亲下班以后做什么(观测)的随机过程.隐藏的马尔科夫链随机生成的状态的序列,称为状态序列,也就是最近一段时间

隐马尔科夫模型

特征向量:跟踪框位置相对轨迹中心的比值,角度,速度. 马尔科夫模型: State Sequence, q1 q2 ...... qT t个状态之间的转移可见,则这个时间序列的概率是πq1 × aq1q2 × ...... × aqT-1qT 隐马尔科夫模型: 状态不可见(隐藏),只能从观察值推测出,所以由观察值推测该时刻的状态有个观察值概率b. πq1 × bq1( o1 ) × aq1q2 × bq2( o2 ) × ...... × aqT-1qT × bqT( oT ), 三个问题: 1.