PRML第四章之分类的线性模型

6 篇文章 0 订阅
5 篇文章 0 订阅

参考马春鹏 《模式识别与机器学习》翻译

分类的线性模型

前⼀章中,我们研究了⼀类回归模型,这些模型有相当简单的数学性质和计算性质。我们现在讨论⼀类与此相似的模型,⽤于解决分类问题。分类的⽬标是将输⼊变量x分到K个离散的类别 C k C_k Ck中的某⼀类。

在本章中,我们考虑分类的线性模型。所谓分类线性模型,是指决策⾯是输⼊向量x的线性函数,因此被定义为D维输⼊空间中的(D − 1)维超平⾯。

有两种不同的⽅法确定条件概率分布 p ( C k ∣ x ) p \left( \mathcal { C } _ { k } | \boldsymbol { x } \right) p(Ckx)

  1. 判别式模型:直接对条件概率分布建模,例如把条件概率分布表⽰为参数模型,然后使⽤训练集来最优化参数。
  2. 生成式模型:对类条件概率密度 p ( x ∣ C k ) p ( \boldsymbol { x } | \mathcal { C } _ { k } ) p(xCk)以及类的先验概率分布 p ( C k ) p\left(\mathcal{C}_{k}\right) p(Ck)建模

判别函数

在这里插入图片描述

二分类

定义线性判别函数为
(1) y ( x ) = w T x + w 0 y(\boldsymbol{x})=\boldsymbol{w}^{T} \boldsymbol{x}+w_{0} \tag{1} y(x)=wTx+w0(1)

对于⼀个输⼊向量x,如果y(x) ≥ 0,那么它被分到C1中,否则被分到C2中。
对于⼀个输⼊向量x,如果x是决策⾯内的⼀个点,那么y(x) = 0。从原点到决策面的垂直距离为
(2) w T x ∥ w ∥ = − w 0 ∥ w ∥ \frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|}=-\frac{w_{0}}{\|\boldsymbol{w}\|} \tag{2} wwTx=ww0(2)
其中 w T x ∥ w ∥ \frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|} wwTx表示原点到平面的距离,因为 w T x w^Tx wTx等于上图中的||w|| * ab * sinΘ等于||w|| * ac,所以 w T x ∥ w ∥ \frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|} wwTx等于ac。

定义点x到决策⾯的垂直距离r,考虑任意⼀点x和它在决策⾯上的投影x⊥,我们有
(3) x = x ⊥ + r w ∥ w ∥ \boldsymbol{x}=\boldsymbol{x}_{\perp}+r \frac{\boldsymbol{w}}{\|\boldsymbol{w}\|}\tag{3} x=x+rww(3)

表示两个向量相加,通过代入化简得到
(4) r = y ( x ) ∥ w ∥ r=\frac{y(\boldsymbol{x})}{\|\boldsymbol{w}\|}\tag{4} r=wy(x)(4)

多分类

多分类问题为将线性判别函数推⼴到K > 2个类别,可分为两种分类器。

  • 1对其他:考虑使⽤K − 1个分类器,每个分类器⽤来解决⼀个⼆分类问题,把属于类别 C k C_k Ck和不属于那个类别的点分开。这种⽅法产⽣了输⼊空间中⽆法分类的区域。
  • 1对1:引⼊ K ( K − 1 ) 2 \frac{K(K-1)}{2} 2K(K1)个⼆元判别函数,对每⼀对类别都设置⼀个判别函数。这也会造成输⼊空间中的⽆法分类的区域。

通过引⼊⼀个K类判别函数,我们可以避免这些问题。这个K类判别函数由K个线性函数组成,形式为
(5) y k ( x ) = w k T x + w k 0 y _ { k } ( \boldsymbol { x } ) = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { x } + w _ { k 0 } \tag{5} yk(x)=wkTx+wk0(5)

然对于点x, 如果对于所有的 j ≠ k j\neq k j̸=k都有 y k ( x ) > y j ( x ) y _ { k } ( \boldsymbol { x } ) > y _ { j } ( \boldsymbol { x } ) yk(x)>yj(x),那么就把它分到 C k C_k Ck,于 是 类别Ck和Cj之间的决策⾯为 y k ( x ) = y j ( x ) y _ { k } ( x ) = y _ { j } ( x ) yk(x)=yj(x),此时x代入决策面,若大于0( y k ( x ) > y j ( x ) y _ { k } ( \boldsymbol { x } ) > y _ { j } ( \boldsymbol { x } ) yk(x)>yj(x))则为 C k C_k Ck,并且对应于⼀个(D − 1)维超平⾯,形式为
(6) ( w k − w j ) T x + ( w k 0 − w j 0 ) = 0 \left( \boldsymbol { w } _ { k } - \boldsymbol { w } _ { j } \right) ^ { T } \boldsymbol { x } + \left( w _ { k 0 } - w _ { j 0 } \right) = 0 \tag{6} (wkwj)Tx+(wk0wj0)=0(6)

下面介绍三种学习线性判别函数的参数的⽅法,即基于最⼩平⽅的⽅法、 Fisher线性判别函数,以及感知器算法。

⽤于分类的最⼩平⽅⽅法

对于k = 1, . . . , K。使⽤向量记号,我们可以很容易地把这些量聚集在⼀起表⽰,即
(7) y ( x ) = W ~ T x ~ \boldsymbol { y } ( \boldsymbol { x } ) = \tilde { \boldsymbol { W } } ^ { T } \tilde { \boldsymbol { x } } \tag{7} y(x)=W~Tx~(7)
其 中 W \mathbf { W } W 是 ⼀ 个 矩阵, 第k列 由D + 1维 向量 w ~ k = ( w k 0 , w k T ) T \tilde { \boldsymbol { w } } _ { k } = \left( w _ { k 0 } , \boldsymbol { w } _ { k } ^ { T } \right) ^ { T } w~k=(wk0,wkT)T组 成, x \mathbf { x } x是 对应的增 ⼴输⼊向量 ( 1 , x T ) T (1, x^T)^T (1,xT)T,考虑⼀个训练数据集{xn, tn},其中n = 1, . . . , N,然后定义⼀个矩阵T ,它的第n⾏是向量 t n T t^T_n tnT。平⽅和误差函数可以写成
(8) E D ( W ~ ) = 1 2 Tr ⁡ { ( X ~ W ~ − T ) T ( X ~ W ~ − T ) } E _ { D } ( \tilde { \boldsymbol { W } } ) = \frac { 1 } { 2 } \operatorname { Tr } \left\{ ( \tilde { \boldsymbol { X } } \tilde { \boldsymbol { W } } - \boldsymbol { T } ) ^ { T } ( \tilde { \boldsymbol { X } } \tilde { \boldsymbol { W } } - \boldsymbol { T } ) \right\} \tag{8} ED(W~)=21Tr{(X~W~T)T(X~W~T)}(8)

令上式关于 W ~ \tilde {W} W~ 的导数等于零,整理,可以得到 W ~ \tilde {W} W~ 的解,为
(9) W ~ = ( X ~ T X ~ ) − 1 X ~ T T = X ~ † T \tilde { \boldsymbol { W } } = \left( \tilde { \boldsymbol { X } } ^ { T } \tilde { \boldsymbol { X } } \right) ^ { - 1 } \tilde { \boldsymbol { X } } ^ { T } \boldsymbol { T } = \tilde { \boldsymbol { X } } ^ { \dagger } \boldsymbol { T } \tag{9} W~=(X~TX~)1X~TT=X~T(9)

所以
(10) y ( x ) = W ~ T x ~ = T T ( X ~ † ) T x ~ y ( \boldsymbol { x } ) = \tilde { \boldsymbol { W } } ^ { T } \tilde { \boldsymbol { x } } = \boldsymbol { T } ^ { T } \left( \tilde { \boldsymbol { X } } ^ { \dagger } \right) ^ { T } \tilde { \boldsymbol { x } } \tag{10} y(x)=W~Tx~=TT(X~)Tx~(10)

最⼩平⽅⽅法的问题:

  • 对于离群点缺少鲁棒性,平⽅和误差函数惩罚了“过于正确”的预测,因为他们
    在正确的⼀侧距离决策边界太远了。
  • 回忆⼀下,最⼩平⽅⽅法对应于⾼斯条件分布假设下的最⼤似然法,⽽⼆值⽬标向量的概率分布显然不是⾼斯分布。

Fisher线性判别函数

降维的⾓度考察线性分类模型。假设我们有⼀个D维输⼊向量x,然后使⽤下式投影到⼀维
(11) y = w T x y = \boldsymbol { w } ^ { T } \boldsymbol { x } \tag{11} y=wTx(11)
y ≥ − w 0 y ≥ −w_0 yw0的样本分为 C 1 C_1 C1类,把其余的样本分为 C 2 C_2 C2类,在降维之后希望类别之间的距离尽量大,假设两类的均值向量为
(12) m 1 = 1 N 1 ∑ n ∈ C 1 x n , m 2 = 1 N 2 ∑ n ∈ C 2 x n \boldsymbol { m } _ { 1 } = \frac { 1 } { N _ { 1 } } \sum _ { n \in \mathcal { C } _ { 1 } } \boldsymbol { x } _ { n } , \quad \boldsymbol { m } _ { 2 } = \frac { 1 } { N _ { 2 } } \sum _ { n \in \mathcal { C } _ { 2 } } \boldsymbol { x } _ { n } \tag{12} m1=N11nC1xn,m2=N21nC2xn(12)

可以选择w使得下式取得最⼤值
(13) m 2 − m 1 = w T ( m 2 − m 1 ) m _ { 2 } - m _ { 1 } = \boldsymbol { w } ^ { T } \left( \boldsymbol { m } _ { 2 } - \boldsymbol { m } _ { 1 } \right) \tag{13} m2m1=wT(m2m1)(13)

其中 m k = w T m k m _ { k } = \boldsymbol { w } ^ { T } \boldsymbol { m } _ { k } mk=wTmk表示 C k C_k Ck的均值,限制 ∑ i w i 2 = 1 \sum _ { i } w _ { i } ^ { 2 } = 1 iwi2=1

Fisher提出的思想是最⼤化⼀个函数,这个函数能够让类均值的投影分开得较⼤,同时让每个类别内部的⽅差较⼩,从⽽最⼩化了类别的重叠。

类内方差为
(14) s k 2 = ∑ n ∈ C k ( y n − m k ) 2 s _ { k } ^ { 2 } = \sum _ { n \in \mathcal { C } _ { k } } \left( y _ { n } - m _ { k } \right) ^ { 2 } \tag{14} sk2=nCk(ynmk)2(14)

Fisher准则根据类间⽅差类内⽅差的⽐值定义,即
(15) J ( w ) = ( m 2 − m 1 ) 2 s 1 2 + s 2 2 J ( \boldsymbol { w } ) = \frac { \left( m _ { 2 } - m _ { 1 } \right) ^ { 2 } } { s _ { 1 } ^ { 2 } + s _ { 2 } ^ { 2 } } \tag{15} J(w)=s12+s22(m2m1)2(15)

改写为
(16) J ( w ) = w T S B w w T S W w J ( \boldsymbol { w } ) = \frac { \boldsymbol { w } ^ { T } \boldsymbol { S } _ { B } \boldsymbol { w } } { \boldsymbol { w } ^ { T } \boldsymbol { S } _ { W } \boldsymbol { w } } \tag{16} J(w)=wTSWwwTSBw(16)

(17) S B = ( m 2 − m 1 ) ( m 2 − m 1 ) T \boldsymbol { S } _ { B } = \left( \boldsymbol { m } _ { 2 } - \boldsymbol { m } _ { 1 } \right) \left( \boldsymbol { m } _ { 2 } - \boldsymbol { m } _ { 1 } \right) ^ { T }\tag{17} SB=(m2m1)(m2m1)T(17)

(18) S W = ∑ n ∈ C 1 ( x n − m 1 ) ( x n − m 1 ) T + ∑ n ∈ C 2 ( x n − m 2 ) ( x n − m 2 ) T S _ { W } = \sum _ { n \in \mathcal { C } _ { 1 } } \left( \boldsymbol { x } _ { n } - \boldsymbol { m } _ { 1 } \right) \left( \boldsymbol { x } _ { n } - \boldsymbol { m } _ { 1 } \right) ^ { T } + \sum _ { n \in \mathcal { C } _ { 2 } } \left( \boldsymbol { x } _ { n } - \boldsymbol { m } _ { 2 } \right) \left( \boldsymbol { x } _ { n } - \boldsymbol { m } _ { 2 } \right) ^ { T }\tag{18} SW=nC1(xnm1)(xnm1)T+nC2(xnm2)(xnm2)T(18)

对式16求导,则 J ( W ) J(W) J(W)取最大值时
( w T S B w ) S W w = ( w T S W w ) S B w \left( \boldsymbol { w } ^ { T } \boldsymbol { S } _ { B } \boldsymbol { w } \right) \boldsymbol { S } _ { W } \boldsymbol { w } = \left( \boldsymbol { w } ^ { T } \boldsymbol { S } _ { W } \boldsymbol { w } \right) \boldsymbol { S } _ { B } \boldsymbol { w } (wTSBw)SWw=(wTSWw)SBw

我们不关⼼w的⼤⼩,只关⼼它的⽅向,因此我们可以忽略标量因⼦ ( w T S B w ) \left( \boldsymbol { w } ^ { T } \boldsymbol { S } _ { B } \boldsymbol { w } \right) (wTSBw) ( w T S W w ) \left( \boldsymbol { w } ^ { T } \boldsymbol { S } _ { W } \boldsymbol { w } \right) (wTSWw),有
(19) w ∝ S W − 1 ( m 2 − m 1 ) \boldsymbol { w } \propto \boldsymbol { S } _ { W } ^ { - 1 } \left( \boldsymbol { m } _ { 2 } - \boldsymbol { m } _ { 1 } \right) \tag{19} wSW1(m2m1)(19)

多分类的Fisher判别函数

考虑Fisher判别函数对于K > 2个类别的推⼴。引⼊D′ > 1个线性“特征” y k = w k T x y _ { k } = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { x } yk=wkTx y k y _ { k } yk按照行排列,得到
(20) y = W T x \boldsymbol { y } = \boldsymbol { W } ^ { T } \boldsymbol { x } \tag{20} y=WTx(20)

类内协⽅差矩阵公式推⼴到K类,有
(21) S W = ∑ k = 1 K S k S _ { W } = \sum _ { k = 1 } ^ { K } S _ { k } \tag{21} SW=k=1KSk(21)

(22) S k = ∑ n ∈ C k ( x n − m k ) ( x − m k ) T \boldsymbol { S } _ { k } = \sum _ { n \in \mathcal { C } _ { k } } \left( \boldsymbol { x } _ { n } - \boldsymbol { m } _ { k } \right) \left( \boldsymbol { x } - \boldsymbol { m } _ { k } \right) ^ { T } \tag{22} Sk=nCk(xnmk)(xmk)T(22)

整体的协方差矩阵为:
(23) S T = ∑ n = 1 N ( x n − m ) ( x n − m ) T \boldsymbol { S } _ { T } = \sum _ { n = 1 } ^ { N } \left( \boldsymbol { x } _ { n } - \boldsymbol { m } \right) \left( \boldsymbol { x } _ { n } - \boldsymbol { m } \right) ^ { T } \tag{23} ST=n=1N(xnm)(xnm)T(23)

(24) m = 1 N ∑ n = 1 N x n = 1 N ∑ k = 1 K N k m k m = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } x _ { n } = \frac { 1 } { N } \sum _ { k = 1 } ^ { K } N _ { k } m _ { k } \tag{24} m=N1n=1Nxn=N1k=1KNkmk(24)

整体的协⽅差矩阵可以分解为类内协⽅差矩阵,加上另⼀个矩阵SB,它可以看做类间协⽅差矩阵。(不是很懂)
(25) S T = S W + S B \boldsymbol { S } _ { T } = \boldsymbol { S } _ { W } + \boldsymbol { S } _ { B } \tag{25} ST=SW+SB(25)

(26) S B = ∑ k = 1 K N k ( m k − m ) ( m k − m ) T \boldsymbol { S } _ { B } = \sum _ { k = 1 } ^ { K } N _ { k } \left( \boldsymbol { m } _ { k } - \boldsymbol { m } \right) \left( \boldsymbol { m } _ { k } - \boldsymbol { m } \right) ^ { T } \tag{26} SB=k=1KNk(mkm)(mkm)T(26)

因为是要在y的空间计算类内和类间方差,所以把x映射到D‘维空间上
(27) S W = ∑ k = 1 K ∑ n ∈ C k ( y n − μ k ) ( y n − μ k ) T S B = ∑ k = 1 K N k ( μ k − μ ) ( μ k − μ ) T μ k = 1 N k ∑ n ∈ C k y n , μ = 1 N ∑ k = 1 K N k μ k \begin{array} { c } { S _ { W } = \sum _ { k = 1 } ^ { K } \sum _ { n \in \mathcal { C } _ { k } } \left( \boldsymbol { y } _ { n } - \boldsymbol { \mu } _ { k } \right) \left( \boldsymbol { y } _ { n } - \boldsymbol { \mu } _ { k } \right) ^ { T } } \\ { \boldsymbol { S } _ { B } = \sum _ { k = 1 } ^ { K } N _ { k } \left( \boldsymbol { \mu } _ { k } - \boldsymbol { \mu } \right) \left( \boldsymbol { \mu } _ { k } - \boldsymbol { \mu } \right) ^ { T } } \\ { \boldsymbol { \mu } _ { k } = \frac { 1 } { N _ { k } } \sum _ { n \in C _ { k } } \boldsymbol { y } _ { n } , \quad \mu = \frac { 1 } { N } \sum _ { k = 1 } ^ { K } N _ { k } \boldsymbol { \mu } _ { k } } \end{array} \tag{27} SW=k=1KnCk(ynμk)(ynμk)TSB=k=1KNk(μkμ)(μkμ)Tμk=Nk1nCkyn,μ=N1k=1KNkμk(27)

优化函数定义为
(28) J ( W ) = Tr ⁡ { ( W T S W W ) − 1 ( W T S B W ) } J ( \boldsymbol { W } ) = \operatorname { Tr } \left\{ \left( \boldsymbol { W } ^ { T } \boldsymbol { S } _ { W } \boldsymbol { W } \right) ^ { - 1 } \left( \boldsymbol { W } ^ { T } \boldsymbol { S } _ { B } \boldsymbol { W } \right) \right\} \tag{28} J(W)=Tr{(WTSWW)1(WTSBW)}(28)

感知器算法

它对应于⼀个⼆分类的模型,形式为
(29) y ( x ) = f ( w T ϕ ( x ) ) y ( \boldsymbol { x } ) = f \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } ( \boldsymbol { x } ) \right) \tag{29} y(x)=f(wTϕ(x))(29)

⾮线性激活函数f(·)是⼀个阶梯函数,形式为
(30) f ( a ) = { + 1 , a ≥ 0 − 1 , a &lt; 0 f ( a ) = \left\{ \begin{array} { l l } { + 1 , } &amp; { a \geq 0 } \\ { - 1 , } &amp; { a &lt; 0 } \end{array} \right. \tag{30} f(a)={+1,1,a0a<0(30)

按照原来的误差函数求解w,会遇到函数不连续的情况,无法求解。感知机准则考虑到了另外一个误差函数,按照之前的表示方法所有的模式都应满⾜ w T ϕ ( x n ) t n &gt; 0 \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) t _ { n } &gt; 0 wTϕ(xn)tn>0。正确分类时,误差为0,误分类时,它试着最⼩化 − w T ϕ ( x n ) t n - \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) t _ { n } wTϕ(xn)tn。感知器准则为
(31) E P ( w ) = − ∑ n ∈ M w T ϕ n t n E _ { P } ( \boldsymbol { w } ) = - \sum _ { n \in \mathcal { M } } \boldsymbol { w } ^ { T } \boldsymbol { \phi } _ { n } t _ { n } \tag{31} EP(w)=nMwTϕntn(31)

利用随机梯度下降优化上述误差函数。

感知机学习的特点:

  • 感知器学习规则并不保证在每个阶段都会减⼩整体的误差函数。
  • 达到收敛状态所需的步骤数量可能⾮常⼤,并且在实际应⽤中,在达到收敛状态之前,我们不能够区分不可分问题与缓慢收敛问题。
  • 数据集是线性可分的,也可能有多个解,并且最终哪个解会被找到依赖于参数的初始化以及数据点出现的顺序。
  • 感知器算法⽆法提供概率形式的输出,也⽆法直接推⼴到K > 2个类别的情形。

概率⽣成式模型

这⾥我们会使⽤⽣成式(也就是贝叶斯方法)的⽅法。这种⽅法中,我们对类条件概率密度 p ( x ∣ C k ) p(x | C_k) p(xCk)和类先验概率分布 p ( C k ) p(C_k) p(Ck)建模,然后使⽤这两个概率密度通过贝叶斯定理计算后验概率密度 p ( C k ∣ x ) p(C_k | x) p(Ckx)

考虑⼆分类的情形。类别 C 1 C_1 C1的后验概率可以写成
(32) p ( C 1 ∣ x ) = p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 1 ) p ( C 1 ) + p ( x ∣ C 2 ) p ( C 2 ) = 1 1 + exp ⁡ ( − a ) = σ ( a ) \begin{aligned} p \left( \mathcal { C } _ { 1 } | \boldsymbol { x } \right) &amp; = \frac { p ( \boldsymbol { x } | \mathcal { C } _ { 1 } ) p \left( \mathcal { C } _ { 1 } \right) } { p ( \boldsymbol { x } | \mathcal { C } _ { 1 } ) p \left( \mathcal { C } _ { 1 } \right) + p ( \boldsymbol { x } | \mathcal { C } _ { 2 } ) p \left( \mathcal { C } _ { 2 } \right) } \\ &amp; = \frac { 1 } { 1 + \exp ( - a ) } = \sigma ( a ) \end{aligned} \tag{32} p(C1x)=p(xC1)p(C1)+p(xC2)p(C2)p(xC1)p(C1)=1+exp(a)1=σ(a)(32)

(33) a = ln ⁡ p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 2 ) p ( C 2 ) a = \ln \frac { p ( \boldsymbol { x } | \mathcal { C } _ { 1 } ) p \left( \mathcal { C } _ { 1 } \right) } { p ( \boldsymbol { x } | \mathcal { C } _ { 2 } ) p \left( \mathcal { C } _ { 2 } \right) } \tag{33} a=lnp(xC2)p(C2)p(xC1)p(C1)(33)

在公式(34)中,我们只是把后验概率写成了⼀个等价的形式,因此logistic sigmoid函数的出现似乎相当没有意义。然⽽,假设 a ( x ) a(x) a(x)的函数形式相当简单,那么这种表⽰⽅法就很有⽤了。我们稍后会考虑 a ( x ) a(x) a(x) x x x的线性函数的情形。这种情况下,后验概率由⼀个通⽤的线性模型确定。

对于K > 2个类别的情形,我们有
(34) p ( C k ∣ x ) = p ( x ∣ C k ) p ( C k ) ∑ j p ( x ∣ C j ) p ( C j ) = exp ⁡ ( a k ) ∑ j exp ⁡ ( a j ) \begin{aligned} p \left( \mathcal { C } _ { k } | \boldsymbol { x } \right) &amp; = \frac { p ( \boldsymbol { x } | \mathcal { C } _ { k } ) p \left( \mathcal { C } _ { k } \right) } { \sum _ { j } p ( \boldsymbol { x } | \mathcal { C } _ { j } ) p \left( \mathcal { C } _ { j } \right) } \\ &amp; = \frac { \exp \left( a _ { k } \right) } { \sum _ { j } \exp \left( a _ { j } \right) } \end{aligned} \tag{34} p(Ckx)=jp(xCj)p(Cj)p(xCk)p(Ck)=jexp(aj)exp(ak)(34)

它被称为归⼀化指数(normalized exponential),可以被当做logistic sigmoid函数对于多类情况的推⼴。把属于每一类的概率归一化,归⼀化指数也被称为softmax函数,如果对于所有的 j ≠ k j \neq k j̸=k都有 a k ≫ a j a _ { k } \gg a _ { j } akaj,那么 p ( C k ∣ x ) ≃ 1 H p ( C j ∣ x ) ≃ 0 p \left( \mathcal { C } _ { k } | \boldsymbol { x } \right) \simeq 1 \mathrm { H } p \left( \mathcal { C } _ { j } | \boldsymbol { x } \right) \simeq 0 p(Ckx)1Hp(Cjx)0

下面⾸先讨论连续输⼊变量x的情形,然后简短地讨论离散输⼊的情形。

连续输⼊

让我们假设类条件概率密度是⾼斯分布,然后求解后验概率的形式。⾸先,我们假定所有的类别的协⽅差矩阵相同。这样类别 C k C_k Ck的类条件概率为
(35) p ( x ∣ C k ) = 1 ( 2 π ) D 2 1 ∣ Σ ∣ 1 2 exp ⁡ { − 1 2 ( x − μ k ) T Σ − 1 ( x − μ k ) } p ( \boldsymbol { x } | \mathcal { C } _ { k } ) = \frac { 1 } { ( 2 \pi ) ^ { \frac { D } { 2 } } } \frac { 1 } { | \mathbf { \Sigma } | ^ { \frac { 1 } { 2 } } } \exp \left\{ - \frac { 1 } { 2 } \left( \boldsymbol { x } - \boldsymbol { \mu } _ { k } \right) ^ { T } \boldsymbol { \Sigma } ^ { - 1 } \left( \boldsymbol { x } - \boldsymbol { \mu } _ { k } \right) \right\} \tag{35} p(xCk)=(2π)2D1Σ211exp{21(xμk)TΣ1(xμk)}(35)

考虑到只有两类的情况,根据式子32,33有
(36) p ( C 1 ∣ x ) = σ ( w T x + w 0 ) p \left( \mathcal { C } _ { 1 } | \boldsymbol { x } \right) = \sigma \left( \boldsymbol { w } ^ { T } \boldsymbol { x } + w _ { 0 } \right) \tag{36} p(C1x)=σ(wTx+w0)(36)

其中
(37) ∣ w = Σ − 1 ( μ 1 − μ 2 ) w 0 = − 1 2 μ 1 T Σ − 1 μ 1 + 1 2 μ 2 T Σ − 1 μ 2 + ln ⁡ p ( C 1 ) p ( C 2 ) \begin{array} { c } { \left| \boldsymbol { w } = \boldsymbol { \Sigma } ^ { - 1 } \left( \boldsymbol { \mu } _ { 1 } - \boldsymbol { \mu } _ { 2 } \right) \right. } \\ { w _ { 0 } = - \frac { 1 } { 2 } \boldsymbol { \mu } _ { 1 } ^ { T } \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { 1 } + \frac { 1 } { 2 } \boldsymbol { \mu } _ { 2 } ^ { T } \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { 2 } + \ln \frac { p \left( \mathcal { C } _ { 1 } \right) } { p \left( \mathcal { C } _ { 2 } \right) } } \end{array} \tag{37} w=Σ1(μ1μ2)w0=21μ1TΣ1μ1+21μ2TΣ1μ2+lnp(C2)p(C1)(37)

最终求得的决策边界对应于后验概率 p ( C k ∣ x ) p(C_k | x) p(Ckx)为常数的决策⾯,因此由x的线性函数给出,从⽽决策边界在输⼊空间是线性的。先验概率密度 p ( C k ) p(C_k) p(Ck)只出现在偏置参数w0中,因此先验的改变的效果是平移决策边界。

对于K>2,有
(38) a k ( x ) = w k T x + w k 0 a _ { k } ( \boldsymbol { x } ) = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { x } + w _ { k 0 } \tag{38} ak(x)=wkTx+wk0(38)

(39) w k = Σ − 1 μ k \boldsymbol { w } _ { k } = \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { k } \tag{39} wk=Σ1μk(39)

(40) w k 0 = − 1 2 μ k T Σ − 1 μ k + ln ⁡ p ( C k ) w _ { k 0 } = - \frac { 1 } { 2 } \boldsymbol { \mu } _ { k } ^ { T } \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { k } + \ln p \left( \mathcal { C } _ { k } \right) \tag{40} wk0=21μkTΣ1μk+lnp(Ck)(40)

我们看到ak(x)与之前⼀样是x的线性函数,这是因为各个类别的协⽅差矩阵相同,使得⼆次项被消去。最终的决策边界,对应于最⼩错误分类率,会出现在后验概率最⼤的两个概率相等的位置,因此由x的线性函数定义,从⽽我们再次得到了⼀个⼀般的线性模型。

最⼤似然解

既然已经类条件概率密度p(x | Ck)的参数化的函数形式,那么下一步就是确定参数的值和先验概率了 p ( C k ) p \left( \mathcal { C } _ { k } \right) p(Ck)

对于二分类,令 p ( C 1 ) = π p \left( \mathcal { C } _ { 1 } \right) = \pi p(C1)=π,有
(41) p ( x n , C 1 ) = p ( C 1 ) p ( x n ∣ C 1 ) = π N ( x n ∣ μ 1 , Σ ) p \left( \boldsymbol { x } _ { n } , \mathcal { C } _ { 1 } \right) = p \left( \mathcal { C } _ { 1 } \right) p \left( \boldsymbol { x } _ { n } | \mathcal { C } _ { 1 } \right) = \pi \mathcal { N } \left( \boldsymbol { x } _ { n } | \boldsymbol { \mu } _ { 1 } , \boldsymbol { \Sigma } \right) \tag{41} p(xn,C1)=p(C1)p(xnC1)=πN(xnμ1,Σ)(41)

(42) p ( x n , C 2 ) = p ( C 2 ) p ( x n ∣ C 2 ) = ( 1 − π ) N ( x n ∣ μ 2 , Σ ) p \left( \boldsymbol { x } _ { n } , \mathcal { C } _ { 2 } \right) = p \left( \mathcal { C } _ { 2 } \right) p \left( \boldsymbol { x } _ { n } | \mathcal { C } _ { 2 } \right) = ( 1 - \pi ) \mathcal { N } \left( \boldsymbol { x } _ { n } | \boldsymbol { \mu } _ { 2 } , \boldsymbol { \Sigma } \right) \tag{42} p(xn,C2)=p(C2)p(xnC2)=(1π)N(xnμ2,Σ)(42)

于是似然函数
(43) p ( t , X ∣ π , μ 1 , μ 2 , Σ ) = ∏ n = 1 N [ π N ( x n ∣ μ 1 , Σ ) ] t n [ ( 1 − π ) N ( x n ∣ μ 2 , Σ ) ] 1 − t n p ( \mathbf { t } , \boldsymbol { X } | \pi , \boldsymbol { \mu } _ { 1 } , \boldsymbol { \mu } _ { 2 } , \mathbf { \Sigma } ) = \prod _ { n = 1 } ^ { N } \left[ \pi \mathcal { N } \left( \boldsymbol { x } _ { n } | \boldsymbol { \mu } _ { 1 } , \mathbf { \Sigma } \right) \right] ^ { t _ { n } } \left[ ( 1 - \pi ) \mathcal { N } \left( \boldsymbol { x } _ { n } | \boldsymbol { \mu } _ { 2 } , \mathbf { \Sigma } \right) \right] ^ { 1 - t _ { n } } \tag{43} p(t,Xπ,μ1,μ2,Σ)=n=1N[πN(xnμ1,Σ)]tn[(1π)N(xnμ2,Σ)]1tn(43)

最⼤化似然函数的对数⽐较⽅便。⾸先考虑关于π的最⼤化。对数似然函数中与π相关的项为
(44) ∑ n = 1 N { t n ln ⁡ π + ( 1 − t n ) ln ⁡ ( 1 − π ) } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } \ln \pi + \left( 1 - t _ { n } \right) \ln ( 1 - \pi ) \right\} \tag{44} n=1N{tnlnπ+(1tn)ln(1π)}(44)

令其关于π的导数等于零,整理,可得
(45) π = 1 N ∑ n = 1 N t n = N 1 N = N 1 N 1 + N 2 \pi = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } t _ { n } = \frac { N _ { 1 } } { N } = \frac { N _ { 1 } } { N _ { 1 } + N _ { 2 } } \tag{45} π=N1n=1Ntn=NN1=N1+N2N1(45)

(46) μ 1 = 1 N 1 ∑ n = 1 N t n x n \boldsymbol { \mu } _ { 1 } = \frac { 1 } { N _ { 1 } } \sum _ { n = 1 } ^ { N } t _ { n } \boldsymbol { x } _ { n } \tag{46} μ1=N11n=1Ntnxn(46)

(47) μ 2 = 1 N 2 ∑ n = 1 N ( 1 − t n ) x n \boldsymbol { \mu } _ { 2 } = \frac { 1 } { N _ { 2 } } \sum _ { n = 1 } ^ { N } \left( 1 - t _ { n } \right) \boldsymbol { x } _ { n } \tag{47} μ2=N21n=1N(1tn)xn(47)

  • π的最⼤似然估计就是类别C1的点所占的⽐例
  • μ 1 \boldsymbol { \mu }_1 μ1为类别C1的输⼊向量xn的均值。
  • μ 2 \boldsymbol { \mu }_2 μ2为类别C2的输⼊向量xn的均值。

考虑协⽅差矩阵Σ的最⼤似然解。
(48) − 1 2 ∑ n = 1 N t n ln ⁡ ∣ Σ ∣ − 1 2 ∑ n = 1 N t n ( x n − μ 1 ) T Σ − 1 ( x n − μ 1 ) − 1 2 ∑ n = 1 N ( 1 − t n ) ln ⁡ ∣ Σ ∣ − 1 2 ∑ n = 1 N ( 1 − t n ) ( x n − μ 2 ) T Σ − 1 ( x n − μ 2 ) = − N 2 ln ⁡ ∣ Σ ∣ − N 2 Tr ⁡ { Σ − 1 S } \begin{array} { l } { - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } t _ { n } \ln | \mathbf { \Sigma } | - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } t _ { n } \left( \boldsymbol { x } _ { n } - \boldsymbol { \mu } _ { 1 } \right) ^ { T } \boldsymbol { \Sigma } ^ { - 1 } \left( \boldsymbol { x } _ { n } - \boldsymbol { \mu } _ { 1 } \right) } \\ { - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left( 1 - t _ { n } \right) \ln | \mathbf { \Sigma } | - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left( 1 - t _ { n } \right) \left( \boldsymbol { x } _ { n } - \boldsymbol { \mu } _ { 2 } \right) ^ { T } \boldsymbol { \Sigma } ^ { - 1 } \left( \boldsymbol { x } _ { n } - \boldsymbol { \mu } _ { 2 } \right) } \\ { = - \frac { N } { 2 } \ln | \boldsymbol { \Sigma } | - \frac { N } { 2 } \operatorname { Tr } \left\{ \mathbf { \Sigma } ^ { - 1 } \boldsymbol { S } \right\} } \end{array} \tag{48} 21n=1NtnlnΣ21n=1Ntn(xnμ1)TΣ1(xnμ1)21n=1N(1tn)lnΣ21n=1N(1tn)(xnμ2)TΣ1(xnμ2)=2NlnΣ2NTr{Σ1S}(48)

(49) S = N 1 N S 1 + N 2 N S 2 S 1 = 1 N 1 ∑ n ∈ C 1 ( x n − μ 1 ) ( x n − μ 1 ) T S 2 = 1 N 2 ∑ n ∈ C 2 ( x n − μ 2 ) ( x n − μ 2 ) T \begin{array} { c } { S = \frac { N _ { 1 } } { N } S _ { 1 } + \frac { N _ { 2 } } { N } S _ { 2 } } \\ { S _ { 1 } = \frac { 1 } { N _ { 1 } } \sum _ { n \in \mathcal { C } _ { 1 } } \left( x _ { n } - \mu _ { 1 } \right) \left( x _ { n } - \mu _ { 1 } \right) ^ { T } } \\ { S _ { 2 } = \frac { 1 } { N _ { 2 } } \sum _ { n \in \mathcal { C } _ { 2 } } \left( x _ { n } - \mu _ { 2 } \right) \left( x _ { n } - \mu _ { 2 } \right) ^ { T } } \end{array} \tag{49} S=NN1S1+NN2S2S1=N11nC1(xnμ1)(xnμ1)TS2=N21nC2(xnμ2)(xnμ2)T(49)

离散特征

这⾥,我们做出朴素贝叶斯(naive Bayes的假设,这个假设中,特征值被看成相互独⽴的,以类别Ck为条件。因此我们得到类条件分布,形式为
(50) p ( x ∣ C k ) = ∏ i = 1 D μ k i x i ( 1 − μ k i ) 1 − x i p ( \boldsymbol { x } | \mathcal { C } _ { k } ) = \prod _ { i = 1 } ^ { D } \mu _ { k i } ^ { x _ { i } } \left( 1 - \mu _ { k i } \right) ^ { 1 - x _ { i } } \tag{50} p(xCk)=i=1Dμkixi(1μki)1xi(50)

每一个维度即为一个特征值 x i x_i xi,并且对应于每一个类别Ck,有均值 μ k i μ_{ki} μki

代入 a k = ln ⁡ p ( ( x ∣ C k ) p ( C k ) ) a _ { k } = \ln p \left( ( \boldsymbol { x } | \mathcal { C } _ { k } ) p \left( \mathcal { C } _ { k } \right) \right) ak=lnp((xCk)p(Ck))
(51) a k ( x ) = ∑ i = 1 D { x i ln ⁡ μ k i + ( 1 − x i ) ln ⁡ ( 1 − μ k i ) } + ln ⁡ p ( C k ) a _ { k } ( \boldsymbol { x } ) = \sum _ { i = 1 } ^ { D } \left\{ x _ { i } \ln \mu _ { k i } + \left( 1 - x _ { i } \right) \ln \left( 1 - \mu _ { k i } \right) \right\} + \ln p \left( \mathcal { C } _ { k } \right) \tag{51} ak(x)=i=1D{xilnμki+(1xi)ln(1μki)}+lnp(Ck)(51)

概率判别式模型

在直接⽅法中,我们最⼤化由条件概率分布p(Ck | x)定义的似然函数。这种⽅法代表了判别式训练的⼀种形式。判别式⽅法的⼀个优点是通常有更少的可调节参数需要确定。

固定基函数

恰当地选择⾮线性变换能够让后验概率的建模过程更简单。

logistic回归

类别C1的后验概率可以写成作⽤在特征向量φ的线性函数上的logistic sigmoid函数的形式,即
(52) p ( C 1 ∣ ϕ ) = y ( ϕ ) = σ ( w T ϕ ) p \left( \mathcal { C } _ { 1 } | \boldsymbol { \phi } \right) = y ( \boldsymbol { \phi } ) = \sigma \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \right) \tag{52} p(C1ϕ)=y(ϕ)=σ(wTϕ)(52)

对于⼀个M维特征空间φ,这个模型有M个可调节参数。如果我们使⽤最⼤似然⽅法调节了⾼斯类条件概率密度,需要有2M个参数来描述均值,以及 M ( M + 1 ) 2 \frac { M ( M + 1 ) } { 2 } 2M(M+1)个参数来描述协⽅差矩阵。算上类先验p(C1),参数的总数为 M ( M + 5 ) 2 + 1 \frac { M ( M + 5 ) } { 2 } + 1 2M(M+5)+1,这随着M的增长⽽以⼆次的⽅式增长。对于⼤的M值,直接使⽤logistic回归模型(判别式)有着很明显的优势。

我们现在使⽤最⼤似然⽅法来确定logistic回归模型的参数。为了完成这⼀点,我们要使⽤logistic sigmoid函数的导数,它可以很⽅便地使⽤sigmoid函数本⾝表⽰如下
(53) d σ d a = σ ( 1 − σ ) \frac { \mathrm { d } \sigma } { \mathrm { d } a } = \sigma ( 1 - \sigma ) \tag{53} dadσ=σ(1σ)(53)

对于⼀个数据集φn, tn,其中tn ∈ {0, 1}且φn = φ(xn),并且n = 1, . . . , N,似然函数
(54) p ( t ∣ w ) = ∏ n = 1 N y n t n { 1 − y n } 1 − t n p ( \mathbf { t } | \boldsymbol { w } ) = \prod _ { n = 1 } ^ { N } y _ { n } ^ { t _ { n } } \left\{ 1 - y _ { n } \right\} ^ { 1 - t _ { n } } \tag{54} p(tw)=n=1Nyntn{1yn}1tn(54)

其中i = (t1, . . . , tN)T 且yn = p(C1 | φn),我们可以通过取似然函数的负对数的⽅
式,定义⼀个误差函数。这种⽅式产⽣了交叉熵(cross-entropy)误差函数。
(55) E ( w ) = − ln ⁡ p ( t ∣ w ) = − ∑ n = 1 N { t n ln ⁡ y n + ( 1 − t n ) ln ⁡ ( 1 − y n ) } E ( \boldsymbol { w } ) = - \ln p ( \mathbf { t } | \boldsymbol { w } ) = - \sum _ { n = 1 } ^ { N } \left\{ t _ { n } \ln y _ { n } + \left( 1 - t _ { n } \right) \ln \left( 1 - y _ { n } \right) \right\} \tag{55} E(w)=lnp(tw)=n=1N{tnlnyn+(1tn)ln(1yn)}(55)

(56) ∇ E ( w ) = ∑ n = 1 N ( y n − t n ) ϕ n \nabla E ( \boldsymbol { w } ) = \sum _ { n = 1 } ^ { N } \left( y _ { n } - t _ { n } \right) \boldsymbol { \phi } _ { n } \tag{56} E(w)=n=1N(yntn)ϕn(56)

我们可以使⽤公式(4.91)的结果提出⼀个顺序算法,这种算法中,每次只出现⼀个模式,权向量使⽤梯度下降方法更新,其中∇En是公式(56)的第n项。

缺点:

  • 过拟合:最⼤似然⽅法对于线性可分的数据集会产⽣严重的过拟合现象。
  • 依赖参数初始值:最⼤似然⽅法⽆法区分某个解优于另⼀个解,并且在实际应⽤中哪个解被找到将会依赖于优化算法的选择和参数的初始化。

迭代重加权最⼩平⽅

对于logistic回归来说,不再有解析解了,因为logistic sigmoid函数是⼀个⾮线性函数。误差函数是凸函数,因此有⼀个唯⼀的最⼩值。此外,误差函数可以通过⼀种⾼效的迭代⽅法求出最⼩值,这种迭代⽅法基于Newton-Raphson迭代最优化框架,使⽤了对数似然函数的局部⼆次近似。
(57) w ( n e w ) = w ( o l d ) − H − 1 ∇ E ( w ) \mathbf { w } ^ { ( \mathrm { new } ) } = \mathbf { w } ^ { ( \mathrm { old } ) } - \mathbf { H } ^ { - 1 } \nabla E ( \mathbf { w } ) \tag{57} w(new)=w(old)H1E(w)(57)

其中H是⼀个Hessian矩阵,它的元素由E(w)关于w的⼆阶导数组成。

让我们把Newton-Raphson⽅法应⽤到现⾏回归模型,误差函数为平⽅和误差函数,这个误差函数的梯度和Hessian矩阵为
(58) ∇ E ( w ) = ∑ n = 1 N ( w T ϕ n − t n ) ϕ n = Φ T Φ w − Φ T t H = ∇ ∇ E ( w ) = ∑ n = 1 N ϕ n ϕ n T = Φ T Φ \begin{array} { c } { \nabla E ( \boldsymbol { w } ) = \sum _ { n = 1 } ^ { N } \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } _ { n } - t _ { n } \right) \boldsymbol { \phi } _ { n } = \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } \boldsymbol { w } - \boldsymbol { \Phi } ^ { T } \mathbf { t } } \\ { \boldsymbol { H } = \nabla \nabla E ( \boldsymbol { w } ) = \sum _ { n = 1 } ^ { N } \phi _ { n } \boldsymbol { \phi } _ { n } ^ { T } = \boldsymbol { \Phi } ^ { T } \boldsymbol { \Phi } } \end{array} \tag{58} E(w)=n=1N(wTϕntn)ϕn=ΦTΦwΦTtH=E(w)=n=1NϕnϕnT=ΦTΦ(58)

其中Φ是N × M设计矩阵,第n⾏为φT, Newton-Raphson更新的形式为
(59) w ( n e w ) = w ( o l d ) − ( Φ T Φ ) − 1 { Φ T Φ w ( o l d ) − Φ T t } = ( Φ T Φ ) − 1 Φ T t w^{(new)} = w^{(old)} − (Φ^TΦ)^{−1}\{Φ^TΦw^{(old)} − Φ^Tt\} = (Φ^TΦ)^{−1}Φ^Tt \tag{59} w(new)=w(old)(ΦTΦ)1{ΦTΦw(old)ΦTt}=(ΦTΦ)1ΦTt(59)

其中x是⼀个N维向量,元素为
(60) z = Φ w o l d − R − 1 ( y − t ) \mathbf { z } = \mathbf { \Phi } \boldsymbol { w } ^ { old } - \boldsymbol { R } ^ { - 1 } ( \mathbf { y } - \mathbf { t } ) \tag{60} z=ΦwoldR1(yt)(60)

我们看到更新公式(59)的形式为⼀组加权最⼩平⽅问题的规范⽅程, 由于权矩阵R不是常量,⽽是依赖于参数向量w,因此我们必须迭代地应⽤规范⽅程,这个算法被称为迭代重加权最⼩平⽅(iterative reweighted least squares)

多类logistic回归

在我们对于多分类的⽣成式模型的讨论中,我们已经看到对于⼀⼤类概率分布来说,后验概率由特征变量的线性函数的softmax变换给出,即
(61) p ( C k ∣ ϕ ) = y k ( ϕ ) = exp ⁡ ( a k ) ∑ j exp ⁡ ( a k ) p \left( \mathcal { C } _ { k } | \boldsymbol { \phi } \right) = y _ { k } ( \boldsymbol { \phi } ) = \frac { \exp \left( a _ { k } \right) } { \sum _ { j } \exp \left( a _ { k } \right) } \tag{61} p(Ckϕ)=yk(ϕ)=jexp(ak)exp(ak)(61)

a k = w k T ϕ a _ { k } = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { \phi } ak=wkTϕ

生成式方法通过求类条件概率密度和类先验概率,使用贝叶斯求出后验概率。这⾥,我们考虑使⽤最⼤似然⽅法直接确定这个模型中的参数{wk}。首先求出yk关于所有激活aj的导数
(62) ∂ y k ∂ a j = y k ( I k j − y j ) \frac { \partial y _ { k } } { \partial a _ { j } } = y _ { k } \left( I _ { k j } - y _ { j } \right) \tag{62} ajyk=yk(Ikjyj)(62)

使⽤“1-of-K”表达⽅式。似然函数为
(63) p ( T ∣ w 1 , … , w K ) = ∏ n = 1 N ∏ k = 1 K p ( C k ∣ ϕ n ) t n k = ∏ n = 1 N ∏ k = 1 K y n k t n k p ( \boldsymbol { T } | \boldsymbol { w } _ { 1 } , \ldots , \boldsymbol { w } _ { K } ) = \prod _ { n = 1 } ^ { N } \prod _ { k = 1 } ^ { K } p \left( \mathcal { C } _ { k } | \boldsymbol { \phi } _ { n } \right) ^ { t _ { n k } } = \prod _ { n = 1 } ^ { N } \prod _ { k = 1 } ^ { K } y _ { n k } ^ { t _ { n k } } \tag{63} p(Tw1,,wK)=n=1Nk=1Kp(Ckϕn)tnk=n=1Nk=1Kynktnk(63)

取负对数,可得交叉熵(cross-entropy)误差函数
(64) E ( w 1 , … , w K ) = − ln ⁡ p ( T ∣ w 1 , … , w K ) = − ∑ n = 1 N ∑ k = 1 K t n k ln ⁡ y n k E \left( \boldsymbol { w } _ { 1 } , \ldots , \boldsymbol { w } _ { K } \right) = - \ln p ( \boldsymbol { T } | \boldsymbol { w } _ { 1 } , \ldots , \boldsymbol { w } _ { K } ) = - \sum _ { n = 1 } ^ { N } \sum _ { k = 1 } ^ { K } t _ { n k } \ln y _ { n k } \tag{64} E(w1,,wK)=lnp(Tw1,,wK)=n=1Nk=1Ktnklnynk(64)

取误差函数关于参数向量wj的梯度
(65) ∇ w j E ( w 1 , … , w K ) = ∑ n = 1 N ( y n j − t n j ) ϕ n \nabla _ { \boldsymbol { w } _ { j } } E \left( \boldsymbol { w } _ { 1 } , \ldots , \boldsymbol { w } _ { K } \right) = \sum _ { n = 1 } ^ { N } \left( y _ { n j } - t _ { n j } \right) \boldsymbol { \phi } _ { n } \tag{65} wjE(w1,,wK)=n=1N(ynjtnj)ϕn(65)

我们已经看到,对于数据点n,线性回归模型的对数似然函数关于参数向量w的导数的形式为“误差”yn − tn乘以特征向量φn。

probit回归

对于由指数族分布描述的⼀⼤类的类条件概率分布,最终求出的后验类概率为作⽤在特征变量的线性函数上的logistic(或者softmax)变换。不是所有的类条件概率
密度都有这样简单的后验概率函数形式。
二分类模型:
(66) p ( t = 1 ∣ a ) = f ( a ) p ( t = 1 | a ) = f ( a ) \tag{66} p(t=1a)=f(a)(66)

其中 a = w T φ a = w^T φ a=wTφ,且f(·)为激活函数。然后按照下⾯的⽅式设置⽬标值
(67) { t n = 1  if  a n ⩾ θ t n = 0  otherwise  \left\{ \begin{array} { l l } { t _ { n } = 1 } &amp; { \text { if } a _ { n } \geqslant \theta } \\ { t _ { n } = 0 } &amp; { \text { otherwise } } \end{array} \right. \tag{67} {tn=1tn=0 if anθ otherwise (67)

么对应的激活函数由累积分布函数给出
(68) f ( a ) = ∫ − ∞ a p ( θ ) d θ f ( a ) = \int _ { - \infty } ^ { a } p ( \theta ) \mathrm { d } \theta \tag{68} f(a)=ap(θ)dθ(68)

假设概率密度p(θ)是零均值、单位⽅差的⾼斯概率密度。对应的累积分布函数为
(69) Φ ( a ) = ∫ − ∞ a N ( θ ∣ 0 , 1 ) d θ \Phi ( a ) = \int _ { - \infty } ^ { a } \mathcal { N } ( \theta | 0,1 ) \mathrm { d } \theta \tag{69} Φ(a)=aN(θ0,1)dθ(69)

这 被 称 为 逆probit(inverse probit) 函 数。 通过以下方法计算

(70) erf ⁡ ( a ) = 2 π ∫ 0 a exp ⁡ ( − θ 2 ) d θ \operatorname { erf } ( a ) = \frac { 2 } { \sqrt { \pi } } \int _ { 0 } ^ { a } \exp \left( - \theta ^ { 2 } \right) \mathrm { d } \theta \tag{70} erf(a)=π 20aexp(θ2)dθ(70)

(71) Φ ( a ) = 1 2 { 1 + erf ⁡ ( a 2 ) } \Phi ( a ) = \frac { 1 } { 2 } \left\{ 1 + \operatorname { erf } \left( \frac { a } { \sqrt { 2 } } \right) \right\} \tag{71} Φ(a)=21{1+erf(2 a)}(71)

probit和logistic

  • 对于x → ∞, logistic sigmoid函数像exp(−x)那样渐进地衰减
  • ⽽probit激活函数像exp(−x2)那样衰减,因此probit模型对于离群点会更加敏感。

标准链接函数

对于⾼斯噪声分布的线性回归模型logistic sigmoid激活函数与交叉熵误差函数(4.90)的组合,以及多类交叉熵误差函数(4.108)的softmax激活函数 误差的向量w求导数,那么导数的形式为“误差”yn − tn与特征向量φn的乘积,现在我们证明,如果假设⽬标变量的条件分布来⾃于指数族分布,对应的激活函数选为标准链接函数(canonical link function)

拉普拉斯近似

拉普拉斯近似。它的⽬标是找到定义在⼀组连续变量上的概率密度的⾼斯近似。⾸先考虑单⼀连续变量z的情形,假设分布p(z)的定义为
(72) p ( z ) = 1 Z f ( z ) p ( z ) = \frac { 1 } { Z } f ( z ) \tag{72} p(z)=Z1f(z)(72)

其中Z = 2 f(z) dz是归⼀化系数。们假定Z的值是未知的。在拉普拉斯⽅法中,⽬标是寻找⼀个⾼斯近似q(z),它的中⼼位于p(z)的众数的位置。第⼀步是寻找p(z)的众数,即寻找⼀个点z0使得p′(z0) = 0,或者等价地
(73) d f ( z ) d z ∣ z = z 0 = 0 \left. \frac { \mathrm { d } f ( z ) } { \mathrm { d } z } \right| _ { z = z _ { 0 } } = 0 \tag{73} dzdf(z)z=z0=0(73)

⾼斯分布有⼀个性质,即它的对数是变量的⼆次函数。于是我们考虑ln f(z)以众数z0为中⼼的泰勒展开,即

(74) ln ⁡ f ( z ) ≃ ln ⁡ f ( z 0 ) − 1 2 A ( z − z 0 ) 2 A = − d 2 d z 2 ln ⁡ f ( z ) ∣ z = z 0 \begin{array} { c } { \ln f ( z ) \simeq \ln f \left( z _ { 0 } \right) - \frac { 1 } { 2 } A \left( z - z _ { 0 } \right) ^ { 2 } } \\ { A = - \frac { \mathrm { d } ^ { 2 } } { \mathrm { d } z ^ { 2 } } \ln f \left. ( z ) \right| _ { z = z _ { 0 } } } \end{array} \tag{74} lnf(z)lnf(z0)21A(zz0)2A=dz2d2lnf(z)z=z0(74)

两侧同时取指数
(75) f ( z ) ≃ f ( z 0 ) exp ⁡ { − A 2 ( z − z 0 ) 2 } f ( z ) \simeq f \left( z _ { 0 } \right) \exp \left\{ - \frac { A } { 2 } \left( z - z _ { 0 } \right) ^ { 2 } \right\} \tag{75} f(z)f(z0)exp{2A(zz0)2}(75)

使⽤归⼀化的⾼斯分布的标准形式,我们就可以得到归⼀化的概率分布q(z)
(76) q ( z ) = ( A 2 π ) 1 2 exp ⁡ { − A 2 ( z − z 0 ) 2 } q ( z ) = \left( \frac { A } { 2 \pi } \right) ^ { \frac { 1 } { 2 } } \exp \left\{ - \frac { A } { 2 } \left( z - z _ { 0 } \right) ^ { 2 } \right\} \tag{76} q(z)=(2πA)21exp{2A(zz0)2}(76)

近似定义在M维空间z上的概率分布 p ( z ) = f ( z ) Z p ( \boldsymbol { z } ) = \frac { f ( \boldsymbol { z } ) } { Z } p(z)=Zf(z),在驻点处展开,我们有
(77) ln ⁡ f ( z ) ≃ ln ⁡ f ( z 0 ) − 1 2 ( z − z 0 ) T A ( z − z 0 ) \ln f ( \boldsymbol { z } ) \simeq \ln f \left( \boldsymbol { z } _ { 0 } \right) - \frac { 1 } { 2 } \left( \boldsymbol { z } - \boldsymbol { z } _ { 0 } \right) ^ { T } \boldsymbol { A } \left( \boldsymbol { z } - \boldsymbol { z } _ { 0 } \right) \tag{77} lnf(z)lnf(z0)21(zz0)TA(zz0)(77)

其中M × M的Hessian矩阵A的定义为 A = − ∇ ∇ ln ⁡ f ( z ) ∣ z = z 0 \boldsymbol { A } = - \nabla \nabla \ln f \left. ( \boldsymbol { z } ) \right| _ { \boldsymbol { z } = \boldsymbol { z } _ { 0 } } A=lnf(z)z=z0,按照前述方法取指数,归一化
(78) f ( z ) ≃ f ( z 0 ) exp ⁡ { − 1 2 ( z − z 0 ) T A ( z − z 0 ) } f ( \boldsymbol { z } ) \simeq f \left( \boldsymbol { z } _ { 0 } \right) \exp \left\{ - \frac { 1 } { 2 } \left( \boldsymbol { z } - \boldsymbol { z } _ { 0 } \right) ^ { T } \boldsymbol { A } \left( \boldsymbol { z } - \boldsymbol { z } _ { 0 } \right) \right\} \tag{78} f(z)f(z0)exp{21(zz0)TA(zz0)}(78)

(79) q ( z ) = ∣ A ∣ 1 2 ( 2 π ) M 2 exp ⁡ { − 1 2 ( z − z 0 ) T A ( z − z 0 ) } = N ( z ∣ z 0 , A − 1 ) q ( \boldsymbol { z } ) = \frac { | \boldsymbol { A } | ^ { \frac { 1 } { 2 } } } { ( 2 \pi ) ^ { \frac { M } { 2 } } } \exp \left\{ - \frac { 1 } { 2 } \left( \boldsymbol { z } - \boldsymbol { z } _ { 0 } \right) ^ { T } \boldsymbol { A } \left( \boldsymbol { z } - \boldsymbol { z } _ { 0 } \right) \right\} = \mathcal { N } ( \boldsymbol { z } | \boldsymbol { z } _ { 0 } , \boldsymbol { A } ^ { - 1 } ) \tag{79} q(z)=(2π)2MA21exp{21(zz0)TA(zz0)}=N(zz0,A1)(79)

前提是,精度矩阵A是正定的,这表明驻点z0⼀定是⼀个局部最⼤值,⽽不是⼀个最⼩值或者鞍点。缺点

  • 以⾼斯分布为基础的,因此它只能直接应⽤于实值变量。
  • 以⾼斯分布为基础的,因此它只能直接应⽤于实值变量。

贝叶斯logistic回归

这⾥我们考虑使⽤拉普拉斯近似来处理贝叶斯logistic回归的问题

拉普拉斯近似

步骤

  1. 找后验概率分布的众数
  2. 调节⼀个以众数为中⼼的⾼斯分布
  3. 计算对数后验概率的⼆阶导数

由于我们寻找后验概率分布的⼀个⾼斯表⽰,我们把⾼斯先验写成⼀般的形式
(80) p ( w ) = N ( w ∣ m 0 , S 0 ) p ( \boldsymbol { w } ) = \mathcal { N } ( \boldsymbol { w } | \boldsymbol { m } _ { 0 } , \boldsymbol { S } _ { 0 } ) \tag{80} p(w)=N(wm0,S0)(80)

(81) p ( w ∣ t ) ∝ p ( w ) p ( t ∣ w ) p ( \boldsymbol { w } | \mathbf { t } ) \propto p ( \boldsymbol { w } ) p ( \mathbf { t } | \boldsymbol { w } ) \tag{81} p(wt)p(w)p(tw)(81)

t = ( t 1 , … , t N ) T \mathbf { t } = \left( t _ { 1 } , \ldots , t _ { N } \right) ^ { T } t=(t1,,tN)T ,后验两侧取对数,然后代⼊先验分布
(82) ln ⁡ p ( w ∣ t ) = − 1 2 ( w − m 0 ) T S 0 − 1 ( w − m 0 ) + ∑ n = 1 N { t n ln ⁡ y n + ( 1 − t n ) ln ⁡ ( 1 − y n ) } + c o n s t \begin{aligned} \ln p ( \mathbf { w } | \mathbf { t } ) = &amp; - \frac { 1 } { 2 } \left( \mathbf { w } - \mathbf { m } _ { 0 } \right) ^ { \mathrm { T } } \mathbf { S } _ { 0 } ^ { - 1 } \left( \mathbf { w } - \mathbf { m } _ { 0 } \right) \\ &amp; + \sum _ { n = 1 } ^ { N } \left\{ t _ { n } \ln y _ { n } + \left( 1 - t _ { n } \right) \ln \left( 1 - y _ { n } \right) \right\} + \mathrm { const } \end{aligned} \tag{82} lnp(wt)=21(wm0)TS01(wm0)+n=1N{tnlnyn+(1tn)ln(1yn)}+const(82)

y n = σ ( w T ϕ n ) y _ { n } = \sigma \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } _ { n } \right) yn=σ(wTϕn),为了获得后验概率的⾼斯近似,我们⾸先最⼤化后验概率分布,得
到MAP(最⼤后验)解wMAP ,它定义了⾼斯分布的均值,协⽅差就是负对数似然函数的⼆阶导数矩阵的逆矩阵

(83) S N − 1 = − ∇ ∇ ln ⁡ p ( w ∣ t ) = S 0 − 1 + ∑ n = 1 N y n ( 1 − y n ) ϕ n ϕ n T S _ { N } ^ { - 1 } = - \nabla \nabla \ln p ( \boldsymbol { w } | \mathbf { t } ) = \boldsymbol { S } _ { 0 } ^ { - 1 } + \sum _ { n = 1 } ^ { N } y _ { n } \left( 1 - y _ { n } \right) \boldsymbol { \phi } _ { n } \boldsymbol { \phi } _ { n } ^ { T } \tag{83} SN1=lnp(wt)=S01+n=1Nyn(1yn)ϕnϕnT(83)

后验概率分布的⾼斯近似的形式为
(84) q ( w ) = N ( w ∣ w M A P , S N ) q ( \boldsymbol { w } ) = \mathcal { N } ( \boldsymbol { w } | \boldsymbol { w } _ { M A P } , \boldsymbol { S } _ { N } ) \tag{84} q(w)=N(wwMAP,SN)(84)

预测分布

新的特征向量φ(x),类别C1的预测分布可以通过对后验概率p(w | t)积分
(85) p ( C 1 ∣ ϕ , t ) = ∫ p ( C 1 ∣ ϕ , w ) p ( w ∣ t ) d w ≃ ∫ σ ( w T ϕ ) q ( w ) d w p \left( \mathcal { C } _ { 1 } | \phi , \mathbf { t } \right) = \int p \left( \mathcal { C } _ { 1 } | \boldsymbol { \phi } , \boldsymbol { w } \right) p ( \boldsymbol { w } | \mathbf { t } ) \mathrm { d } \boldsymbol { w } \simeq \int \sigma \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \right) q ( \boldsymbol { w } ) \mathrm { d } \boldsymbol { w } \tag{85} p(C1ϕ,t)=p(C1ϕ,w)p(wt)dwσ(wTϕ)q(w)dw(85)

(86) σ ( w T ϕ ) = ∫ δ ( a − w T ϕ ) σ ( a ) d a \sigma \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } \right) = \int \delta \left( a - \boldsymbol { w } ^ { T } \boldsymbol { \phi } \right) \sigma ( a ) \mathrm { d } a \tag{86} σ(wTϕ)=δ(awTϕ)σ(a)da(86)

其中δ(·)是狄拉克Delta函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值