使い捨ては、マルコフモデル、隠れマルコフモデル、マルコフ確率場や空港の状況を理解します!(POSタグ付けコード実装)

1.マルコフネットワークとの間の差、マルコフモデル、マルコフ過程、ベイジアンネットワーク

私は、私は1つの概要を参照してください、私たちは理解していなかった場合、我々は、私はベイジアンネットワークを話す1がどのような構造を理解するために、確率的グラフィカルモデルです見ていると信じて:ベイジアンネットワーク

タイトルのように、我々はマルコフについて話すに焦点を当て、このセクションでは、読者は盲目になりますが、幸い私たちは、上記の概念を説明するのに少しずつを意志、注文が見下すようになるだろうが完了してください私は、ユーザーフレンドリー定義するためにここにいる、理解して、1の背後にあるのは、説明しましょう。

以下の説明は読みながら、ちょうど考えて簡単なエントリにこれらの概念の6分割され、これはプログレッシブ午前6時が続いている、見てジャンプしません。

  1. ランダム変数としてノード、または2つのランダム変数の相関が一の側に接続された両方次いで、独立していない場合は、ランダム変数が数字、有向グラフが形成されて与えられた場合、それを構成するネットワーク
  2. ネットワークは、非循環有向グラフである場合、このネットワークは、呼び出されるベイジアンネットワーク。
  3. 図縮退方法の直鎖、与える場合マルコフモデルを、各ノードは、時間(または空間)などの関連する変化である各々が確率変数であるため、確率過程の視点、それを見ることができますすることがマルコフ過程
  4. ネットワークが無向場合、無向グラフは、として知られているモデルであるマルコフランダム又はマルコフランダムフィールド
  5. 前提が特定の条件を指定した場合は、MRF、結果として勉強するのCRFを
  6. 条件付きランダム標識は、問題を解決し、ネットワークトポロジの更なる条件でリニア空港になった場合、得られるリニアチェーンのCRFを

2.マルコフモデル

2.1マルコフ過程

マルコフ過程(マルコフ過程)は、確率過程のクラスです。1907年にロシアの数学者AAマルコフによって提案された元のマルコフ連鎖モデル。知られている現在の状態(現在)であり、その将来の進化(将来は)(過去に)過去の進化に依存しない:このプロセスは、次のような特徴があります。ヘッドの森を構成し、例えば、動物の数の変化 - マルコフ過程を。現実の世界では、多くのプロセスが存在するよう作られたブラウン運動中の液体粒子としてマルコフプロセスは、そのような待機ステーションの数と感染感染症の数は、マルコフ過程とみなすことができるされています。

各状態遷移のみが先行するN個の状態に依存して、このプロセスは、nは状態および転移の数であり、次数nのモデルと呼ばれます。最も単純な方法は、一次マルコフ過程であり、それぞれの状態を転送するだけ前の状態の1つに依存し、これは、としても知られているマルコフ性質これは、次のような数式で表されます。

各状態モデルは、以前の状態にのみ依存していると仮定すると、この仮定が呼び出されたマルコフの仮定、この仮定が大幅にこの問題を単純化することができます。明らかに、この仮定は、多くの重要な情報が失われ、その結果、非常に悪い仮定かもしれません。

\ [P(X_ {N + 1} | X_1 = X_1、X_2 = X_2、...、x_nに関する= x_nに関する)= P(X_ {N + 1} = xと| x_nに関する= x_nに関する)\]

天気従うと仮定マルコフ連鎖を

この図は、上から見ることができます。

  • 今日は晴れている場合は、曇り明日は確率が0.1であるターン
  • 今日は晴れている場合は、晴れた日の明日は、どのコースの確率は0.9であり、そして実際の生活状況と一致している1の和の確率は、。
明確な
明確な 0.9 0,1
0.5 0.5

上記の表から、我々はマルコフ連鎖取得することができ、状態遷移行列を

したがって、一次マルコフ過程は、次の3つの部分を定義しています。

  • ステータス:晴れと曇り
  • 初期ベクトルは:確率の時間までの時間0におけるシステムの状態を定義します
  • 状態遷移行列:各気象遷移確率

マルコフモデル(マルコフモデル)が広く、音声認識、音声自動タグ、変換アプリケーション健全な単語、文法および他の自然言語処理の確率で使用される統計モデル、です。長期的な発展の後、特に音声認識の成功のアプリケーションでは、一般的な統計ツール作ります。これまでのところ、最も成功した方法であり、高速かつ正確な音声認識システムを実現するために考えられてきました。

3.隠れマルコフモデル(HMM)

マルコフ過程を説明するには不十分でいくつかのケースでは、我々はパターンを見つけたいです。戻る天気例の前に、孤立者が直接天候を観察することはできませんが、いくつかの海藻があります。フォークの伝説は、一定の確率で海藻の状態や天候関連のことを教えてくれる。このケースでは、州の2つの設定は、状態の集合(状態海藻)と隠れ状態(天候状態)で観察することができる持っています。私たちは、海藻やマルコフの仮定の状態に応じて、気象条件を予測するために使用することができるアルゴリズムを見つけることを願っています。

そして、このアルゴリズムは、呼び出された隠れマルコフモデル(HMM)

隠れマルコフモデル(隠れマルコフモデル)は、未知の隠れマルコフ過程を含むパラメータを記述統計モデルです。これは、周知の有向グラフモデルである最も単純な動的ベイジアンネットワークの構造であり、主に時系列データモデリングのため、広く音声認識、自然言語処理、他の分野でも使用されます。

3.1隠れマルコフ三の大問題

  1. 生成された観察された配列の確率を計算するためにどのように与えられたモデル、?言い換えれば、どのようにモデルと観察された配列との間の一致の程度を評価するには?
  2. 最高の状態のシーケンスにマッチし、この観測シーケンスを見つけるために、どのように観察シーケンスとモデルを考えると?言い換えれば、どのように観測シーケンスに基づいて隠されたモデル状態を推測するには?
  3. このシーケンスの確率が最大に発生するようなモデルパラメータを調整するためにどのように観測シーケンスを、与えられましたか?それは最高の観測データを記述することができるように言い換えれば、どのようにモデルを訓練するには?

最初の二つの問題パターン認識問題:確率(観察状態シーケンス得る1)隠れマルコフモデル評価。);最大2)隠れ状態のシーケンスを見つけるための確率は、観察状態シーケンスのシーケンスを生成すること(復号化)。第3の問題は、隠れマルコフモデル(生成するために観察することができる配列のセットに従って状態で学習)。

三の大課題解決に対応します:

  1. フォワードアルゴリズム(フォワードアルゴリズム)、後方アルゴリズム(後方アルゴリズム)
  2. ビタビアルゴリズム(ビタビアルゴリズム)
  3. バウム - ウェルチアルゴリズム(バウム - ウェルチアルゴリズム)(EMアルゴリズムにほぼ等しいです)

ここでは、最終的には、これらの問題に対する解決策が何であるかを説明するためのシナリオを持っていますか?

3日間の休日を持って、彼は時間を渡すために、毎日に行うための3つのことを選択することができます暁明は今、これらの三つは、ショッピングを歩いている(クリーニング観察可能な配列に相当する)が、生活の中で、私たちは、あなたが買い物に行くか、散歩、雨の日は外出したくないかもしれません、ホームクリーニングに滞在したいときに我々は、おそらく晴れた日、一般的に天候の影響を受けないことにしました。天気(晴れ、雨は)マルコフ過程を表現する確率ダイアグラムで、隠されたに属します:

そこで、我々はマルコフ三の大問題に対応する3つの質問を尋ねました:

  1. ウォーキング、ショッピング、拾う:モデル全体で知られている、私が行うために3日連続である観察しました。まあ、モデルによると、これらの行動をもたらすように計算された可能性があります。
  2. また、このモデルを知っている、それはこの同じ3つの事ですが、私は天気がどのようにの一種である一日を推測したいと思います。
  3. 最も複雑な、私はこれらの三つの子を行うために3日を知っているし、他のどのような情報がありませんでした。私は天気確率分布に応じて何かをすることを選択し、モデル、雨や輝きの遷移確率、気象条件の初日の確率分布を構築する必要があります。

ここでは、これらの質問への回答に基づいて、各シナリオを見てください。

最初の問題の解決策を3.1.1

トラバーサルアルゴリズム

これは最も単純なアルゴリズムであり、そして初日(T = 1時間)が晴れであると仮定すると、あなたは、対応する確率が得ることができる乗じて地図上に置く、その後、買い物をしたいです。

第二天(T=2 时刻)要做的事情,在第一天的概率基础上乘上第二天的概率,依次类推,最终得到这三天(T=3 时刻)所要做的事情的概率值,这就是遍历算法,简单而又粗暴。但问题是用遍历算法的复杂度会随着观测序列和隐藏状态的增加而成指数级增长。

复杂度为:\(2TN^T\)

于是就有了第二种算法

前向算法

  1. 假设第一天要购物,那么就计算出第一天购物的概率(包括晴天和雨天);假设第一天要散步,那么也计算出来,依次枚举。
  2. 假设前两天是购物和散步,也同样计算出这一种的概率;假设前两天是散步和打扫卫生,同样计算,枚举出前两天行为的概率。
  3. 第三步就是计算出前三天行为的概率。

细心的读者已经发现了,第二步中要求的概率可以在第一步的基础上进行,同样的,第三步也会依赖于第二步的计算结果。那么这样做就能够节省很多计算环节,类似于动态规划

这种算法的复杂度为:\(N^2T\)

后向算法

跟前向算法相反,我们知道总的概率肯定是1,那么B_t=1,也就是最后一个时刻的概率合为1,先计算前三天的各种可能的概率,在计算前两天、前一天的数据,跟前向算法相反的计算路径。

3.1.2 第二个问题解法

维特比算法(Viterbi)

说起安德鲁·维特比(Andrew Viterbi),通信行业之外的人可能知道他的并不多,不过通信行业的从业者大多知道以他的名字命名的维特比算法(ViterbiAlgorithm)。维特比算法是现代数字通信中最常用的算法,同时也是很多自然语言处理采用的解码算法。可以毫不夸张地讲,维特比是对我们今天的生活影响力最大的科学家之一,因为基于CDMA的3G移动通信标准主要就是他和厄文·雅各布(Irwin Mark Jacobs)创办的高通公司(Qualcomm)制定的,并且高通公司在4G时代依然引领移动通信的发展。

维特比算法是一个特殊但应用最广的动态规划算法。利用动态规划,可以解决任何一个图中的最短路径问题。而维特比算法是针对一个特殊的图—篱笆网络(Lattice)的有向图最短路径问题而提出的。它之所以重要,是因为凡是使用隐含马尔可夫模型描述的问题都可以用它来解码,包括今天的数字通信、语音识别、机器翻译、拼音转汉字、分词等。

维特比算法一般用于模式识别,通过观测数据来反推出隐藏状态,下面一步步讲解这个算法。

因为是要根据观测数据来反推,所以这里要进行一个假设,假设这三天所做的行为分别是:散步、购物、打扫卫生,那么我们要求的是这三天的天气(路径)分别是什么。

  1. 初始计算第一天下雨和第一天晴天去散步的概率值:

    \(\bigtriangleup_1(R)\) 表示第一天下雨的概率

    \(\pi_R\) 表示中间的状态(下雨)s概率

    \(b_R(O_1=w)\) 表示下雨并且散步的概率

    \(a_{R-R}\) 表示下雨天到下雨天的概率

    \(\bigtriangleup_1(R)=\pi_R*b_R(O_1=w)=0.6*0.1=0.06\)

    \(\bigtriangleup_1(S)=\pi_S*b_S(O_1=w)=0.4*0.6=0.24\)

    初始路径为:

    \(\phi_1(R)=Rainy\)

    \(\phi_1(S)=Sunny\)

  2. 计算第二天下雨和第二天晴天去购物的概率值:

    对应路径为:

  3. 计算第三天下雨和第三天晴天去打扫卫生的概率值:

    对应路径为:

  4. 比较每一步中 \(\bigtriangleup\) 的概率大小,选取最大值并找到对应的路径,依次类推就能找到最有可能的隐藏状态路径

    第一天的概率最大值为 \(\bigtriangleup_1S\),对应路径为Sunny,

    第二天的概率最大值为 \(\bigtriangleup_2S\),对应路径为Sunny,

    第三天的概率最大值为 \(\bigtriangleup_3R\),对应路径为Rainy。

  5. 合起来的路径就是Sunny->Sunny->Rainy,这就是我们所求。

以上是比较通俗易懂的维特比算法,如果需要严谨表述,可以查看《数学之美》这本书的第26章,讲的就是维特比算法,很详细。附:《数学之美》下载地址,点击下载

3.1.3 第三个问题解法

鲍姆-韦尔奇算法(Baum-Welch Algorithm) (约等于EM算法),详细讲解请见:监督学习方法与Baum-Welch算法

4. 马尔可夫网络

4.1 因子图

wikipedia上是这样定义因子图的:将一个具有多变量的全局函数因子分解,得到几个局部函数的乘积,以此为基础得到的一个双向图叫做因子图(Factor Graph)。

通俗来讲,所谓因子图就是对函数进行因子分解得到的一种概率图。一般内含两种节点:变量节点和函数节点。我们知道,一个全局函数通过因式分解能够分解为多个局部函数的乘积,这些局部函数和对应的变量关系就体现在因子图上。

举个例子,现在有一个全局函数,其因式分解方程为:

\[g(x_1,x_2,x_3,x_4,x_5)=f_A(x_1)f_B(x_2)f_C(x1,x2,x3)f_D(x_3,x_4)f_E(x_3,x_5)\]

其中fA,fB,fC,fD,fE为各函数,表示变量之间的关系,可以是条件概率也可以是其他关系。其对应的因子图为:

4.2 马尔可夫网络

我们已经知道,有向图模型,又称作贝叶斯网络,但在有些情况下,强制对某些结点之间的边增加方向是不合适的。使用没有方向的无向边,形成了无向图模型(Undirected Graphical Model,UGM), 又被称为马尔可夫随机场或者马尔可夫网络(Markov Random Field, MRF or Markov network)。

设X=(X1,X2…Xn)和Y=(Y1,Y2…Ym)都是联合随机变量,若随机变量Y构成一个无向图 G=(V,E)表示的马尔可夫随机场(MRF),则条件概率分布P(Y|X)称为条件随机场(Conditional Random Field, 简称CRF,后续新的博客中可能会阐述CRF)。如下图所示,便是一个线性链条件随机场的无向图模型:

在概率图中,求某个变量的边缘分布是常见的问题。这问题有很多求解方法,其中之一就是把贝叶斯网络或马尔可夫随机场转换成因子图,然后用sum-product算法求解。换言之,基于因子图可以用sum-product 算法高效的求各个变量的边缘分布。

详细的sum-product算法过程,请查看博文:从贝叶斯方法谈到贝叶斯网络

5. 条件随机场(CRF)

一个通俗的例子

假设你有许多小明同学一天内不同时段的照片,从小明提裤子起床到脱裤子睡觉各个时间段都有(小明是照片控!)。现在的任务是对这些照片进行分类。比如有的照片是吃饭,那就给它打上吃饭的标签;有的照片是跑步时拍的,那就打上跑步的标签;有的照片是开会时拍的,那就打上开会的标签。问题来了,你准备怎么干?

一个简单直观的办法就是,不管这些照片之间的时间顺序,想办法训练出一个多元分类器。就是用一些打好标签的照片作为训练数据,训练出一个模型,直接根据照片的特征来分类。例如,如果照片是早上6:00拍的,且画面是黑暗的,那就给它打上睡觉的标签;如果照片上有车,那就给它打上开车的标签。

乍一看可以!但实际上,由于我们忽略了这些照片之间的时间顺序这一重要信息,我们的分类器会有缺陷的。举个例子,假如有一张小明闭着嘴的照片,怎么分类?显然难以直接判断,需要参考闭嘴之前的照片,如果之前的照片显示小明在吃饭,那这个闭嘴的照片很可能是小明在咀嚼食物准备下咽,可以给它打上吃饭的标签;如果之前的照片显示小明在唱歌,那这个闭嘴的照片很可能是小明唱歌瞬间的抓拍,可以给它打上唱歌的标签。

所以,为了让我们的分类器能够有更好的表现,在为一张照片分类时,我们必须将与它相邻的照片的标签信息考虑进来。这——就是条件随机场(CRF)大显身手的地方!这就有点类似于词性标注了,只不过把照片换成了句子而已,本质上是一样的。

如同马尔可夫随机场,条件随机场为具有无向的图模型,图中的顶点代表随机变量,顶点间的连线代表随机变量间的相依关系,在条件随机场中,随机变量Y 的分布为条件机率,给定的观察值则为随机变量 X。下图就是一个线性连条件随机场。

条件概率分布P(Y|X)称为条件随机场

6. EM算法、HMM、CRF的比较

  1. EM算法是用于含有隐变量模型的极大似然估计或者极大后验估计,有两步组成:E步,求期望(expectation);M步,求极大(maxmization)。本质上EM算法还是一个迭代算法,通过不断用上一代参数对隐变量的估计来对当前变量进行计算,直到收敛。注意:EM算法是对初值敏感的,而且EM是不断求解下界的极大化逼近求解对数似然函数的极大化的算法,也就是说EM算法不能保证找到全局最优值。对于EM的导出方法也应该掌握。

  2. 隐马尔可夫模型是用于标注问题的生成模型。有几个参数(π,A,B):初始状态概率向量π,状态转移矩阵A,观测概率矩阵B。称为马尔科夫模型的三要素。马尔科夫三个基本问题:

    概率计算问题:给定模型和观测序列,计算模型下观测序列输出的概率。–》前向后向算法

    学习问题:已知观测序列,估计模型参数,即用极大似然估计来估计参数。–》Baum-Welch(也就是EM算法)和极大似然估计。

    预测问题:已知模型和观测序列,求解对应的状态序列。–》近似算法(贪心算法)和维比特算法(动态规划求最优路径)

  3. 条件随机场CRF,给定一组输入随机变量的条件下另一组输出随机变量的条件概率分布密度。条件随机场假设输出变量构成马尔科夫随机场,而我们平时看到的大多是线性链条随机场,也就是由输入对输出进行预测的判别模型。求解方法为极大似然估计或正则化的极大似然估计。

  4. 之所以总把HMM和CRF进行比较,主要是因为CRF和HMM都利用了图的知识,但是CRF利用的是马尔科夫随机场(无向图),而HMM的基础是贝叶斯网络(有向图)。而且CRF也有:概率计算问题、学习问题和预测问题。大致计算方法和HMM类似,只不过不需要EM算法进行学习问题。

  5. HMM和CRF对比:其根本还是在于基本的理念不同,一个是生成模型,一个是判别模型,这也就导致了求解方式的不同。

7. 参考文献

  1. 条件随机场的简单理解
  2. 如何轻松愉快地理解条件随机场(CRF)
  3. 《数学之美》
  4. 监督学习方法与Baum-Welch算法
  5. 从贝叶斯方法谈到贝叶斯网络

8. 词性标注代码实现

HMM词性标注,GitHub:点击进入

作者:@mantchs

GitHub:https://github.com/NLP-LOVE/ML-NLP

欢迎大家加入讨论!共同完善此项目!群号:【541954936】NLP面试学习群

おすすめ

転載: www.cnblogs.com/mantch/p/11203748.html