序列数据
机器学习的数据通常有两类,最常见的是独立同分布数据,其次就是序列数据。对于前者,一般出现在各种分类/回归问题中,其最大似然估计是所有数据点的概率分布乘积。对于后者,一般出现在各种时间序列问题中,比如在特定时间特定区域内的降雨量数据、每天的货币汇率数据,以及上下文相关的,如语音识别中的声学特征数据、文本的字符序列数据、生物领域如DNA数据等。需要指出,本文介绍的HMM模型适用于一切序列问题,而不仅仅是时序问题。
序列数据的平稳和非平稳性
在平稳状况下,虽然数据随时间变化,但数据的分布(或来源)不变。而对于非平稳状况,情况更为复杂,生成数据的分布本身也在变化。这里我们讨论简单的平稳情况。
马尔科夫模型(Markov models)
与马尔科夫决策过程(MDP)类似,本文讨论的马尔科夫模型也满足马尔科夫性,即未来的预测只依赖于最近的观测,而与过去的历史无关。换言之,马尔科夫性是指不具备记忆特质。这是因为,如果考虑未来观测对所有过去观测的通用依赖,就会导致复杂性的无限增加。而为了预测未来,最近的观测总是比过去历史的观测更有信息量、更有价值。
对于通用的马尔科夫链(Markov chain),我们可以用以下联合概率表示:
(公式1)
其中表示观测序列,该式很好理解,即
现在考虑一阶马尔科夫链(first-order Markov chain),即满足未来的状态仅与当前状态相关,与任何历史的状态无关,用下图表示:
(图1)
此时上述公式变为:
(公式2)
直观表示为:
根据马尔科夫性(未来只依赖于最近,而与过去的历史无关)可知:
(公式3)
对于平稳序列数据,条件概率对于不同n是一样的,这样的模型叫做同质马尔科夫链。举个例子,如果这个条件概率依赖于某个可调节的参数(从训练数据中得到),那么该链的所有条件概率就能共享该参数。
现在考虑高阶马尔科夫链(higher-order Markov chain),即允许更早的观测对于此刻有影响,比如二阶马尔科夫链(second-order Markov chain)是允许预测值依赖于前两个观测。用下图表示:
(图2)
它的联合概率分布表示为:
(公式4)
高阶马尔科夫链相对于一阶马尔科夫链增加了灵活性,但也增加了参数量。事实上,M阶马尔科夫链的参数随M指数级增加,从而导致该方法不实用。
隐马尔科夫模型(Hidden Markov models)
HMM在马尔科夫模型中引入隐变量(也叫潜在变量),已知有,现引入
,具体结构如下图所示:
(图3)
上图满足当给定时,
和
是条件独立的,即:
(公式5)
因此,HMM的联合概率分布可表示为:
(公式6)
观察可知,对于任意两个观测值和
,总存在一条经过隐变量的路径连接它们。因此,
的预测概率
不存在条件独立性,即
必定依赖于所有的
,换言之,观测变量X不满足任意阶的马尔科夫性。
假设每个隐变量有K个状态(或K个取值),则它可以表示为K维的向量,其中向量的值为1个元素为1,其余元素全为0. 我们对隐变量
定义一个条件概率
,那么该概率对于所有n的取值对应了一个矩阵,记为A。这个A就是转移矩阵,其中每个元素叫做转移概率。
我们把A的元素定义为
,它的含义是,在n-1时刻,z在j状态的取值为1,在n时刻,z在k状态的取值为1,事件发生的条件概率(可以看出,和n的取值无关,因为是平稳序列数据)。另外,由于
是概率,所以满足
,以及根据上文状态定义,有
。
条件概率用显式的公式可表示为:
(公式7)
该式含义是:在以A为转移矩阵的背景下,隐变量Z在n-1时刻(即)向n时刻(即
)转移的总概率是A矩阵(KxK)若干元素的乘积,具体是n-1时刻在状态j的元素(即
)转移到n时刻在状态k的元素(即
)。
初始隐变量节点比较特殊,因为它没有父节点(没有节点指向它)。它的边际概率表示为:
(公式8)
其中是概率
构成的向量,不难理解,
的含义是:在时刻1,隐变量Z处于k状态(即初始化状态是k)的概率。由于
的取值不是0就是1,因此
只有在状态取值为k(即
)时,才为
,而在其余状态(即
)都为1. 那么
就表示时刻1的隐变量的边际概率,它可通过对时刻1的所有K个状态累积得到。另外,根据定义有:
对于K=3的状态转移图可用下图表示:
(图4)
图中三个方形