作者:CHEONG
公众号:AI机器学习与知识图谱
研究方向:自然语言处理与知识图谱
阅读本文之前,首先注意以下两点:
1、机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看。
2、文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号后回复:HMM第四讲,本文针对一般的状态空间模型,介绍常探究的两大任务Learning问题和Inference问题。
对于一般的状态空间模型State Space Model,如下图所示,自然HMM模型也是包含在内:
一般需要探究的任务从整体上可以划分为两大类,
1、Learning问题,学习模型参数;
2、Inference问题,例如:求后验概率。
更加详细的划分参见下图:
在Inference问题下又细分出了五类问题,分别是Decoding、Prob of evidence、Filtering、Smoothing和Prediction问题。其中Prob of evidence即是HMM中介绍的Evaluation问题。
在HMM第二讲和第三讲中已经详细介绍过Inference下的Learning和Evaluation问题,请参考:
本文将简单介绍一下Deocding、Filtering、Smoothing和Prediction问题求解的大致思路,基本使用到的算法就是前向算法、后向算法和前向-后向算法等。
1、Decoding问题:已知观测序列 O O O,求解使得 p ( I ∣ O , λ ) p(I|O,\lambda) p(I∣O,λ)最大的隐状态序列 I I I,公式表示为:
解决算法:Viterbi算法。属于动态规划算法,最主要求出递归式。
因此可以得出动态规划递归式为:
为了更好的理解上面递归式的得出,可以参考下图用来理解:
2、Filtering问题:已知观测序列 x 1 , x 2 , . . . , x t x_1,x_2,...,x_t x1,x2,...,xt,求解概率 p ( z t ∣ x 1 , x 2 , . . . , x t ) p(z_t|x_1,x_2,...,x_t) p(zt∣x1,x2,...,xt),求解的推导过程如下:
其中
α t \alpha_t αt在介绍HMM前向算法是引入的,还有一个在HMM后向算法中引入的 β t \beta_t βt
3、Smoothing问题:已知全部观测序列 x 1 , x 2 , . . . , x t x_1,x_2,...,x_t x1,x2,...,xt,求解概率 p ( z t ∣ x 1 , x 2 , . . . , x T ) p(z_t|x_1,x_2,...,x_T) p(zt∣x1,x2,...,xT),求解的推导过程如下:
根据齐次马尔科夫假设:
因此:
Filtering问题常用于求解在线问题,观测数据是实时的 x 1 , x 2 , . . . , x t x_1,x_2,...,x_t x1,x2,...,xt;而Smoothing问题常用于求解离线问题,已经获取的是全部的观测数据 x 1 , x 2 , . . . , x T x_1,x_2,...,x_T x1,x2,...,xT。
4、Prediction问题:已知观测数据 x 1 , x 2 , . . . , x t x_1,x_2,...,x_t x1,x2,...,xt,求解概率 p ( z t + 1 ∣ x 1 , x 2 , . . . , x t ) p(z_{t+1}|x_1,x_2,...,x_t) p(zt+1∣x1,x2,...,xt)、 p ( x t + 1 ∣ x 1 , x 2 , . . . , x t ) p(x_{t+1}|x_1,x_2,...,x_t) p(xt+1∣x1,x2,...,xt),求解的推导过程如下:
根据观测独立假设:
其中 p ( z t ∣ x 1 , x 2 , . . . , x t ) p(z_{t}|x_1,x_2,...,x_t) p(zt∣x1,x2,...,xt)便是Filtering问题求解的结果,这样便求出了 p ( z t + 1 ∣ x 1 , x 2 , . . . , x t ) p(z_{t+1}|x_1,x_2,...,x_t) p(zt+1∣x1,x2,...,xt),而对于预测问题 p ( x t + 1 ∣ x 1 , x 2 , . . . , x t ) p(x_{t+1}|x_1,x_2,...,x_t) p(xt+1∣x1,x2,...,xt),推导如下:
根据观测独立假设:
其中 p ( z t + 1 ∣ x 1 , x 2 , . . . , x t ) p(z_{t+1}|x_1,x_2,...,x_t) p(zt+1∣x1,x2,...,xt)在上面已经求出,因此便可顺利求出 p ( x t + 1 ∣ x 1 , x 2 , . . . , x t ) p(x_{t+1}|x_1,x_2,...,x_t) p(xt+1∣x1,x2,...,xt)
参考视频资料:【机器学习】【白板推导系列】 作者:shuhuai008
参考书籍资料:Pattern Recognition and Machine Learning 作者:[Christopher Bishop]
三、往期精彩
【知识图谱系列】探索DeepGNN中Over-Smoothing问题
【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲
【知识图谱系列】动态知识图谱表示学习综述 | 十篇优秀论文导读
Transformer模型细节理解及Tensorflow实现
GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递
Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码
原稿获取请关注公众号后回复:HMM第四讲 ,原创不易,有用就点个赞呀!