fbpx
维基百科

鲍姆-韦尔奇算法

在电气工程、计算机科学、统计计算和生物信息学中,鲍姆-韦尔奇算法是用于寻找隐马尔可夫模型未知参数的最大期望算法,它利用前向-后向算法来计算E-Step的统计信息。

历史

鲍姆-韦尔奇算法是以其发明者伦纳德·埃绍·鲍姆和劳埃德·理查德·韦尔奇的名字命名的。鲍姆-韦尔奇算法和隐马尔可夫模型在20世纪60年代末和70年代初由鲍姆和他的同事在国防分析研究所的一系列文章中首次描述。HMMs最初主要应用于语音处理领域。20世纪80年代,HMMs开始成为分析生物系统和信息,特别是遗传信息的有用工具。此后,它们成为基因组序列概率建模的重要工具。

介绍

隐马尔可夫模型描述了一组“隐含”变量和可观测到的离散随机变量的联合概率。它依赖于假设:第 个隐藏变量只与第 个隐含变量相关,而与其他先前的隐藏变量无关,而当前观测到的状态仅依赖于当前的隐藏状态。

鲍姆-韦尔奇算法利用最大期望算法,在给定一组观测特征向量的情况下,求出隐马尔可夫模型参数的最大似然估计。

记离散的隐含随机变量为 ,它总共有 种状态(  个不同的值)。设 与时间无关,得到与时间无关的随机变量转移矩阵:

 
初始的状态(即 )分布由下式给出:

 

记观测到的变量为 ,总共有 种取值。同样假设由隐含变量得到的可观测变量与时间无关。在时间 ,由隐含变量 得到的可观察变量 的概率是:

 

由所有可能得  的取值,我们可以得到 的矩阵 ,其中 属于所有可能得隐含状态, 属于所有的可观测状态。

给出可观测序列: 

我们可以用 描述隐马尔科夫链,鲍姆-韦尔奇算法寻找 的局部极大值,也就是能够使得观测到的序列出现的概率最大的HMM的参数 

算法

初始化参数 ,可以随机初始化,或者根据先验知识初始化。

前向过程

 是参数 的条件下,观测的序列是 ,时刻 的状态是 的概率。可以通过递归计算:

  1.  
  2.  

后向过程

 是参数是 ,在时刻 的状态是 的条件下,余下部分的观测序列是 的概率。

  1.  
  2.  

更新

  • 根据贝叶斯公式计算临时变量。
    • 在给定观测序列 和参数 的情况下,在时间 状态是 的概率: 
    • 在给定观测序列 和参数 的情况下,在时间 状态是 ,在时间 状态是 的概率: 
    •   的分母一样,表示给定参数 得到观测序列 的概率。
  • 然后更新参数:
    •  ,在时间 状态是 的概率
    •  ,等于期望的从状态 转换到状态 的数量除以从状态 开始的转换的总数。
    •  ,其中  是期望的从状态 得到的观察值等于 的数量除以从 状态 开始的转换的总数。
  • 重复上面的步骤直到收敛。算法可能过拟合,也不保证收敛到全局最大值。
  • 其中计算  相当于最大期望算法的E-Step,而更新 的过程相当于最大期望算法的M-Step。


例子

假设我们有一只会下蛋的鸡,每天中午我们都会去拾取鸡蛋。而鸡是否下蛋依赖于一些未知的隐含状态,这里我们简单的假设只有两种隐含状态会决定它是否下蛋。我们不知道这些隐含状态的初始值,不知道他们之间的转换概率,也不知道在每种状态下鸡会下蛋的概率。我们随机初始化他们来开始猜测。

Transition
State 1 State 2
State 1 0.5 0.5
State 2 0.3 0.7
Emission
No Eggs Eggs
State 1 0.3 0.7
State 2 0.8 0.2
Initial
State 1 0.2
State 2 0.8

假设我们得到的观测序列是(E=eggs, N=no eggs): N, N, N, N, N, E, E, N, N, N。

这样我们同时也得到了观测状态的转移:NN, NN, NN, NN, NE, EE, EN, NN, NN。

通过上面的信息来重新估计状态转移矩阵。

Observed sequence Probability of sequence and state is   then   Highest Probability of observing that sequence
NN 0.024 0.3584  , 
NN 0.024 0.3584  , 
NN 0.024 0.3584  , 
NN 0.024 0.3584  , 
NE 0.006 0.1344  , 
EE 0.014 0.0490  , 
EN 0.056 0.0896  , 
NN 0.024 0.3584  , 
NN 0.024 0.3584  , 
Total 0.22 2.4234

重新估计  的转移概率为 (下表中的"Pseudo probabilities"),重新计算所有的转移概率,得到下面的转移矩阵:

Old Transition Matrix
State 1 State 2
State 1 0.5 0.5
State 2 0.3 0.7
New Transition Matrix (Pseudo Probabilities)
State 1 State 2
State 1 0.0598 0.0908
State 2 0.2179 0.9705
New Transition Matrix (After Normalization)
State 1 State 2
State 1 0.3973 0.6027
State 2 0.1833 0.8167

接下来重新估计Emission Matrix:

Observed Sequence Highest probability of observing that sequence
if E is assumed to come from  
Highest Probability of observing that sequence
NE 0.1344  ,  0.1344  , 
EE 0.0490  ,  0.0490  , 
EN 0.0560  ,  0.0896  , 
Total 0.2394 0.2730

重新估计从隐含状态 得到观察结果E的概率是 ,得到新的Emission Matrix

Old Emission Matrix
No Eggs Eggs
State 1 0.3 0.7
State 2 0.8 0.2
New Emission Matrix (Estimates)
No Eggs Eggs
State 1 0.0876 0.8769
State 2 1.0000 0.7385
New Emission Matrix (After Normalization)
No Eggs Eggs
State 1 0.0908 0.9092
State 2 0.5752 0.4248

为了估计初始状态的概率,我们分别假设序列的开始状态是  ,然后求出最大的概率,再归一化之后更新初始状态的概率。

一直重复上面的步骤,直到收敛。

代码

from hmmlearn import hmm import numpy as np  X = np.array([1, 1, 1, 1, 1, 0, 0, 1, 1, 1]).reshape(-1, 1) model = hmm.GaussianHMM(n_components=2, covariance_type='full') model.fit(X)  model.monitor_.history  # pi model.startprob_  # state transform matrix model.transmat_  # emission_matrix np.power(np.e, model._compute_log_likelihood(np.unique(X).reshape(-1, 1))) 

鲍姆, 韦尔奇算法, 此條目没有列出任何参考或来源, 2019年11月24日, 維基百科所有的內容都應該可供查證, 请协助補充可靠来源以改善这篇条目, 无法查证的內容可能會因為異議提出而移除, 在电气工程, 计算机科学, 统计计算和生物信息学中, 是用于寻找隐马尔可夫模型未知参数的最大期望算法, 它利用前向, 后向算法来计算e, step的统计信息, 目录, 历史, 介绍, 算法, 前向过程, 后向过程, 更新, 例子, 代码历史, 编辑是以其发明者伦纳德, 埃绍, 鲍姆和劳埃德, 理查德, 韦尔奇的名字命名的, . 此條目没有列出任何参考或来源 2019年11月24日 維基百科所有的內容都應該可供查證 请协助補充可靠来源以改善这篇条目 无法查证的內容可能會因為異議提出而移除 在电气工程 计算机科学 统计计算和生物信息学中 鲍姆 韦尔奇算法是用于寻找隐马尔可夫模型未知参数的最大期望算法 它利用前向 后向算法来计算E Step的统计信息 目录 1 历史 2 介绍 3 算法 3 1 前向过程 3 2 后向过程 3 3 更新 4 例子 5 代码历史 编辑鲍姆 韦尔奇算法是以其发明者伦纳德 埃绍 鲍姆和劳埃德 理查德 韦尔奇的名字命名的 鲍姆 韦尔奇算法和隐马尔可夫模型在20世纪60年代末和70年代初由鲍姆和他的同事在国防分析研究所的一系列文章中首次描述 HMMs最初主要应用于语音处理领域 20世纪80年代 HMMs开始成为分析生物系统和信息 特别是遗传信息的有用工具 此后 它们成为基因组序列概率建模的重要工具 介绍 编辑隐马尔可夫模型描述了一组 隐含 变量和可观测到的离散随机变量的联合概率 它依赖于假设 第i displaystyle i 个隐藏变量只与第i 1 displaystyle i 1 个隐含变量相关 而与其他先前的隐藏变量无关 而当前观测到的状态仅依赖于当前的隐藏状态 鲍姆 韦尔奇算法利用最大期望算法 在给定一组观测特征向量的情况下 求出隐马尔可夫模型参数的最大似然估计 记离散的隐含随机变量为X t displaystyle X t 它总共有N textstyle N 种状态 X t displaystyle X t 有N displaystyle N 个不同的值 设P X t X t 1 displaystyle P X t X t 1 与时间无关 得到与时间无关的随机变量转移矩阵 A a i j P X t j X t 1 i displaystyle A a ij P X t j X t 1 i 初始的状态 即t 1 displaystyle t 1 分布由下式给出 p i P X 1 i displaystyle pi i P X 1 i 记观测到的变量为Y t displaystyle Y t 总共有K displaystyle K 种取值 同样假设由隐含变量得到的可观测变量与时间无关 在时间t displaystyle t 由隐含变量X t j displaystyle X t j 得到的可观察变量Y t y i displaystyle Y t y i 的概率是 b j y i P Y t y i X t j displaystyle b j y i P Y t y i X t j 由所有可能得X t displaystyle X t 和Y t displaystyle Y t 的取值 我们可以得到N K displaystyle N times K 的矩阵B b j y i displaystyle B b j y i 其中b j displaystyle b j 属于所有可能得隐含状态 y i displaystyle y i 属于所有的可观测状态 给出可观测序列 Y Y 1 y 1 Y 2 y 2 Y T y T displaystyle Y Y 1 y 1 Y 2 y 2 cdots Y T y T 我们可以用8 A B p textstyle theta A B pi 描述隐马尔科夫链 鲍姆 韦尔奇算法寻找8 arg m a x 8 P Y 8 displaystyle theta arg underset theta max P Y theta 的局部极大值 也就是能够使得观测到的序列出现的概率最大的HMM的参数8 displaystyle theta 算法 编辑初始化参数8 A B p displaystyle theta A B pi 可以随机初始化 或者根据先验知识初始化 前向过程 编辑 记a i t P Y 1 y 1 Y 2 y 2 Y t y t X t i 8 displaystyle alpha i t P Y 1 y 1 Y 2 y 2 cdots Y t y t X t i theta 是参数8 displaystyle theta 的条件下 观测的序列是y 1 y 2 y t displaystyle y 1 y 2 cdots y t 时刻t displaystyle t 的状态是i displaystyle i 的概率 可以通过递归计算 a i 1 p i b i y 1 displaystyle alpha i 1 pi i b i y 1 a i t 1 b i y t 1 j 1 N a j t a j i displaystyle alpha i t 1 b i y t 1 sum j 1 N alpha j t a ji 后向过程 编辑 记b i t P Y t 1 y t 1 Y T y T X t i 8 displaystyle beta i t P Y t 1 y t 1 cdots Y T y T X t i theta 是参数是8 displaystyle theta 在时刻t displaystyle t 的状态是i displaystyle i 的条件下 余下部分的观测序列是y t 1 y T displaystyle y t 1 cdots y T 的概率 b i T 1 displaystyle beta i T 1 b i t j 1 N b j t 1 a i j b j y t 1 displaystyle beta i t sum j 1 N beta j t 1 a ij b j y t 1 更新 编辑 根据贝叶斯公式计算临时变量 在给定观测序列Y displaystyle Y 和参数8 displaystyle theta 的情况下 在时间t displaystyle t 状态是i displaystyle i 的概率 g i t P X t i Y 8 P X t i Y 8 P Y 8 a i t b i t j 1 N a j t b j t displaystyle gamma i t P X t i Y theta frac P X t i Y theta P Y theta frac alpha i t beta i t sum j 1 N alpha j t beta j t 在给定观测序列Y displaystyle Y 和参数8 displaystyle theta 的情况下 在时间t displaystyle t 状态是i displaystyle i 在时间t 1 displaystyle t 1 状态是j displaystyle j 的概率 3 i j t P X t i X t 1 j Y 8 P X t i X t 1 j Y 8 P Y 8 a i t a i j b j t 1 b j y t 1 i 1 N j 1 N a i t a i j b j y t 1 b j t 1 displaystyle xi ij t P X t i X t 1 j Y theta frac P X t i X t 1 j Y theta P Y theta frac alpha i t a ij beta j t 1 b j y t 1 sum i 1 N sum j 1 N alpha i t a ij b j y t 1 beta j t 1 g i t displaystyle gamma i t 和3 i j t displaystyle xi ij t 的分母一样 表示给定参数8 displaystyle theta 得到观测序列Y displaystyle Y 的概率 然后更新参数 p i g i 1 displaystyle pi i gamma i 1 在时间1 displaystyle 1 状态是i displaystyle i 的概率 a i j t 1 T 1 3 i j t t 1 T 1 g i t displaystyle a ij frac sum t 1 T 1 xi ij t sum t 1 T 1 gamma i t 等于期望的从状态i displaystyle i 转换到状态j displaystyle j 的数量除以从状态i displaystyle i 开始的转换的总数 b i v k t 1 T 1 y t v k g i t t 1 T g i t displaystyle b i v k frac sum t 1 T 1 y t v k gamma i t sum t 1 T gamma i t 其中1 y t v k 1 if y t v k 0 otherwise displaystyle 1 y t v k begin cases 1 text if y t v k 0 text otherwise end cases b i v k displaystyle b i v k 是期望的从状态i displaystyle i 得到的观察值等于v k displaystyle v k 的数量除以从 状态i displaystyle i 开始的转换的总数 重复上面的步骤直到收敛 算法可能过拟合 也不保证收敛到全局最大值 其中计算g i t displaystyle gamma i t 和3 i j t displaystyle xi ij t 相当于最大期望算法的E Step 而更新p i a i j b i v k displaystyle pi i alpha ij b i v k 的过程相当于最大期望算法的M Step 例子 编辑假设我们有一只会下蛋的鸡 每天中午我们都会去拾取鸡蛋 而鸡是否下蛋依赖于一些未知的隐含状态 这里我们简单的假设只有两种隐含状态会决定它是否下蛋 我们不知道这些隐含状态的初始值 不知道他们之间的转换概率 也不知道在每种状态下鸡会下蛋的概率 我们随机初始化他们来开始猜测 Transition State 1 State 2State 1 0 5 0 5State 2 0 3 0 7 Emission No Eggs EggsState 1 0 3 0 7State 2 0 8 0 2 Initial State 1 0 2State 2 0 8假设我们得到的观测序列是 E eggs N no eggs N N N N N E E N N N 这样我们同时也得到了观测状态的转移 NN NN NN NN NE EE EN NN NN 通过上面的信息来重新估计状态转移矩阵 Observed sequence Probability of sequence and state is S 1 displaystyle S 1 then S 2 displaystyle S 2 Highest Probability of observing that sequenceNN 0 024 0 3584 S 2 displaystyle S 2 S 2 displaystyle S 2 NN 0 024 0 3584 S 2 displaystyle S 2 S 2 displaystyle S 2 NN 0 024 0 3584 S 2 displaystyle S 2 S 2 displaystyle S 2 NN 0 024 0 3584 S 2 displaystyle S 2 S 2 displaystyle S 2 NE 0 006 0 1344 S 2 displaystyle S 2 S 1 displaystyle S 1 EE 0 014 0 0490 S 1 displaystyle S 1 S 1 displaystyle S 1 EN 0 056 0 0896 S 2 displaystyle S 2 S 2 displaystyle S 2 NN 0 024 0 3584 S 2 displaystyle S 2 S 2 displaystyle S 2 NN 0 024 0 3584 S 2 displaystyle S 2 S 2 displaystyle S 2 Total 0 22 2 4234重新估计S 1 displaystyle S 1 到S 2 displaystyle S 2 的转移概率为0 22 2 4234 0 0908 displaystyle frac 0 22 2 4234 0 0908 下表中的 Pseudo probabilities 重新计算所有的转移概率 得到下面的转移矩阵 Old Transition Matrix State 1 State 2State 1 0 5 0 5State 2 0 3 0 7 New Transition Matrix Pseudo Probabilities State 1 State 2State 1 0 0598 0 0908State 2 0 2179 0 9705 New Transition Matrix After Normalization State 1 State 2State 1 0 3973 0 6027State 2 0 1833 0 8167接下来重新估计Emission Matrix Observed Sequence Highest probability of observing that sequence if E is assumed to come from S 1 displaystyle S 1 Highest Probability of observing that sequenceNE 0 1344 S 2 displaystyle S 2 S 1 displaystyle S 1 0 1344 S 2 displaystyle S 2 S 1 displaystyle S 1 EE 0 0490 S 1 displaystyle S 1 S 1 displaystyle S 1 0 0490 S 1 displaystyle S 1 S 1 displaystyle S 1 EN 0 0560 S 1 displaystyle S 1 S 2 displaystyle S 2 0 0896 S 2 displaystyle S 2 S 2 displaystyle S 2 Total 0 2394 0 2730重新估计从隐含状态S 1 displaystyle S 1 得到观察结果E的概率是0 2394 0 2730 0 8769 displaystyle frac 0 2394 0 2730 0 8769 得到新的Emission Matrix Old Emission Matrix No Eggs EggsState 1 0 3 0 7State 2 0 8 0 2 New Emission Matrix Estimates No Eggs EggsState 1 0 0876 0 8769State 2 1 0000 0 7385 New Emission Matrix After Normalization No Eggs EggsState 1 0 0908 0 9092State 2 0 5752 0 4248为了估计初始状态的概率 我们分别假设序列的开始状态是S 1 displaystyle S 1 和S 2 displaystyle S 2 然后求出最大的概率 再归一化之后更新初始状态的概率 一直重复上面的步骤 直到收敛 代码 编辑from hmmlearn import hmm import numpy as np X np array 1 1 1 1 1 0 0 1 1 1 reshape 1 1 model hmm GaussianHMM n components 2 covariance type full model fit X model monitor history pi model startprob state transform matrix model transmat emission matrix np power np e model compute log likelihood np unique X reshape 1 1 取自 https zh wikipedia org w index php title 鲍姆 韦尔奇算法 amp oldid 71989188, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。