声学模型学习笔记(一) HMM
来源:互联网 发布:网络英语课招聘 编辑:程序博客网 时间:2024/05/29 02:36
“声学模型学习笔记”是《automatic speech recognition a deep learning approach》这本书的读书笔记,会有少量的个人理解和公式详细推导,声学入门狗一枚,不具有指导意义,具体以原书和列出的参考文献为准,欢迎指导和讨论。
HMM含义
Markov Chains
马尔科夫链,表示一个状态到另一个状态转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型的“无记忆性”称作马尔可夫性质。
假设状态空间
转移概率可以定义如下:
如果转移概率跟t无关,只由i和j决定,那么说马尔科夫链是齐次(homogeneous)的,转移概率矩阵可以写成一下形式:
Hidden Markov Sequences
马尔科夫链关注的状态转移概率。比如天气的三个状态分别是{sun, cloud, rain},状态转移概率矩阵如下:
马尔科夫链求解的问题是:如果今天晴天(sun),后天下雨(rain)的概率。
马尔科夫链的观察序列和状态序列是一一对应的,具有确定性(比如今天是sun,那么sun的概率将会是1,不可能为cloud或者rain),从而导致马尔科夫链很难去拟合有些现实问题。
为了增加马尔科夫链的随机性,对每一个状态,增加一个观察值的生成概率函数,即为隐马尔科夫序列。使用隐马尔科夫序列去建模解决实际问题,称为Hidden Markov model(HMM)。
同样以上面的例子来讲,比如在封闭的小黑屋里面,无法观察到天气状况,但是小黑屋里面有种的水藻,水藻的状态和天气的存在一定的概率关系,如下:
此时,我们可以把天气状况当成隐状态,把水藻的状况当成观察值,通过观察值来预测隐状态(天气状态)的序列,马尔科夫链转变成为隐马尔科夫模型。
不难隐马尔科夫模型有两方面的随机性:底层隐藏的随时间改变的马尔科夫过程(天气状态的变化过程);与隐藏状态存在某种映射关系的可观察状态集合(天气状态和水藻状态的关系)。
HMM公式
假设状态序列
- 转移概率
- 初始状态概率分布
- 观察概率
hmm需要解决的三个问题
- 概率计算问题:已知
- 学习问题:已知
- 预测问题:已知
问题一:为问题二的求解打基础
观察概率用混合高斯建模,可以表示如下:
其中i表示状态下标,m表示高斯分量的下标。
1.似然概率:
2.状态概率
3.联合概率
4.观察概率
随着T的增大,穷举状态序列
1.前向变量
前向概率定义为从开始到t时刻状态i的所有路径的概率和,定义如下:
初值:
递推关系:
终止:
2.后向变量
后向概率定义为从t时刻状态i点出发到结尾的所有路径概率和,定义如下:
初值:
递推关系:
终止:
参考[3],不难得出以上关系。
t时刻处在状态i的概率可以用前后向变量表示如下:
从而可以达到我们的终极目标,求解:
前后向算法的基本原理是利用递推关系,复用了中间的变量,减少了重复计算。不需要穷举所有的路径就可以完成
3.中间变量
两个变量(后面的EM会用到)定义如下:
t时刻处于状态
t时刻处在状态
问题二:求解hmm的参数
首先参考[3],简单介绍EM算法:
EM是expectation-maximization的简称,是一种最优化问题的迭代算法,1977年由Dempster等人总结提出,简介参考之前的博文
目标函数采用极大似然估计,极大化观测数据
由于含有隐变量
Jenssen不等式满足:
所以
定义
满足
在
为了获得更接近
忽略一些不含
其中Q函数:
Q函数的数学意义其实就是
E步的含义是构造
考虑到HMM求解的时候涉及到隐变量
完全数据集定义为
E步:首先构造Q函数
M步:然后Q函数分别构造拉格朗日函数,对模型参数
- 转移概率
- 方差
- 均值
问题三:求解最优状态序列
对应于解码,动态规划的思想,比较简单。
HMM局限性
- the temporal independence of speech data conditioned on each HMM state
HMM观察独立性假设,任意时刻的观察只依赖于该时刻的马尔科夫链的状态,与其他观测和状态无关 - lack of lawful correlation between the acoustic features
高斯的方差是用的对角阵,假设特征维度之间是相互独立的
参考文献
[1]《automatic speech recognition a deep learning approach》 chapter2-3
[2]HMM理解例子
[3]《统计学习方法》 李航 第10章
- 声学模型学习笔记(一) HMM
- 声学模型学习笔记(三) DNN-HMM hybrid system
- 声学模型(一) hmm声学训练流程
- 声学模型学习笔记(二) DNN
- 声学模型GMM-HMM训练
- 语音识别系统的声学建模:隐马尔可夫模型(HMM)
- 隐马尔科夫模型HMM学习(一)
- HMM(隐马尔科夫模型)学习一
- 声学模型学习笔记(四) dnn speedup
- 声学模型学习笔记(六) representation learning
- 声学模型学习笔记(七) advanced deep models
- 语音学习笔记(四)【传统声学模型】
- 分词算法模型学习笔记(一)——HMM
- 学习笔记之HMM模型
- 【学习笔记】HMM统计模型
- 【笔记】HMM模型论文阅读笔记(一)
- 声学模型学习
- 机器学习26-隐马尔科夫模型HMM(一)
- Java int 和String之间的转换
- 标准I/O的机理
- Linux环境下的GCC工具链详解(一)
- ScrollView嵌套listView和gridView的高度显示不全的问题
- 54. Spiral Matrix
- 声学模型学习笔记(一) HMM
- 第十四节:正则表达式及日期类(讲师笔记)
- 《Java NIO》:Channel and Buffer (通道和缓冲区)
- codevs1183 泥泞的道路(最短路)
- struts2重点知识点总结
- 读书笔记--<<如何阅读一本书>>
- Hibernate框架基础——cascade属性
- 1088. Rational Arithmetic
- 常用类(时间,Math),——4