PRML第四章之分类的线性模型
文章目录
- 分类的线性模型
- 判别函数
- 二分类
- 多分类
- ⽤于分类的最⼩平⽅⽅法
- Fisher线性判别函数
- 多分类的Fisher判别函数
- 感知器算法
- 概率⽣成式模型
- 连续输⼊
- 最⼤似然解
- 离散特征
- 概率判别式模型
- 固定基函数
- logistic回归
- 迭代重加权最⼩平⽅
- 多类logistic回归
- probit回归
- 标准链接函数
- 拉普拉斯近似
- 贝叶斯logistic回归
- 拉普拉斯近似
- 预测分布
参考马春鹏 《模式识别与机器学习》翻译
分类的线性模型
前⼀章中,我们研究了⼀类回归模型,这些模型有相当简单的数学性质和计算性质。我们现在讨论⼀类与此相似的模型,⽤于解决分类问题。分类的⽬标是将输⼊变量x分到K个离散的类别CkC_kCk中的某⼀类。
在本章中,我们考虑分类的线性模型。所谓分类线性模型,是指决策⾯是输⼊向量x的线性函数,因此被定义为D维输⼊空间中的(D − 1)维超平⾯。
有两种不同的⽅法确定条件概率分布p(Ck∣x)p \left( \mathcal { C } _ { k } | \boldsymbol { x } \right)p(Ck∣x)
- 判别式模型:直接对条件概率分布建模,例如把条件概率分布表⽰为参数模型,然后使⽤训练集来最优化参数。
- 生成式模型:对类条件概率密度p(x∣Ck)p ( \boldsymbol { x } | \mathcal { C } _ { k } )p(x∣Ck)以及类的先验概率分布p(Ck)p\left(\mathcal{C}_{k}\right)p(Ck)建模
判别函数
二分类
定义线性判别函数为
(1)y(x)=wTx+w0y(\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)wTx∥w∥=−w0∥w∥\frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|}=-\frac{w_{0}}{\|\boldsymbol{w}\|} \tag{2} ∥w∥wTx=−∥w∥w0(2)
其中wTx∥w∥\frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|}∥w∥wTx表示原点到平面的距离,因为wTxw^TxwTx等于上图中的||w|| * ab * sinΘ等于||w|| * ac,所以wTx∥w∥\frac{\boldsymbol{w}^{T} \boldsymbol{x}}{\|\boldsymbol{w}\|}∥w∥wTx等于ac。
定义点x到决策⾯的垂直距离r,考虑任意⼀点x和它在决策⾯上的投影x⊥,我们有
(3)x=x⊥+rw∥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个类别,可分为两种分类器。
- 1对其他:考虑使⽤K − 1个分类器,每个分类器⽤来解决⼀个⼆分类问题,把属于类别CkC_kCk和不属于那个类别的点分开。这种⽅法产⽣了输⼊空间中⽆法分类的区域。
- 1对1:引⼊ K(K−1)2\frac{K(K-1)}{2}2K(K−1)个⼆元判别函数,对每⼀对类别都设置⼀个判别函数。这也会造成输⼊空间中的⽆法分类的区域。
通过引⼊⼀个K类判别函数,我们可以避免这些问题。这个K类判别函数由K个线性函数组成,形式为
(5)yk(x)=wkTx+wk0y _ { k } ( \boldsymbol { x } ) = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { x } + w _ { k 0 } \tag{5} yk(x)=wkTx+wk0(5)
然对于点x, 如果对于所有的j≠kj\neq kj̸=k都有yk(x)>yj(x)y _ { k } ( \boldsymbol { x } ) > y _ { j } ( \boldsymbol { x } )yk(x)>yj(x),那么就把它分到CkC_kCk,于 是 类别Ck和Cj之间的决策⾯为yk(x)=yj(x)y _ { k } ( x ) = y _ { j } ( x )yk(x)=yj(x),此时x代入决策面,若大于0(yk(x)>yj(x)y _ { k } ( \boldsymbol { x } ) > y _ { j } ( \boldsymbol { x } )yk(x)>yj(x))则为CkC_kCk,并且对应于⼀个(D − 1)维超平⾯,形式为
(6)(wk−wj)Tx+(wk0−wj0)=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~Tx~\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=(wk0,wkT)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,xT)T(1, x^T)^T(1,xT)T,考虑⼀个训练数据集{xn, tn},其中n = 1, . . . , N,然后定义⼀个矩阵T ,它的第n⾏是向量tnTt^T_ntnT。平⽅和误差函数可以写成
(8)ED(W~)=12Tr{(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~TX~)−1X~TT=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~Tx~=TT(X~†)Tx~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=wTxy = \boldsymbol { w } ^ { T } \boldsymbol { x } \tag{11} y=wTx(11)
把y≥−w0y ≥ −w_0y≥−w0的样本分为C1C_1C1类,把其余的样本分为C2C_2C2类,在降维之后希望类别之间的距离尽量大,假设两类的均值向量为
(12)m1=1N1∑n∈C1xn,m2=1N2∑n∈C2xn\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)m2−m1=wT(m2−m1)m _ { 2 } - m _ { 1 } = \boldsymbol { w } ^ { T } \left( \boldsymbol { m } _ { 2 } - \boldsymbol { m } _ { 1 } \right) \tag{13} m2−m1=wT(m2−m1)(13)
其中mk=wTmkm _ { k } = \boldsymbol { w } ^ { T } \boldsymbol { m } _ { k }mk=wTmk表示CkC_kCk的均值,限制∑iwi2=1\sum _ { i } w _ { i } ^ { 2 } = 1∑iwi2=1
Fisher提出的思想是最⼤化⼀个函数,这个函数能够让类均值的投影分开得较⼤,同时让每个类别内部的⽅差较⼩,从⽽最⼩化了类别的重叠。
类内方差为
(14)sk2=∑n∈Ck(yn−mk)2s _ { 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)=(m2−m1)2s12+s22J ( \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)=wTSBwwTSWwJ ( \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)SB=(m2−m1)(m2−m1)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)SW=∑n∈C1(xn−m1)(xn−m1)T+∑n∈C2(xn−m2)(xn−m2)TS _ { 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)取最大值时
(wTSBw)SWw=(wTSWw)SBw\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的⼤⼩,只关⼼它的⽅向,因此我们可以忽略标量因⼦(wTSBw)\left( \boldsymbol { w } ^ { T } \boldsymbol { S } _ { B } \boldsymbol { w } \right)(wTSBw)和(wTSWw)\left( \boldsymbol { w } ^ { T } \boldsymbol { S } _ { W } \boldsymbol { w } \right)(wTSWw),有
(19)w∝SW−1(m2−m1)\boldsymbol { w } \propto \boldsymbol { S } _ { W } ^ { - 1 } \left( \boldsymbol { m } _ { 2 } - \boldsymbol { m } _ { 1 } \right) \tag{19} w∝SW−1(m2−m1)(19)
多分类的Fisher判别函数
考虑Fisher判别函数对于K > 2个类别的推⼴。引⼊D′ > 1个线性“特征”yk=wkTxy _ { k } = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { x }yk=wkTx,yky _ { k }yk按照行排列,得到
(20)y=WTx\boldsymbol { y } = \boldsymbol { W } ^ { T } \boldsymbol { x } \tag{20} y=WTx(20)
类内协⽅差矩阵公式推⼴到K类,有
(21)SW=∑k=1KSkS _ { W } = \sum _ { k = 1 } ^ { K } S _ { k } \tag{21}SW=k=1∑KSk(21)
(22)Sk=∑n∈Ck(xn−mk)(x−mk)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)ST=∑n=1N(xn−m)(xn−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=1N∑n=1Nxn=1N∑k=1KNkmkm = \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)ST=SW+SB\boldsymbol { S } _ { T } = \boldsymbol { S } _ { W } + \boldsymbol { S } _ { B } \tag{25} ST=SW+SB(25)
(26)SB=∑k=1KNk(mk−m)(mk−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)SW=∑k=1K∑n∈Ck(yn−μk)(yn−μk)TSB=∑k=1KNk(μk−μ)(μk−μ)Tμk=1Nk∑n∈Ckyn,μ=1N∑k=1KNkμ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{(WTSWW)−1(WTSBW)}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(wTϕ(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<0f ( 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,会遇到函数不连续的情况,无法求解。感知机准则考虑到了另外一个误差函数,按照之前的表示方法所有的模式都应满⾜wTϕ(xn)tn>0\boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) t _ { n } > 0wTϕ(xn)tn>0。正确分类时,误差为0,误分类时,它试着最⼩化−wTϕ(xn)tn- \boldsymbol { w } ^ { T } \boldsymbol { \phi } \left( \boldsymbol { x } _ { n } \right) t _ { n }−wTϕ(xn)tn。感知器准则为
(31)EP(w)=−∑n∈MwTϕntnE _ { 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)
利用随机梯度下降优化上述误差函数。
感知机学习的特点:
- 感知器学习规则并不保证在每个阶段都会减⼩整体的误差函数。
- 达到收敛状态所需的步骤数量可能⾮常⼤,并且在实际应⽤中,在达到收敛状态之前,我们不能够区分不可分问题与缓慢收敛问题。
- 数据集是线性可分的,也可能有多个解,并且最终哪个解会被找到依赖于参数的初始化以及数据点出现的顺序。
- 感知器算法⽆法提供概率形式的输出,也⽆法直接推⼴到K > 2个类别的情形。
概率⽣成式模型
这⾥我们会使⽤⽣成式(也就是贝叶斯方法)的⽅法。这种⽅法中,我们对类条件概率密度p(x∣Ck)p(x | C_k)p(x∣Ck)和类先验概率分布p(Ck)p(C_k)p(Ck)建模,然后使⽤这两个概率密度通过贝叶斯定理计算后验概率密度p(Ck∣x)p(C_k | x)p(Ck∣x)。
考虑⼆分类的情形。类别C1C_1C1的后验概率可以写成
(32)p(C1∣x)=p(x∣C1)p(C1)p(x∣C1)p(C1)+p(x∣C2)p(C2)=11+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=lnp(x∣C1)p(C1)p(x∣C2)p(C2)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)是xxx的线性函数的情形。这种情况下,后验概率由⼀个通⽤的线性模型确定。
对于K > 2个类别的情形,我们有
(34)p(Ck∣x)=p(x∣Ck)p(Ck)∑jp(x∣Cj)p(Cj)=exp(ak)∑jexp(aj)\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≠kj \neq kj̸=k都有ak≫aja _ { k } \gg a _ { j }ak≫aj,那么p(Ck∣x)≃1Hp(Cj∣x)≃0p \left( \mathcal { C } _ { k } | \boldsymbol { x } \right) \simeq 1 \mathrm { H } p \left( \mathcal { C } _ { j } | \boldsymbol { x } \right) \simeq 0p(Ck∣x)≃1Hp(Cj∣x)≃0。
下面⾸先讨论连续输⼊变量x的情形,然后简短地讨论离散输⼊的情形。
连续输⼊
让我们假设类条件概率密度是⾼斯分布,然后求解后验概率的形式。⾸先,我们假定所有的类别的协⽅差矩阵相同。这样类别CkC_kCk的类条件概率为
(35)p(x∣Ck)=1(2π)D21∣Σ∣12exp{−12(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(C1∣x)=σ(wTx+w0)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)w0=−12μ1TΣ−1μ1+12μ2TΣ−1μ2+lnp(C1)p(C2)\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(Ck∣x)p(C_k | x)p(Ck∣x)为常数的决策⾯,因此由x的线性函数给出,从⽽决策边界在输⼊空间是线性的。先验概率密度p(Ck)p(C_k)p(Ck)只出现在偏置参数w0中,因此先验的改变的效果是平移决策边界。
对于K>2,有
(38)ak(x)=wkTx+wk0a _ { k } ( \boldsymbol { x } ) = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { x } + w _ { k 0 } \tag{38} ak(x)=wkTx+wk0(38)
(39)wk=Σ−1μk\boldsymbol { w } _ { k } = \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { k } \tag{39} wk=Σ−1μk(39)
(40)wk0=−12μkTΣ−1μk+lnp(Ck)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(Ck)p \left( \mathcal { C } _ { k } \right)p(Ck)。
对于二分类,令p(C1)=πp \left( \mathcal { C } _ { 1 } \right) = \pip(C1)=π,有
(41)p(xn,C1)=p(C1)p(xn∣C1)=πN(xn∣μ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(xn,C2)=p(C2)p(xn∣C2)=(1−π)N(xn∣μ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=1N[πN(xn∣μ1,Σ)]tn[(1−π)N(xn∣μ2,Σ)]1−tnp ( \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=1N{tnlnπ+(1−tn)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)π=1N∑n=1Ntn=N1N=N1N1+N2\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=1N1∑n=1Ntnxn\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=1N2∑n=1N(1−tn)xn\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)
- π的最⼤似然估计就是类别C1的点所占的⽐例
- μ1\boldsymbol { \mu }_1μ1为类别C1的输⼊向量xn的均值。
- μ2\boldsymbol { \mu }_2μ2为类别C2的输⼊向量xn的均值。
考虑协⽅差矩阵Σ的最⼤似然解。
(48)−12∑n=1Ntnln∣Σ∣−12∑n=1Ntn(xn−μ1)TΣ−1(xn−μ1)−12∑n=1N(1−tn)ln∣Σ∣−12∑n=1N(1−tn)(xn−μ2)TΣ−1(xn−μ2)=−N2ln∣Σ∣−N2Tr{Σ−1S}\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=N1NS1+N2NS2S1=1N1∑n∈C1(xn−μ1)(xn−μ1)TS2=1N2∑n∈C2(xn−μ2)(xn−μ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∣Ck)=∏i=1Dμkixi(1−μki)1−xip ( \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)
每一个维度即为一个特征值xix_ixi,并且对应于每一个类别Ck,有均值μkiμ_{ki}μki
代入ak=lnp((x∣Ck)p(Ck))a _ { k } = \ln p \left( ( \boldsymbol { x } | \mathcal { C } _ { k } ) p \left( \mathcal { C } _ { k } \right) \right)ak=lnp((x∣Ck)p(Ck))有
(51)ak(x)=∑i=1D{xilnμki+(1−xi)ln(1−μki)}+lnp(Ck)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)定义的似然函数。这种⽅法代表了判别式训练的⼀种形式。判别式⽅法的⼀个优点是通常有更少的可调节参数需要确定。
固定基函数
恰当地选择⾮线性变换能够让后验概率的建模过程更简单。
logistic回归
类别C1的后验概率可以写成作⽤在特征向量φ的线性函数上的logistic sigmoid函数的形式,即
(52)p(C1∣ϕ)=y(ϕ)=σ(wTϕ)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 } + 12M(M+5)+1,这随着M的增长⽽以⼆次的⽅式增长。对于⼤的M值,直接使⽤logistic回归模型(判别式)有着很明显的优势。
我们现在使⽤最⼤似然⽅法来确定logistic回归模型的参数。为了完成这⼀点,我们要使⽤logistic sigmoid函数的导数,它可以很⽅便地使⽤sigmoid函数本⾝表⽰如下
(53)dσda=σ(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=1Nyntn{1−yn}1−tnp ( \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)=−lnp(t∣w)=−∑n=1N{tnlnyn+(1−tn)ln(1−yn)}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=1N(yn−tn)ϕ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(new)=w(old)−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=1N(wTϕn−tn)ϕn=ΦTΦw−ΦTtH=∇∇E(w)=∑n=1NϕnϕnT=Φ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(new)=w(old)−(ΦTΦ)−1{ΦTΦw(old)−ΦTt}=(ΦTΦ)−1ΦTtw^{(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=Φwold−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)
多类logistic回归
在我们对于多分类的⽣成式模型的讨论中,我们已经看到对于⼀⼤类概率分布来说,后验概率由特征变量的线性函数的softmax变换给出,即
(61)p(Ck∣ϕ)=yk(ϕ)=exp(ak)∑jexp(ak)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)
ak=wkTϕa _ { k } = \boldsymbol { w } _ { k } ^ { T } \boldsymbol { \phi } ak=wkTϕ
生成式方法通过求类条件概率密度和类先验概率,使用贝叶斯求出后验概率。这⾥,我们考虑使⽤最⼤似然⽅法直接确定这个模型中的参数{wk}。首先求出yk关于所有激活aj的导数
(62)∂yk∂aj=yk(Ikj−yj)\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∣w1,…,wK)=∏n=1N∏k=1Kp(Ck∣ϕn)tnk=∏n=1N∏k=1Kynktnkp ( \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(w1,…,wK)=−lnp(T∣w1,…,wK)=−∑n=1N∑k=1KtnklnynkE \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)∇wjE(w1,…,wK)=∑n=1N(ynj−tnj)ϕ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。
probit回归
对于由指数族分布描述的⼀⼤类的类条件概率分布,最终求出的后验类概率为作⽤在特征变量的线性函数上的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=wTφa = w^T φa=wTφ,且f(·)为激活函数。然后按照下⾯的⽅式设置⽬标值
(67){tn=1if an⩾θtn=0otherwise \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)=∫−∞ap(θ)dθf ( a ) = \int _ { - \infty } ^ { a } p ( \theta ) \mathrm { d } \theta \tag{68} f(a)=∫−∞ap(θ)dθ(68)
假设概率密度p(θ)是零均值、单位⽅差的⾼斯概率密度。对应的累积分布函数为
(69)Φ(a)=∫−∞aN(θ∣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π∫0aexp(−θ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)=12{1+erf(a2)}\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
- 对于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)=1Zf(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)df(z)dz∣z=z0=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)lnf(z)≃lnf(z0)−12A(z−z0)2A=−d2dz2lnf(z)∣z=z0\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(z0)exp{−A2(z−z0)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)=(A2π)12exp{−A2(z−z0)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)Zp ( \boldsymbol { z } ) = \frac { f ( \boldsymbol { z } ) } { Z }p(z)=Zf(z),在驻点处展开,我们有
(77)lnf(z)≃lnf(z0)−12(z−z0)TA(z−z0)\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=−∇∇lnf(z)∣z=z0\boldsymbol { A } = - \nabla \nabla \ln f \left. ( \boldsymbol { z } ) \right| _ { \boldsymbol { z } = \boldsymbol { z } _ { 0 } }A=−∇∇lnf(z)∣z=z0,按照前述方法取指数,归一化
(78)f(z)≃f(z0)exp{−12(z−z0)TA(z−z0)}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∣12(2π)M2exp{−12(z−z0)TA(z−z0)}=N(z∣z0,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回归
这⾥我们考虑使⽤拉普拉斯近似来处理贝叶斯logistic回归的问题
拉普拉斯近似
步骤
- 找后验概率分布的众数
- 调节⼀个以众数为中⼼的⾼斯分布
- 计算对数后验概率的⼆阶导数
由于我们寻找后验概率分布的⼀个⾼斯表⽰,我们把⾼斯先验写成⼀般的形式
(80)p(w)=N(w∣m0,S0)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=(t1,…,tN)T\mathbf { t } = \left( t _ { 1 } , \ldots , t _ { N } \right) ^ { T }t=(t1,…,tN)T ,后验两侧取对数,然后代⼊先验分布
(82)lnp(w∣t)=−12(w−m0)TS0−1(w−m0)+∑n=1N{tnlnyn+(1−tn)ln(1−yn)}+const\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)
yn=σ(wTϕn)y _ { n } = \sigma \left( \boldsymbol { w } ^ { T } \boldsymbol { \phi } _ { n } \right)yn=σ(wTϕn),为了获得后验概率的⾼斯近似,我们⾸先最⼤化后验概率分布,得
到MAP(最⼤后验)解wMAP ,它定义了⾼斯分布的均值,协⽅差就是负对数似然函数的⼆阶导数矩阵的逆矩阵
(83)SN−1=−∇∇lnp(w∣t)=S0−1+∑n=1Nyn(1−yn)ϕnϕnTS _ { 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∣wMAP,SN)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(C1∣ϕ,t)=∫p(C1∣ϕ,w)p(w∣t)dw≃∫σ(wTϕ)q(w)dwp \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)σ(wTϕ)=∫δ(a−wTϕ)σ(a)da\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函数。
PRML第四章之分类的线性模型相关推荐
- 机器学习实战——第四章(分类):朴素贝叶斯
前言 首先感谢博主:Jack-Cui 主页:http://blog.csdn.net/c406495762 朴素贝叶斯博文地址: https://blog.csdn.net/c406495762/ar ...
- 《计算机网络》第四章 网络层 ——分类的IP 划分子网 构成超网 路由选择协议 路由器构成
- 数据挖掘导论学习总结——第四章
第四章:分类与预测 分类方法用于预测数据对象的离散类别,预测则用于预测数据对象的梁旭取值,例如我们可以构造一个分类模型来对银行贷款进行风险评估,也可以简历一个预测模型以利用顾客收入与职业预测其可能用于 ...
- 管理系统中计算机应用第四章重点,管理系统中计算机应用课堂笔记第四章(4)...
管理系统中计算机应用课堂笔记第四章(4) 分类:自考 | 更新时间:2016-07-08| 来源:转载 这个分析和抽象工作可分以下三步进行: 5.2.1数据流程图的绘制 数据流程图既是对原系统进行分析 ...
- 深度学习 第3章线性分类 实验四 pytorch实现 Logistic回归 上篇
目录: 第3章 线性分类 3.1 基于Logistic回归的二分类任务 3.1.1 数据集构建 3.1.2 模型构建 1. Logistic函数 2. Logistic回归算子 3.1.3 损失函数 ...
- 第四章 遗传变异的分类
第四章 遗传变异的分类 主要为基因组测序比对相关知识,部分内容作笔记自查使用.如有错误或遗漏还请海涵,可评论或邮箱联系. 最后修改时间:2020-05-12 15:07:57 星期二 遗传变异的来源 ...
- 第四章第九节数据资产盘点-数据资产目录分类
第四章第九节数据资产盘点-数据资产目录分类 在形成数据资产清单以后,如何将清单进行分类?关于数据资产目录的分类,有几种方法,一是参考行业数据分类框架.二是参考监管数据分类.三是根据数据管理实践,结合企 ...
- 深度学习 第3章线性分类 实验四 pytorch实现 Softmax回归 鸢尾花分类任务 下篇
目录: 第3章 线性分类 3.3 实践:基于Softmax回归完成鸢尾花分类任务 3.3.1 数据处理 3.3.1.1 数据集介绍 3.3.1.2 数据清洗 1. 缺失值分析 2. 异常值处理 3.3 ...
- 机器学习实战 基于_机器学习实战:基于Scikit-Learn和TensorFlow—第四章笔记
机器学习实战:基于Scikit-Learn和TensorFlow---第四章笔记 一.学习目标 之前用了那么多的机器学习的模型,但是它们各自的训练算法在很大程度上还是一个黑匣子,我们对对系统内部的实现 ...
- Scikit-learn 秘籍 第四章 使用 scikit-learn 对数据分类
第四章 使用 scikit-learn 对数据分类 作者:Trent Hauck 译者:飞龙 协议:CC BY-NC-SA 4.0 分类在大量语境下都非常重要.例如,如果我们打算自动化一些决策过程,我 ...
最新文章
- 终于来啦!国内首个3D视觉创新应用竞赛|三维重建技术
- Thymeleaf 学习笔记 (5)
- 不重启JVM,替换掉已经加载的类,偷天换日?
- 【Vegas原创】ASP 0131 不允许父路径的解决
- ddr3服务器内存条维修,详解服务器中内存故障的优质解决方案
- 清理日志文件尝试有效哦
- 实验8.1 链表类的定义与实现
- 安装oracle11g未找到文件WFMLRSVCApp.ear文件
- 2万字总结《MybatisPlus—为简化开发而生》
- 2020年华工计算机应用基础随堂作业,《计算机应用基础》随堂练习-2020年华工网络教育.docx...
- DataNucleus之JDO操作演示样例
- 如何制作poster以及下载poster模板
- 屏幕坏点测试网页版(无需安装)
- led伏安特性实验误差分析_电阻元件的伏安特性 电阻元件的伏安特性实验结果误差分析...
- 属性动画实现卫星菜单效果
- 如何用万用表识别三极管的管型和管脚
- 微信公众平台接口程序搜索音乐
- product相关函数(excel)
- 思科ASA防火墙:内网telnet远程控制防火墙 外网ssh远程控制防火墙
- 2021年计算机视觉工程师学习路线
热门文章
- 代谢组与微生物联合分析实战
- 小众却非常好用的文件同步备份工具-FileYee
- 软件工程经济学课后答案
- 骑士CMS模版注入+文件包含getshell漏洞复现
- python 自动下载文件_Python自动下载文件正确操作方法
- 冒泡法排序c语言代码大全,C语言实现选择排序、冒泡排序和快速排序的代码示例...
- Windows以下系统蓝屏cmd一句话命令
- 【APICloud入门教程】教你从零使用模块及多端组件
- UE4官方文档学习笔记材质篇——分层材质
- UE4官方文档踩坑:FPS示例2.7 UCameraComponent