潜变量模型

观测变量:可以直接观测到的变量

潜变量:无法直接观测到,需要通过模型和观测变量进行推断,利用潜变量来解释观测变量的数学模型叫做潜变量模型,如GMM、HMM都是潜变量模型。

潜变量模型将不完全数据(只有观测数据)的边缘分布转换成容易处理的完全数据的联合分布

如下图中,潜变量就是各点的类别,观测变量就是数据点。

K-means聚类

k-means聚类的目标是将N个数据点聚类在K个类别中,其中K值以及给定

K-means的思路如下

(1)首先引入K个D维均值向量\mu _{k},k=1,2,…,K,\mu _{k}即为第k个类别的聚类中心
(2)接着计算数据点x_{n}和所有类中心\mu _{k}的距离 (如欧式距离),类中心距离此数据点最近的类别,即为当前数据点的类别
(3)根据新的聚类结果,使用当前聚集到各个类别的数据的均值来更新当前类别的聚类中心,
(4)返回第2步,直到满足一定的停止准则。停止准则可能是:聚类中心变化不大,各个数据点不再变化类别等情况

对K-means进行优化

引入潜变量

k-means可以用作图像的分割和压缩,如下图将一个图片分为两个颜色存储,大大降低数据的存储量

GMM模型(高斯混合模型)

GMM模型用于解决同一集合下数据包含不同分布的情况

多维高斯分布

 最大似然估计

寻找一组参数,使这批样本生成固定数据的概率最大。

 高斯模型的最大似然估计

 高斯混合分布

从几何角度来看:高斯混合分布可以看做加权平均由多个高斯分布叠加实现的,由此高斯混合分布公式如下

 其中{\Pi _{k}},{\mu _{k}},{\Sigma _{k}}为待估计参数。对于\Pi _{k}可以理解为:第k个高斯所占的比重。

从混合模型角度来看:引入变量z,x为观测变量,z为隐变量,表示对应的样本x是属于哪一个高斯分布。可以看做是一个离散型的随机变量,其中\Sigma _{k}z_{k}=1,如下图,其中C为类型

 其中Z和X的概率图如下。

先验概率:在没有任何观测数据条件下给出的概率

后验概率:得到观测数据,依据观测数据对某一变量的概率

GMM的对数似然式子如下

GMM模型参数估计的EM算法

 

 GMM模型参数估计的EM总结

EM算法

上述中的P(z_{i})一般使用迭代的方法进行计算,具体步骤如下

 EM算法分为E步和M步两部

E步:直观的可以看做是数数,M步就是在最大化似然的过程,所以这就是两部迭代更新E/M

EM算法的步骤如下

 EM算法的核心问题就是将不完全数据(只有观测数据)的边缘分布转换成容易处理的完全数据(观测变量+潜变量)的联合分布。

 EM算法的通用步骤如下

HMM(隐马尔可夫模型)

定义

       隐马尔可夫模型是关于时间序列的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态序列,再由各个状态生成一个观测而产生观测序列的过程。举个例子,加入科学家们需要根据小明每天吃冰激凌的数量1,2,3来判断那天的天气,那么观测序列O可以是O=(3,1,3)对应的天气的状态序列Q则为Q=(hot,cold,hot),观测序列就是可以直观感受到的,状态序列则需要通过观测序列推理得到。

       下图是一个隐马尔可夫模型,中间是一条隐藏的马尔可夫链,当我们处于不同状态时会以不同概率跳转到不同状态,也会以不同概率跳转到不同观测。

下图是一个实例

组成

HMM由初始概率分布、状态转移概率分布和观测概率分布决定,HMM的组成如下

 HMM的表达公式为 \lambda=(A,B,π),其中A,B,π成为HMM的三要素

HMM两个基本假设

齐次马尔可夫性假设:隐藏的马尔可夫链在时刻t的状态只和t-1的状态有关,即

                 P(i_{t}|i_{t-1},o_{t-1},...i_{1},o_{1})=P(i_{t}|i_{t-1}), t=1,2,...T

观测独立性假设:观测只和当前时刻的状态有关,即

                P(o_{t}|i_{T},o_{T},i_{T-1},o_{T-1},...i_{t+1},o_{t+1},i_{t},i_{t-1},o_{t-1},...i_{1},o_{1})=P(o_{t}|i_{t})

 HMM的例题

 答案

 观测序列的生成过程

输入:隐马尔可夫模型 \lambda=(A,B,π),观测序列长度T;

输出:观测序列O=(o_{1},o_{2},...o_{r}

步骤如下:

隐马尔可夫模型的三个基本问题

1、概率计算问题

概率计算问题即已知模型\lambda=(A,B,π)和观测模型O=(o_{1},o_{2},...o_{r}),计算概率P(O|\lambda

直接计算法

该方法是最直接的方法,列举了所有可能的长度为T状态序列,之后求各个状态序列与观测序列的联合概率P(O,I|\lambda),然后对所有可能的状态序列求和,得到P(O|\lambda)

具体的计算步骤如下

前向算法

前向概率:给定隐马尔可夫模型\lambda,定义到时刻t部分观测序列为o_{1},o_{2},...o_{t}且状态为q_{i}的概率为前向概率,记作a_{t}(i)=P(o_{1},o_{2},...,o_{t},i_{t}=q_{i}|\lambda )

观测序列概率的前向算法过程如下

 前向算法的关键在与每一次计算,直接引用前一个时刻的计算结果,减少了计算量,避免了重复计算。复杂度降为了O(TN^{2})

例题

后向算法

后向概率:给定隐马尔可夫模型\lambda,定义在时刻t状态为q_{i}的条件下,从t+1到T的部分观测序列为o_{t+1},o_{t+2},...o_{T}的概率为后向概率,记作\beta _{t}(i)=P(o_{t+1},o_{t+2},...,o_{T}|i_{t}=q_{i},\lambda )

观测序列概率的后向算法过程如下

2、预测问题

预测问题即已知模型\lambda=(A,B,π)和观测模型O=(o_{1},o_{2},...o_{T}), 计算概率P(O|\lambda)最大的状态序列I=(i_{1},i_{2},...i_{T}

Viterbi算法

viterbi算法是要动态规划求概率最大路径(最优路径),一个路径对应一个状态序列

最优路径的特性:如果最优路径在时刻t通过结点i_{t}^{*},那么这一路径从结点i_{t}^{*}到终点i_{T}^{*}的部分路径,对于从i_{t}^{*}i_{T}^{*}的所有可能的部分路径来说,必须是最优的。
递推:只需从时刻t=1开始 ,递推地计算在时刻t状态为i的各条部分路径的最大概率,直至得到时刻t=T状态为i的各条路径的最大概率,时刻t=T的最大概率即为最优路径的概率 p*,最优路径的终结点i_{T}^{*}也同时得到
回溯:之后,为了找出最优路径的各个结点 ,从终结点i_{T}^{*}开始,由后向前逐步求得结点i_{T}^{*},...,i_{1}^{*},得到最优路径I^{*}=(i_{1}^{*},i_{2}^{*},...,i_{T}^{*})

viterbi算法的过程如下

 

例题:

 解答:

3、学习问题

学习问题即已知观测模型O=(o_{1},o_{2},...o_{T}),估计模型\lambda,使概率P(O|\lambda)最大

Viterbi算法

Baum-Welch学习算法

 GMM-HMM语音识别框架

一些概念

对齐:“音频wav”和“文本txt”的对应关系

训练:已知对齐(wav及其txt),迭代计算模型参数

解码:根据训练得到的模型参数,从wav推出txt

 基于孤立词的GMM-HMM语言识别系统

孤立词:考虑一个最简单的0~9十个数字,每个数据语音只包含一个数字,那么就叫做孤立词

下图是系统主要做的事情

 将上图形式化为

 假设我们为每个词建立了一个模型P,计算在每个词上的概率,并选择所有词中概率最大的词作为识别结构。这里的模型P可以用DNN,GMM等方法实现。

语音识别中的GMM(对角GMM,协方差为对角阵,MFCC特征)

语音识别中的HMM如下图所示,它是由三状态组成的左右模型的拓扑结构

GMM与HMM的结合如下图

 

 

 解码需要输入各个词的HMM-GMM模型即未知的测试语言X,输出X是哪个词。

解码的关键在于对于所有的w,如何计算P(X)。

基于单音素的GMM-HMM语言识别系统

 基于三音素的GMM-HMM语言识别系统

 

 基于GMM-HMM语言识别系统

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐