隐马尔可夫模型Hidden Markov Model

Hidden Markov Model, HMM

「概率论」「随机过程Stochastic Process」

1)马尔可夫过程Markov Process
日文wiki
マルコフ連鎖は、一連の確率変数X 1 ,X 2 ,X 3 , ... で、現在の状態が決まっていれば、過去および未来の状態は独立であるものである。形式的には、 

独立性:即使知道A事件会发生,也不影响B事件发生的概率,事件同时发生的概率为相乘(毫无因果)

马尔可夫性质Markov Property:「将来」状态的概率分布只依存于「现在」状态(无记忆性)

马尔可夫过程:拥有马尔可夫性质的随机过程,分类如
     简单马尔可夫过程,ただ 1 つの状態から次に起こる事象が決定される,一般说的马尔可夫过程指此(1阶)
     N阶马尔可夫过程,N 個の状態系列から次に起こる事象が決定される
     离散(状态空间是离散集合)=马尔可夫链、连续、离散时间T = {1, 2, 3, …}、连续时间T = [0, ∞)

Countable state space Continuous or general state space
Discrete-time Markov chain on a countable or finite state space Harris chain (Markov chain on a general state space)
Continuous-time Continuous-time Markov process Any continuous stochastic process with the Markov property, e.g. theWiener process


马尔可夫链Markov Chain:  状态是「离散的」(有限、可算)马尔可夫过程,各时刻产生的状态变化(状态转移)的概率只受「现在」状态影响

状态转移概率State Transition Probability
状态转移矩阵State Transition Matrix「有向图」

e.g.有限状态机

简单而言,状态有限、1阶因果、时间离散的状态转移概率分布模型
猴子也能懂:一图流

2)HMM
「概率模型」
システムがパラメータ未知のマルコフ過程,観測可能な情報からその未知のパラメータを推定する
e.g.(観測された)人感センサデータから、(隠された状態)人の在・不在を推定する


完整模型,参数:隐含状态,可观测状态,初始转移概率,转移概率,输出概率
states = ('Rainy', 'Sunny')
observations = ('walk', 'shop', 'clean')
start_probability = {'Rainy': 0.6, 'Sunny': 0.4}
transition_probability = {
   'Rainy' : {'Rainy': 0.7, 'Sunny': 0.3},
   'Sunny' : {'Rainy': 0.4, 'Sunny': 0.6},
}
emission_probability = {     // output_probability
   'Rainy' : {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},
   'Sunny' : {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},
}

主要学习了https://www.zhihu.com/question/20962240中掷骰子案例,明晰了问题域和算法

1)解码问题
input:
states = {4, 6, 8}, observations = {1, 2...7, 8}, 
start_probability = transition_probability = 1/3
output_probability = {
     4 : 1/4, 1/4, 1/4, 1/4, 0, 0, 0, 0
     6 : 1/6, 1/6, 1/6, 1/6, 1/6, 1/6, 0, 0
     8 : 1/8, 1/8, 1/8, 1/8, 1/8, 1/8, 1/8, 1/8,
}
observe_result = {1, 6, 4, 5, 2, 7, 3, 5, 2, 4}

output:
产生此观测结果的最大可能隐含结果是什么
P(state_result) = ?

1.1)穷举搜索Exhaustive search for solution
穷举所有可能产生观测结果的隐含状态组合,计算发生的概率
P(state_result_1) = {4, 8, 8, 8, 8, 8, 8, 8, 8, 8}
1/3*1/4*1/3*1/8*...
P(state_result_2) = {6, 8, 8, 8, 8, 8, 8, 8, 8, 8} 
1/6*1/4*1/3*1/8*... 
...
一比较明显P(state_result_1)的可能性更大
但当马尔可夫链过长,穷举数量太大,O( T^ S ),T个观测结果,S种隐含状态

1.2)维特比算法Viterbi Algorithm
a.观测结果为1的隐含结果最大可能是"4",因为有1/4的几率
b.1 6 - "4" "6" = 1/3*1/4*1/3*1/6                              最优
c.1 6 4 - "4" "6" "4" = 1/3*1/4*1/3*1/6*1/3*1/4         最优
以此类推,Viterbi path

「动态规划Dynamic Programming」
dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems, solving each of those subproblems just once, and storing their solutions - ideally, using a memory-based data structure. The next time the same subproblem occurs, instead of recomputing its solution, one simply looks up the previously computed solution, thereby saving computation time at the expense of a (hopefully) modest expenditure in storage space. (Each of the subproblem solutions is indexed in some way, typically based on the values of its input parameters, so as to facilitate its lookup.) The technique of storing solutions to subproblems instead of recomputing them is called "memoization". 

ALG

O(T x |S|^2),T个观测结果,S种隐含状态(扫一次初始,扫一次发生)
猴子也能懂:步步贪婪,动规省算

2)评估问题
(当有多个HMM可选时)哪个状态模型最可能生成观测结果=最好的描述了因果概率


向前算法(Forwarding Algorithm),和维特比类似,差别是前一个算概率最大值,这个算总概率 

(Not 哪段序列最可能产生这结果,But 产生这结果的总可能性)


ALG

3)学习问题

从观测结果序列反推一个局部最优的HMM模型参数

Baum-Welch algorithm 




*更有深度

http://blog.csdn.net/likelet/article/details/7056068


图片公式都不是很好的从evernote中复制出来,下次直接markdown写吧...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值