参考马春鹏 《模式识别与机器学习》翻译
前⼀章中,我们研究了⼀类回归模型,这些模型有相当简单的数学性质和计算性质。我们现在讨论⼀类与此相似的模型,⽤于解决分类问题。分类的⽬标是将输⼊变量x分到K个离散的类别 C k C_k Ck中的某⼀类。
在本章中,我们考虑分类的线性模型。所谓分类线性模型,是指决策⾯是输⼊向量x的线性函数,因此被定义为D维输⼊空间中的(D − 1)维超平⾯。
有两种不同的⽅法确定条件概率分布 p ( C k ∣ x ) p \left( \mathcal { C } _ { k } | \boldsymbol { x } \right) p(Ck∣x)
定义线性判别函数为
(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} ∥w∥wTx=−∥w∥w0(2)
其中 w T x ∥ w ∥ \frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|} ∥w∥wTx表示原点到平面的距离,因为 w T x w^Tx wTx等于上图中的||w|| * ab * sinΘ等于||w|| * ac,所以 w T x ∥ w ∥ \frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|} ∥w∥wTx等于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⊥+r∥w∥w(3)
表示两个向量相加,通过代入化简得到
(4) r = y ( x ) ∥ w ∥ r=\frac{y(\boldsymbol{x})}{\|\boldsymbol{w}\|}\tag{4} r=∥w∥y(x)(4)
多分类问题为将线性判别函数推⼴到K > 2个类别,可分为两种分类器。
通过引⼊⼀个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} (wk−wj)Tx+(wk0−wj0)=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)
最⼩平⽅⽅法的问题:
从降维的⾓度考察线性分类模型。假设我们有⼀个D维输⼊向量x,然后使⽤下式投影到⼀维
(11) y = w T x y = \boldsymbol { w } ^ { T } \boldsymbol { x } \tag{11} y=wTx(11)
把 y ≥ − w 0 y ≥ −w_0 y≥−w0的样本分为 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=N11n∈C1∑xn,m2=N21n∈C2∑xn(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} m2−m1=wT(m2−m1)(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=n∈Ck∑(yn−mk)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(m2−m1)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=(m2−m1)(m2−m1)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=n∈C1∑(xn−m1)(xn−m1)T+n∈C2∑(xn−m2)(xn−m2)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} w∝SW−1(m2−m1)(19)
考虑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=1∑KSk(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=n∈Ck∑(xn−mk)(x−mk)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=1∑N(xn−m)(xn−m)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=1∑Nxn=N1k=1∑KNkmk(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=1∑KNk(mk−m)(mk−m)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=1K∑n∈Ck(yn−μk)(yn−μk)TSB=∑k=1KNk(μk−μ)(μk−μ)Tμk=Nk1∑n∈Ckyn,μ=N1∑k=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 < 0 f ( a ) = \left\{ \begin{array} { l l } { + 1 , } & { a \geq 0 } \\ { - 1 , } & { a < 0 } \end{array} \right. \tag{30} f(a)={+1,−1,a≥0a<0(30)
按照原来的误差函数求解w,会遇到函数不连续的情况,无法求解。感知机准则考虑到了另外一个误差函数,按照之前的表示方法所有的模式都应满⾜ w T ϕ ( x n ) t n > 0 \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) t _ { n } > 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)=−n∈M∑wTϕntn(31)
利用随机梯度下降优化上述误差函数。
感知机学习的特点:
这⾥我们会使⽤⽣成式(也就是贝叶斯方法)的⽅法。这种⽅法中,我们对类条件概率密度 p ( x ∣ C k ) p(x | C_k) p(x∣Ck)和类先验概率分布 p ( C k ) p(C_k) p(Ck)建模,然后使⽤这两个概率密度通过贝叶斯定理计算后验概率密度 p ( C k ∣ x ) p(C_k | x) p(Ck∣x)。
考虑⼆分类的情形。类别 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) & = \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) } \\ & = \frac { 1 } { 1 + \exp ( - a ) } = \sigma ( a ) \end{aligned} \tag{32} p(C1∣x)=p(x∣C1)p(C1)+p(x∣C2)p(C2)p(x∣C1)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(x∣C2)p(C2)p(x∣C1)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) & = \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) } \\ & = \frac { \exp \left( a _ { k } \right) } { \sum _ { j } \exp \left( a _ { j } \right) } \end{aligned} \tag{34} p(Ck∣x)=∑jp(x∣Cj)p(Cj)p(x∣Ck)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 } ak≫aj,那么 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(Ck∣x)≃1Hp(Cj∣x)≃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(x∣Ck)=(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(C1∣x)=σ(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(Ck∣x)为常数的决策⾯,因此由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(xn∣C1)=π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(xn∣C2)=(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=1∏N[πN(xn∣μ1,Σ)]tn[(1−π)N(xn∣μ2,Σ)]1−tn(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=1∑N{tnlnπ+(1−tn)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=1∑Ntn=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=1∑Ntnxn(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=1∑N(1−tn)xn(47)
考虑协⽅差矩阵Σ的最⼤似然解。
(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} −21∑n=1Ntnln∣Σ∣−21∑n=1Ntn(xn−μ1)TΣ−1(xn−μ1)−21∑n=1N(1−tn)ln∣Σ∣−21∑n=1N(1−tn)(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=N11∑n∈C1(xn−μ1)(xn−μ1)TS2=N21∑n∈C2(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(x∣Ck)=i=1∏Dμkixi(1−μki)1−xi(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((x∣Ck)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=1∑D{xilnμki+(1−xi)ln(1−μki)}+lnp(Ck)(51)
在直接⽅法中,我们最⼤化由条件概率分布p(Ck | x)定义的似然函数。这种⽅法代表了判别式训练的⼀种形式。判别式⽅法的⼀个优点是通常有更少的可调节参数需要确定。
恰当地选择⾮线性变换能够让后验概率的建模过程更简单。
类别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(t∣w)=n=1∏Nyntn{1−yn}1−tn(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(t∣w)=−n=1∑N{tnlnyn+(1−tn)ln(1−yn)}(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=1∑N(yn−tn)ϕ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)−H−1∇E(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ϕn−tn)ϕ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=Φwold−R−1(y−t)(60)
我们看到更新公式(59)的形式为⼀组加权最⼩平⽅问题的规范⽅程, 由于权矩阵R不是常量,⽽是依赖于参数向量w,因此我们必须迭代地应⽤规范⽅程,这个算法被称为迭代重加权最⼩平⽅(iterative reweighted least squares)
在我们对于多分类的⽣成式模型的讨论中,我们已经看到对于⼀⼤类概率分布来说,后验概率由特征变量的线性函数的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} ∂aj∂yk=yk(Ikj−yj)(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(T∣w1,…,wK)=n=1∏Nk=1∏Kp(Ck∣ϕn)tnk=n=1∏Nk=1∏Kynktnk(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(T∣w1,…,wK)=−n=1∑Nk=1∑Ktnklnynk(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=1∑N(ynj−tnj)ϕn(65)
我们已经看到,对于数据点n,线性回归模型的对数似然函数关于参数向量w的导数的形式为“误差”yn − tn乘以特征向量φn。
对于由指数族分布描述的⼀⼤类的类条件概率分布,最终求出的后验类概率为作⽤在特征变量的线性函数上的logistic(或者softmax)变换。不是所有的类条件概率
密度都有这样简单的后验概率函数形式。
二分类模型:
(66) p ( t = 1 ∣ a ) = f ( a ) p ( t = 1 | a ) = f ( a ) \tag{66} p(t=1∣a)=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 } & { \text { if } a _ { n } \geqslant \theta } \\ { t _ { n } = 0 } & { \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)=π2∫0aexp(−θ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(2a)}(71)
probit和logistic
对于⾼斯噪声分布的线性回归模型,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(z−z0)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(z−z0)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(z−z0)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(z−z0)TA(z−z0)(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(z−z0)TA(z−z0)}(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π)2M∣A∣21exp{−21(z−z0)TA(z−z0)}=N(z∣z0,A−1)(79)
前提是,精度矩阵A是正定的,这表明驻点z0⼀定是⼀个局部最⼤值,⽽不是⼀个最⼩值或者鞍点。缺点
这⾥我们考虑使⽤拉普拉斯近似来处理贝叶斯logistic回归的问题
步骤
由于我们寻找后验概率分布的⼀个⾼斯表⽰,我们把⾼斯先验写成⼀般的形式
(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(w∣m0,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(w∣t)∝p(w)p(t∣w)(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 } ) = & - \frac { 1 } { 2 } \left( \mathbf { w } - \mathbf { m } _ { 0 } \right) ^ { \mathrm { T } } \mathbf { S } _ { 0 } ^ { - 1 } \left( \mathbf { w } - \mathbf { m } _ { 0 } \right) \\ & + \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(w∣t)=−21(w−m0)TS0−1(w−m0)+n=1∑N{tnlnyn+(1−tn)ln(1−yn)}+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} SN−1=−∇∇lnp(w∣t)=S0−1+n=1∑Nyn(1−yn)ϕ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(w∣wMAP,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(w∣t)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ϕ)=∫δ(a−wTϕ)σ(a)da(86)
其中δ(·)是狄拉克Delta函数。