【西瓜书笔记】补充5:图模型,EM算法,神经网络补充

概率图模型

把概率模型用图的方式表示出来。

条件随机场(crf)工业界用的最多,能很自然的与深度学习融合到一起。

从logistic到crf

假设一共有 n n n个标签类别 { y i } i = 1 n \left\{y_{i}\right\}_{i=1}^{n} {yi}i=1n, m m m个特征, { x i } i = 1 m , x 1 = 1 \left\{x_{i}\right\}_{i=1}^{m}, x_{1}=1 {xi}i=1m,x1=1,这里 x 1 x_1 x1是偏置。所以有:
p ( y 1 ∣ x ) = 1 Z ( x ) exp ⁡ ( ∑ i = 1 m θ 1 , i x i ) p ( y 2 ∣ x ) = 1 Z ( x ) exp ⁡ ( ∑ i = 1 m θ 2 , i x i ) ⋮ p ( y n ∣ x ) = 1 Z ( x ) exp ⁡ ( ∑ i = 1 m θ n , i x i ) \begin{gathered} p\left(y_{1} \mid \mathbf{x}\right)=\frac{1}{Z(\mathbf{x})} \exp \left(\sum_{i=1}^{m} \theta_{1, i} x_{i}\right) \\ p\left(y_{2} \mid \mathbf{x}\right)=\frac{1}{Z(\mathbf{x})} \exp \left(\sum_{i=1}^{m} \theta_{2, i} x_{i}\right) \\ \vdots \\ p\left(y_{n} \mid \mathbf{x}\right)=\frac{1}{Z(\mathbf{x})} \exp \left(\sum_{i=1}^{m} \theta_{n, i} x_{i}\right) \end{gathered} p(y1x)=Z(x)1exp(i=1mθ1,ixi)p(y2x)=Z(x)1exp(i=1mθ2,ixi)p(ynx)=Z(x)1exp(i=1mθn,ixi)
每个 y i y_i yi对应一套参数 { θ j i } i = 1 m \left\{\theta_{j i}\right\}_{i=1}^{m} {θji}i=1m,每套参数之间没有联系。 Z ( x ) Z(\mathbf{x}) Z(x)是归一化参数,需要保证输出的离散值是概率。现在我们将上述公式变形,把上面多个公式用一个公式表示:
p ( y j ∣ x ) = 1 Z ( x ) exp ⁡ ( I ( j = k ) ∑ k = 1 n ∑ i = 1 m θ k , i x i ) I ( j = k ) I = { 1 j = k 0 j ≠ k \begin{gathered} p\left(y_{j} \mid \mathbf{x}\right)=\frac{1}{Z(\mathbf{x})} \exp \left(\mathbf{I}(j=k) \sum_{k=1}^{n} \sum_{i=1}^{m} \theta_{k, i} x_{i}\right) \\ \mathbf{I}(j=k)^{\mathrm{I}}= \begin{cases}1 & j=k \\ 0 & j \neq k\end{cases} \end{gathered} p(yjx)=Z(x)1exp(I(j=k)k=1ni=1mθk,ixi)I(j=k)I={10j=kj=k
 I  \text { I }  I 是示性函数,它虽然简单,但是它是建立起不同标签联系的桥梁。我们将公式(2)进一步等价改造成下面的形式:
p ( y j ∣ x ) = 1 Z ( x ) exp ⁡ ( ∑ p = ( 1 , 1 ) n , m θ p f p ( y j , x ) ) p\left(y_{j} \mid \mathbf{x}\right)=\frac{1}{Z(\mathbf{x})} \exp \left(\sum_{p=(1,1)}^{n, m} \theta_{p} f_{p}\left(y_{j}, \mathbf{x}\right)\right) p(yjx)=Z(x)1expp=(1,1)n,mθpfp(yj,x)
θ p \theta_{p} θp是需要学习的参数, f p f_{p} fp是人工定义的“特征”,Logistic模型是上述公式的特殊形式。为了和logistic等价, f p f_{p} fp的定义如下:
f ( k , i ) ( y j , x ) = I ( j = k ) x i f_{(k, i)}\left(y_{j}, \mathbf{x}\right)=\mathbf{I}(j=k) x_{i} f(k,i)(yj,x)=I(j=k)xi
这个特征函数与标签有关,因此logistic定义的特征只和当下的标签有关。这个假设并不一定有意义,对多数分类问题有意义,但是对有一些分类问题却不是。

上面公式可以进一步改写:
p ( y j ∣ x ) = 1 Z ( x ) exp ⁡ ( ∑ p = 1 n m θ p f p ( y j , x ) ) p\left(y_{j} \mid \mathbf{x}\right)=\frac{1}{Z(\mathbf{x})} \exp \left(\sum_{p=1}^{n m} \theta_{p} f_{p}\left(y_{j}, \mathbf{x}\right)\right) p(yjx)=Z(x)1exp(p=1nmθpfp(yj,x))
注意一共定义了 n m nm nm个“特征”。

现在我们考虑复杂些的序列标注问题,标签为 y ˉ = ( y 1 , y 2 , ⋯   , y T ) \bar{y}=\left(y^{1}, y^{2}, \cdots, y^{T}\right) yˉ=(y1,y2,,yT),输入也是一个序列:
X ‾ = ( x 1 , x 2 , ⋯   , x T ) \overline{\mathbf{X}}=\left(\mathbf{x}^{\mathbf{1}}, \mathbf{x}^{\mathbf{2}}, \cdots, \mathbf{x}^{\mathbf{T}}\right) X=(x1,x2,,xT)
这里的 x 1 , x 2 , ⋯ x_1, x_2, \cdots x1,x2,是一列样本,比如一段一个人的面部视频, x 1 x_1 x1表示第一张图片。然后让每一张图片打标签。输入输出都是序列。

现在需要输出条件概率:
p ( y ˉ ∣ x ‾ ) p(\bar{y} \mid \overline{\mathbf{x}}) p(yˉx)
如果用Logistic对这个序列进行建模,那么就会长成这个样子:
p ( y ˉ ∣ x ‾ ) = 1 Z ˉ ( x ) ∏ t = 0 T exp ⁡ ( ∑ p = 1 n m θ p f p ( y t , x t ) ) p(\bar{y} \mid \overline{\mathbf{x}})=\frac{1}{\bar{Z}(\mathbf{x})} \prod_{t=0}^{T} \exp \left(\sum_{p=1}^{n m} \theta_{p} f_{p}\left(y^{t}, \mathbf{x}^{\mathbf{t}}\right)\right) p(yˉx)=Zˉ(x)1t=0Texp(p=1nmθpfp(yt,xt))
logistic定义的“特征”至于当下的标签有关。也就是 y t y^{t} yt只决定于 x t \mathbf{x}^{\mathbf{t}} xt。但是这显然不一定合理,因为视频是一系列的图片,需要根据图片来判断当下这个人在做什么样的行为,如果只看当下时刻的图片特征,如果此人张着嘴巴,可能是在吃饭,可能是在唱歌,如果能知道上一张图片对应的行为标签,比如是唱歌,那么当下这个图片对应的行为就有很大概率时在唱歌。所以,对于序列标注问题,“特征”应该和上一个时刻的标签有关。

理论上应该和过去都相关,但是我们这里做了一个很强的马尔科夫假设,即只和上一个时刻相关,这样能大幅度减少模型的复杂度。

为了使的“特征” f p f_p fp和上一个时刻标签有关系,我们将logistic的模型进行一般化:
p ( y ˉ ∣ x ‾ ) = 1 Z ˉ ( x ) ∏ t = 1 T exp ⁡ ( ∑ p = 1 P θ p f p ( y t , y t − 1 , x t ) ) p(\bar{y} \mid \overline{\mathbf{x}})=\frac{1}{\bar{Z}(\mathbf{x})} \prod_{t=1}^{T} \exp \left(\sum_{p=1}^{P} \theta_{p} f_{p}\left(y^{t}, y^{t-1}, \mathbf{x}^{\mathbf{t}}\right)\right) p(yˉx)=Zˉ(x)1t=1Texp(p=1Pθpfp(yt,yt1,xt))
式(9)是线性链CRF的一般定义,其包含了logistic,也就是说,Logistic是上式的一种特殊情况。

朴素贝叶斯和crf在工业中用的较多。

EM算法

隐变量:表示的其实是数据的不完整性,也就是训练数据并不能给出关于模型结果的全部信息,因此只能对模型中未知的状态做出概率性的推测。

三硬币模型,但其实双硬币模型更好理解。
P ( y ∣ π , p , q ) = ∑ z P ( y , z ∣ π , p , q ) = ∑ z P ( y ∣ z , π , p , q ) P ( z ∣ π , p , q ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y \begin{aligned} & P(y \mid \pi, p, q) \\ =& \sum_{z} P(y, z \mid \pi, p, q) \\ =& \sum_{z} P(y \mid z, \pi, p, q) P(z \mid \pi, p, q) \\ =& \pi p^{y}(1-p)^{1-y}+(1-\pi) q^{y}(1-q)^{1-y} \end{aligned} ===P(yπ,p,q)zP(y,zπ,p,q)zP(yz,π,p,q)P(zπ,p,q)πpy(1p)1y+(1π)qy(1q)1y

max ⁡ π , p , q ∏ i = 1 n P ( y i ∣ π , p , q ) = max ⁡ π , p , q ∏ i = 1 n [ π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i ] = max ⁡ π , p , q ∑ i = 1 n log ⁡ [ π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i ] = max ⁡ π , p , q L ( π , p , q ) \begin{aligned} & \max _{\pi, p, q} \prod_{i=1}^{n} P\left(y_{i} \mid \pi, p, q\right) \\ =& \max _{\pi, p, q} \prod_{i=1}^{n}\left[\pi p^{y_{i}}(1-p)^{1-y_{i}}+(1-\pi) q^{y_{i}}(1-q)^{1-y_{i}}\right] \\ =& \max _{\pi, p, q} \sum_{i=1}^{n} \log \left[\pi p^{y_{i}}(1-p)^{1-y_{i}}+(1-\pi) q^{y_{i}}(1-q)^{1-y_{i}}\right] \\ =& \max _{\pi, p, q} L(\pi, p, q) \end{aligned} ===π,p,qmaxi=1nP(yiπ,p,q)π,p,qmaxi=1n[πpyi(1p)1yi+(1π)qyi(1q)1yi]π,p,qmaxi=1nlog[πpyi(1p)1yi+(1π)qyi(1q)1yi]π,p,qmaxL(π,p,q)

最大似然估计的本质:存在即合理。也就是样本存在的概率就是出现的最大概率。对于式(11), p , q , π p, q, \pi p,q,π是未知的, n , y i n, y_i n,yi是已知的。那能不能用梯度下降呢?理论上可以,但是因为log有加号,所以很麻烦。而且 p , q , π p, q, \pi p,q,π是有约束的,都在[0, 1]之间。EM算法就是用Q函数来作为它的下界的一个近似。很多场景下,EM算法和梯度下降和牛顿法是等价的。

关于EM算法的收敛性:

稳定点(驻点):

  • p ( x ∣ θ ) p(\mathbf{x} \mid \theta) p(xθ)的稳定点指此处是导数为0。这个驻点可能是极大值点,也可能是极小值点,也可能是鞍点。

收敛性:

  • 似然函数的收敛,也就是 p ( x ∣ θ ) p(\mathbf{x} \mid \theta) p(xθ)可能会收敛。
  • 模型参数的收敛,也就是 θ \theta θ也可能收敛。 θ \theta θ是迭代的过程。

K-means算法是EM算法的一种应用,一种特殊情况。K-means算法等价于用快速牛顿法对量化误差进行优化,也就是把k-means聚类问题转化为优化问题,这个优化问题用快速牛顿法来解决的话,其得到的结果与EM算法的结果等价。K-means中的迭代过程就是经典的EM过程,属于hard,也就是e步做了截断,只看最近的样本。

EM算法并不与梯度下降等价,但是在很多问题中有联系。在高斯混合聚类中也有应用,算soft聚类,每个样本要看所有的求E步。

协同过滤的思想跟EM思想接近。SMO算法的思想也与EM思想接近。

深度学习

西瓜书大而全,深度学习内容相对简略。深度学习不一定在所有领域都能取代传统算法,进入一个新领域,也要学习前人积累的其他算法模型。

之前介绍过的Logistic, 支持向量机,决策树和概率图模型算是传统AI模型,它们都有一个共同的假设:局部不变性,也就是说在原始数据集中某个区域有一个标记为正标签的样本,如果有一个新样本离它很近,我们就认为这个新样本与此区域这的旧样本一样是正标签。问题在于怎么定义这个“近”。

局部不变性有局限性。我们可以考虑下图中的一个棋盘问题。棋盘中我们按照交替排列的规律排放两种标签的样本。我们想要训练一个函数 f f f来预测位于棋盘某个位置的样本标签。如果我们的模型只有局部不变性,就至少需要 4 2 4^{2} 42个样本进行训练。如果样本数量不足,比如第二个棋盘的情况,只有四个样本。如果一个新样本位于左上角的格子,会被预测为圈,因为离新样本最近的旧样本是圈。但是如果新样本位于第2行第4列,根据局部不变性,就会被预测为叉,因为离它最近的旧样本是第一行同一列的叉。但是显然这预测错了。

请添加图片描述

原因就在于局部不变性没有考虑到周期性,人能很容易认识出周期性结构。在这个棋盘中,只有两个维度,如果有10000个维度,就需要 4 10000 4^{10000} 410000个样本来训练。这就是另一种形式的维度灾难。这里的周期性其实可以被视为先验知识,深度学习的一个本质就是通过构建网络结构,来同时学习获得先验知识,例如这里的周期性。也就是说深度学习相比较传统机器学习的优势就是:局部不变性+先验知识。当然深度学习除了网络结构设计,还包含损失函数设计和优化方法选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值