随机过程 17 -离散时间马氏链典型应用

Posted Ciaran-byte

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机过程 17 -离散时间马氏链典型应用相关的知识,希望对你有一定的参考价值。

离散时间马尔科夫链的典型应用

0. 概述

  这部分要讲解马尔科夫链排在前三的应用。

  • Page Rank
  • MCMC
  • Hidden Markov

1. Page Rank

1.1 背景

Google \\textGoogle Google

  PageRank是谷歌的核心技术。用于实现搜索引擎得到的网页重要性排序。

Web Pages → Page Ranking → Searching → Searching Engines \\textWeb Pages \\rightarrow \\textPage Ranking \\rightarrow \\textSearching \\rightarrow \\textSearching Engines Web PagesPage RankingSearchingSearching Engines

  PageRank是1998-2000年由Brein和Page做出的工作

1.2 模型建立

  这可以看做是一个有向图求解极限转移概率的问题。之前讨论的是无向图的极限概率转移。

  对于无向图,只有度的概念,而有向图分成了入度和出度。

  之所以用有向图模型是因为,我们可以把网页看做是图的结点,把节点之间的连接,看做是网页之间的连接

Web Pages → Nodes of Graph Link → Edges of Graph \\textWeb Pages \\rightarrow \\textNodes of Graph \\\\ \\textLink \\rightarrow \\textEdges of Graph Web PagesNodes of GraphLinkEdges of Graph

  一开始,人们考虑用入度来表示结点的重要性。因为如果一个网页很重要,必然会有很多的网站引用他。

Importance ⇔ in degree \\textImportance \\Leftrightarrow \\textin degree Importancein degree

  但是只用入度来描述是不够的,因为这个有向图模型中C和D的入度都是2,但是可以看出来,D更加的重要。

  Brin和Page提出了自己的观点,认为网页节点的重要性应该等同于极限分布。当经过n步转移之后,各个节点被访问的情况就趋于平稳了,就能够判断哪个节点更加的重要了,就是访问节点次数除以总的访问次数。

Importance ⇔ Limit Distribution \\textImportance \\Leftrightarrow \\textLimit Distribution ImportanceLimit Distribution

  但是,求这个模型的极限分布是有问题的,因为这个概率转移矩阵很稀疏,只有个别点是有值的,大部分点是没有值的。因此会存在分布极限存在性问题,只有不可约+非周期才能够保证分布极限的存在。这个稀疏的矩阵这两点都难以保证。

  因此,Brin和Pgae的策略是,在原来的一步转移概率矩阵上做了调整,增加上一个全一矩阵,得到了一个新的一步转移概率矩阵。

P ~ = ( 1 − α ) P + α n ( 1 . . . 1 . . . . . . . . . 1 . . . 1 ) Google Matrix \\widetildeP = (1- \\alpha)P + \\frac\\alphan \\beginpmatrix 1 & ...&1 \\\\ ... & ...&... \\\\ 1&...& 1 \\endpmatrix \\\\ \\textGoogle Matrix P =(1α)P+nα1...1.........1...1Google Matrix

  这个模型可以从这些角度进行分析

  • 首先,这个做法是有实际意义的。因为有时候我们搜索网页不会是只在网页中存在的链接进行跳转,也会在地址栏中通过url进行跳转,即使两个网页之间没有直接联系,也是能够到达的,因此任意两个网页之间都有跳转概率。
  • 加了新的矩阵之后,转移概率矩阵就是不可约的了。
  • 加了新矩阵之后,任意两个点都是有连接关系的,因此各个状态一定都是非周期的。

1.3 模型求解

π = π P ~ \\pi = \\pi \\widetildeP π=πP

  即求矩阵P的左特征值。

Principal Left Eigenvector of  P ~ ⇒ Q R \\textPrincipal Left Eigenvector of \\widetildeP \\Rightarrow QR Principal Left Eigenvector of P QR

  求特征值可以使用QR分解的方法

2. MCMC

2.1 概述

   MCMC是离散马尔科夫蒙特卡洛的缩写

MCMC ⇒ Markov Chain Monte Carlo \\textMCMC \\Rightarrow \\textMarkov Chain Monte Carlo MCMCMarkov Chain Monte Carlo

  蒙特卡洛技术是指,我们想要做某种仿真,仿真中有很多的随机效应,这样的随机效应一定是由某种随机变量描述的。

  这个随机变量的分布可以很简单,比如用高斯分布、均匀分布等模型来描述,这个分布也可能很复杂,可能是不连续的、不光滑的,即使知道了分布,也很那求均值。

  因为,我们很难通过分布来描述一个随机变量,最终就只能通过仿真而不是解析的方式来描述这些样本

Simulation → Random Effect → Random Variables → Distribution → Simulation \\textSimulation \\rightarrow \\textRandom Effect \\rightarrow \\textRandom Variables \\rightarrow \\textDistribution \\rightarrow \\textSimulation SimulationRandom EffectRandom VariablesDistributionSimulation

  所谓仿真,就是产生一组伪随机样本,这些伪随机样本可以产生某种分布

G e n e r a t e Z 1 , . . . , Z n ∼ f ( x ) Pseudo-Random Sample Generate \\quad Z_1,...,Z_n \\sim f(x) \\\\ \\textPseudo-Random Sample GenerateZ1,...,Znf(x)Pseudo-Random Sample

  我们对这些分布并不了解,但是我们可以转化为对样本的研究。

  比如我们需要计算期望,但是积分非常难算,我们就可以用样本均值替代。

E ( Z ) = ∫ − ∞ + ∞ x f ( x ) d x → 1 n ∑ k = 1 n Z k E(Z) = \\int_-\\infty^+\\infty xf(x)dx \\\\ \\rightarrow \\frac1n \\sum_k=1^n Z_k E(Z)=+xf(x)dxn1k=1nZk

  甚至我们可以通过直方图的方法,估计分布情况。

  如果我们有足够多的样本,甚至就不需要分布了,因为我们对分布没有办法进行解析计算。

  因此,蒙特卡洛模拟在随机变量仿真上,具有非常重要的地位。蒙特卡洛模拟由下面的人发明

  • von Neumann 冯诺依曼
  • Ulam
  • Fermi

  蒙特卡洛的核心思想,就是把对分布的解析研究,转换为对样本的研究。

  具体目的是,如何做到,随便给一个分布,就能够得到服从这个分布的样本。

  蒙特卡洛的困难在于,有了样本是可以得到对分布的认知的,但是现在要做的是逆向操作,有了分布如何去获取样本

Z 1 , . . . , Z n → f ( x ) f ( x ) ? → Z 1 , . . , Z n Z_1,...,Z_n \\rightarrow f(x) \\\\ f(x) ?\\rightarrow Z_1,..,Z_n Z1,...,Znf(x)f(x)?Z1,..,Zn

  同时,我们希望这种方法是通用的,一般来说,对某种具体的分布的采样策略是已知的,但是如果没有通用的策略,如果出现了一种新的分布,就没有办法进行仿真。

2.2 实现思路

Universal Pseudo-Random Sampler \\textUniversal Pseudo-Random Sampler Universal Pseudo-Random Sampler

  我们希望有一个通用的伪随机采样方法,能够得到任意分布的样本。

  马氏链是对这个问题最好的解决方案。P是一步转移概率矩阵。bi是初始分布。我们假设是不可约的,非周期的。

P = ( P i j ) i j b i = P ( Z 0 = i ) Irreducible + Non-Perdic ⇒ π = π P P = (P_ij)_ij \\\\ b_i = P(Z_0 =i) \\\\ \\textIrreducible + Non-Perdic \\Rightarrow \\pi = \\pi P P=(Pij)ijbi=P(Z0=i)Irreducible + Non-Perdicπ=πP

  现在我们假设极限分布是已知的,就是我们的目标分布。虽然目标分布可能是连续的,不过不本质,连续空间马氏链也有求解极限分布的方法。

  我们假设极限分布就是我们已知的需要采样的分布。然后我们反过来求一步转移概率矩阵。

  这是个非适定问题。因为P有n2个元素,π有n个元素,也就是用n个方程求解n2个未知数

  假如是能够求解到一步转移概率的话,就能产生随机样本了。因为马氏链的转移规律已经知道了,我们只需要让马氏链运行起来即可。然后抛弃前面的样本,因为前面的马氏链还没有收敛。然后每次run一步都能够得到一个样本轨道上的点,每一步都是服从样本分布的。

  这是迄今为止,最好的,通用的产生随机样本的方法。

2.3 具体实现

  需要分三步来求解。

2.3.1 第一步:细致平衡

Detailed Balance \\textDetailed Balance Detailed Balance

  我们假设有极限分布π,还有一步转移概率P,我们要求解的方程如下

π = ( π 0 , π 1 , . . . , π n ) P = ( P i j ) i j π = π P \\pi = (\\pi_0,\\pi_1,...,\\pi_n) \\quad P = (P_ij)_ij \\\\ \\pi = \\pi P π=(π0,π1,...,πn)P=(Pij)ijπ=πP

  但是这个方程不好验证,我们需要找一个充分条件,当满足充分条件的时候,这个方程成立。这个条件就叫做细致平衡

π i P i j = π j P j i ⇒ π = π P \\pi_i P_ij = \\pi_j P_ji \\Rightarrow \\pi = \\pi P πiPij=πjPjiπ=πQTP生成随机数字+字母

17 | 如何正确地显示随机消息? 学习记录

python核心编程第五章练习-5.17-随机序列

Java基础17-随机数正则表达式

超简单的Python教程系列——第17篇:随机值

17 | 如何正确地显示随机消息?