文章目录
- 一、一些概念
- 1.什么是概率模型?
- 2.什么是概率图模型?
- 3.生成模型与判别模型的区别
- 4.常见的概率图模型中哪些是生成模型,哪些是判别模型?
- 二、HMM—隐马尔可夫模型
- 1.什么是马尔科夫链?
- 2.什么是隐马尔可夫模型?
- 的两个基本假设
- 4.确定HMM的两组空间与三个参数
- 的三个基本问题
- 5.1 概率计算问题
- 5.2 预测问题
- 5.3 学习问题
- 6.三个基本问题的计算
- 6.1 概率计算问题—前向-后向算法
- 6.2 预测问题—维特比算法
- 6.3 学习问题
插眼:
- 百面机器学习—1.特征工程
- 百面机器学习—2. 特征工程与模型评估要点总结
- 百面机器学习—3.逻辑回归与决策树要点总结
- 百面机器学习—模型基础知识
- 百面机器学习—要点总结
- 百面机器学习—与LDA要点总结
- 百面机器学习—均值算法、EM算法与高斯混合模型要点总结
- 百面机器学习—8.概率图模型之HMM模型
- 百面机器学习—9.前馈神经网络面试问题总结
- 百面机器学习—10.循环神经网络面试问题总结
- 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
- 百面机器学习—12.优化算法
一、一些概念
1.什么是概率模型?
概率模型,顾名思义,就是将学习任务归结于计算变量的概率分布的模型。在生活中,我们经常会根据一些已经观察到的现象来推测和估计未知的东西——这种需求,恰恰是概率模型的推断《lnference)行为所做的事情。推断(linference)的本质是:利用可观测变量,来推测未知变量的条件分布。朴素贝叶斯、逻辑回归、隐马尔可夫模型(HMM))和条件随机场(CRF)都是概率模型。
2.什么是概率图模型?
概率图模型是一种以图(Graph)为表示工具,来表达变量间相关关系的概率模型。在概率图模型中般用节点来表示一个或者一组随机变量。而节点之间的边则表示两个(组)变量之间的概率相关关系。边可以是有向(有方向)的,也可以是无向的。概率图模型大致可以分为:
- 有向图模型(贝叶斯网络):用有向无环图表示变量间的依赖关系;
- 无向图模型(马尔可夫网)∶用无向图表示变量间的相关关系。
3.生成模型与判别模型的区别
概率图模型可以分为生成模型与判别模型。
假设可观测到的变量集合为X,需要预测的变量集合为Y,其他的变量集合为Z。生成式模型是对联合概率分布P(X,Y,Z)
进行建模,在给定观测集合X的条件下,通过计算边缘分布来得到对变量集合Y的推断,即
判别式模型是直接对条件概率分布P(Y,Z|X)
进行建模,然后消掉无关变量Z就可以得到对变量集合Y的预测,即
4.常见的概率图模型中哪些是生成模型,哪些是判别模型?
常见的概率图模型有朴素贝叶斯、最大熵模型、贝叶斯网络、隐马尔可夫模型、条件随机场、pLSA、LDA等。朴素贝叶斯、贝叶斯网络、pLSA、LDA等模型都是先对联合概率分布进行建模,然后再通过计算边缘分布得到对变量的预测,所以它们都属于生成式模型;而最大嫡模型是直接对条件概率分布进行建模,因此属于判别式模型。隐马尔可夫模型和条件随机场模型是对序列数据进行建模的方法,其中隐马尔可夫模型属于生成式模型,条件随机场属于判别式模型。
二、HMM—隐马尔可夫模型
1.什么是马尔科夫链?
假设一个随机过程中,
t
n
t_n
tn时刻的状态
x
n
x_n
xn的条件分布,仅仅与其前一个状态
x
n
−
1
x_{n-1}
xn−1有关,即
P
(
x
n
∣
x
1
,
x
2
,
.
.
.
,
x
n
−
1
)
=
P
(
x
n
∣
x
n
−
1
)
P(x_n|x_1,x_2,...,x_{n-1})=P(x_n|x_{n-1})
P(xn∣x1,x2,...,xn−1)=P(xn∣xn−1),则将其称为马尔可夫过程。时间和状态的取值都是离散的马尔可夫过程也称为马尔可夫链。
2.什么是隐马尔可夫模型?
隐马尔可夫模型是对含有未知参数(隐状态)的马尔可夫链进行建模的生成模型。在隐马尔可夫模型中,隐状态
s
i
s_i
si对于观测者是不可见的,观测者能观测到的只有每个隐状态
s
i
s_i
si对应的输出
o
i
o_i
oi,而观测状态
o
i
o_i
oi的概率分布仅仅取决于对应的隐状态
s
i
s_i
si。隐马尔可夫模型是一个关于时序的概率模型,隐状态与观测状态都是一个时间序列。
的两个基本假设
假设1:假设隐藏的马尔可夫链在任意时刻
t
t
t的状态只依赖于前一个时刻
t
−
1
t-1
t−1的状态,与其他时刻的状态及观测无关,也与时刻
t
t
t无关。
假设2:假设任意时刻的观测只依赖于该时刻的马尔可夫链状态,与其他观测及状态无关。
4.确定HMM的两组空间与三个参数
基于上述假设,所有变量的联合概率分布为:
设HMM的状态变量(离散型),总共有N种取值,分别为:
S
1
,
S
2
,
.
.
.
,
S
N
{S_1,S_2,. . . ,S_N}
S1,S2,...,SN。观测变量(也是离散型),总共有M种取值,分别为:
O
1
,
O
2
,
.
.
.
,
O
M
{O_1,O_2,.. . ,O_M}
O1,O2,...,OM。那么,要确定一个HMM,除了要指定其对应的状态空间S和观测空间О之外,还需要三组参数,分别是:
通常我们用
λ
=
[
A
,
B
,
π
]
\lambda=[A, B,π]
λ=[A,B,π]来指代这三组参数。有了状态空间S和观测空间O,以及参数
λ
\lambda
λ,一个HMM就被确定了
的三个基本问题
前两个问题是模型已经存在之后如何使用模型的问题,而最后一个则是如何通过训练得到模型的问题。
5.1 概率计算问题
已知信息:
模型
λ
=
[
A
,
B
,
π
]
\lambda=[A,B,π ]
λ=[A,B,π]
观测序列
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
O=(o_1, o_2, . . . , o_T)
O=(o1,o2,...,oT)
求解目标:计算在给定模型
λ
\lambda
λ下,已知观测序列
О
О
О出现的概率:
P
(
O
∣
λ
)
P(O|\lambda)
P(O∣λ)。也就是说,给定观测序列,求它和评估模型之间的匹配度。
5.2 预测问题
已知信息:
模型
λ
=
[
A
,
B
,
π
]
\lambda=[A,B,π ]
λ=[A,B,π]
观测序列
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
O=(o_1, o_2, . . . , o_T)
O=(o1,o2,...,oT)
求解目标:计算在给定模型
λ
\lambda
λ下,使已知观测序列
О
О
О的条件概率
P
(
O
∣
S
)
P(O|S)
P(O∣S)最大的状态序列
S
=
(
s
1
,
s
2
.
.
.
,
s
T
)
S=(s_1,s_2 ..., s_T )
S=(s1,s2...,sT)。即给定观测序列,求最有可能与之对应的状态序列。
5.3 学习问题
已知信息:
观测序列
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
O=(o_1, o_2, . . . , o_T)
O=(o1,o2,...,oT)
或许也会给定与之对应的状态序列:
S
=
(
s
1
,
s
2
,
.
.
.
,
s
T
)
S = (s_1, s_2,... , s_T)
S=(s1,s2,...,sT)
求解目标︰估计模型
λ
=
[
A
,
B
,
π
]
\lambda=[A,B,π ]
λ=[A,B,π]参数,使得该模型下观测序列概率
P
(
O
∣
λ
)
P(O|\lambda)
P(O∣λ)最大。也就是训练模型,使其最好地描述观测数据。
6.三个基本问题的计算
6.1 概率计算问题—前向-后向算法
前向一后向算法是一种动态规划算法。它分两条路径来计算观测序列概率,一条从前向后(前向),另一条从后向前(后向)。这两条路径,都可以分别计算观测序列出现的概率。
- 前向算法
设 α t ( i ) = P ( o 1 , o 2 , . . . , o t , s t = S i ∣ λ ) \alpha_{t}(i)= P(o_1 , o_2,. . . , o_t , s_t=S_i|\lambda) αt(i)=P(o1,o2,...,ot,st=Si∣λ)为前向概率。
它表示的是:给定 λ \lambda λ的情况下,到时刻 t t t时,已经出现的观测序列为 o 1 , o 2 , . . . o t o_1,o_2,...o_t o1,o2,...ot,且此时状态值为 S i S_i Si的概率。 - 后向算法
6.2 预测问题—维特比算法
维特比算法——用动态规划求解概率最大路径
6.3 学习问题
HMM的学习算法根据训练数据的不同,可以分为有监督学习和无监督学习两种。
如果训练数据既包括观测序列,又包括对应的状态序列,且两者之间的对应关系已经明确标注了出来,那么就可以用有监督学习算法。否则,如果只有观测序列而没有明确对应的状态序列,就需要用无监督学习算法训练。
- 有监督学习
- 无监督学习
如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!