马尔可夫链
作者:互联网
马尔可夫过程指一种状态变化(转移)的过程,在这种状态变化过程中,下一状态出现的概率只与当前所处的状态有关,与过去的状态无关。
马尔可夫过程可以分为三类:
- 马尔可夫链:时间、状态都是离散的
- 连续时间马尔可夫链:时间连续、状态离散的马尔可夫链
- 马尔可夫过程:时间、状态都是离散的
这里主要解释下最常遇到的下马尔可夫链。
假设状态集 为随机过程 所有可能取值组成的状态空间, 是离散时间序列,若 在时刻 时所处状态的条件概率满足:
此时称 为马尔可夫链。
此处的“下一时刻的状态只与当前时刻的状态有关”成为无后效性或马尔可夫性。
马尔可夫链具有三个要素:状态空间、无记忆性(无后效性)、转移矩阵。举个例子来理解马尔可夫链:假设小明家门口的河边有A、B、C三个地方可以钓鱼,则小明选择其中某个位置钓鱼的概率由如下规则得出:
- 若上一次选择在A位置钓鱼,则本次选择在A的概率是0.4、选择在B的概率是0.3、选择在C的概率是0.3;
- 若上一次选择在B位置钓鱼,则本次选择在A的概率是0.2、选择在B的概率是0.3、选择在C的概率是0.5;
- 若上一次选择在C位置钓鱼,则本次选择在A的概率是0.3、选择在B的概率是0.6、选择在C的概率是0.1;
将以上关系做成表格的形式如下:
上次钓鱼的位置 | 本次选择钓鱼位置的概率 | ||
A | B | C | |
A | 0.4 | 0.3 | 0.3 |
B | 0.2 | 0.3 | 0.5 |
C | 0.3 | 0.6 | 0.1 |
各状态之间的转移关系及转移概率如下图:
在这个例子中,状态空间就是这三个钓鱼位置 ,状态转移矩阵P就是表1中的数据排列形式:
状态转移矩阵每行元素的和一定是1,参考表1,这点就很容易理解了。如果转移概率 P 不随时刻 n 而改变时称此时的马尔可夫链是齐次的。
按照上述状态转移规则:如果小明第一次选择位置A钓鱼,第二次选择 C 钓鱼、第三次选择 C 钓鱼…每次选择不同的位置(状态)组成了一条形如 的状态链,这就是马尔可夫链的直观表现。
假设初始状态概率分布为 ,即小明前一次选择位置B钓鱼,将其与转移矩阵相乘,得到下次选择钓鱼位置的状态概率分布为:
第三次选择钓鱼位置的概率分布
以此类推,初始选择的钓鱼位置概率为 ,第 n 次钓鱼位置的概率为 ,这里的 称作n步转移概率矩阵。
使用 python 编程计算 的结果如下:
import numpy as np
state_transition_matrix = np.array([[0.4, 0.3, 0.3],[0.2, 0.3, 0.5], [0.3, 0.6, 0.1]])
def dot_n(n): # 计算P^(n+1)
if n < 0: return 1
result = state_transition_matrix
for i in range(n):
temp = np.dot(result, state_transition_matrix)
result = temp
return result
mul_n1 = dot_n(1) # 计算P^2
mul_n2 = dot_n(20) # 计算P^21
print(mul_n1)
print(mul_n2)
#============结果===========#
[[0.31 0.39 0.3 ]
[0.29 0.45 0.26]
[0.27 0.33 0.4 ]]
[[0.28947368 0.39473684 0.31578947]
[0.28947368 0.39473684 0.31578947]
[0.28947368 0.39473684 0.31578947]]
可以发现,当 n 到一定值时, 开始稳定,即每列的元素值都保持一样且恒定状态,这时,无论初始概率分布 如何变化,最终所处的状态分布概率 始终恒定,这时称该马尔可夫链具有稳态分布 ,上述的稳态分布结果表明了小明整体的钓鱼位置偏好。有限马尔可夫链一定存在稳态分布,但不是所有马尔可夫链都具有唯一的稳态分布,比如下面这个马尔可夫链,位置 A 与位置 C 都是其稳态分布。
使用数学的方法来求解稳态分布 更为方便,设第n次达到稳态分布,则有 ,且第 n+1 步的稳态分布满足以下条件:
因此只需要求出 的非负解即可得出稳态分布,进一步地 ,因此矩阵 特征值为 1 的特征向量就是马尔可夫链的稳态分布。
如果马尔科夫链满足常反性、非周期性、两两联通,则拥有唯一的稳态分布。()。
如果稳态分布是唯一的话,那么针对该稳态分布所展示的性质,比如人们对不同产品的选择偏好、金融产品的违约比例等,决策者可以根据这些数据调整策略调整最终的稳态分布使得结果往更有利于自身利益的方向移动。
应用:在自然语言处理中,可以利用字符间的转移矩阵做中文分词,也可以利用字符、词语间的转移矩阵来联想用户接下来想搜什么或者说什么。在金融行业可以使用马尔可夫链来分析牛市、熊市、平盘的状态转换,股票价格预测等。
参考:
【数之道 20】5分钟理解<马尔可夫链>的遍历性与唯一稳态_哔哩哔哩_bilibili
标签:状态,概率,钓鱼,0.3,马尔可夫,稳态 来源: https://blog.csdn.net/Flag_ing/article/details/123123575