算法进阶--HMM
HMM
-
定义:HMM是关于时序的概率模型,描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,再由各个状态生成观测随机序列过程
-
HMM随机生成的状态随机序列,称为状态序列,每个状态生成一个观测,由此产生的观测序随机序列,称为观测序列
-
序列的每个位置可看做是一个时刻
-
目的:用来处理那些样本之间不独立的数据(结构化数据)
HMM的确定:
HMM由出是概率π、状态转移概率分布A以及观测概率分布B确定
(其中,π为初始隐状态的概率分布,为一个向量)
(A为方阵→隐状态可能取值都是一样的,B为矩阵)
(隐状态必须是离散的!)
(观测值可以是连续的!)
HMM的三个基本问题
-
概率计算问题:前向-后向算法— 动态规划
-
学习问题:Baum-Welch算法(状态位置)—EM
- 预测问题:Viterbi算法—动态规划
基本问题之概率计算
暴力破解(理论可行)
- 对所有可能的状态序列I求和,得到观测系列O的概率:
前向算法
目的:降低暴力求解的时间复杂度来求得, P ( O ∣ λ ) P(O|\lambda) P(O∣λ)
过程:
- 求初值:(在给定条件λ下,第一个观测序列与第一个隐状态的值的联合概率分布)
α 1 ( i ) = π i b i o 1 \alpha_1(i)=\pi_ib_{io_1} α1(i)=πibio1
→(时间复杂度为 O ( n 2 ) O(n^2) O(n2))
其中 α t ( i ) = P ( O 1 , O 2 , . . . O t , i t = q i ∣ λ ) \alpha_t(i)=P(O_1,O_2,...O_t,i_t=q_i|\lambda) α