机器学习7 - 算法进阶2
知识点
- 距离度量。
- Manhattan: d i s t ( x , y ) = ∑ i ∣ x i − y i ∣ dist(x,y) = \sum_{i}|x_{i}-y_{i}| dist(x,y)=∑i∣xi−yi∣
- 欧式距离Euclidean: d i s t ( x , y ) = ∑ i ( x i − y i ) 2 dist(x,y) = \sqrt{\sum_{i}(x_{i}-y_{i})^2} dist(x,y)=∑i(xi−yi)2
- Minkowski: d i s t ( x , y ) = ( ∑ i ∣ x i − y i ) p ) 1 p dist(x,y) = (\sum_{i}|x_{i}-y_{i})^{p})^{\frac{1}{p}} dist(x,y)=(∑i∣xi−yi)p)p1
- 杰卡德相似系数(Jaccard): J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ J(A,B) = \frac{|A\cap B|}{|A\cup B|} J(A,B)=∣A∪B∣∣A∩B∣
- 余弦相似度(cosine similarity): c o s ( θ ) = a ⋅ b ∣ a ∣ ⋅ ∣ b ∣ cos(\theta) = \frac{\bold{a}\cdot\bold{b}}{|\bold{a}|\cdot|\bold{b}|} cos(θ)=∣a∣⋅∣b∣a⋅b
- Pearson相关系数: ρ x y = C o v ( x , y ) σ x σ y \rho_{xy} = \frac{Cov(x,y)}{\sigma_{x}\sigma_{y}} ρxy=σxσyCov(x,y)
- 相对熵(KL散度): D ( p ∣ ∣ q ) = ∑ x p ( x ) l o g p ( x ) q ( x ) = E p ( x ) l o g p ( x ) q ( x ) D(p||q) = \sum_{x}p(x)log\frac{p(x)}{q(x)} = E_{p(x)}log\frac{p(x)}{q(x)} D(p∣∣q)=∑xp(x)logq(x)p(x)=Ep(x)logq(x)p(x)
- Hellinger距离:
D
α
(
p
∣
∣
q
)
=
2
1
−
α
2
(
1
−
∫
p
(
x
)
1
+
α
2
q
(
x
)
1
−
α
2
d
x
)
D_{\alpha}(p||q) = \frac{2}{1-\alpha^2}(1-\int p(x)^{\frac{1+\alpha}{2}}q(x)^{\frac{1-\alpha}{2}}dx)
Dα(p∣∣q)=1−α22(1−∫p(x)21+αq(x)21−αdx)
Person相关系数即x,y坐标平移到原点后的夹角余弦。Hellinger当 α \alpha α为01时,退化为 D ( p ∣ ∣ q ) , D ( q ∣ ∣ p ) D(p||q),D(q||p) D(p∣∣q),D(q∣∣p)。
- K-means聚类
- 选定初始中心(可以使用elbow方法来选取中心数)
- 对于每个样本,将其标记为距离类别中心最近的类别
- 将每个中心更新为隶属该类别的所有样本的均值
- 重复迭代直到满足一定的迭代步数或者MSE或者簇中心变化率。
需要做feature scaling。
- 损失函数:
J = ∑ n = 1 N ∑ k = 1 K r n k ∣ ∣ x n − μ k ∣ ∣ 2 J = \sum_{n=1}^{N}\sum_{k=1}^{K}r_{nk}||x_{n}-\mu_{k}||^2 J=n=1∑Nk=1∑Krnk∣∣xn−μk∣∣2
其中 r n k = 1 r_{nk}=1 rnk=1如果 x n x_{n} xn属于中心k,否则为0。 μ k \mu_{k} μk为参数。
- 聚类的衡量指标:
- 均一性:一个簇只含有一个类别的样本,则满足均一性
p = 1 k ∑ i = 1 k N ( C i = = K i ) N ( K i ) p = \frac{1}{k}\sum_{i=1}^{k}\frac{N(C_{i}==K_{i})}{N(K_{i})} p=k1i=1∑kN(Ki)N(Ci==Ki) - 完整性:同类别样本被归类到相同簇中,则满足完整性
r = 1 k ∑ i = 1 n N ( C i = = K i ) N ( C i ) r = \frac{1}{k}\sum_{i=1}^{n}\frac{N(C_{i}==K_{i})}{N(C_{i})} r=k1i=1∑nN(Ci)N(Ci==Ki) - V-measure:均一性和完整性的加权平均
ν β = ( 1 + β ) ⋅ p r β ⋅ p + r \nu_{\beta} = \frac{(1+\beta)\cdot pr}{\beta\cdot p+r} νβ=β⋅p+r(1+β)⋅pr - 调整兰德系数(ARI, Adjusted Rnd ARI),范围为[-1,1],越高越好。
- 调整互信息(AMI,Adjusted Mutual Information),越高越好。
- 轮廓系数:
- 簇内不相似度:计算样本i到同簇其它样本的平均距离为ai;ai越小,表示样本i越应该被聚类到该簇,簇C中的所有样本的ai的均值被称为簇C的簇不相似度。
- 簇间不相似度:计算样本i到其它簇Cj的所有样本的平均距离bij,i=min{bi1,bi2,…,bik};bi越大,表示样本i越不属于其它簇。
- 轮廓系数:
s
i
s_{i}
si值越接近1表示样本i聚类越合理,越接近-1,表示样本i应该分类到另外的簇中,近似为0,表示样本i应该在边界上;所有样本的si的均值被成为聚类结果的轮廓系数。
s ( i ) = b ( i ) − a ( i ) m a x { a ( i ) , b ( i ) } s ( i ) = { 1 − a ( i ) b ( i ) a ( i ) < b ( i ) 0 a ( i ) = b ( i ) a ( i ) b ( i ) − 1 a ( i ) > b ( i ) s(i) = \frac{b(i)-a(i)}{max\{a(i),b(i)\}} \quad s(i) = \begin{cases} 1-\frac{a(i)}{b(i)} \quad a(i)<b(i)\\ 0 \quad a(i) = b(i) \\ \frac{a(i)}{b(i)}-1 \quad a(i)>b(i) \end{cases} s(i)=max{a(i),b(i)}b(i)−a(i)s(i)=⎩⎪⎨⎪⎧1−b(i)a(i)a(i)<b(i)0a(i)=b(i)b(i)a(i)−1a(i)>b(i)
- 均一性:一个簇只含有一个类别的样本,则满足均一性
除了轮廓系数,都需要标签来计算。
-
层次聚类法:对给定的数据集进行层次的分解,直到满足某种条件为止。
-
凝聚的层次分类:AGNES
自底向上的策略,先把每个样本作为一个簇,然后不断合并直到满足终止条件。
距离:- 最小距离:两个集合中最近的两个样本的距离,容易形成链状结构。
- 最大距离:两个集合中最远的两个样本的距离,若存在异常值则不稳定complete
- 平均距离:两个样本中两两距离的平均值average,或者两两距离的平方和ward
-
分裂层次分类:DIANA
自上向下的策略,先把所有样本作为一个簇,然后不断分裂直到满足终止条件。
-
-
DBSCAN(Density-Based Spatial Clustering of Applications with Noise):它将簇定义为密度相连的点的最大集合,能够把具有高密度的区域划分为簇,并可在有“噪声”的数据中发现任意形状的聚类。
使用并查集,关于并查集:
https://cloud.tencent.com/developer/article/1521053 -
密度最大值聚类:一种简洁优美的聚类算法,可以识别各种形状的类簇,而且参数很容易确定。
-
谱和谱聚类
-
方阵作为线性算子,它的所有特征值的全体统称方阵的谱。方阵的谱半径为最大的特征值,矩阵A的谱半径: A T A A^{T}A ATA的最大特征值。
-
谱聚类是一种基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据聚类的目的。
-
过程
其中W的对角元素都为0。
得到L之后,求其特征向量, 取前k列特征向量做k均值聚类。 -
思考:
- 谱聚类中的k如何确定: k ∗ = a r g max ∣ λ k + 1 − λ k ∣ k^{*} = arg \max|\lambda_{k+1}-\lambda_{k}| k∗=argmax∣λk+1−λk∣
- 最后一步k-means的作用:目标函数是关于子图划分指示向量的函数,该向量的值根据子图划分确定,是离散的,该问题是NP问题,转换成求连续实数域上的解,最后用k-means离散化。
- 未正则,对称,随机游走拉普拉斯矩阵优先选择随机游走拉普拉斯矩阵
- 谱聚类可用于切割图/随机游走/扰动论等解释
-
标签传递算法。(Label Propagation Algorithm, LPA)
- 对于部分样本的标记给定,而大多数样本的标记未知的情形,是半监督学习。
- 将标记样本的标记通过一定的概率传递给未标记样本,直到最终收敛。
-
高斯混合模型(Gaussian Mixture Model, GMM)
- 可用于无监督学习中的聚类,与k均值法类似,有两个优点:
- k-means不考虑方差,gmm考虑方差,方差(协方差)决定分布的形状
- k-means执行硬分类,gmm执行软分类,可以输出概率。
- 随机变量X是有K个高斯分布混合而成,取各个高斯分布的概率为
π
1
,
π
2
,
…
,
π
k
\pi_1,\pi_2,\dots,\pi_{k}
π1,π2,…,πk,第i个高斯分布的均值为
μ
i
\mu_{i}
μi,方差为
Σ
i
\Sigma_{i}
Σi,若观测到
x
1
,
x
2
,
…
,
x
k
x_1,x_2,\dots,x_{k}
x1,x2,…,xk,试估计
μ
,
Σ
,
π
\mu,\Sigma,\pi
μ,Σ,π。
l ( μ , Σ , π ) = ∑ i = 1 N l o g ( ∑ k = 1 K π k N ( x i ∣ μ k , Σ k ) ) l(\mu,\Sigma,\pi) = \sum_{i=1}^{N}log(\sum_{k=1}^{K}\pi_{k}N(x_{i}|\mu_{k},\Sigma_{k})) l(μ,Σ,π)=i=1∑Nlog(k=1∑KπkN(xi∣μk,Σk)) - 使用最大期望算法(Expectation-Maximum, EM)求解
- 最常见的隐变量估计方法,在机器学习中有广泛的应用。
- Jensen不等式:若f凸
f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x+(1-\theta)y) \leq \theta f(x)+(1-\theta)f(y) f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y) - 第一步:估算数据来自哪个组份,估计数据由每个组份生成的概率,对于每个样本
x
i
x_{i}
xi,它由第k个组份生成的概率是
γ ( i , k ) = π k N ( x i ∣ μ k , Σ k ) ∑ j = 1 K π j N ( x i ∣ μ j , Σ j ) \gamma(i,k) = \frac{\pi_{k}N(x_{i}|\mu_{k},\Sigma_{k})}{\sum_{j=1}^{K}\pi_{j}N(x_{i}|\mu_{j},\Sigma_{j})} γ(i,k)=∑j=1KπjN(xi∣μj,Σj)πkN(xi∣μk,Σk)
需要先验给定 μ , Σ \mu,\Sigma μ,Σ, γ ( i , k ) \gamma(i,k) γ(i,k)也可以看成组份k在生成数据 x i x_{i} xi时所做的贡献 - 第二步:估计每一个参数,对于所有的样本点,对于组份k而言,可看成生成了
{
γ
(
i
,
k
)
x
i
∣
i
=
1
,
2
,
…
,
N
}
\{\gamma(i,k)x_{i}|i=1,2,\dots,N\}
{γ(i,k)xi∣i=1,2,…,N}这些点, 组份k是一个标准的高斯分布:
{ N k = ∑ i = 1 N γ ( i , k ) μ k = 1 N k ∑ i = 1 N γ ( i , k ) x i Σ k = 1 N k ∑ i = 1 N γ ( i , k ) ( x i − μ k ) ( x i − μ k ) T π k = N k N \begin{cases} N_{k} = \sum_{i=1}^{N}\gamma(i,k) \\ \mu_{k} = \frac{1}{N_{k}}\sum_{i=1}^{N}\gamma(i,k)x_{i}\\ \Sigma_{k} = \frac{1}{N_{k}}\sum_{i=1}^{N}\gamma(i,k)(x_{i} -\mu_{k})(x_{i}-\mu_{k})^{T}\\ \pi_{k} = \frac{N_{k}}{N} \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧Nk=∑i=1Nγ(i,k)μk=Nk1∑i=1Nγ(i,k)xiΣk=Nk1∑i=1Nγ(i,k)(xi−μk)(xi−μk)Tπk=NNk
重复以上步骤直至参数收敛。 - EM 算法具备收敛性,但并不保证找到全局最大值,有可能找到局部最大值。解决方法是初始化几次不同的参数进行迭代,取结果最好的那次。
-
EM算法一般求解过程:
-
模型选择标准:
- AIC(Akaike Information Criterion) = − 2 ln L + 2 k -2\ln L+2k −2lnL+2k , k为参数个数
- BIC(Bayes Information Criterion) = − 2 ln L + ( ln n ) k -2\ln L +(\ln n)k −2lnL+(lnn)k, n为样本个数
-
朴素贝叶斯假设:特征独立,同等重要。
- 推导:
P ( y ∣ x 1 , x 2 , … , x n ) = P ( y ) P ( x 1 , x 2 , … , x n ∣ y ) P ( x 1 , x 2 , … , x n ) P(y|x_1,x_2,\dots,x_{n}) = \frac{P(y)P(x_1,x_2,\dots,x_{n}|y)}{P(x_1,x_2,\dots,x_{n})} P(y∣x1,x2,…,xn)=P(x1,x2,…,xn)P(y)P(x1,x2,…,xn∣y) - 根据样本使用(Maximum A Posteriori)估计P(y)。
y ^ = a r g m a x P ( y ) ∏ i = 1 n P ( x i ∣ y ) \hat{y} = argmax \ P(y)\prod_{i=1}^{n}P(x_{i}|y) y^=argmax P(y)i=1∏nP(xi∣y) - 高斯朴素贝叶斯(Gaussian Naive Bayes)
P ( x i ∣ y ) = 1 2 π σ y e x p ( − ( x i − μ y ) 2 2 σ y 2 ) P(x_{i}|y) = \frac{1}{\sqrt{2\pi}\sigma_{y}}exp(-\frac{(x_{i}-\mu_{y})^2}{2\sigma_{y}^2}) P(xi∣y)=2πσy1exp(−2σy2(xi−μy)2) - 多项分布朴素贝叶斯(Multinomial Naive Bayes)
θ y i ^ = N y i + α N y + α ⋅ n { N y i = ∑ i x i N y = ∑ i N y i \hat{\theta_{yi}} = \frac{N_{yi}+\alpha}{N_{y}+\alpha\cdot n} \quad \begin{cases} N_{yi} = \sum_{i}x_{i}\\ N_{y} = \sum_{i}N_{yi}\\ \end{cases} θyi^=Ny+α⋅nNyi+α{Nyi=∑ixiNy=∑iNyi
其中, α = 1 \alpha=1 α=1为拉普拉斯平滑, α < 1 \alpha<1 α<1为Lidstone平滑。
- 模型具有发散性:现实中若前提/假设不满足,也可以使用。
- 文本分类的朴素贝叶斯算法:
P ( c i ∣ x ) = P ( x ∣ c i ) ⋅ P ( c i ) P ( x ) P(c_{i}|\bold{x}) = \frac{P(\bold{x}|c_{i})\cdot P(c_{i})}{P(\bold{x})} P(ci∣x)=P(x)P(x∣ci)⋅P(ci)
P ( x ∣ c i ) = P ( x 1 ∣ c i ) P ( x 2 ∣ c i ) … P ( x n ∣ c i ) P(\bold{x}|c_{i}) = P(x_1|c_{i})P(x_2|c_{i})\dots P(x_{n}|c_{i}) P(x∣ci)=P(x1∣ci)P(x2∣ci)…P(xn∣ci)
其中
P ( x i ∣ c i ) = N x i N c i P ( x ) = N x i N P ( c i ) = N c i ∑ i N c i P(x_{i}|c_{i}) = \frac{N_{x_{i}}}{N_{c_{i}}} \quad P(\bold{x}) = \frac{N_{x_{i}}}{N} \quad P(c_{i}) = \frac{N_{c_{i}}}{\sum_{i} N_{c_{i}}} P(xi∣ci)=NciNxiP(x)=NNxiP(ci)=∑iNciNci - 概率图模型(PGM)分为有向图的贝叶斯网络(Bayesian Network)和无向图的马尔可夫网络(Markov Network)。
- 贝叶斯网络
- 把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。
- 贝叶斯网络又称有向无环图模型,是一种概率图模型,根据概率图的拓扑结构,考察一组随机变量 { X 1 , X 2 , … , X n } \{ X_1,X_2,\dots,X_{n} \} {X1,X2,…,Xn},及其N组条件概率分布的性质。
- 无环图中的结点表示随机变量,链接两个结点的箭头表示具有因果关系(非独立关系)。
- 每个结点在给定其直接前驱时,条件独立于其非后继。
- 示例
- 全链接贝叶斯网络:每一对结点都有边连接
P ( X = x 1 , x 2 , … , x n ) = ∏ i P ( x i ∣ x i + 1 , x i + 2 , … , x n ) P(X=x_1,x_2,\dots,x_{n}) = \prod_{i}P(x_{i}|x_{i+1},x_{i+2},\dots,x_{n}) P(X=x1,x2,…,xn)=i∏P(xi∣xi+1,xi+2,…,xn) - 形式化定义:
B N ( G , Θ ) BN(G,\Theta) BN(G,Θ)- G:有向无环图
- G的结点:随机变量
- G的边:结点间的依赖
- Θ \Theta Θ:所有条件概率分布的参数集合
- 思考:需要多少个参数确定上述网络?假设每个结点所需的参数个数为M,结点和parent的可取值数目都是K: K M ( K − 1 ) K^{M}(K-1) KM(K−1)。
- 当结点形成一条链式网络,称为马尔科夫模型。( A i + 1 A_{i+1} Ai+1只与 A i A_{i} Ai有关),例如pLSA主题模型。
- Word2Vec:本质上是建立了一个三层神经网络,将所有词都映射为一定长度的向量,取一定的窗口范围作为当前词的领域,估计窗口内的词。
- Beta分布:
B ( α , β ) = Γ ( α ) Γ ( β ) Γ ( α + β ) Γ ( n ) = ( n − 1 ) ! B(\alpha,\beta) =\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)} \quad \Gamma(n) = (n-1)! B(α,β)=Γ(α+β)Γ(α)Γ(β)Γ(n)=(n−1)!
f ( x ) = 1 B ( α , β ) ∫ x α − 1 ( 1 − x ) β d x f(x) = \frac{1}{B(\alpha,\beta)}\int x^{\alpha-1}(1-x)^{\beta}dx f(x)=B(α,β)1∫xα−1(1−x)βdx
E ( x ) = 1 B ( α , β ) ∫ 0 1 x α ( 1 − x ) β d x = B ( α + 1 , β ) B ( α , β ) = α α + β E(x) = \frac{1}{B(\alpha,\beta)}\int_0^1 x^{\alpha}(1-x)^{\beta}dx = \frac{B(\alpha+1,\beta)}{B(\alpha,\beta)} = \frac{\alpha}{\alpha+\beta} E(x)=B(α,β)1∫01xα(1−x)βdx=B(α,β)B(α+1,β)=α+βα - 共轭先验分布:
P ( θ ∣ x ) ∝ P ( x ∣ θ ) P ( θ ) P(\theta|x) \propto P(x|\theta)P(\theta) P(θ∣x)∝P(x∣θ)P(θ)
其中 P ( θ ) P(\theta) P(θ)为先验概率, P ( x ∣ θ ) P(x|\theta) P(x∣θ)为似然概率, P ( θ ∣ x ) P(\theta|x) P(θ∣x)为后验概率。
- 共轭分布:若先验概率和后验概率服从相同的分布,他们就叫做似然概率的共轭分布。例如:
- Dirichlet分布
- 概率分布
D
i
r
(
p
⃗
∣
α
⃗
)
=
1
Δ
(
α
⃗
)
∏
k
=
1
K
p
k
α
−
1
p
k
∈
[
0
,
1
]
Dir(\vec{p}|\vec{\alpha}) = \frac{1}{\Delta(\vec{\alpha})}\prod_{k=1}^{K}p_{k}^{\alpha-1} \ p_{k}\in[0,1]
Dir(p∣α)=Δ(α)1k=1∏Kpkα−1 pk∈[0,1]
其中
Δ ( α ⃗ ) = ∏ k Γ ( α k ) Γ ( ∑ k α k ) E ( p i ) = α i ∑ k α k \Delta(\vec{\alpha}) = \frac{\prod_{k}\Gamma(\alpha_{k})}{\Gamma(\sum_{k}\alpha_{k})} \quad E(p_{i}) = \frac{\alpha_{i}}{\sum_{k}\alpha_{k}} Δ(α)=Γ(∑kαk)∏kΓ(αk)E(pi)=∑kαkαi -
α
\alpha
α是参数向量,共K个。定义在
x
1
,
x
2
,
…
,
x
k
−
1
x_1,x_2,\dots,x_{k-1}
x1,x2,…,xk−1维上。
- x 1 + x 2 + ⋯ + x k = 1 x_1+x_2+\dots+x_{k}=1 x1+x2+⋯+xk=1
- x 1 , x 2 , … , x K − 1 > 0 x_1,x_2,\dots,x_{K-1}>0 x1,x2,…,xK−1>0
- 定义在K-1维的单纯形上,其他区域的概率密度为0。
- 对称Dirichlet分布:
D i r ( p ⃗ ∣ α , K ) = 1 Δ K ( α ⃗ ) ∏ k = 1 K p k α − 1 Dir(\vec{p}|\alpha,K) = \frac{1}{\Delta_{K}(\vec{\alpha})}\prod_{k=1}^{K}p_{k}^{\alpha-1} Dir(p∣α,K)=ΔK(α)1k=1∏Kpkα−1
其中,
Δ K ( α ⃗ ) = Γ K ( α k ) Γ ( K ⋅ α ) \Delta_{K}(\vec{\alpha}) = \frac{\Gamma^{K}(\alpha_{k})}{\Gamma(K\cdot\alpha)} ΔK(α)=Γ(K⋅α)ΓK(αk) - 参数alpha对Dirichlet分布的影响
- 多项分布的共轭分布是Dirichlet分布
- LDA(Latent Dirichlet Allocation),生成模型,重要主题模型。
其中,- K为主题个数
- M为文档总数
- N m N_{m} Nm是第m个文档的单词总数
- β \beta β是每个主题下词的多项分布的Dirichlet先验参数
- α \alpha α是每个文档下主题的多项分布的Dirichlet的先验参数
- Z n m Z_{nm} Znm是第m个文档中第n个词的主题
- W m n W_{mn} Wmn是第m个文档中的第n个词
- θ \theta θ是第m个文档下的主题分布,k维(主题数)
- ϕ \phi ϕ是第k个主题下的词分布,v维(词数)
- 计算过程:
其中,- n k ( t ) n^{(t)}_{k} nk(t)表示第t个词在topic k中出现的次数
- n m ( k ) n^{(k)}_{m} nm(k)表示第k个主题在文档m中出现的次数
- 应用:
- 文本数据特征提取,用于分类回归预测模型
- 聚类分析,提取文档主题信息
- 推荐系统,可用于计算物品的相似度(KL散度)
- LDA开源库
sklearn.decomposition.LatentDirichletAllocation/OnlineVB
Gensim OnlineVB:
http://www.cs.columbia.edu/~blei/topicmodeling_software.html
- TF-IDF(Term Frequency - Inverse Document Frequency)
计算:TF*IDF,统计方法,TF为词出现的次数/文档中的总词数,IDF为lg(总文档数/出现该词的文档数)。值越大该词的重要程度越高。 - 卷积神经网络
- 规则化:白化,去均值
- 卷积:维度提升,过完备基
- 非线性映射:稀疏化,边界消除
- 池化:特征聚集,降维,光
- 激励函数:主要为了引入非线性,增加拟合效果
- Dropout:随机丢掉一部分单元。这一层类似于性别在 生物进化中的角色,物种为了适应不断变化的环境,性别的出现有效的防止了过拟合,即避免了环境改变时物种可能面临的灭亡。
- 隐马尔可夫模型(Hidden Markov Model, HMM)
- 主要内容
- 概率计算
- 参数估计
- 模型预测
- 用途
- 标注问题
- 语音识别
- NLP
- 生物信息
- 模式识别
- HMM是关于时序的概率模型,描述由一个隐藏的马尔可夫链生成不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。
- 隐马尔可夫模型随机生成的状态随机序列,称为状态序列;每个状态生成一个观测,由此产生的观测随机序列,称为观测序列。
- HMM由初始概率分布
π
\pi
π,状态转移概率分布A以及观测概率分布B组成。
λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π)
I是长度为T的状态序列,O是对应的观测序列。
I = { i 1 , i 2 , … , i T } O = { o 1 , o 2 , … , o T } I=\{i_1,i_2,\dots,i_{T}\} \quad O = \{o_1,o_2,\dots,o_{T}\} I={i1,i2,…,iT}O={o1,o2,…,oT}
A是状态转移概率矩阵:
A = [ a i j ] N × N A = [a_{ij}]_{N\times N} A=[aij]N×N
其中, a i j = P ( i t + 1 = q j ∣ i t = q i ) a_{ij} =P(i_{t+1}=q_{j}|i_{t}=q_{i}) aij=P(it+1=qj∣it=qi), a i j a_{ij} aij是在时刻t处于状态 q i q_{i} qi的条件下时刻t+1转移到状态 q j q_{j} qj的概率。
B B B是观测矩阵:
B [ b i k ] N × M B[b_{ik}]_{N\times M} B[bik]N×M
其中, b i k = P ( o t = v k ∣ i t = q i ) b_{ik} = P(o_{t}=v_{k}|i_{t}=q_{i}) bik=P(ot=vk∣it=qi), b i k b_{ik} bik是在时刻t处于状态 q i q_{i} qi的条件下生成规则 v k v_{k} vk的概率。
π \pi π是初始状态概率向量, π = ( π i ) \pi = (\pi_{i}) π=(πi),其中 π i = P ( i 1 = q i ) \pi_{i} = P(i_{1}=q_{i}) πi=P(i1=qi), π i \pi_{i} πi是时刻t=1处于状态 q i q_{i} qi的概率。 - HMM的两个基本性质:
- 齐次假设:
P ( i t ∣ i t − 1 , o t − 1 , i t − 2 , o t − 2 , … , t 1 , o 1 ) = P ( i t ∣ i t − 1 ) P(i_{t}|i_{t-1},o_{t-1},i_{t-2},o_{t-2},\dots,t_1,o_1) = P(i_{t}|i_{t-1}) P(it∣it−1,ot−1,it−2,ot−2,…,t1,o1)=P(it∣it−1) - 观测独立性假设:
P ( o t ∣ i T , o T , i T − 1 , o T − 1 , … , t 1 , o 1 ) = P ( o t ∣ i t ) P(o_{t}|i_{T},o_{T},i_{T-1},o_{T-1},\dots,t_1,o_1) = P(o_{t}|i_{t}) P(ot∣iT,oT,iT−1,oT−1,…,t1,o1)=P(ot∣it)
- 齐次假设:
- HMM三个基本问题:
- 概率计算问题:前向-后向问题 —— 动态规划
给定模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π)和观测序列 O = { o 1 , o 2 , … , o T } O=\{o_1,o_2,\dots,o_{T}\} O={o1,o2,…,oT},计算模型 λ \lambda λ下观测序列O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)
- 学习问题:Baum - Welch算法(状态未知) —— EM
已知观测序列 O = { o 1 , o 2 , … , o T } O=\{o_1,o_2,\dots,o_{T}\} O={o1,o2,…,oT},估计模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π)的参数,使得在该模型下观测序列 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)最大 - 预测问题:Viterbi算法 —— 动态规划
解码问题,已知观测序列 O = { o 1 , o 2 , … , o T } O=\{o_1,o_2,\dots,o_{T}\} O={o1,o2,…,oT},和模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π),求给定观测序列条件概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)最大的状态序列I。
- 概率计算问题:前向-后向问题 —— 动态规划