深度学习笔记之递归网络——引子:序列模型

引言

从本节开始,将介绍递归网络系列。本节将介绍序列模型

回顾:齐次马尔可夫假设

齐次马尔可夫假设——在隐马尔可夫模型——背景介绍中提到。已知 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+1it,,i1,ot,,o1)=P(it+1it){i1,,it,it+1Io1,,otO
如果将该假设脱离隐马尔可夫模型 ( 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} xt1xt2,,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(xtxt1,xt2,,x1)=P(xtτ个随机变量 xt1,xt2,,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,,xTP(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(xTxT1,,x1)P(xT1xT2,,x1)P(x2x1)P(x1)=P(x1)i=2TP(xixi1,,x1)=P(x1x2,,xT)P(x2x3,,xT)P(xT1xT)P(xT)=P(xT)j=1T1P(xixi+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(x4x1,x2,x3)概率图结构
    画曲线很麻烦,这里直接用直线了。好看的图见下方链接,侵删。时间6:42
    深度学习笔记之递归网络(一)引子:序列模型-LMLPHP
  • 联合概率分布 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(x4x1,x2,x3)P(x3x1,x2)P(x2x1)P(x1)
    深度学习笔记之递归网络(一)引子:序列模型-LMLPHP

正向顺序为例,从条件概率的分解结果可知,除了第一时刻的随机变量分布 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(xtxt1,,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=2TP(xixi1,,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,,xt1的特征信息,求解 x t x_t xt的概率分布。直接将 x 1 , ⋯   , x t − 1 x_1,\cdots,x_{t-1} x1,,xt1作为输入特征 x t x_t xt作为输出特征,构建机器学习模型学习该特征
这里 λ \lambda λ表示模型 f ( x 1 , ⋯   , x t − 1 ) f(x_1,\cdots,x_{t-1}) f(x1,,xt1)的参数信息。自回归模型作为一种‘无监督模型’,但它并没有用到隐变量,并且它对‘条件概率’直接进行建模。
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(xtx1,,xt1)=P[xtf(x1,,xt1;λ)]

  • 马尔可夫假设
    根据上面的概率图结构,可以发现:如果随机变量结点数量足够多,它们之间的关联关系就越复杂。因此为了减小运算规模,提出了马尔可夫假设当前时刻的随机变量仅与过去 τ \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(xtx1,,xt1)P(xtxtτ,,xt1)
    我们使用自回归方法再去对条件概率 P ( x t ∣ x t − τ , ⋯   , x t − 1 ) \mathcal P(x_t \mid x_{t- \tau},\cdots,x_{t-1}) P(xtxtτ,,xt1)进行建模,相比上述原始方法要简化的多:

    • 此时受约束的随机变量数量由原来的 t − 1 t-1 t1个变成了固定数量的 τ \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(xtxtτ,,xt1)P[xtMLP f(xtτ,,xt1;λ)]
  • 潜变量模型
    潜变量的思想在于:引入潜变量,使用潜变量来表示过去的信息。潜变量与隐变量之间的区别在于:隐变量是一个伴随模型产生的特征。 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,,xt1)
    至此, x t x_t xt后验分布可表示为: P ( x t ∣ h t ) \mathcal P(x_t \mid h_t) P(xtht)
    它的值可以看做是一个向量、一个值。
    关于该模型的概率图结构表示如下:
    深度学习笔记之递归网络(一)引子:序列模型-LMLPHP
    该模型可以看做是两个部分模型的交替结合

    • 根据当前时刻的过去信息 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】

05-17 02:42