深度学习笔记之递归网络——引子:序列模型
- 引言
- 回顾:齐次马尔可夫假设
- 序列模型
- 序列信息
- 序列数据建模
引言
从本节开始,将介绍递归网络系列。本节将介绍序列模型。
回顾:齐次马尔可夫假设
齐次马尔可夫假设——在隐马尔可夫模型——背景介绍中提到。已知
I
\mathcal I
I表示状态变量集合,以一阶齐次马尔可夫假设为例,具体表示为:
t
+
1
t+1
t+1时刻关于状态变量
i
t
+
1
i_{t+1}
it+1的后验概率,仅与前一时刻状态变量
i
t
i_t
it相关。与其他变量无关:
这里的
O
\mathcal O
O表示观测变量集合;
o
1
,
⋯
,
o
t
o_1,\cdots,o_t
o1,⋯,ot表示具体的观测变量。
P
(
i
t
+
1
∣
i
t
,
⋯
,
i
1
,
o
t
,
⋯
,
o
1
)
=
P
(
i
t
+
1
∣
i
t
)
{
i
1
,
⋯
,
i
t
,
i
t
+
1
∈
I
o
1
,
⋯
,
o
t
∈
O
\mathcal P(i_{t+1} \mid i_t,\cdots,i_1,o_t, \cdots,o_1) = \mathcal P(i_{t+1} \mid i_t) \quad \begin{cases} i_1,\cdots,i_t,i_{t+1} \in \mathcal I \\ o_1,\cdots,o_t \in \mathcal O \end{cases}
P(it+1∣it,⋯,i1,ot,⋯,o1)=P(it+1∣it){i1,⋯,it,it+1∈Io1,⋯,ot∈O
如果将该假设脱离隐马尔可夫模型
(
Hidden Markov Model,HMM
)
(\text{Hidden Markov Model,HMM})
(Hidden Markov Model,HMM)的约束,从而进行更泛化的表示。我们可以理解为:一组不独立的随机变量
{
x
1
,
x
2
,
⋯
,
x
T
}
\{x_1,x_2,\cdots,x_{\mathcal T}\}
{x1,x2,⋯,xT},关于
t
t
t时刻
x
t
x_t
xt的后验概率仅与该方向相邻的
τ
\tau
τ个随机变量
x
t
−
1
x
t
−
2
,
⋯
,
x
t
−
τ
x_{t-1}x_{t-2},\cdots,x_{t- \tau}
xt−1xt−2,⋯,xt−τ之间存在关联关系:
P
(
x
t
∣
x
t
−
1
,
x
t
−
2
,
⋯
,
x
1
)
=
P
(
x
t
∣
x
t
−
1
,
x
t
−
2
,
⋯
,
x
t
−
τ
⏟
τ
个随机变量
)
\mathcal P(x_t \mid x_{t-1},x_{t-2},\cdots,x_{1}) = \mathcal P(x_t \mid \underbrace{x_{t-1},x_{t-2},\cdots,x_{t-\tau}}_{\tau 个随机变量})
P(xt∣xt−1,xt−2,⋯,x1)=P(xt∣τ个随机变量
xt−1,xt−2,⋯,xt−τ)
序列模型
序列信息
序列信息,我们可以理解为:以时间为媒介,样本中存在顺序相关信息的特征。
现实生活中,存在许多基于时序结构的数据。例如:电影评分。
随着电影上映时间的推移,该电影的评分期望也会发生相应的变化。但这个变化是复杂的,因为这个评分数值是由人的主观结果。可能存在许多因素去影响人的主观能动性:
- 拍摄电影的导演或者编剧是对电影的要求较高的,其过去指导的电影口碑不错的——他的影评可能会一开始就比较优秀;
- 观众在观看了不少同题材的相关电影之后,对该题材电影的期望度变高;
- 电影选择上映的时间——例如五一假期、春节档;以及电影针对的人群等;
- 在电影上映过程中,参演的演员或者影片相关的一些负面影响——如:演员绯闻、票房造假等。
- 电影上映结束后,影评也会一直变化。如果该影片拿到了大奖——相关的评分也可能呈现优秀的趋势等。
上面的几种情况,也可以进行划分:
- 前三种情况——此时的电影还没有上映,在观众的心中就存在一些类似先验的信息。也就是说,评分结果可能会受到这些信息的影响。
先验它可看做是事件自身的一个性质。但上述的信息确实起到一部分先验的功能——对后验(电影评分)的结果造成影响。
- 后两种情况——此时的电影正在上映/上映结束之后,某些时间结点发生的事件对评分结果的影响。
综上可以看出,影评结果的优劣并非只和电影质量的优劣有关。也包含了其他因素。并且随着电影上映这个时间过程上的变化,都存在影响影评结果的情况出现。
序列信息充斥人们生活的各个角落。如:文本、音频 、视频。它们都属于序列数据。
序列数据建模
那么上面描述的序列数据要如何进行数学表示
?
?
?假设某样本
x
(
t
)
x^{(t)}
x(t)由
T
\mathcal T
T个不独立的随机变量
x
1
,
x
2
,
⋯
,
x
T
x_1,x_2,\cdots,x_{\mathcal T}
x1,x2,⋯,xT进行表示:
其中
x
1
(
t
)
x_1^{(t)}
x1(t)表示样本
x
(
t
)
x^{(t)}
x(t)的第一个随机变量的取值;
1
,
2
,
⋯
,
T
1,2,\cdots,\mathcal T
1,2,⋯,T分别表示该序列特征描述的‘时刻’编号。
x
1
x_1
x1就表示该序列数据第
1
1
1个时刻的随机变量。
x
(
t
)
=
(
x
1
(
t
)
,
x
2
(
t
)
,
⋯
,
x
T
(
t
)
)
T
×
1
T
x^{(t)} = (x_1^{(t)},x_2^{(t)},\cdots,x_{\mathcal T}^{(t)})_{\mathcal T \times 1}^T
x(t)=(x1(t),x2(t),⋯,xT(t))T×1T
由于
T
\mathcal T
T个随机变量不独立,那么假定这
T
\mathcal T
T个随机变量共同服从一个联合概率分布
P
(
X
)
\mathcal P(\mathcal X)
P(X):
这里
X
\mathcal X
X表示随机变量集合。
x
1
,
x
2
,
⋯
,
x
T
∼
P
(
X
)
=
P
(
x
1
,
⋯
,
x
T
)
x_1,x_2,\cdots,x_{\mathcal T} \sim \mathcal P(\mathcal X) = \mathcal P(x_1,\cdots,x_{\mathcal T})
x1,x2,⋯,xT∼P(X)=P(x1,⋯,xT)
这个
P
(
x
1
,
⋯
,
x
T
)
\mathcal P(x_1,\cdots,x_{\mathcal T})
P(x1,⋯,xT)是我们的终极目标:我们一旦得到了这个分布,根据极大似然估计与后验概率估计中的介绍,我们可以从该分布中源源不断地产生样本。任意一个时刻随机变量的信息都能够表示出来。
针对不独立的一组随机变量 x 1 , ⋯ , x T x_1,\cdots,x_{\mathcal T} x1,⋯,xT,如何去描述它的联合概率分布 P ( X ) ? \mathcal P(\mathcal X)? P(X)?使用条件概率将其分解:
由于
x 1 , ⋯ , x T x_1,\cdots,x_{\mathcal T} x1,⋯,xT它描述的是序列信息,自然会存在‘正向顺序’和‘反向顺序’。两种顺序的展开结果分别表示如下:
反向顺序在一些情况下存在物理意义。挖坑,后续介绍。
[预备传送门]
{ P ( x 1 , x 2 , ⋯ , x T ) = P ( x T ∣ x T − 1 , ⋯ , x 1 ) ⋅ P ( x T − 1 ∣ x T − 2 , ⋯ , x 1 ) ⋯ P ( x 2 ∣ x 1 ) ⋅ P ( x 1 ) = P ( x 1 ) ⋅ ∏ i = 2 T P ( x i ∣ x i − 1 , ⋯ , x 1 ) P ( x 1 , x 2 , ⋯ , x T ) = P ( x 1 ∣ x 2 , ⋯ , x T ) ⋅ P ( x 2 ∣ x 3 , ⋯ , x T ) ⋯ P ( x T − 1 ∣ x T ) ⋅ P ( x T ) = P ( x T ) ⋅ ∏ j = 1 T − 1 P ( x i ∣ x i + 1 ) \begin{cases} \begin{aligned} \mathcal P(x_1,x_2,\cdots,x_{\mathcal T}) & = \mathcal P(x_{\mathcal T} \mid x_{\mathcal T-1},\cdots,x_1) \cdot \mathcal P(x_{\mathcal T - 1} \mid x_{\mathcal T - 2},\cdots,x_1) \cdots\mathcal P(x_2 \mid x_1) \cdot \mathcal P(x_1) \\ & = \mathcal P(x_1) \cdot \prod_{i=2}^{\mathcal T} \mathcal P(x_i \mid x_{i-1},\cdots,x_1) \\ \mathcal P(x_1,x_2,\cdots,x_{\mathcal T}) & = \mathcal P(x_1 \mid x_2,\cdots,x_{\mathcal T}) \cdot\mathcal P(x_2 \mid x_3,\cdots,x_{\mathcal T}) \cdots \mathcal P(x_{\mathcal T - 1} \mid x_{\mathcal T}) \cdot \mathcal P(x_{\mathcal T}) \\ & = \mathcal P(x_{\mathcal T}) \cdot \prod_{j=1}^{\mathcal T - 1} \mathcal P(x_i \mid x_{i+1}) \end{aligned} \end{cases} ⎩ ⎨ ⎧P(x1,x2,⋯,xT)P(x1,x2,⋯,xT)=P(xT∣xT−1,⋯,x1)⋅P(xT−1∣xT−2,⋯,x1)⋯P(x2∣x1)⋅P(x1)=P(x1)⋅i=2∏TP(xi∣xi−1,⋯,x1)=P(x1∣x2,⋯,xT)⋅P(x2∣x3,⋯,xT)⋯P(xT−1∣xT)⋅P(xT)=P(xT)⋅j=1∏T−1P(xi∣xi+1)
我们介绍过贝叶斯网络的结构表示。如果使用概率图去描述这个联合概率分布,为简化起见仅使用
4
4
4个随机变量
x
1
,
x
2
,
x
3
,
x
4
x_1,x_2,x_3,x_4
x1,x2,x3,x4的联合概率分布进行描述:
反向顺序同理,将概率图中所有箭头反向即可。这里不再过多赘述。
- 首先描述
P
(
x
4
∣
x
1
,
x
2
,
x
3
)
\mathcal P(x_4 \mid x_1,x_2,x_3)
P(x4∣x1,x2,x3)的概率图结构:
画曲线很麻烦,这里直接用直线了。好看的图见下方链接,侵删。
时间6:42
- 联合概率分布
P
(
x
1
,
x
2
,
x
3
,
x
4
)
\mathcal P(x_1,x_2,x_3,x_4)
P(x1,x2,x3,x4)的概率图结构:
P ( x 1 , x 2 , x 3 , x 4 ) = P ( x 4 ∣ x 1 , x 2 , x 3 ) ⋅ P ( x 3 ∣ x 1 , x 2 ) ⋅ P ( x 2 ∣ x 1 ) ⋅ P ( x 1 ) \mathcal P(x_1,x_2,x_3,x_4) = \mathcal P(x_4 \mid x_1,x_2,x_3) \cdot \mathcal P(x_3 \mid x_1,x_2) \cdot \mathcal P(x_2 \mid x_1) \cdot \mathcal P(x_1) P(x1,x2,x3,x4)=P(x4∣x1,x2,x3)⋅P(x3∣x1,x2)⋅P(x2∣x1)⋅P(x1)
以正向顺序为例,从条件概率的分解结果可知,除了第一时刻的随机变量分布
P
(
x
1
)
\mathcal P(x_1)
P(x1),其余结果均由后验概率进行描述:
P
(
x
t
∣
x
t
−
1
,
⋯
,
x
1
)
t
=
2
,
⋯
,
T
\mathcal P(x_t \mid x_{t-1},\cdots,x_1) \quad t=2,\cdots,\mathcal T
P(xt∣xt−1,⋯,x1)t=2,⋯,T
如果能够将这个后验概率的通式描述出来,那么
∏
i
=
2
T
P
(
x
i
∣
x
i
−
1
,
⋯
,
x
1
)
\begin{aligned}\prod_{i=2}^{\mathcal T} \mathcal P(x_i \mid x_{i-1},\cdots,x_1)\end{aligned}
i=2∏TP(xi∣xi−1,⋯,x1)中的任意一项都可以进行表示。再加上
P
(
x
1
)
\mathcal P(x_1)
P(x1)作为初始时刻分布,最终可以求解出联合概率分布。
自回归模型
(
AutoRegression Model
)
(\text{AutoRegression Model})
(AutoRegression Model)。它的思想在于:相当于给定了
x
1
,
⋯
,
x
t
−
1
x_1,\cdots,x_{t-1}
x1,⋯,xt−1的特征信息,求解
x
t
x_t
xt的概率分布。直接将
x
1
,
⋯
,
x
t
−
1
x_1,\cdots,x_{t-1}
x1,⋯,xt−1作为输入特征,
x
t
x_t
xt作为输出特征,构建机器学习模型学习该特征:
这里
λ
\lambda
λ表示模型
f
(
x
1
,
⋯
,
x
t
−
1
)
f(x_1,\cdots,x_{t-1})
f(x1,⋯,xt−1)的参数信息。自回归模型作为一种‘无监督模型’,但它并没有用到隐变量,并且它对‘条件概率’直接进行建模。
P
(
x
t
∣
x
1
,
⋯
,
x
t
−
1
)
=
P
[
x
t
∣
f
(
x
1
,
⋯
,
x
t
−
1
;
λ
)
]
\mathcal P(x_t \mid x_1,\cdots,x_{t-1}) = \mathcal P[x_t \mid f(x_1,\cdots,x_{t-1};\lambda)]
P(xt∣x1,⋯,xt−1)=P[xt∣f(x1,⋯,xt−1;λ)]
-
马尔可夫假设
根据上面的概率图结构,可以发现:如果随机变量结点数量足够多,它们之间的关联关系就越复杂。因此为了减小运算规模,提出了马尔可夫假设:当前时刻的随机变量仅与过去 τ \tau τ个随机变量相关。对应简化公式表示如下:
P ( x t ∣ x 1 , ⋯ , x t − 1 ) ⇒ P ( x t ∣ x t − τ , ⋯ , x t − 1 ) \mathcal P(x_t \mid x_1,\cdots,x_{t-1}) \Rightarrow \mathcal P(x_t \mid x_{t-\tau},\cdots,x_{t-1}) P(xt∣x1,⋯,xt−1)⇒P(xt∣xt−τ,⋯,xt−1)
我们使用自回归方法再去对条件概率 P ( x t ∣ x t − τ , ⋯ , x t − 1 ) \mathcal P(x_t \mid x_{t- \tau},\cdots,x_{t-1}) P(xt∣xt−τ,⋯,xt−1)进行建模,相比上述原始方法要简化的多:- 此时受约束的随机变量数量由原来的 t − 1 t-1 t−1个变成了固定数量的 τ \tau τ个。大大简化了运算;
- 基于马尔可夫假设,所有受影响的特征维度均相同(
τ
\tau
τ),可以使用规则更简单的模型。如多层感知机
(
Multilayer Perceptrons,MLP
)
(\text{Multilayer Perceptrons,MLP})
(Multilayer Perceptrons,MLP)。
此时就变成了一个简单的回归任务。
P ( x t ∣ x t − τ , ⋯ , x t − 1 ) ⇒ P [ x t ∣ f ( x t − τ , ⋯ , x t − 1 ; λ ) ⏟ MLP ] \mathcal P(x_t \mid x_{t-\tau},\cdots,x_{t-1})\Rightarrow \mathcal P [x_t \mid \underbrace{f(x_{t - \tau},\cdots,x_{t-1};\lambda)}_{\text{MLP}}] P(xt∣xt−τ,⋯,xt−1)⇒P[xt∣MLP f(xt−τ,⋯,xt−1;λ)]
-
潜变量模型
潜变量的思想在于:引入潜变量,使用潜变量来表示过去的信息。潜变量与隐变量之间的区别在于:隐变量是一个伴随模型产生的特征。 Z t \mathcal Z_t Zt可描述为 t t t时刻,模型内的隐藏特征。而这里潜变量 h t h_t ht描述的是一个函数,关于描述 t t t时刻之前信息的函数:
h t = f ( x 1 , ⋯ , x t − 1 ) h_t = f(x_1,\cdots,x_{t-1}) ht=f(x1,⋯,xt−1)
至此, x t x_t xt的后验分布可表示为: P ( x t ∣ h t ) \mathcal P(x_t \mid h_t) P(xt∣ht)。
它的值可以看做是一个向量、一个值。
关于该模型的概率图结构表示如下:
该模型可以看做是两个部分模型的交替结合:- 根据当前时刻的过去信息 h 1 h_1 h1,与当前时刻的特征信息 x 1 x_1 x1融合,得到下一时刻的过去信息 h 2 h_2 h2;
- 根据下一时刻的过去信息 h 2 h_2 h2,与当前时刻的特征信息 x 1 x_1 x1融合,得到下一时刻的特征信息 x 2 x_2 x2。
相关参考:
51 序列模型【动手学深度学习v2】