write down,forget
  • adidaseqt
  • eqtturbored
  • eqtsupport9317
  • eqtsupport
  • 9317adidas
  • adidaseqtboost9317
  • eqtsupport93
  • 9317eqt
  • eqt support 9317 adv
  • support 9317 adv
  • eqtadv
  • eqt9317
  • eqtadv9317
  • support93
  • originalseqt
  • adidas eqt
  • eqt support 9317
  • eqt support
  • eqt adv
  • eqt 9317
  • HMM-Viterbi Algorithm

    <Category: 机器学习, 算法> 查看评论
    简单来说,通过给定的观测状态序列,推算另一状态[隐藏状态]最可能出现的序列情况,这些状态的可能变化又称Viterbi Path
    Viterbi算法基于如下3个假设:
    1.无论是观测到的事件还是隐藏的事件都必须在一个序列中[一般对应时间]
    2.这两个序列需要重新校正排列,观测状态需要和一个隐藏状态进行对应
    3.每一个状态只依赖于它之前的那一个状态,而与其它的无关
    注:以上假设同样满足隐马模型。
    说了这么多,还是看个简单的例子吧。

    简单来说,通过给定的观测状态序列,推算出可能性最大的隐藏序列,这些序列的可能变化又称Viterbi Path
    说到viterbi算法,不得不提隐马模型(HMM),viterbi是HMM里面一个比较重要的算法。

    (Hidden Markov Model,)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。

    在正常的马尔可夫模型中,状态对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。

    HMM[隐马尔可夫模型]里有三个经典的问题:

    已知模型参数,计算某一特定输出序列的概率.通常使用forward算法解决.

    已知模型参数,寻找最可能的能产生某一特定输出序列的隐含状态的序列.通常使用Viterbi算法解决.

    已知输出序列,寻找最可能的状态转移以及输出概率.通常使用Baum-Welch算法以及Reversed Viterbi算法解决.

    另外,最近的一些方法使用Junction tree算法来解决这三个问题。


    Viterbi算法基于如下3个假设:

    1.无论是观测到的事件还是隐藏的事件都必须在一个序列中[一般对应时间]

    2.这两个序列需要重新校正排列,观测状态需要和一个隐藏状态进行对应

    3.每一个状态只依赖于它之前的那一个状态,而与其它的无关

    注:以上假设同样满足隐马模型。

    说了这么多,还是看个简单的例子吧。

    假设我们现有天气变化和与湿度的一个关系模型,通过统计未来5天的空气湿度情况[观测数据],来推算出未来最可能的天气变化情况[Hidden State]。

    设天气有三种状态:Sunny\Cloudy\Rainy三种状态,空气湿度Dry、Dryish、Damp、Soggy四种状态,一些已知数据如下:

    Hidden States
    (weather)
    Sunny
    Cloudy
    Rainy
    Observed States
    (seaweed)
    Dry
    Dryish
    Damp
    Soggy
    Initial State Probabilities
    (P Vector)各天气状态的初始概率
    Sunny 0.63
    Cloudy 0.17
    Rainy 0.20
    State transition matrix (‘A’ matrix),明天的天气变化的概率(注意与前一天有关哦)
    weather
    yesterday
    weather today
    Sunny Cloudy Rainy
    Sunny 0.500 0.250 0.250
    Cloudy 0.375 0.125 0.375
    Rainy 0.125 0.675 0.375
    Confusion matrix (‘B’ matrix),天气与湿度可能存在关系的概率
    hidden
    states
    observed states
    Dry Dryish Damp Soggy
    Sunny 0.60 0.20 0.15 0.05
    Cloudy 0.25 0.25 0.25 0.25
    Rainy 0.05 0.10 0.35 0.50

    先假设输入的空气湿度的可能序列依次为:Dry,Damp,Soggy,Dryish,Dry,按照viterbi算法生成待计算的矩阵,如下图所示:

    捕获1

    1.分别计算Dry和各天气发生的概率,如下:

    Dry*Sunny=0.63 * 0.6 = 0.37800002 (Max)

    Dry*Cloudy=0.17 * 0.25 = 0.0425

    Dry*Rainy=0.2 * 0.05 = 0.010000001

    2.求最大值:max ((0.37800002*0.5), (0.0425*0.375), (0.010000001*0.125)) (最有可能是干燥的晴天的概率)

    然后以前面的结果为基础继续推导,注意天气发生的概率已经变化了,此时的概率为前面的计算结果哦。

    max ((0.37800002*0.5), (0.0425*0.375), (0.010000001*0.125)) * 0.15 = 0.028350003

    捕获2

    3.然后下面继续计算是否Damp的概率,此时为sunny*damp

    Sunny*Damp=max ((0.37800002*0.5), (0.0425*0.375), (0.010000001*0.125)) * 0.15 = 0.028350003

    Sunny*Damp=max ((0.37800002*0.25), (0.0425*0.125), (0.010000001*0.675)) * 0.25 = 0.023625001

    Sunny*Damp=max ((0.37800002*0.25), (0.0425*0.375), (0.010000001*0.375)) * 0.35 = 0.033075 (Max)

    结果显示接下来可能是潮湿的雨天,如此依次往后计算,最终生成的路径如下所示:

    捕获3

    捕获4

    看过上面的几个图,应该对Viterbi算法有了一个大概的认识,通过上图显示的红色路径信息,我们得到可能的隐藏状态序列为:

    输入:Dry,Damp,Soggy,Dryish,Dry

    输出:sunny、rainy、rainy、cloudy、sunny

    算法演示动画:http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/viterbi_algorithm/s3_pg3.html

    REF:

    http://xw2k.nist.gov/dads/HTML/viterbiAlgorithm.html

    http://en.wikipedia.org/wiki/_

    http://www-rohan.sdsu.edu/~gawron/compling/course_core/lectures/viterbi_notes.pdf

    http://blog.52nlp.org/hmm-learn-best-practices-six-viterbi-algorithm-1

    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/html_dev/viterbi_algorithm/s4_pg1.html

    http://www.360doc.com/content/09/0204/17/96202_2458306.shtml

    http://blog.csdn.net/nirvanafeng/archive/2009/05/12/4171799.aspx

    http://nishuixingzhou.bokee.com/6099713.html

    本文来自: HMM-Viterbi Algorithm

    
    eqt support adidas eqt support 93 primeknit og colorway ba7506 adidas eqt running 93 updated with primeknit construction adidas eqt boost 93 17 white turbo red adidas eqt support 9317 white turbo red adidas eqt support 93 17 adidas eqt support 9317 adidas eqt support 9317 turbo red releases tomorrow adidas originals adidas eqt tactile green pack adidas eqt tactile green pack adidas eqt light green pack womens adidas eqt light green pack coming soon adidas eqt milled leather pack release date adidas originals eqt milled leather pack adidas eqt support ultra boost turbo red white adidas adv support burnt orange grey where to buy the adidas eqt support 9317 turbo red adidas eqt boost 91 16 turbo red adidas eqt support 93 turbo red adidas eqt support 9317 white turbo red available now