马尔可夫链(Markov chain)
马尔可夫链(Markov chain)是数学建模和机器学习常用的工具(据说尤其在NLP中,我目前尚不了解很多,但之前曾看过一篇用简单的马尔可夫链实现一个鸡汤生成器的博文,有兴趣的朋友可以看看)。这篇文章将对它做一个简单的介绍。
以下内容为本人在参考了一些资料后的原创,因此版权属于本人。欢迎转载,但请标明原作者和原链接。
由于内容比较繁多,我将在未来一段时间内完成这篇文章。
另注:根据作者测试,本文在移动端存在一个问题:公式无法显示完全。 解决办法是点击公式,使其出现选择框;长按至出现选项;选择Math Settings
里的 Scale All Math...
将scale调为大概50%,即可显示完全。
如下图所示:
什么是Markov chain?
定义
维基百科上给出的定义如下:
马尔可夫链(英语:Markov chain),又称离散时间马尔可夫链(discrete-time Markov chain,缩写为DTMC),因俄国数学家安德烈·马尔可夫(俄语:Андрей Андреевич Марков)得名,为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型的“无记忆性”称作马尔可夫性质。马尔科夫链作为实际过程的统计模型具有许多应用。
而用形式化的语言描述则为:
当等式两边的条件概率都有意义时,
P(Xn+m=j |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=j |Xn=i)P(Xn+m=j |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=j |Xn=i)
m=1m=1 时等式成立,则随机变量序列 XnXn 是一个马尔可夫链, XiXi 的可能值构成的可数集称为该链的状态空间(state space)。
定义的推论
使用数学归纳法容易证明, 若 m=1m=1时 上式成立,则 mm 为任意正整数都成立。
要完成这个证明,我们先证明这样一个引理:
引理1 P(A|B)=∑P(A|B∩Ci)×P(Ci|B)P(A|B)=∑P(A|B∩Ci)×P(Ci|B)
其中,∑P(Ci)=1∑P(Ci)=1。
证明:
∑P(A|B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B)P(Ci|B)×P(Ci|B)=∑P(A∩B∩Ci)P(B)=∑P(A∩B∩Ci)P(B)=P(A∩B)P(B)=P(A|B)∑P(A|B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B∩Ci)×P(Ci|B)=∑P(A∩B∩Ci)P(B)P(Ci|B)×P(Ci|B)=∑P(A∩B∩Ci)P(B)=∑P(A∩B∩Ci)P(B)=P(A∩B)P(B)=P(A|B)
由引理1,我们有:
P(Xn+m+1=k |Xn=i,Xn−1=in−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=i,Xn−1=in−1,…X1=i1)×P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)P(Xn+m+1=k |Xn=i,Xn−1=in−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=i,Xn−1=in−1,…X1=i1)×P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)
这里我们已经知道 m=1m=1 时是成立的,那么
P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=P(Xn+m+1=k |Xn+m=k′)=P(Xn+m+1=k |Xn+m=k,Xn=in)P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=P(Xn+m+1=k |Xn+m=k′)=P(Xn+m+1=k |Xn+m=k,Xn=in)
这个等式成立是因为 Xn+m+1Xn+m+1 只与 Xn+mXn+m 有关,至于我们为什么要引入 Xn=iXn=i,稍后再说。
对于乘号右边的 P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1), 根据归纳假设,有:
P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=k′ |Xn=in)P(Xn+m=k′ |Xn=i,Xn−1=in−1,…X1=i1)=P(Xn+m=k′ |Xn=in)
于是,上面的等式可以改写为:
P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)
接下来我们证明第二个引理:
引理2: P(A∩B|C)=P(A|B∩C)×P(B|C)P(A∩B|C)=P(A|B∩C)×P(B|C)
证明 :
P(A|B∩C)×P(B|C)=P(A∩B∩C)P(B∩C)×P(B∩C)P(C)=P(A∩B∩C)P(C)=P(A∩B|C)P(A|B∩C)×P(B|C)=P(A∩B∩C)P(B∩C)×P(B∩C)P(C)=P(A∩B∩C)P(C)=P(A∩B|C)
写到这里,刚才我们引入 Xn=iXn=i 的目的就很显然了。我们可以将刚才的等式再次改写为:
P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)=∑k′∈SP(Xn+m+1=k,Xn+m=k′ |Xn=in)=P(Xn+m+1=k |Xn=in)P(Xn+m+1=k |Xn+m=k′,Xn+m−1=in+m−1,…X1=i1)=∑k′∈SP(Xn+m+1=k |Xn+m=k′,Xn=in)×P(Xn+m=k′ |Xn=in)=∑k′∈SP(Xn+m+1=k,Xn+m=k′ |Xn=in)=P(Xn+m+1=k |Xn=in)
这样,我们证明了,如果m=1m=1等式成立, 当mm为任意正整数时,该等式都成立。
概率转移矩阵
开普曼-柯尔莫哥洛夫公式
刚刚我们分析的正是马尔可夫链的第一个性质:马氏性。
接下来我们要讨论另一个性质:时齐性(time-homogeneity)。
时齐性是指,系统由状态 ii 到状态 jj 的转移概率只依赖于其时间间隔的长短,与起始时间无关。
用形式化的语言描述:
P(Xn+m=j |Xn=i)=P(Xn+m+k=j |Xn+k=i)P(Xn+m=j |Xn=i)=P(Xn+m+k=j |Xn+k=i)
既然与起始时间 nn 无关, 那我们就可以将概率 P(Xn+m=j |Xn=i)P(Xn+m=j |Xn=i) 写作 Pij(m)Pij(m) 。
需要注意的是,时齐性是我们的假设,而非能通过数学推导得出的性质。我们做出这个假设是因为它符合我们现实生活中的场景。
对于符合时齐性的马尔可夫链,我们可以定义这样一个概率转移矩阵P(m)P(m):
P(m)P(m) 是以 mm 步转移概率Pij(m)Pij(m)为元素的矩阵(即 (P(m))ij=Pij(m)(P(m))ij=Pij(m),也称为该链的 mm 步转移矩阵。通常记 P(1)P(1) 为 PP。
它具有以下几个性质:
-
∀i,j∈S,0<Pij(m)<1∀i,j∈S,0<Pij(m)<1 .
-
∀i,∑j∈SPij(m)=1∀i,∑j∈SPij(m)=1 换句话说, P(m)P(m) 的每一行都是在 SS 上的一个概率分布。
-
P(0)P(0) 是一个单位矩阵。
以上几个性质比较显然,这里就不做更多说明。
这里要重点提到的是开普曼-柯尔莫哥洛夫公式(The Chapman-Kolmogorov Equations):
∀m,n,P(m+n)=P(m)P(n)∀m,n,P(m+n)=P(m)P(n) 亦即,∀m,n,Pij(m+n)=∑k∈SPik(m)Pkj(n)∀m,n,Pij(m+n)=∑k∈SPik(m)Pkj(n)
证明:由引理1
Pij(m+n)=P(Xm+n+1=j |X1=i)=∑k∈SP(Xm+n+1=j|Xm+1=k,X1=i)×P(Xm+1=k |X1=i)=∑k∈SPik(m)Pkj(n)Pij(m+n)=P(Xm+n+1=j |X1=i)=∑k∈SP(Xm+n+1=j|Xm+1=k,X1=i)×P(Xm+1=k |X1=i)=∑k∈SPik(m)Pkj(n)
由此,我们能得到以下两个推论:
推论1: P(n)=P(n−1)P(1)=P(n−2)P(1)2=…P(1)n=PnP(n)=P(n−1)P(1)=P(n−2)P(1)2=…P(1)n=Pn
推论2: 如果我们设初始的概率分布为 P(0)P(0)(行向量), 那么经过了 nn 个步骤后的概率分布 P(n)=P(0)P(n)=P(0)PnP(n)=P(0)P(n)=P(0)Pn
极限概率分布
我们知道,概率分布矩阵的每个元素都属于[0,1][0,1], 那么很自然地,我们就会想知道:
对其求 nn 次幂后得到的 PnPn, 是否有极限呢?
对于有限的随机序列 XnXn, PP 和 PnPn 都是大小有限的方阵。这意味着我们也许可以用单纯的线性代数思想来解决这个问题。
线性代数的角度
纯粹从线性代数的角度来看这个问题,我们的 PP 具有什么性质呢?
- 所有元素均为非负数。
- 每行元素和为 11。
在这样性质的基础上,下面我们证明:
- PP 的任意一个特征值 λλ 满足 |λ|<=1|λ|<=1。
- PP 有特征值 11, 且非重根。
证明:
-
令 λλ 对应的特征向量 x=(x1,x2,...xn)Tx=(x1,x2,...xn)T, 设 xi=max{x1,x2...,xn}xi=max{x1,x2...,xn}。
由于 Px=λxPx=λx, (Px)i=∑j=1naijxj=λxi(Px)i=∑j=1naijxj=λxi
两边同时取绝对值,有 |λ||xi|=|∑j=1naijxj|⩽∑j=1naij|xj|⩽(∑j=1naij)|xi|=xi|λ||xi|=|∑j=1naijxj|⩽∑j=1naij|xj|⩽(∑j=1naij)|xi|=xi
因此 λ⩽1λ⩽1。
-
很容易发现 11 是一个特征值,我们只需要取 x=(1,1,..1)Tx=(1,1,..1)T,就可以很容易地发现 Px=xPx=x。
因此我们需要证明的是 11 不是重根。
采用反证法。
我们已经知道 11 是一个特征值,如果他是重根的话,那么 det(P−λI)det(P−λI) 中至少有两个 (1−λ)(1−λ) 的因子。
对于 det(P−λI)det(P−λI) , 我们把每一列的数字累加到第 nn 列,可使第 nn 列全为 (1−λ)(1−λ),这里我们可以提出第一个因子。这时行列式最右一列均为 11, 一个很自然的想法是,前 n−1n−1 行减去第 nn 行:这样第 nn 列就只有一个非零元了。按第 nn 列展开,我们得到 det(P−λI)=(1−λ)det(Q−λI′)det(P−λI)=(1−λ)det(Q−λI′)。其中QQ 为 n−1n−1 阶方阵,且Qij=aij−anjQij=aij−anj;I′I′ 是 n−1n−1 阶单位矩阵。这是很容易验证的。
这时候 QQ 必有特征值 11.
接下来我们考虑 QQ 关于 11 的行特征向量(注意是行特征向量,即 QTQT 的列特征向量)β=(β1,β2,..βn−1)β=(β1,β2,..βn−1)。
我们有
(βQ)j=∑i=1n−1βi(aij−anj)=βj(βQ)j=∑i=1n−1βi(aij−anj)=βj
接下来讨论 ββ 中元素的正负性。设有 pp 个正元素(分别为 βs1,βs2,..βspβs1,βs2,..βsp); qq 个非正元素(分别为βt1,βt2,..βtqβt1,βt2,..βtq)。另外我们不妨设ρ=|β|⩾0ρ=|β|⩾0;因为如果小于 00, 我们可以取 −β−β 作为我们讨论的对象。
这样,对 ββ 中的正元素,我们可以将上面的式子改写为:
∑i=1n−1βiaitk−ρantk=βtk (k=1,2,...p)∑i=1n−1βiaitk−ρantk=βtk (k=1,2,...p)
累加,得到:∑i=1n−1βi(∑k=1paitk)−ρ(∑k=1pantk)=∑k=1pβtk∑i=1n−1βi(∑k=1paitk)−ρ(∑k=1pantk)=∑k=1pβtk
为了简化式子,不妨令 di=∑k=1paitk<∑i=1nai=1di=∑k=1paitk<∑i=1nai=1 :
∑i=1n−1βidi−ρdn=∑k=1pβtk∑i=1n−1βidi−ρdn=∑k=1pβtk
∑k=1pβskdsk+∑k=1qβtkdtk−ρdn=∑k=1pβtk∑k=1pβskdsk+∑k=1qβtkdtk−ρdn=∑k=1pβtk
∑k=1qβtkdtk−ρdn=∑k=1pβtk−∑k=1pβskdsk>0∑k=1qβtkdtk−ρdn=∑k=1pβtk−∑k=1pβskdsk>0
而等式左边显然是负数,矛盾。这说明 QQ 没有特征值 11, 也就是说 PP 的特征值 11 无重根。
回到我们对极限的讨论。如果这个极限 LL 存在,那么它会满足:
LP=LLP=L
也就是说它的每一行都是 PP 关于特征值 11 的行特征向量; 我们刚刚证明11 这个特征值无重根,那么这个行特征向量是唯一的。
—— 是的, LL 的每一行都相同,均为 PP 关于 11 的行特征向量。
极限何时存在?
【 最近事务繁多,更新无限期推迟】
有任何错误,请在评论区指正或者给我发邮件。(评论使用Disqus系统,可能需要翻墙)