马尔科夫链 - 强化学习的基础
深度强化学习
深度学习神经网络模型 + 强化学习方法
而马尔科夫链就是这个强化学习的基础
那么这个马尔科夫链是什么呢
马尔科夫链
定义
状态空间中,经过从一个状态到另一个状态的转换的随机过程,下一状态的概率分布只能由当前状态决定,且与它前面的时间均无关
链这种东西就考虑以下区块链,每个链节点,记录了一定的交易信息,然后传到下一个链去大概就是这样。
从概念上来说吼,你可能听的很莫名其妙,让我来稍微用自己的理解解释以下。就是呢,我们先举个不那么恰当的例子。还是用开车来假设,第一个链的状态记录的是你的车现在当前这个位置,有什么状态呢车速50,油门踩死,刹车坏了。前面100米斑马线有个人过马路,过马路的速度是5。然后呢第二个呢记录到行人受到了惊吓速度变成了20,你车突然刹车好了,踩下了刹车车速降到了20,和斑马线的距离剩下20。那么第三个状态就只能由你当前的这个状态去计算,比如第三个状态的刹车情况,有没有撞上人,这些的都不受第一个状态影响。
唔
我说了些屎,再举个例子,一个人随机的向左向右走(百分之50的概率)它走的下一个位置,只有当前的位置决定。我们就把这种一个个记录当前位置信息的状态链成为马尔科夫链。
下面还是看看课件里的例子
样例
我们来看看吼这个链,
他就只有两种状态,晴和雨
当天是晴,他第二天有可能是雨,也有可能是晴。但是只由前一天的天气决定。昨天的天气就完全没有作用了。
然后呢我们怎么用它呢
假设我们今天是晴天,预测后天的天气
我们首先会知道明天晴雨的概率分别是[80 ,20]
后天的天气是晴天的概率就是
明天后天都是晴天的概率 + 明天下雨后天晴天的概率 = 0.8*0.8 + 0.2*0.5 = 0.74
后天的天气是阴天的概率就是
明天后天都下雨的概率 + 明天晴天后天下雨的概率 = 0.2*0.5 + 0.8*0.2 = 0.26
你看这两个数据相加等于1,就证明我们这样计算啊非常合理对不对。
那再看看这个数据怎么来的呢
把状态列一个矩阵
[明天的概率[0.8,0.2] [0.8, 0.2],
[0.5, 0.5],
]
最后的结果是不是就很像明天的概率乘上状态矩阵
[0.8*0.8 + 0.2*0.5, 0.8*0.2 + 0.2*0.5]
忘了的就看看前面说的矩阵计算
那是不是就有大后天的概率就是后天的概率乘状态矩阵
[0.74,0.26]乘那个矩阵就完事了
状态转移矩阵
再来一个数据多点的试试
来试试吼,假设今天是晴天,求后天的天气概率
这是直接用矩阵乘的(看到这个写字板了吗,赞助商打钱!!!我可以推广,学习真的很好用),我们再来分析以下,真实情况概率的计算
假设
明天晴0.7后天的晴天概率就是0.7*0.7
明天阴天0.2后天是晴天的概率就是0.2*0.4
明天下雨0.1后天晴天的概率就是0.1*0.2
那么一相加就是0.59
好像很对的样子,那是当然的因为别人就是这么教的,只是象征性的对推一下,后面的就不算敲了啊,不相信的自己可以验证一下
马尔科夫链收敛和平稳条件
1、可能状态数是有限的,就是说这个矩阵吼,你不能是无限的,不然没法弄
2、二状态间的转移概率需要稳定不变,就是你不能像我一开始的那样刹车突然修好了,又突然坏了,你要给一个刹车好的时候坏的概率,坏的时候好的概率,而且这个概率要固定的不能变
3、任意状态能转变到任意状态,就是吼你不能规定天气只能从晴天到阴天到雨天,她也可以从晴天直接到雨天
4、不能是简单的循还,就是不能是晴到雨到雨到晴到雨,这就完全没有概率的情况了,就是第二天一定是晴,这状态矩阵就是[[1,0],[0,1]]
马尔科夫奖励过程
马尔可夫奖励过程(Markov Process)主要描述的是状态之间的转移关系,在各个状态的转移过程中,赋予不同的奖励值就得到了马尔可夫奖励过程。由一个四元组组成(S, P,R ,伽马 )
马尔科夫决策过程
这就是我刚才说的开车模型了,就是把做出的决定,比如踩刹车等不同的决策加入模型里,也是修改状态的一个部分。根据不同的决策获得奖励也不一样
这个我觉得我没消化完我的学的东西,我尽力来解释一下吼 首先我们看那个图,就右边那副图。
对于机器人向左向右向上下向下是每个不同的状态合集都有百分之25
当机器人走出4x4的框框,就给予-10的奖励
决策就是机器人的动作,我们现在规定机器人只有一个拾取的动作,在空地拾取奖励是-5,在空地不拾取的奖励是5,在陷阱拾取奖励是-100,在宝箱拾取是100
在机器不停的改变状态不停的选择是否拾取的过程中,就会得到不同的奖励反馈。而强化学习的目标就是就是把期望也就是奖励最大化。
给一个别人的讲解stepneverstop.github.io/%E5%BC%BA%E…
至于具体的应用,就在后面慢慢学哈,人工智能必备数学知识就到这了。下一章就开始将