Machine Learning
  • Introduction
  • man
  • Linear model
    • Linear Regression
    • Generalized Linear Models
    • Nonlinear regression
  • bayes
    • bayesian network
    • Variational Bayesian inference
    • Gaussian Process Regression
  • Logistic Regression
    • L1 regularization
    • L2 regularization
    • softmax
    • Overflow and Underflow
  • SVM
    • C-SVM
    • C-SVM求解
  • EM
    • GMM
  • Maximum Entropy
    • IIS
  • HMM
    • viterbi algorithm
  • CRF
  • Random Forest
    • bagging
    • random forest
  • boosting
    • catboost
    • gradient boosting
    • Newton Boosting
    • online boosting
    • gcForest
    • Mixture models
    • XGBoost
    • lightGBM
    • SecureBoost
  • LDA
  • rank
    • RankNet
    • LambdaRank
    • SimRank
  • Factorization Machine
    • Field-aware Factorization Machine
    • xdeepFM
  • Clustering
    • BIRCH
    • Deep Embedding Clustering
  • Kalman filtering
  • word2vec
  • 关联规则挖掘
  • MATH-Mathematical Analysis
    • measure
  • MATH-probability
    • Variational Inference
    • Dirichlet分布
    • Gibbs Sampling
    • Maximum entropy probability distribution
    • Conjugate prior
    • Gaussian Process
    • Markov process
    • Poisson process
    • measure
    • Gumbel
  • MATH-Linear Algebra
    • SVD
    • SVD-推荐
    • PCA
    • Linear Discriminant Analysis
    • Nonnegative Matrix Factorization
  • MATH-Convex optimization
    • 梯度下降
    • 随机梯度下降
    • 牛顿法
    • L-BFGS
    • 最速下降法
    • 坐标下降法
    • OWL-QN
    • 对偶问题
    • 障碍函数法
    • 原对偶内点法
    • ISTA
    • ADMM
    • SAG
  • MATH-碎碎念
    • cost function
    • Learning Theory
    • sampling
    • Entropy
    • variational inference
    • basis function
    • Diffie–Hellman key exchange
    • wavelet transform
    • 图
    • Portfolio
    • 凯利公式
  • ML碎碎念
    • 特征
    • test
    • TF-IDF
    • population stability index
    • Shapley Values
  • 课件
    • xgboost算法演进
  • Time Series
  • PID
  • graph
    • SimRank
    • community detection
    • FRAUDAR
    • Anti-Trust Rank
    • Struc2Vec
    • graph theory
    • GNN
  • Anomaly Detection
    • Isolation Forest
    • Time Series
  • Dimensionality Reduction
    • Deep Embedded Clustering
  • Federated Learning
  • automl
  • Look-alike
  • KNN
  • causal inference
Powered by GitBook
On this page
  • HMM生成过程###
  • 训练.不完全数据###
  • 前向后向算法###
  • 前向####
  • 后向####

Was this helpful?

HMM

PreviousIISNextviterbi algorithm

Last updated 5 years ago

Was this helpful?

见李航老师的《统计学习方法》第10章。对前向后向计算方法及EM计算模型参数的推导都很明了。 page174 有三个基本问题:概率计算问题,学习问题,预测问题。

HMM生成过程###

训练.不完全数据###

若是完全标注的数据,可以简单的统计出各个概率。 若数据有很多是未标注的怎么办? EM!

E步:

前向后向算法###

前向####

后向####

预测时候,寻找最优的隐藏状态序列S∗=arg⁡max⁡sPθ(S∣O)S^* = \arg \max_s P_{\theta}(S|O)S∗=argmaxs​Pθ​(S∣O) ,需要用到Viterbi Algorithm,主要是动态规划的思想。

求模型的参数:λ=(A,B,π)\lambda = (A,B,\pi)λ=(A,B,π) 已知:观测序列O 未知:隐藏状态序列I

那么: P(O∣λ)=∑IP(O∣I,λ)P(I∣λ)P(O|\lambda) = \sum_I P(O|I,\lambda) P(I|\lambda)P(O∣λ)=∑I​P(O∣I,λ)P(I∣λ) .

Q(λ,λˉ)=EI[log⁡P(O,I∣λ)∣O,λˉ]=∑Ilog⁡P(O,I∣λ)P(I∣O,λˉ)=∑Ilog⁡P(O,I∣λ)P(O,I∣λˉ)P(O∣λˉ)≈∑Ilog⁡P(O,I∣λ)P(O,I∣λˉ)去掉了与I无关的分母=∑Ilog⁡πiP(O,I∣λˉ)+∑I(∑t=1T−1log⁡ai,i+1)P(O,I∣λˉ)+∑I(∑t=1Tlog⁡bit(ot))P(O,I∣λˉ)Q(\lambda,\bar \lambda) = E_I [\log P(O,I|\lambda) | O, \bar \lambda] \\ = \sum_I \log P(O,I|\lambda) P(I|O, \bar \lambda) \\ = \sum_I \log P(O,I|\lambda) \frac {P(O,I|\bar \lambda)} {P(O|\bar \lambda)} \\ \approx \sum_I \log P(O,I|\lambda) P(O,I|\bar \lambda) \quad \text{去掉了与I无关的分母} \\ = \sum_I \log \pi_i P(O,I|\bar \lambda) + \sum_I (\sum_{t=1}^{T-1} \log a_{i,i+1}) P(O,I|\bar \lambda) + \sum_I (\sum_{t=1}^T \log b_{i_t} (o_t) ) P(O,I|\bar \lambda)Q(λ,λˉ)=EI​[logP(O,I∣λ)∣O,λˉ]=I∑​logP(O,I∣λ)P(I∣O,λˉ)=I∑​logP(O,I∣λ)P(O∣λˉ)P(O,I∣λˉ)​≈I∑​logP(O,I∣λ)P(O,I∣λˉ)去掉了与I无关的分母=I∑​logπi​P(O,I∣λˉ)+I∑​(t=1∑T−1​logai,i+1​)P(O,I∣λˉ)+I∑​(t=1∑T​logbit​​(ot​))P(O,I∣λˉ)

M步: 如《统计学习方法》,上上式三个子项逐一用拉格朗日函数求解。 最后的解πi=P(O,i1=i∣λˉ)P(O∣λˉ)\pi_i = \frac {P(O,i_1=i|\bar \lambda)}{P(O|\bar \lambda)}πi​=P(O∣λˉ)P(O,i1​=i∣λˉ)​中有个式子P(O∣λˉ)P(O|\bar \lambda)P(O∣λˉ) ,如何高效计算?前向后向算法。

若给定λ=(A,B,π)\lambda = (A,B,\pi)λ=(A,B,π)和观测序列,计算观测序列O出现的概率P(O∣λ)P(O|\lambda)P(O∣λ) . 具体Status未知,此时计算量很大。

最简单的:αt(k)=P(o1:t,st=k)=∑s1:t−1P(o1:t,s1:t−1,St=k)\alpha_t(k) = P(o_{1:t},s_t=k) = \sum_{s_{1:t-1}} P(o_{1:t},s_{1:t-1},S_t=k)αt​(k)=P(o1:t​,st​=k)=∑s1:t−1​​P(o1:t​,s1:t−1​,St​=k) 。 但是,看看求和的集合,这个时间复杂度不可接受。 于是乎想到了一种利用αt−1(l)\alpha_{t-1}(l)αt−1​(l)结果的算法:

HMM相关文章索引
前向后向算法
前向算法