机器学习领域有频率学派与贝叶斯学派两大学派,频率学派把模型参数当成固定未知的数,学习问题是一个对参数进行点估计的优化问题,由此发展出了统计机器学习这一分支。 而贝叶斯学派把模型参数也当成随机变量,非完全贝叶斯(non-full bayesian)对参数进行最大后验估计,本质上还是一类优化问题,因此也有的学者把非完全贝叶斯划入频率学派的范畴。 而完全贝叶斯(full-bayesian)则把学习问题看成一个积分问题,用MCMC等数值积分算法进行参数估计。
贝叶斯学派最大的成果就是概率图模型,包括贝叶斯网络(Bayesian network)和马尔科夫网络(Markov network)。而在贝叶斯网络中加入时间序列,就是动态模型(Dynamic model)。 动态模型是处理序列化数据的模型,比如声音、文本、DNA等。这里介绍三种动态模型,包括:
这三种动态模型的贝叶斯网络相同,如下图所示:
其中Xi是观测变量(Xi之间不是独立同分布的),Zi称为系统状态变量,也是模型的隐变量,因此动态模型也被称为状态空间模型(State Space Model)。
HMM | Kalman Filter | Particle Filter | |
---|---|---|---|
状态空间 | 离散 | 连续 | 连续 |
观测空间 | 连续或离散 | 连续 | 连续 |
P(Zt|Zt-1) | A(转移矩阵) | N(AZt-1 + B, Q) | f(Zt-1) |
P(Xt|Zt) | B(发射矩阵)或连续分布 | N(CZt-1 , R) | g(Zt) |
P(Z1) | π | N(μ1, ∑1) | f(Z1) |
- HMM模型的系统状态变量的取值是离散的,对于观测变量的取值离散或连续没有要求。
- 线性动态系统模型(Kalman filter)的状态变量和观测变量的取值都是连续的,而且状态变量和观测变量都服从高斯分布,状态Zt、Zt-1之间 和状态与观测Zt、Xt之间是一个线性关系(故又称为 Linear Gaussian Model)。
- Particle filter模型的状态变量和观测变量的取值都是连续的,但是不服从高斯分布(non Gaussian)且非线性(non-linear)。
动态模型有两个基本的假设
在给定t时刻状态的情况下,t+1时刻的状态与t时刻之前的状态和观测无关。表示成概率的形式即:
P(Zt+1|Zt) = P(Zt+1|Zt, Zt-1, ..., Z1, Xt, ..., X1)
|给定t时刻状态的情况下,t时刻的观测与t之前的状态和观测无关。 P(Xt|Zt) = P(Xt|Zt, Zt-1, ..., Z1, Xt-1, ..., X1)
注意:这两个假设完全可以从动态模型概率图的结构中推出,参考 d-seperation
Learning问题就是要估计出模型的参数。
λMLE = argmax P(X|λ)
对于含有隐变量的极大似然估计,常用EM算法求解。
Inference问题本质上就是求关于隐变量的后验概率P(Z|X),但由于动态系统的特殊性,Inference又可以细分成以下几类:
- Decoding: 求P(Z1, Z2, ... ,Zt|X1, X2, ... ,Xt)
- Filtering: 求 P(Zt|X1, X2, ... ,Xt) (online)
- Smoothing: 求 P(Zt|X1, X2, ... ,XT) (offline)
- Prediction: 求 P(Zt+1|X1, X2, ... ,Xt) 或者 P(Xt+1|X1, X2, ... ,Xt)
- Probability of evidence:在给定参数θ的情况下求似然函数P(X|θ),该问题在HMM中也叫Evaluation问题。
其中HMM关注Decoding问题,而Kalman filter和Particle filter更关注Filtering问题。
根据后验概率是否能写成解析形式,可以把推断分成精确性推断和近似推断。近似推断又可以分为确定性近似推断(e.g., 变分推理)和随机近似推断(e.g., Monte Carlo采样)。
- Bishop C M . Pattern Recognition and Machine Learning (Information Science and Statistics)[M]. Springer-Verlag New York, Inc. 2006.(13章)
- https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python