理解马尔可夫决策过程

https://www.toutiao.com/a6651196916329611780/

 

2019-01-28 01:17:00

在高层次的直觉中,马尔可夫决策过程(MDP)是一种对机器学习非常有用的数学模型,具体来说就是强化学习。该模型允许机器和agent确定特定环境中的理想行为,从而最大限度地提高模型在环境中实现特定状态甚至多个状态的能力。这个目标是由我们称为策略的东西决定的,策略应用于依赖于环境的agent的操作,MDP试图优化为实现这样的解决方案所采取的步骤。这种优化是通过奖励反馈系统完成的,在这个系统中,不同的行为根据这些行为将导致的预测状态进行加权。

分解

要了解MDP,我们首先应该看一下流程的独特组成部分。它包含:

  • 存在于我们指定环境中的一组状态:S(state)
  • 在指定环境中存在一组有限的行为:A(agent)
  • 描述每个动作对当前状态的影响:T
  • 给出所需状态和行为的奖励函数:R(s,a)。
  • 寻求解决MDP的政策。您可以将其视为从状态到我们的行为的映射。用更简单的术语表示在状态S时应该采取的最佳行为'a'。

理解马尔可夫决策过程

MDP的图像概述

理解模型:

从上图中可以看出,我们有T(S,a,S')〜P(S'| S,a)。

该模型通常被称为转换模型。T代表了我们行为的概念化。我们从一些状态S开始,我们采取行动A,我们的agent发现自己处于一个新状态S'。

接下来,我们定义P,或者我们通过在前一种状态中采取行动而达到新状态的概率。

Markov性质:

P[St+1 | a, S0, ….. , St]= P[St+1 |a, St]

上面的公式是马尔科夫性质状态的定义。我们再来分解一下。

St+1可以被解释为未来的状态,[ S 1,...,S t ]表示状态历史中存在的所有相关信息的历史。当然,a仍然代表着正在采取的行为。但是,新状态仅取决于之前的状态。

给定马尔可夫状态,定义转移概率。

鉴于我们的agent处于某种状态s,对于每一个存在的状态,都有一种到达第一种状态的概率,另一种到达第二种状态的概率,依此类推。这是转换概率。

我们可以采用这些概率并将它们输入状态矩阵!让我们定义一个带有3种状态天气问题的例子。规则如下:

  1. 你住在阳光镇,但可悲的是,阳光镇从来没有连续两天好天气。
  2. 如果你有个美好的一天,第二天就有可能下雪或下雨。
  3. 如果我们下雪或下雨,第二天有50%的机会有相同的天气。
  4. 如果天气从下雪或下雨变化,它只会一半的时间变成晴天。

使用这个假的环境信息,我们可以像这样构造一个状态矩阵:

理解马尔可夫决策过程

 

其中,矩阵的第一行表示在给定雨天的情况下,未来几天天气的概率。第二行表示正常日子的概率,第三行表示雪天的概率。这种转换概率矩阵称为转换矩阵。

现在,让我们从我们的矩阵中尝试一个模型真正的问题从矩阵p²(ij)

i表示当前状态,j表示未来状态。

我们想知道今天下雨的可能性是多少,从现在开始两天后下雪的可能性是多少?假设在下雨,我们可能的状态是什么?

唯一的限制是不能连续两天过得很好。从现在到那时的所有其他状态都是可能的。所以明天可能会下雨,第二天可能会下雪,明天可能会很好,第二天可能会下雪,明天可能会下雪,第二天也可能会下雪。

以等式形式:

P²(Rain⁰Snow²) = P(RainRain)*P(RainSnow) + P(RainNormal)*P(NormalSnow) + P(RainSnow)*P(SnowSnow)

现在我意识到这看起来很痛苦,但是你可能已经意识到这本质上是向量和矩阵的数学。我们取第一行和第三行做点积。

可视化使生活更轻松

让我们假设我们希望预测给定6天时间周期的P,或者6个状态转变。我们还没有定义一个初始状态,我们只是希望在给定初始概率的情况下,求出过渡时期状态的概率。这被称为正则马尔可夫链。如你所见,我们继续使用向量数学通过点积来计算每个状态的概率。

理解马尔可夫决策过程

 

但我们如何确定初始起始状态?它将如何影响我们的概率计算或如何创建马尔可夫链:

我们可以将其定义为:u ^(n)= uP ^(n)

其中u是表示状态初始分布的向量,P是马尔可夫链的转换矩阵。

我们知道我们有三种状态,我们把它带入.u³=uP³

我们来解第三天的概率。我们制作一个1x3向量来表示初始分布,并采用点积来求出给定随机初始状态的第三天每种状态的可能性。

理解马尔可夫决策过程

 

如何找到这么多状态的最佳解决方案以获得理想的结果?这就是我想用强化学习来做的。

为了理解如何计算状态和操作的优化,我们需要给它们赋值。为了理解价值,我们需要定义一个策略,为了定义一个策略,我们需要了解奖励和回报。

奖励和回报价值

强化agent寻求最大化未来奖励的总和。他们希望预测获得最大奖励的行为。这称为return,我们可以像这样建模,r表示奖励,R表示返回,下标t表示时间步长,在我们的例子中是状态转换。

理解马尔可夫决策过程

 

现在,正如你所看到的,这个等式允许趋于无穷大,但处理许多问题是没有意义的。我们希望奖励的总和结束。我们称任务结束剧集。想象一下大富翁棋盘游戏,一开始给所有人分配相同的价值,然后给出一系列可能的状态和行为,这一集最终以赢家结束。一个新内容可以从创建游戏的新实例开始。

处理回报价值的更常用方法是称为未来累积折扣奖励的方法

理解马尔可夫决策过程

 

其中,奖励前的折扣表示0到1之间的值。这种方法的好处是,现在对无限回报有了更好的模型,而且它更重视更直接的回报。这个模型现在关心的是更早的回报,而不是未来的回报。我们可以自己加权。我们选择的折扣越小,越强调早期奖励。正如您可能想象的那样,1的折扣变成了我们原来的奖励方程,0的折扣创建了一个只关心第一个奖励的模型。这在某种意义上是有用的,因为agent将会在特定的时刻学习绝对最好的事情,但它将缺乏对自己未来的洞察力。

更多关于政策

π(s,a)是我们的政策函数。它描述了一种行为方式。它采用当前状态和agent操作,并返回在该状态下执行该操作的概率。有点像我们上面演示的那样。

如果你考虑这意味着什么,那么在给定所有行为的情况下,所有状态的集合必须等于1的概率。

理解马尔可夫决策过程

 

我们的政策应描述如何在每个状态采取行动。

以Josh Greaves创建的这个策略为例

理解马尔可夫决策过程

 

正如你所看到的,当我们吃饱时,我们会得到奖励,当我们饥饿就吃饭时,我们会得到奖励,并且我们因为吃饱而不吃东西而获得奖励。如果饥饿而不吃饭是,我们会受到极大的惩罚,并且在吃饱时吃饭会受到惩罚。很容易看出,在这个非常简单的例子中,最优策略是在饥饿时吃东西。

价值函数:

强化学习中的两种价值函数是状态价值函数V(s)和行为价值函数Q(s, a)。

状态值函数解释给定特定策略的状态的值。当我们从初始状态s开始并在我们的策略规则中行动时,它是对回报的计算。

理解马尔可夫决策过程

 

操作值函数返回在遵循指定策略时在给定状态下执行操作的值。

理解马尔可夫决策过程

 

现在,考虑到在选择操作时,环境是返回下一个状态的,我们必须记住,如果我们的策略发生变化,值函数也会发生变化。我们希望看到这些函数有一个给定的返回值,然而,在到达某个状态时可能会有大量的随机性,并且转换函数也会影响我们的状态。我们不可能有100%的可能性。

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值