PRML学习总结(4)——Linear Models for Classification
在这一章中主要是按照第一章中描述的三种建模方式进行介绍
4.1 Discriminant Functions
判别函数是⼀个以向量 x \mathbf x x为输⼊,把它分配到 K K K个类别中的某⼀个类别(记作 C k \mathcal { C } _ { k } Ck)的函数。本章中,我们把我们的精⼒集中于线性判别函数(linear discriminant function),即那些决策⾯是超平⾯的判别函数。为了简化讨论,我们⾸先考虑两类的情形,然后把讨论扩展到 K > 2 K > 2 K>2的情形。
4.1.1 Two classes
y
(
x
)
=
w
T
x
+
w
0
y ( \mathbf { x } ) = \mathbf { w } ^ { \mathrm { T } } \mathbf { x } + w _ { 0 }
y(x)=wTx+w0当
y
(
x
)
⩾
0
y ( x ) \geqslant 0
y(x)⩾0时,
x
\mathbf x
x属于
C
1
C _ { 1 }
C1,反之。
x
A
\mathbf { x } _ { \mathrm { A } }
xA和
x
B
\mathbf { x } _ { \mathrm { B } }
xB是
y
(
x
)
=
0
y ( \mathbf { x } ) = 0
y(x)=0上的点,那么可得
w
T
(
x
A
−
x
B
)
=
0
\mathbf { w } ^ { \mathrm { T } } \left( \mathbf { x } _ { \mathrm { A } } - \mathbf { x } _ { \mathrm { B } } \right) = 0
wT(xA−xB)=0因此
w
\mathbf w
w与决策面内的任何向量都正交,所以
w
\mathbf w
w确定了决策面的方向。如果
x
\mathbf x
x在决策面上,那么原点都决策面的距离为
w
T
x
∥
w
∥
=
−
w
0
∥
w
∥
\frac { \mathbf { w } ^ { \mathrm { T } } \mathbf { x } } { \| \mathbf { w } \| } = - \frac { w _ { 0 } } { \| \mathbf { w } \| }
∥w∥wTx=−∥w∥w0可以发现
w
0
w _ { 0 }
w0决定了决策面的距离
4.1.2 Multiple classes
1) one-versus-the-rest classifier
考虑使⽤
K
−
1
K-1
K−1个分类器,每个分类器⽤来解决⼀个⼆分类问题,把属于类别
C
k
\mathcal { C } _ { k }
Ck和不属于那个类别的点分开。都是这种情况会出现不可分的区域
2) one-versus-one classifier
对每⼀对类别都设置⼀个判别函数。
以上两种方式都会存在不可分的区域,通过引⼊⼀个
K
K
K类判别函数,我们可以避免这些问题。
y
k
(
x
)
=
w
k
T
x
+
w
k
0
y _ { k } ( \mathbf { x } ) = \mathbf { w } _ { k } ^ { \mathrm { T } } \mathbf { x } + w _ { k 0 }
yk(x)=wkTx+wk0这样对于某个点
x
\mathbf x
x当
y
k
(
x
)
>
y
j
(
x
)
y _ { k } ( \mathbf { x } ) > y _ { j } ( \mathbf { x } )
yk(x)>yj(x) for all
j
≠
k
j \neq k
j̸=k,属于
C
k
\mathcal { C } _ { k }
Ck类。这样的判别函数的决策区域总是单连通的,并且是凸的。
我们现在介绍三种学习线性判别函数的参数的⽅法,即基于最⼩平⽅的⽅法、Fisher线性判别函数,以及感知器算法。
4.1.3 Least squares for classification
可以像第三章中介绍的利用LS求参数,一个
K
K
K分类问题,其目标向量
t
\mathbf t
t是"1of
K
K
K"二元编码。那么对于每个类
y
k
(
x
)
=
w
k
T
x
+
w
k
0
y _ { k } ( \mathbf { x } ) = \mathbf { w } _ { k } ^ { \mathrm { T } } \mathbf { x } + w _ { k 0 }
yk(x)=wkTx+wk0使用一种更加简洁的表达方式
y
(
x
)
=
W
~
T
x
~
\mathbf { y } ( \mathbf { x } ) = \widetilde { \mathbf { W } } ^ { \mathrm { T } } \widetilde { \mathbf { x } }
y(x)=W
Tx
其中
W
~
\widetilde { \mathbf { W } }
W
的第
k
k
k列为
w
~
k
=
(
w
k
0
,
w
k
T
)
T
\widetilde { \mathbf { w } } _ { k } = \left( w _ { k 0 } , \mathbf { w } _ { k } ^ { \mathrm { T } } \right) ^ { \mathrm { T } }
w
k=(wk0,wkT)T,
X
~
\widetilde { \mathbf { X } }
X
为
(
1
,
x
T
)
T
\left( 1 , \mathbf { x } ^ { \mathrm { T } } \right) ^ { \mathrm { T } }
(1,xT)T。那么对于一个新的
x
\mathbf x
x赋予
y
k
=
w
~
k
T
x
~
y _ { k } = \tilde { \mathbf { w } } _ { k } ^ { \mathrm { T } } \widetilde { \mathbf { x } }
yk=w~kTx
最大的下标所表示的那个类。
我们可以利用最小化平方和误差函数得到参数
E
D
(
W
~
)
=
1
2
Tr
{
(
X
~
W
~
−
T
)
T
(
X
~
W
~
−
T
)
}
E _ { D } ( \widetilde { \mathbf { W } } ) = \frac { 1 } { 2 } \operatorname { Tr } \left\{ ( \widetilde { \mathbf { X } } \widetilde { \mathbf { W } } - \mathbf { T } ) ^ { \mathrm { T } } ( \widetilde { \mathbf { X } } \widetilde { \mathbf { W } } - \mathbf { T } ) \right\}
ED(W
)=21Tr{(X
W
−T)T(X
W
−T)}
W
~
=
(
X
~
T
X
~
)
−
1
X
~
T
T
=
X
~
†
T
\widetilde { \mathbf { W } } = \left( \tilde { \mathbf { X } } ^ { \mathrm { T } } \widetilde { \mathbf { X } } \right) ^ { - 1 } \widetilde { \mathbf { X } } ^ { \mathrm { T } } \mathbf { T } = \widetilde { \mathbf { X } } ^ { \dagger } \mathbf { T }
W
=(X~TX
)−1X
TT=X
†T对于最小平方解,如果对于训练数据集中每个目标向量有
a
T
t
n
+
b
=
0
\mathbf { a } ^ { \mathrm { T } } \mathbf { t } _ { n } + b = 0
aTtn+b=0那么对于任意值
x
\mathbf x
x都有
a
T
y
(
x
)
+
b
=
0
\mathbf { a } ^ { \mathrm { T } } \mathbf { y } ( \mathbf { x } ) + b = 0
aTy(x)+b=0这个跟之前引入核函数求和为1的地方很类似,这个也可以通过带入后很容易求得。这个性质的意义在于,如果我们使用了1-of-K的编码方式,那么
y
(
x
)
\mathbf { y } ( \mathbf { x } )
y(x)的求和应该也是1,但是仅仅是加和为1,而不一定约束到
(
0
,
1
)
(0,1)
(0,1)之间,因此还不是概率的形式。
最⼩平⽅⽅法对于判别函数的参数给出了精确的解析解。但是,即使作为⼀个判别函数(我们使⽤它直接进⾏预测,抛弃掉所有的概率的表⽰),它仍然有很严重的问题。我们已经看到,最⼩平⽅解对于离群点缺少鲁棒性,这⼀点对于分类问题也是⼀样的,如图4.4所⽰。这⾥,我们看到,右图中的额外的数据点对决策边界的位置产⽣了极⼤的改变,即使这也点能够被左图中的原始的决策边界正确地分类。平⽅和误差函数惩罚了“过于正确”的预测,因为他们在正确的⼀侧距离决策边界太远了。在第7.1.2节,我们会考虑⼏种其他的⽤于分类的误差函数,我们会看到这些误差函数不会有这种问题。
但是,最⼩平⽅⽅法的问题实际上⽐简单的缺乏鲁棒性更加严重,如图4.5所⽰。这幅图给出了⼆维空间
(
x
1
;
x
2
)
(x_1; x_2)
(x1;x2)中,来⾃三个类别的⼈⼯⽣成的数据。线性决策边界能够将数据点完美地分开。实际上,在本章的后⾯将要介绍的逻辑回归⽅法可以给出⼀个令⼈满意的解,如右侧的图所⽰。然⽽,最⼩平⽅⽅法给出的结果相当差,输⼊空间中只有⼀个相当⼩的区域被分给了绿⾊的类别。
最⼩平⽅⽅法的失败并不让我们感觉惊讶。回忆⼀下,最⼩平⽅⽅法对应于⾼斯条件分布假设下的最⼤似然法,⽽⼆值⽬标向量的概率分布显然不是⾼斯分布。通过使⽤更恰当的概率模型,我们会得到性质⽐最⼩平⽅⽅法更好的分类⽅法。但是现在,我们继续研究另外的⾮概率⽅法来设置线性分类模型中的参数。
4.1.4 Fisher’s linear discriminant
我们可以从维度降低的⾓度考察线性分类模型。⾸先考虑⼆分类的情形。假设我们有⼀个 D D D维输⼊向量 x \mathbf x x,然后使⽤下式投影到⼀维 y = w T x y = \mathbf { w } ^ { \mathrm { T } } \mathbf { x } y=wTx如果我们在 y y y上设置⼀个阈值,然后把 y ⩾ − w 0 y \geqslant - w _ { 0 } y⩾−w0的样本分为 C 1 \mathcal { C } _ { 1 } C1类,把其余的样本分为 C 2 \mathcal { C } _ { 2 } C2类,那么我们就得到了之前讨论的标准的线性分类器。通常来说,向⼀维投影会造成相当多的信息丢失,因此在原始的 D D D维空间能够完美地分离开的样本可能在⼀维空间中会相互重叠。但是,通过调整权向量 w \mathbf w w,我们可以选择让类别之间分开最⼤的⼀个投影。⾸先,考虑⼀个⼆分类问题,这个问题中有 C 1 \mathcal { C } _ { 1 } C1类的 N 1 N_1 N1个点以及 C 2 \mathcal { C } _ { 2 } C2类的 N 2 N_2 N2个点。因此两类的均值向量为 m 1 = 1 N 1 ∑ n ∈ C 1 x n , m 2 = 1 N 2 ∑ n ∈ C 2 x n \mathbf { m } _ { 1 } = \frac { 1 } { N _ { 1 } } \sum _ { n \in \mathcal { C } _ { 1 } } \mathbf { x } _ { n } , \quad \mathbf { m } _ { 2 } = \frac { 1 } { N _ { 2 } } \sum _ { n \in \mathcal { C } _ { 2 } } \mathbf { x } _ { n } m1=N11n∈C1∑xn,m2=N21n∈C2∑xn为了让各类别尽可能分开,则应使下式最大 m 2 − m 1 = w T ( m 2 − m 1 ) m _ { 2 } - m _ { 1 } = \mathbf { w } ^ { \mathrm { T } } ( \mathbf { m _ { 2 } } - \mathbf { m _ { 1 } } ) m2−m1=wT(m2−m1)其中 m k = w T m k m _ { k } = \mathbf { w } ^ { \mathrm { T } } \mathbf { m } _ { k } mk=wTmk然而上式,如果对 w w w不加约束的话,那么可以无穷大,因此 ∑ i w i 2 = 1 \sum _ { i } w _ { i } ^ { 2 } = 1 ∑iwi2=1。不仅如此,我们还需要考虑让各个类内的方差 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 } sk2=∑n∈Ck(yn−mk)2最小,因此 J ( w ) = ( m 2 − m 1 ) 2 s 1 2 + s 2 2 J ( \mathbf { w } ) = \frac { \left( m _ { 2 } - m _ { 1 } \right) ^ { 2 } } { s _ { 1 } ^ { 2 } + s _ { 2 } ^ { 2 } } J(w)=s12+s22(m2−m1)2 J ( w ) = w T S B w w T S W w J ( \mathbf { w } ) = \frac { \mathbf { w } ^ { \mathrm { T } } \mathbf { S } _ { \mathrm { B } } \mathbf { w } } { \mathbf { w } ^ { \mathrm { T } } \mathbf { S } _ { \mathrm { W } } \mathbf { w } } J(w)=wTSWwwTSBw其中 S B = ( m 2 − m 1 ) ( m 2 − m 1 ) T \mathbf { S } _ { \mathrm { B } } = \left( \mathbf { m } _ { 2 } - \mathbf { m } _ { 1 } \right) \left( \mathbf { m } _ { 2 } - \mathbf { m } _ { 1 } \right) ^ { \mathrm { T } } SB=(m2−m1)(m2−m1)T 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 \mathbf { S } _ { \mathrm { W } } = \sum _ { n \in \mathcal { C } _ { 1 } } \left( \mathbf { x } _ { n } - \mathbf { m } _ { 1 } \right) \left( \mathbf { x } _ { n } - \mathbf { m } _ { 1 } \right) ^ { \mathrm { T } } + \sum _ { n \in \mathcal { C } _ { 2 } } \left( \mathbf { x } _ { n } - \mathbf { m } _ { 2 } \right) \left( \mathbf { x } _ { n } - \mathbf { m } _ { 2 } \right) ^ { \mathrm { T } } SW=n∈C1∑(xn−m1)(xn−m1)T+n∈C2∑(xn−m2)(xn−m2)T可以得到取最大值的条件为 ( 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 ∝ S W − 1 ( m 2 − m 1 ) \boldsymbol { w } \propto \boldsymbol { S } _ { W } ^ { - 1 } \left( \boldsymbol { m } _ { 2 } - \boldsymbol { m } _ { 1 } \right) w∝SW−1(m2−m1)上式称为Fisher linear discriminant。虽然严格来说它并不是⼀个判别函数,⽽是对于数据向⼀维投影的⽅向的⼀个具体选择。然⽽,投影的数据可以接下来被⽤于构建判别函数,构建的⽅法为:选择⼀个阈值 y 0 y _ { 0 } y0,使得当 y ( x ) ⩾ y 0 y ( \mathbf { x } ) \geqslant y _ { 0 } y(x)⩾y0时,我们把数据点分到 C 1 C _ { 1 } C1,否则我们把数据点分到 C 2 C _ { 2 } C2。例如,我们可以使⽤⾼斯概率分布对类条件概率密度 p ( y ∣ C k ) p \left( y | \mathcal { C } _ { k } \right) p(y∣Ck)建模,然后使⽤1.2.4节的⽅法通过最⼤似然⽅法找到⾼斯分布的参数值。找到投影类别的⾼斯近似之后,1.5.1节的⽅法给出了最优的阈值表达式。我们注意到 y = w T x y = \mathbf { w } ^ { \mathrm { T } } \mathbf { x } y=wTx是⼀组随机变量的和,因此根据中⼼极限定理,我们可以做出⾼斯分布的假设。
4.1.5 Relation to least squares
最⼩平⽅⽅法确定线性判别函数的⽬标是使模型的预测尽可能地与⽬标值接近。相
反,Fisher判别准则的⽬标是使输出空间的类别有最⼤的区分度。考察⼀下这两种⽅法之间的关系是很有趣的。特别地,我们会证明,对于⼆分类问题,Fisher准则可以看成最⼩平⽅的⼀个特例。
⽬前为⽌,我们已经考虑了⽬标变量的“1-of-K”表⽰⽅法。然⽽,如果我们使⽤⼀种稍微不同的表达⽅法,那么权值的最⼩平⽅解就会变得等价于Fisher解(Duda and Hart, 1973)。特别地,我们让属于
C
1
C _ { 1 }
C1的⽬标值等于
N
/
N
1
N / N _ { 1 }
N/N1 ,其中
N
1
N _ { 1 }
N1是类别
C
1
C _ { 1 }
C1的模式的数量,N是总的模式数量。这个⽬标值近似于类别C1的先验概率的导数。对于类别
C
2
C _ { 2 }
C2,我们令⽬标值等于
−
N
/
N
2
-N / N _ { 2 }
−N/N2,其中
N
2
N _ { 2 }
N2是类别
C
2
C _ { 2 }
C2的模式的数量。
E
=
1
2
∑
n
=
1
N
(
w
T
x
n
+
w
0
−
t
n
)
2
E = \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left( \mathbf { w } ^ { \mathrm { T } } \mathbf { x } _ { n } + w _ { 0 } - t _ { n } \right) ^ { 2 }
E=21n=1∑N(wTxn+w0−tn)2对
w
0
w _ { 0 }
w0和
w
\mathbf w
w求导
∑
n
=
1
N
(
w
T
x
n
+
w
0
−
t
n
)
=
0
∑
n
=
1
N
(
w
T
x
n
+
w
0
−
t
n
)
x
n
=
0
\begin{aligned} \sum _ { n = 1 } ^ { N } \left( \mathbf { w } ^ { \mathrm { T } } \mathbf { x } _ { n } + w _ { 0 } - t _ { n } \right) & = 0 \\ \sum _ { n = 1 } ^ { N } \left( \mathbf { w } ^ { \mathrm { T } } \mathbf { x } _ { n } + w _ { 0 } - t _ { n } \right) \mathbf { x } _ { n } & = 0 \end{aligned}
n=1∑N(wTxn+w0−tn)n=1∑N(wTxn+w0−tn)xn=0=0可得
w
0
=
−
w
T
m
w _ { 0 } = - \mathbf { w } ^ { \mathrm { T } } \mathbf { m }
w0=−wTm其中
m
=
1
N
∑
n
=
1
N
x
n
=
1
N
(
N
1
m
1
+
N
2
m
2
)
\mathbf { m } = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } \mathbf { x } _ { n } = \frac { 1 } { N } \left( N _ { 1 } \mathbf { m } _ { 1 } + N _ { 2 } \mathbf { m } _ { 2 } \right)
m=N1n=1∑Nxn=N1(N1m1+N2m2)进而对
w
\mathbf w
w可得
(
S
W
+
N
1
N
2
N
S
B
)
w
=
N
(
m
1
−
m
2
)
\left( \mathbf { S } _ { \mathrm { W } } + \frac { N _ { 1 } N _ { 2 } } { N } \mathbf { S } _ { \mathrm { B } } \right) \mathbf { w } = N \left( \mathbf { m } _ { 1 } - \mathbf { m } _ { 2 } \right)
(SW+NN1N2SB)w=N(m1−m2)最后可得
w
∝
S
W
−
1
(
m
2
−
m
1
)
\mathbf { w } \propto \mathbf { S } _ { \mathrm { W } } ^ { - 1 } ( \mathbf { m _ { 2 } } - \mathbf { m _ { 1 } } )
w∝SW−1(m2−m1)这个与Fisher的结果一致。由
w
0
=
−
w
T
m
w _ { 0 } = - \mathbf { w } ^ { \mathrm { T } } \mathbf { m }
w0=−wTm可知,当
y
(
x
)
=
w
T
(
x
−
m
)
>
0
y ( \mathbf { x } ) = \mathbf { w } ^ { \mathrm { T } } ( \mathbf { x } - \mathbf { m } ) > 0
y(x)=wT(x−m)>0时,属于
C
1
C _ { 1 }
C1类。
4.1.6 Fisher’s discriminant for multiple classes
我们现在考虑Fisher判别函数对于 K > 2 K > 2 K>2个类别的推⼴。我们假设输⼊空间的维度 D D D⼤于类别数量 K K K。接下来,我们引⼊ D ′ > 1 D^′ > 1 D′>1个线性“特征” y k = w k T x y _ { k } = \mathbf { w } _ { k } ^ { \mathrm { T } } \mathbf { x } yk=wkTx,其中 k = 1 , … , D ′ k = 1 , \ldots , D ^ { \prime } k=1,…,D′。为了⽅便,这些特征值可以聚集起来组成向量 y \mathbf { y } y。类似地,权向量 { w k } \left\{ \mathbf { w } _ { k } \right\} {wk}可以被看成矩阵 W \boldsymbol { W } W的列。因此 y = W T x \mathbf { y } = \mathbf { W } ^ { \mathrm { T } } \mathbf { x } y=WTx类内散度 S W = ∑ k = 1 K S k \mathbf { S } _ { \mathrm { W } } = \sum _ { k = 1 } ^ { K } \mathbf { S } _ { k } SW=k=1∑KSk其中 S k = ∑ n ∈ C k ( x n − m k ) ( x n − m k ) T m k = 1 N k ∑ n ∈ C k x n \begin{aligned} \mathbf { S } _ { k } & = \sum _ { n \in \mathcal { C } _ { k } } \left( \mathbf { x } _ { n } - \mathbf { m } _ { k } \right) \left( \mathbf { x } _ { n } - \mathbf { m } _ { k } \right) ^ { \mathrm { T } } \\ \mathbf { m } _ { k } & = \frac { 1 } { N _ { k } } \sum _ { n \in \mathcal { C } _ { k } } \mathbf { x } _ { n } \end{aligned} Skmk=n∈Ck∑(xn−mk)(xn−mk)T=Nk1n∈Ck∑xn类间散度 S B = ∑ k = 1 K N k ( m k − m ) ( m k − m ) T \mathbf { S } _ { \mathrm { B } } = \sum _ { k = 1 } ^ { K } N _ { k } \left( \mathbf { m } _ { k } - \mathbf { m } \right) \left( \mathbf { m } _ { k } - \mathbf { m } \right) ^ { \mathrm { T } } SB=k=1∑KNk(mk−m)(mk−m)T协⽅差矩阵被定义在原始的 x x x空间中。我们现在在投影的 D ′ D^′ D′维 y y y空间中定义类似的矩阵 S W = ∑ k = 1 K ∑ n ∈ C k ( y n − μ k ) ( y n − μ k ) T \boldsymbol { 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 } SW=k=1∑Kn∈Ck∑(yn−μk)(yn−μk)T S B = ∑ k = 1 K N k ( μ k − μ ) ( μ k − μ ) T S _ { B } = \sum _ { k = 1 } ^ { K } N _ { k } \left( \boldsymbol { \mu } _ { k } - \boldsymbol { \mu } \right) \left( \boldsymbol { \mu } _ { k } - \boldsymbol { \mu } \right) ^ { T } SB=k=1∑KNk(μk−μ)(μk−μ)T其中 μ k = 1 N k ∑ n ∈ C k y n , μ = 1 N ∑ k = 1 K N k μ k \boldsymbol { \mu } _ { k } = \frac { 1 } { N _ { k } } \sum _ { n \in \mathcal { C } _ { k } } \boldsymbol { y } _ { n } , \quad \boldsymbol { \mu } = \frac { 1 } { N } \sum _ { k = 1 } ^ { K } N _ { k } \boldsymbol { \mu } _ { k } μk=Nk1n∈Ck∑yn,μ=N1k=1∑KNkμk目标函数为 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\} J(W)=Tr{(WTSWW)−1(WTSBW)}权值由 S W − 1 S B \boldsymbol { S } _ { W } ^ { - 1 } \boldsymbol { S } _ { B } SW−1SB的特征向量确定,它对应了 D ′ D^′ D′个最⼤的特征值。通过这种⽅法我们不能够找到多于( K − 1 K- 1 K−1)个线性“特征”。
4.1.7 The perceptron algorithm
线性判别模型的另⼀个例⼦是Rosenblatt(1962)提出的感知器算法。它在模式识别算法的历史上占有重要的地位。它对应于⼀个⼆分类的模型,这个模型中,输⼊向量
x
\mathbf x
x⾸先使⽤⼀个固定的⾮线性变换得到⼀个特征向量
ϕ
(
x
)
\phi ( \mathrm { x } )
ϕ(x),这个特征向量然后被⽤于构造⼀个⼀般的线性模型,形式为
y
(
x
)
=
f
(
w
T
ϕ
(
x
)
)
y ( \mathbf { x } ) = f \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } ( \mathbf { x } ) \right)
y(x)=f(wTϕ(x))其中
f
(
a
)
=
{
+
1
,
a
⩾
0
−
1
,
a
<
0
f ( a ) = \left\{ \begin{array} { l l } { + 1 , } & { a \geqslant 0 } \\ { - 1 , } & { a < 0 } \end{array} \right.
f(a)={+1,−1,a⩾0a<0为了能用梯度下降的方式求解
w
\mathbf w
w,
E
P
(
w
)
=
−
∑
n
∈
M
w
T
ϕ
n
t
n
E _ { \mathrm { P } } ( \mathbf { w } ) = - \sum _ { n \in \mathcal { M } } \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } _ { n } t _ { n }
EP(w)=−n∈M∑wTϕntn其中
t
∈
{
−
1
,
+
1
}
t \in \{ - 1 , + 1 \}
t∈{−1,+1}。
M
\mathcal { M }
M表⽰所有误分类模式的集合。
w
(
τ
+
1
)
=
w
(
τ
)
−
η
∇
E
P
(
w
)
=
w
(
τ
)
+
η
ϕ
n
t
n
\mathbf { w } ^ { ( \tau + 1 ) } = \mathbf { w } ^ { ( \tau ) } - \eta \nabla E _ { \mathrm { P } } ( \mathbf { w } ) = \mathbf { w } ^ { ( \tau ) } + \eta \phi _ { n } t _ { n }
w(τ+1)=w(τ)−η∇EP(w)=w(τ)+ηϕntn感知器算法,往往是一个数据一个数据的更新权重。具体参见下图
即使数据集是线性可分的,也可能有多个解,并且最终哪个解会被找到依赖于参数的初始化以及数据点出现的顺序。此外,对于线性不可分的数据集,感知器算法永远不会收敛。除了学习算法的这些困难之处以外,感知器算法⽆法提供概率形式的输出,也⽆法直接推⼴到
K
>
2
K > 2
K>2个类别的情形。
4.2 Probabilistic Generative Models
直接建模 p ( x ∣ C k ) p \left( \mathbf { x } | \mathcal { C } _ { k } \right) p(x∣Ck)和 p ( C k ) p \left( \mathcal { C } _ { k } \right) p(Ck),之后计算 p ( C k ∣ x ) p \left( \mathcal { C } _ { k } | \mathbf { x } \right) p(Ck∣x)。同样考虑二分类问题 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 } | \mathbf { x } \right) & = \frac { p \left( \mathbf { x } | \mathcal { C } _ { 1 } \right) p \left( \mathcal { C } _ { 1 } \right) } { p \left( \mathbf { x } | \mathcal { C } _ { 1 } \right) p \left( \mathcal { C } _ { 1 } \right) + p \left( \mathbf { x } | \mathcal { C } _ { 2 } \right) p \left( \mathcal { C } _ { 2 } \right) } \\ & = \frac { 1 } { 1 + \exp ( - a ) } = \sigma ( a ) \end{aligned} p(C1∣x)=p(x∣C1)p(C1)+p(x∣C2)p(C2)p(x∣C1)p(C1)=1+exp(−a)1=σ(a)其中 a = ln p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 2 ) p ( C 2 ) a = \ln \frac { p \left( \mathbf { x } | \mathcal { C } _ { 1 } \right) p \left( \mathcal { C } _ { 1 } \right) } { p \left( \mathbf { x } | \mathcal { C } _ { 2 } \right) p \left( \mathcal { C } _ { 2 } \right) } a=lnp(x∣C2)p(C2)p(x∣C1)p(C1) σ ( a ) \sigma ( a ) σ(a)为logistic sigmoid函数。对于多分类 K > 2 K > 2 K>2 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 } | \mathbf { x } \right) & = \frac { p \left( \mathbf { x } | \mathcal { C } _ { k } \right) p \left( \mathcal { C } _ { k } \right) } { \sum _ { j } p \left( \mathbf { x } | \mathcal { C } _ { j } \right) p \left( \mathcal { C } _ { j } \right) } \\ & = \frac { \exp \left( a _ { k } \right) } { \sum _ { j } \exp \left( a _ { j } \right) } \end{aligned} p(Ck∣x)=∑jp(x∣Cj)p(Cj)p(x∣Ck)p(Ck)=∑jexp(aj)exp(ak)其中 a k = ln p ( x ∣ C k ) p ( C k ) a _ { k } = \ln p \left( \mathbf { x } | \mathcal { C } _ { k } \right) p \left( \mathcal { C } _ { k } \right) ak=lnp(x∣Ck)p(Ck)
4.2.1 Continuous inputs
我们将类条件分布建模为高斯分布
p
(
x
∣
C
k
)
=
1
(
2
π
)
D
/
2
1
∣
Σ
∣
1
/
2
exp
{
−
1
2
(
x
−
μ
k
)
T
Σ
−
1
(
x
−
μ
k
)
}
p \left( \mathbf { x } | \mathcal { C } _ { k } \right) = \frac { 1 } { ( 2 \pi ) ^ { D / 2 } } \frac { 1 } { | \boldsymbol { \Sigma } | ^ { 1 / 2 } } \exp \left\{ - \frac { 1 } { 2 } \left( \mathbf { x } - \boldsymbol { \mu } _ { k } \right) ^ { \mathrm { T } } \boldsymbol { \Sigma } ^ { - 1 } \left( \mathbf { x } - \boldsymbol { \mu } _ { k } \right) \right\}
p(x∣Ck)=(2π)D/21∣Σ∣1/21exp{−21(x−μk)TΣ−1(x−μk)}那么对于二分类
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 } | \mathbf { x } \right) & = \frac { p \left( \mathbf { x } | \mathcal { C } _ { 1 } \right) p \left( \mathcal { C } _ { 1 } \right) } { p \left( \mathbf { x } | \mathcal { C } _ { 1 } \right) p \left( \mathcal { C } _ { 1 } \right) + p \left( \mathbf { x } | \mathcal { C } _ { 2 } \right) p \left( \mathcal { C } _ { 2 } \right) } \\ & = \frac { 1 } { 1 + \exp ( - a ) } = \sigma ( a ) \end{aligned}
p(C1∣x)=p(x∣C1)p(C1)+p(x∣C2)p(C2)p(x∣C1)p(C1)=1+exp(−a)1=σ(a)
p
(
C
1
∣
x
)
=
σ
(
w
T
x
+
w
0
)
p \left( \mathcal { C } _ { 1 } | \mathbf { x } \right) = \sigma \left( \mathbf { w } ^ { \mathrm { T } } \mathbf { x } + w _ { 0 } \right)
p(C1∣x)=σ(wTx+w0)其中
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{aligned} \mathbf { w } & = \boldsymbol { \Sigma } ^ { - 1 } \left( \boldsymbol { \mu } _ { 1 } - \boldsymbol { \mu } _ { 2 } \right) \\ w _ { 0 } & = - \frac { 1 } { 2 } \boldsymbol { \mu } _ { 1 } ^ { \mathrm { T } } \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { 1 } + \frac { 1 } { 2 } \boldsymbol { \mu } _ { 2 } ^ { \mathrm { T } } \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { 2 } + \ln \frac { p \left( \mathcal { C } _ { 1 } \right) } { p \left( \mathcal { C } _ { 2 } \right) } \end{aligned}
ww0=Σ−1(μ1−μ2)=−21μ1TΣ−1μ1+21μ2TΣ−1μ2+lnp(C2)p(C1)我们看到,⾼斯概率密度的指数项中
x
\mathbf x
x的⼆次型消失了(这是因为我们假设类概率的协⽅差矩阵相同),从⽽得到了参数为
x
\mathbf x
x的线性函数的logistic sigmoid函数。我们假设类概率的协⽅差矩阵相同),从⽽得到了参数为
x
\mathbf x
x的线性函数的logistic sigmoid函数。图4.10给出了⼆维输⼊空间
x
\mathbf x
x的情况下的结果。最终求得的决策边界对应于后验概率
p
(
C
k
∣
x
)
p \left( \mathcal { C } _ { k } | \mathbf { x } \right)
p(Ck∣x)为常数的决策⾯,因此由
x
\mathbf x
x的线性函数给出,从⽽决策边界在输⼊空间是线性的。先验概率密度
p
(
C
k
)
p \left( \mathcal { C } _ { k } \right)
p(Ck)只出现在偏置参数
w
0
w_0
w0中,因此先验的改变的效果是平移决策边界,即平移后验概率中的常数轮廓线。
对于分类问题
a
k
(
x
)
=
w
k
T
x
+
w
k
0
a _ { k } ( \mathbf { x } ) = \mathbf { w } _ { k } ^ { \mathrm { T } } \mathbf { x } + w _ { k 0 }
ak(x)=wkTx+wk0
w
k
=
Σ
−
1
μ
k
w
k
0
=
−
1
2
μ
k
T
Σ
−
1
μ
k
+
ln
p
(
C
k
)
\begin{aligned} \mathbf { w } _ { k } & = \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { k } \\ w _ { k 0 } & = - \frac { 1 } { 2 } \boldsymbol { \mu } _ { k } ^ { \mathrm { T } } \boldsymbol { \Sigma } ^ { - 1 } \boldsymbol { \mu } _ { k } + \ln p \left( \mathcal { C } _ { k } \right) \end{aligned}
wkwk0=Σ−1μk=−21μkTΣ−1μk+lnp(Ck)
4.2.2 Maximum likelihood solution
⼀旦我们具体化了类条件概率密度
p
(
x
∣
C
k
)
p \left( \mathbf { x } | \mathcal { C } _ { k } \right)
p(x∣Ck)的参数化的函数形式,我们就能够使⽤最⼤似然法确定参数的值,以及先验类概率
p
(
C
k
)
p \left( \mathcal { C } _ { k } \right)
p(Ck)。这需要数据集由观测
X
\mathbf { X }
X以及对应的类别标签组成。
⾸先考虑两类的情形,每个类别都有⼀个⾼斯类条件概率密度,且协⽅差矩阵相同。我们假设我们有⼀个数据集
{
x
n
,
t
n
}
\left\{ \mathbf { x } _ { n } , t _ { n } \right\}
{xn,tn},其中
n
=
1
,
…
,
N
n = 1 , \ldots , N
n=1,…,N。这⾥
t
n
=
1
t _ { n } = 1
tn=1表⽰类别
C
1
C _ { 1 }
C1,
t
n
=
0
t _ { n } = 0
tn=0表⽰类别
C
2
C _ { 2 }
C2。我们把先验概率记作
p
(
C
1
)
=
π
p \left( \mathcal { C } _ { 1 } \right) = \pi
p(C1)=π,从⽽
p
(
C
2
)
=
1
−
π
p \left( \mathcal { C } _ { 2 } \right) = 1-\pi
p(C2)=1−π 。因此
p
(
x
n
,
C
1
)
=
p
(
C
1
)
p
(
x
n
∣
C
1
)
=
π
N
(
x
n
∣
μ
1
,
Σ
)
p \left( \mathbf { x } _ { n } , \mathcal { C } _ { 1 } \right) = p \left( \mathcal { C } _ { 1 } \right) p \left( \mathbf { x } _ { n } | \mathcal { C } _ { 1 } \right) = \pi \mathcal { N } \left( \mathbf { x } _ { n } | \boldsymbol { \mu } _ { 1 } , \boldsymbol { \Sigma } \right)
p(xn,C1)=p(C1)p(xn∣C1)=πN(xn∣μ1,Σ)
p
(
x
n
,
C
2
)
=
p
(
C
2
)
p
(
x
n
∣
C
2
)
=
(
1
−
π
)
N
(
x
n
∣
μ
2
,
Σ
)
p \left( \mathbf { x } _ { n } , \mathcal { C } _ { 2 } \right) = p \left( \mathcal { C } _ { 2 } \right) p \left( \mathbf { x } _ { n } | \mathcal { C } _ { 2 } \right) = ( 1 - \pi ) \mathcal { N } \left( \mathbf { x } _ { n } | \boldsymbol { \mu } _ { 2 } , \boldsymbol { \Sigma } \right)
p(xn,C2)=p(C2)p(xn∣C2)=(1−π)N(xn∣μ2,Σ)似然
p
(
t
∣
π
,
μ
1
,
μ
2
,
Σ
)
=
∏
n
=
1
N
[
π
N
(
x
n
∣
μ
1
,
Σ
)
]
t
n
[
(
1
−
π
)
N
(
x
n
∣
μ
2
,
Σ
)
]
1
−
t
n
p \left( \mathbf { t } | \pi , \boldsymbol { \mu } _ { 1 } , \boldsymbol { \mu } _ { 2 } , \mathbf { \Sigma } \right) = \prod _ { n = 1 } ^ { N } \left[ \pi \mathcal { N } \left( \mathbf { x } _ { n } | \boldsymbol { \mu } _ { 1 } , \mathbf { \Sigma } \right) \right] ^ { t _ { n } } \left[ ( 1 - \pi ) \mathcal { N } \left( \mathbf { x } _ { n } | \boldsymbol { \mu } _ { 2 } , \mathbf { \Sigma } \right) \right] ^ { 1 - t _ { n } }
p(t∣π,μ1,μ2,Σ)=n=1∏N[πN(xn∣μ1,Σ)]tn[(1−π)N(xn∣μ2,Σ)]1−tn则最大似然后
π
=
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 } }
π=N1n=1∑Ntn=NN1=N1+N2N1
μ
1
=
1
N
1
∑
n
=
1
N
t
n
x
n
\boldsymbol { \mu } _ { 1 } = \frac { 1 } { N _ { 1 } } \sum _ { n = 1 } ^ { N } t _ { n } \mathbf { x } _ { n }
μ1=N11n=1∑Ntnxn
μ
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) \mathbf { x } _ { n }
μ2=N21n=1∑N(1−tn)xn对于协方差的部分
−
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 | \boldsymbol { \Sigma } | - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } t _ { n } \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 1 } \right) ^ { \mathrm { T } } \boldsymbol { \Sigma } ^ { - 1 } \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 1 } \right) } \\ { - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left( 1 - t _ { n } \right) \ln | \boldsymbol { \Sigma } | - \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left( 1 - t _ { n } \right) \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 2 } \right) ^ { \mathrm { T } } \boldsymbol { \Sigma } ^ { - 1 } \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 2 } \right) } \\ { = - \frac { N } { 2 } \ln | \mathbf { \Sigma } | - \frac { N } { 2 } \operatorname { Tr } \left\{ \boldsymbol { \Sigma } ^ { - 1 } \mathbf { S } \right\} } \end{array}
−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}其中
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{aligned} \mathbf { S } & = \frac { N _ { 1 } } { N } \mathbf { S } _ { 1 } + \frac { N _ { 2 } } { N } \mathbf { S } _ { 2 } \\ \mathbf { S } _ { 1 } & = \frac { 1 } { N _ { 1 } } \sum _ { n \in \mathcal { C } _ { 1 } } \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 1 } \right) \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 1 } \right) ^ { \mathrm { T } } \\ \mathbf { S } _ { 2 } & = \frac { 1 } { N _ { 2 } } \sum _ { n \in \mathcal { C } _ { 2 } } \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 2 } \right) \left( \mathbf { x } _ { n } - \boldsymbol { \mu } _ { 2 } \right) ^ { \mathrm { T } } \end{aligned}
SS1S2=NN1S1+NN2S2=N11n∈C1∑(xn−μ1)(xn−μ1)T=N21n∈C2∑(xn−μ2)(xn−μ2)T使⽤⾼斯分布的最⼤似然解的标准结果,我们看到
Σ
=
S
\boldsymbol { \Sigma } = \mathbf { S }
Σ=S,它表⽰对⼀个与两类都有关系的协⽅差矩阵求加权平均。
这个结果很容易推⼴到
K
K
K类问题,得到参数的对应的最⼤似然解。其中我们假定每个类条件概率密度都是⾼斯分布,协⽅差矩阵相同。注意,拟合类⾼斯分布的⽅法对于离群点并不鲁棒,因为⾼斯的最⼤似然估计是不鲁棒的。
4.2.3 Discrete features
现在让我们考虑离散特征值 X i \mathcal { X } _ { i } Xi的情形。为了简化起见, 我们⾸先考察⼆元特征值 x i ∈ { 0 , 1 } x _ { i } \in \{ 0,1 \} xi∈{0,1},稍后会讨论如何推⼴到更⼀般的离散特征。如果有 D D D个输⼊,那么⼀般的概率分布会对应于⼀个⼤⼩为 2 D 2^D 2D的表格,包含 2 D − 1 2^D-1 2D−1个独⽴变量(由于要满⾜加和限制)。由于这会随着特征的数量指数增长,因此我们想寻找⼀个更加严格的表⽰⽅法。这⾥,我们做出朴素贝叶斯(naive Bayes)的假设,这个假设中,特征值被看成相互独⽴的,以类别 C k C _ { k } Ck为条件。因此我们得到类条件分布,形式为 p ( x ∣ C k ) = ∏ i = 1 D μ k i x i ( 1 − μ k i ) 1 − x i p \left( \mathbf { x } | \mathcal { C } _ { k } \right) = \prod _ { i = 1 } ^ { D } \mu _ { k i } ^ { x _ { i } } \left( 1 - \mu _ { k i } \right) ^ { 1 - x _ { i } } p(x∣Ck)=i=1∏Dμkixi(1−μki)1−xi其中对于每个类别,都有 D D D个独⽴的参数。参照之前给出的 a k = ln p ( x ∣ C k ) p ( C k ) a _ { k } = \ln p \left( \mathbf { x } | \mathcal { C } _ { k } \right) p \left( \mathcal { C } _ { k } \right) ak=lnp(x∣Ck)p(Ck) a k ( x ) = ∑ i = 1 D { x i ln μ k i + ( 1 − x i ) ln ( 1 − μ k i ) } + ln p ( C k ) a _ { k } ( \mathbf { 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) ak(x)=i=1∑D{xilnμki+(1−xi)ln(1−μki)}+lnp(Ck)
4.2.4 Exponential family
正如我们已经看到的,⽆论是服从⾼斯分布的输⼊,还是离散的输⼊,后验类概率密度都是由⼀般的线性模型和logistic sigmoid( K = 2 K = 2 K=2个类别)或者softmax( K > 2 K >2 K>2个类别)激活函数给出。通过假定类条件概率密度 p ( x ∣ C k ) p \left( \mathbf { x } | \mathcal { C } _ { k } \right) p(x∣Ck)是指数族分布的成员,我们可以看到上述结果都是更⼀般的结果的特例。 p ( x ∣ λ k ) = h ( x ) g ( λ k ) exp { λ k T u ( x ) } p \left( \mathbf { x } | \boldsymbol { \lambda } _ { k } \right) = h ( \mathbf { x } ) g \left( \boldsymbol { \lambda } _ { k } \right) \exp \left\{ \boldsymbol { \lambda } _ { k } ^ { \mathrm { T } } \mathbf { u } ( \mathbf { x } ) \right\} p(x∣λk)=h(x)g(λk)exp{λkTu(x)}我们现在把注意⼒集中在 u ( x ) = x \mathbf { u } ( \mathbf { x } ) = \mathbf { x } u(x)=x这种分布上。然后,我们使⽤公式(2.236)引⼊⼀个缩放参数 s s s,这样我们就得到了指数族类条件概率分布的⼀个⼦集 p ( x ∣ λ k , s ) = 1 s h ( 1 s x ) g ( λ k ) exp { 1 s λ k T x } p \left( \mathbf { x } | \boldsymbol { \lambda } _ { k } , s \right) = \frac { 1 } { s } h \left( \frac { 1 } { s } \mathbf { x } \right) g \left( \boldsymbol { \lambda } _ { k } \right) \exp \left\{ \frac { 1 } { s } \boldsymbol { \lambda } _ { k } ^ { \mathrm { T } } \mathbf { x } \right\} p(x∣λk,s)=s1h(s1x)g(λk)exp{s1λkTx}注意我们让每个类别有⾃⼰的参数向量 λ k \lambda _ { k } λk,但是我们假定各个类别有同样的缩放参数 s s s。对于二分类,由之前的 a = ln p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 2 ) p ( C 2 ) a = \ln \frac { p \left( \mathbf { x } | \mathcal { C } _ { 1 } \right) p \left( \mathcal { C } _ { 1 } \right) } { p \left( \mathbf { x } | \mathcal { C } _ { 2 } \right) p \left( \mathcal { C } _ { 2 } \right) } a=lnp(x∣C2)p(C2)p(x∣C1)p(C1)从而 a ( x ) = ( λ 1 − λ 2 ) T x + ln g ( λ 1 ) − ln g ( λ 2 ) + ln p ( C 1 ) − ln p ( C 2 ) a ( \mathbf { x } ) = \left( \boldsymbol { \lambda } _ { 1 } - \boldsymbol { \lambda } _ { 2 } \right) ^ { \mathrm { T } } \mathbf { x } + \ln g \left( \boldsymbol { \lambda } _ { 1 } \right) - \ln g \left( \boldsymbol { \lambda } _ { 2 } \right) + \ln p \left( \mathcal { C } _ { 1 } \right) - \ln p \left( \mathcal { C } _ { 2 } \right) a(x)=(λ1−λ2)Tx+lng(λ1)−lng(λ2)+lnp(C1)−lnp(C2)同样地,对于 K K K分类问题, a k ( x ) = λ k T x + ln g ( λ k ) + ln p ( C k ) a _ { k } ( \mathbf { x } ) = \boldsymbol { \lambda } _ { k } ^ { \mathrm { T } } \mathbf { x } + \ln g \left( \boldsymbol { \lambda } _ { k } \right) + \ln p \left( \mathcal { C } _ { k } \right) ak(x)=λkTx+lng(λk)+lnp(Ck)可以发现以上两种都是关于 x \mathbf x x的线性函数。
4.3 Probabilistic Discriminative Models
对于⼆分类问题,我们已经看到,对于⼀⼤类的类条件概率密度
p
(
x
∣
C
k
)
p \left( \mathbf { x } | \mathcal { C } _ { k } \right)
p(x∣Ck)的选择,类别
C
1
C _ { 1 }
C1后验概率分布可以写成作⽤于
x
\mathbf x
x的线性函数上的logistic sigmoid函数的形式。类似地,对于多分类的情形,类别
C
k
C _ { k }
Ck的后验概率由x的线性函数的softmax变换给出。对于类条件概率密度
p
(
x
∣
C
k
)
p \left( \mathbf { x } | \mathcal { C } _ { k } \right)
p(x∣Ck)的具体的选择,我们已经使⽤了最⼤似然⽅法估计了概率密度的参数以及类别先验
p
(
C
k
)
p \left( \mathcal { C } _ { k } \right)
p(Ck),然后使⽤贝叶斯定理就可以求出后验类概率。
然⽽,另⼀种⽅法是显⽰地使⽤⼀般的线性模型的函数形式,然后使⽤最⼤似然法直接确定它的参数。我们会看到,寻找这样的解有⼀个⾼效的算法,被称为迭代重加权最⼩平⽅(iterative reweighted least squares),或者简称IRLS。
寻找⼀般的线性模型参数的间接⽅法是,分别寻找类条件概率密度和类别先验,然后使⽤贝叶斯定理。这是⽣成式建模的⼀个例⼦。这是因为,我们可以拿来这个模型,从边缘分布
p
(
x
)
p ( \mathbf { x } )
p(x)中取出⼀个
x
\mathbf x
x的值,然后⼈⼯⽣成数据。在直接⽅法中,我们最⼤化由条件概率分布
p
(
C
k
∣
x
)
p \left( \mathcal { C } _ { k } | \mathbf { x } \right)
p(Ck∣x)定义的似然函数。这种⽅法代表了判别式训练的⼀种形式。判别式⽅法的⼀个优点是通常有更少的可调节参数需要确定,正如我们稍后会看到的那样。并且预测表现也会提升,尤其是当类条件概率密度的假设没有很好地近似真实的分布的时候更是如此。
4.3.1 Fixed basis functions
之前都是固定基函数,基函数的引入可以使得在原始空间中不能线性可分的数据在特征空间中能够可分。
对于许多实际问题来说,类条件概率密度
p
(
x
∣
C
k
)
p \left( \mathbf { x } | C _ { k } \right)
p(x∣Ck)之间有着相当⼤的重叠。这表明⾄少对于某些
x
\mathbf x
x的值,后验概率
p
(
C
k
∣
x
)
p \left( \mathcal { C } _ { k } | \mathbf { x } \right)
p(Ck∣x)不等于0或1。在这种情况下,最优解可以通过下⾯的⽅式获得:对后验概率精确建模,然后使⽤第1章中讨论的标准的决策论。需要注意的是,⾮线性变换
ϕ
(
x
)
\phi ( \mathrm { x } )
ϕ(x)不会消除这些重叠。实际上,这些变换会增加重叠的程度,或者在原始观测空间中不存在重叠的地⽅产⽣出新的重叠。然⽽,恰当地选择⾮线性变换能够让后验概率的建模过程更简单。
这样的固定基函数模型有着重要的局限性,这些局限性在后续的章节中会被解决,解决⽅法为允许基函数⾃⾝根据数据进⾏调节。尽管有这些限制,固定基函数模型在实际应⽤中起着重要的作⽤。关于这个模型的讨论会引出许多重要的概念,这些概念对于理解更复杂的模型很必要。
4.3.2 Logistic regression
我们⾸先通过⼆分类问题开始我们对于⼀般线性模型⽅法的讨论。在4.2节我们对于⽣成式⽅法的讨论中,我们看到在⼀些相当⼀般的假设条件下,类别
C
1
\mathcal { C } _ { 1 }
C1的后验概率可以写成作⽤在特征向量ϕ的线性函数上的logistic sigmoid函数的形式,即
p
(
C
1
∣
ϕ
)
=
y
(
ϕ
)
=
σ
(
w
T
ϕ
)
p \left( \mathcal { C } _ { 1 } | \boldsymbol { \phi } \right) = y ( \boldsymbol { \phi } ) = \sigma \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right)
p(C1∣ϕ)=y(ϕ)=σ(wTϕ)对于⼀个
M
M
M维特征空间
ϕ
\phi
ϕ,这个模型有
M
M
M个可调节参数。相反,如果我们使⽤最⼤似然⽅法调节了⾼斯类条件概率密度,那么我们有
2
M
2M
2M个参数来描述均值,以及
M
(
M
+
1
)
/
2
M ( M + 1 ) / 2
M(M+1)/2个参数来描述(共享的)协⽅差矩阵。算上类先验
p
(
C
1
)
p \left( \mathcal { C } _ { 1 } \right)
p(C1),参数的总数为
M
(
M
+
5
)
/
2
+
1
M ( M + 5 ) / 2 + 1
M(M+5)/2+1,这随着
M
M
M的增长⽽以⼆次的⽅式增长。这和logistic回归⽅法中对于参数数量
M
M
M的线性依赖不同。对于⼤的
M
M
M值,直接使⽤logistic回归模型有着很明显的优势。
对于数据集
{
ϕ
n
,
t
n
}
\left\{ \phi _ { n } , t _ { n } \right\}
{ϕn,tn},其中
t
n
∈
{
0
,
1
}
t _ { n } \in \{ 0,1 \}
tn∈{0,1},
ϕ
n
=
ϕ
(
x
n
)
\phi _ { n } = \phi \left( \mathbf { x } _ { n } \right)
ϕn=ϕ(xn),则似然函数为
p
(
t
∣
w
)
=
∏
n
=
1
N
y
n
t
n
{
1
−
y
n
}
1
−
t
n
p ( \mathbf { t } | \mathbf { w } ) = \prod _ { n = 1 } ^ { N } y _ { n } ^ { t _ { n } } \left\{ 1 - y _ { n } \right\} ^ { 1 - t _ { n } }
p(t∣w)=n=1∏Nyntn{1−yn}1−tn其中
t
=
(
t
1
,
…
,
t
N
)
T
\mathbf { t } = \left( t _ { 1 } , \ldots , t _ { N } \right) ^ { \mathrm { T } }
t=(t1,…,tN)T and
y
n
=
p
(
C
1
∣
ϕ
n
)
y _ { n } = p \left( \mathcal { C } _ { 1 } | \boldsymbol { \phi } _ { n } \right)
yn=p(C1∣ϕn),则引入损失函数为
E
(
w
)
=
−
ln
p
(
t
∣
w
)
=
−
∑
n
=
1
N
{
t
n
ln
y
n
+
(
1
−
t
n
)
ln
(
1
−
y
n
)
}
E ( \mathbf { w } ) = - \ln p ( \mathbf { t } | \mathbf { w } ) = - \sum _ { n = 1 } ^ { N } \left\{ t _ { n } \ln y _ { n } + \left( 1 - t _ { n } \right) \ln \left( 1 - y _ { n } \right) \right\}
E(w)=−lnp(t∣w)=−n=1∑N{tnlnyn+(1−tn)ln(1−yn)}其中
y
n
=
σ
(
a
n
)
y _ { n } = \sigma \left( a _ { n } \right)
yn=σ(an) and
a
n
=
w
T
ϕ
n
a _ { n } = \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } _ { n }
an=wTϕn利用梯度下降更新权重
∇
E
(
w
)
=
∑
n
=
1
N
(
y
n
−
t
n
)
ϕ
n
\nabla E ( \mathbf { w } ) = \sum _ { n = 1 } ^ { N } \left( y _ { n } - t _ { n } \right) \phi _ { n }
∇E(w)=n=1∑N(yn−tn)ϕn需要说明的是,这样求得的解往往对线性可分的数据集会存在过拟合现象,这个类似于之前第一章的回归问题,过拟合后,参数
w
\mathbf w
w的大小会变得非常大,进而导致logistic sigmoid函数在特征空间中变得⾮常陡峭。
4.3.3 Iterative reweighted least squares
logistic回归不能得到解析解。由于误差函数为凸函数,因此必然存在唯一的最小值。误差函数可以通过⼀种⾼效的迭代⽅法求出最⼩值,这种迭代⽅法基于Newton-Raphson迭代最优化框架,使⽤了对数似然函数的局部⼆次近似。
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 } )
w(new)=w(old)−H−1∇E(w)其中
H
\mathbf H
H为海森矩阵。
我们首先利用Newton-Raphson method求解第三章的回归模型
∇
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{aligned} \nabla E ( \mathbf { w } ) & = \sum _ { n = 1 } ^ { N } \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } _ { n } - t _ { n } \right) \boldsymbol { \phi } _ { n } = \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { \Phi } \mathbf { w } - \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { t } \\ \mathbf { H } = \nabla \nabla E ( \mathbf { w } ) & = \sum _ { n = 1 } ^ { N } \phi _ { n } \phi _ { n } ^ { \mathrm { T } } = \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { \Phi } \end{aligned}
∇E(w)H=∇∇E(w)=n=1∑N(wTϕn−tn)ϕn=ΦTΦw−ΦTt=n=1∑NϕnϕnT=ΦTΦ从而可得
w
(
new
)
=
w
(
old
)
−
(
Φ
T
Φ
)
−
1
{
Φ
T
Φ
w
(
o
l
d
)
−
Φ
T
t
}
=
(
Φ
T
Φ
)
−
1
Φ
T
t
\begin{aligned} \mathbf { w } ^ { ( \text { new } ) } & = \mathbf { w } ^ { ( \text { old } ) } - \left( \boldsymbol { \Phi } ^ { \mathrm { T } } \mathbf { \Phi } \right) ^ { - 1 } \left\{ \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { \Phi } \mathbf { w } ^ { ( \mathrm { old } ) } - \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { t } \right\} \\ & = \left( \boldsymbol { \Phi } ^ { \mathrm { T } } \mathbf { \Phi } \right) ^ { - 1 } \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { t } \end{aligned}
w( new )=w( old )−(ΦTΦ)−1{ΦTΦw(old)−ΦTt}=(ΦTΦ)−1ΦTt这个解与之前的LS求解的一样。由于此时的误差函数为二次的,通过一步就迭代得到精确解。现在利用该方法在上面提到的分类模型中
∇
E
(
w
)
=
∑
n
=
1
N
(
y
n
−
t
n
)
ϕ
n
=
Φ
T
(
y
−
t
)
H
=
∇
∇
E
(
w
)
=
∑
n
=
1
N
y
n
(
1
−
y
n
)
ϕ
n
ϕ
n
T
=
Φ
T
R
Φ
\begin{aligned} \nabla E ( \mathbf { w } ) & = \sum _ { n = 1 } ^ { N } \left( y _ { n } - t _ { n } \right) \phi _ { n } = \mathbf { \Phi } ^ { \mathrm { T } } ( \mathbf { y } - \mathbf { t } ) \\ \mathbf { H } & = \nabla \nabla E ( \mathbf { w } ) = \sum _ { n = 1 } ^ { N } y _ { n } \left( 1 - y _ { n } \right) \boldsymbol { \phi } _ { n } \boldsymbol { \phi } _ { n } ^ { \mathrm { T } } = \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { R } \boldsymbol { \Phi } \end{aligned}
∇E(w)H=n=1∑N(yn−tn)ϕn=ΦT(y−t)=∇∇E(w)=n=1∑Nyn(1−yn)ϕnϕnT=ΦTRΦ其中
R
\mathbf R
R为对角矩阵
R
n
n
=
y
n
(
1
−
y
n
)
R _ { n n } = y _ { n } \left( 1 - y _ { n } \right)
Rnn=yn(1−yn)
w
(
new
)
=
w
(
old
)
−
(
Φ
T
R
Φ
)
−
1
Φ
T
(
y
−
t
)
\mathbf { w } ^ { ( \text { new } ) } = \mathbf { w } ^ { ( \text { old } ) } - \left( \boldsymbol { \Phi } ^ { \mathrm { T } } \mathbf { R } \boldsymbol { \Phi } \right) ^ { - 1 } \mathbf { \Phi } ^ { \mathrm { T } } ( \mathbf { y } - \mathbf { t } )
w( new )=w( old )−(ΦTRΦ)−1ΦT(y−t)
=
(
Φ
T
R
Φ
)
−
1
{
Φ
T
R
Φ
w
(
o
l
d
)
−
Φ
T
(
y
−
t
)
}
= \left( \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { R } \Phi \right) ^ { - 1 } \left\{ \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { R } \Phi \mathbf { w } ^ { ( \mathrm { old } ) } - \mathbf { \Phi } ^ { \mathrm { T } } ( \mathbf { y } - \mathbf { t } ) \right\}
=(ΦTRΦ)−1{ΦTRΦw(old)−ΦT(y−t)}
=
(
Φ
T
R
Φ
)
−
1
Φ
T
R
z
= \left( \boldsymbol { \Phi } ^ { \mathrm { T } } \mathbf { R } \Phi \right) ^ { - 1 } \mathbf { \Phi } ^ { \mathrm { T } } \mathbf { R } \mathbf { z }
=(ΦTRΦ)−1ΦTRz其中
z
=
Φ
w
(
o
l
d
)
−
R
−
1
(
y
−
t
)
\mathbf { z } = \boldsymbol { \Phi } \mathbf { w } ^ { ( \mathrm { old } ) } - \mathbf { R } ^ { - 1 } ( \mathbf { y } - \mathbf { t } )
z=Φw(old)−R−1(y−t)
4.3.4 Multiclass logistic regression
之前 p ( C k ∣ ϕ ) = y k ( ϕ ) = exp ( a k ) ∑ j exp ( a j ) p \left( \mathcal { C } _ { k } | \boldsymbol { \phi } \right) = y _ { k } ( \boldsymbol { \phi } ) = \frac { \exp \left( a _ { k } \right) } { \sum _ { j } \exp \left( a _ { j } \right) } p(Ck∣ϕ)=yk(ϕ)=∑jexp(aj)exp(ak)其中 a k = w k T ϕ a _ { k } = \mathbf { w } _ { k } ^ { \mathrm { T } } \boldsymbol { \phi } ak=wkTϕ还是跟上面一样采用ML估计参数,同样是利用梯度的方式。 ∂ 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) ∂aj∂yk=yk(Ikj−yj)其中 I k j I _ { k j } Ikj为单位矩阵的元素。似然函数为 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 \left( \mathbf { T } | \mathbf { w } _ { 1 } , \ldots , \mathbf { w } _ { K } \right) = \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 } } p(T∣w1,…,wK)=n=1∏Nk=1∏Kp(Ck∣ϕn)tnk=n=1∏Nk=1∏Kynktnk则目标函数为 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( \mathbf { w } _ { 1 } , \ldots , \mathbf { w } _ { K } \right) = - \ln p \left( \mathbf { T } | \mathbf { w } _ { 1 } , \ldots , \mathbf { w } _ { K } \right) = - \sum _ { n = 1 } ^ { N } \sum _ { k = 1 } ^ { K } t _ { n k } \ln y _ { n k } E(w1,…,wK)=−lnp(T∣w1,…,wK)=−n=1∑Nk=1∑Ktnklnynk这个函数为交叉熵损失函数。求其梯度 ∇ w j E ( w 1 , … , w K ) = ∑ n = 1 N ( y n j − t n j ) ϕ n \nabla _ { \mathbf { w } _ { j } } E \left( \mathbf { w } _ { 1 } , \ldots , \mathbf { w } _ { K } \right) = \sum _ { n = 1 } ^ { N } \left( y _ { n j } - t _ { n j } \right) \phi _ { n } ∇wjE(w1,…,wK)=n=1∑N(ynj−tnj)ϕn对于多分类问题,也可以使用Newton-Raphson方法 ∇ w k ∇ w j E ( w 1 , … , w K ) = ∑ n = 1 N y n k ( I k j − y n j ) ϕ n ϕ n T \nabla _ { \boldsymbol { w } _ { k } } \nabla _ { \boldsymbol { w } _ { j } } E \left( \boldsymbol { w } _ { 1 } , \ldots , \boldsymbol { w } _ { K } \right) = \sum _ { n = 1 } ^ { N } y _ { n k } \left( I _ { k j } - y _ { n j } \right) \boldsymbol { \phi } _ { n } \boldsymbol { \phi } _ { n } ^ { T } ∇wk∇wjE(w1,…,wK)=n=1∑Nynk(Ikj−ynj)ϕnϕnT
4.3.5 Probit regression
我们已经看到,对于由指数族分布描述的⼀⼤类的类条件概率分布,最终求出的后验类概率为作⽤在特征变量的线性函数上的logistic(或者softmax)变换。然⽽,不是所有的类条件概率密度都有这样简单的后验概率函数形式(例如,如果类条件概率密度由⾼斯混合模型建模)。这表明研究其他类型的判别式概率模型可能会很有价值。但是本章中,我们将会回到⼆分类的情形,再次使⽤⼀般的线性模型的框架,即
p
(
t
=
1
∣
a
)
=
f
(
a
)
p ( t = 1 | a ) = f ( a )
p(t=1∣a)=f(a)其中
a
=
w
T
ϕ
,
a = \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } ,
a=wTϕ, and
f
(
⋅
)
f ( \cdot )
f(⋅) is the activation function。我们选择其他的链接函数的原因可以通过噪声阈值模型看出来,如下所述。对于每个输⼊
ϕ
n
\phi _ { n }
ϕn,我们计算
a
n
=
w
T
ϕ
n
a _ { n } = \mathbf { w } ^ { \mathrm { T } } \phi _ { n }
an=wTϕn,然后按照下⾯的⽅式设置⽬标值
{
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.
{tn=1tn=0 if an⩾θ otherwise 定义激活函数为
f
(
a
)
=
∫
−
∞
a
p
(
θ
)
d
θ
f ( a ) = \int _ { - \infty } ^ { a } p ( \theta ) \mathrm { d } \theta
f(a)=∫−∞ap(θ)dθ
作为⼀个具体的例⼦,假设概率密度
p
(
θ
)
p ( \theta )
p(θ)是零均值、单位⽅差的⾼斯概率密度。对应的累积分布函数为
Φ
(
a
)
=
∫
−
∞
a
N
(
θ
∣
0
,
1
)
d
θ
\Phi ( a ) = \int _ { - \infty } ^ { a } \mathcal { N } ( \theta | 0,1 ) \mathrm { d } \theta
Φ(a)=∫−∞aN(θ∣0,1)dθ注意,使⽤更⼀般的⾼斯分布不会改变模型,因为这样做等价于对线性系数
w
\mathbf w
w的重新缩放。许多⽤于计算这个函数的数值计算包都与下⾯的这个函数紧密相关
erf
(
a
)
=
2
π
∫
0
a
exp
(
−
θ
2
/
2
)
d
θ
\operatorname { erf } ( a ) = \frac { 2 } { \sqrt { \pi } } \int _ { 0 } ^ { a } \exp \left( - \theta ^ { 2 } / 2 \right) \mathrm { d } \theta
erf(a)=π2∫0aexp(−θ2/2)dθ则
Φ
(
a
)
=
1
2
{
1
+
1
2
erf
(
a
)
}
\mathbf { \Phi } ( a ) = \frac { 1 } { 2 } \left\{ 1 + \frac { 1 } { \sqrt { 2 } } \operatorname { erf } ( a ) \right\}
Φ(a)=21{1+21erf(a)}在实际应⽤中经常出现的⼀个问题是离群点,它可能由输⼊向量
x
\mathbf { x }
x的测量误差产⽣,或者由⽬标值
t
t
t的错误标记产⽣。由于这些点可以位于错误的⼀侧中距离理想决策边界相当远的位置上,因此他们会严重地⼲扰分类器。注意,在这⼀点上,logistic回归模型与probit回归模型的表现不同,logistic sigmoid函数像
exp
(
−
x
)
\exp ( - x )
exp(−x) for
x
→
∞
x \rightarrow \infty
x→∞那样渐进地衰减,⽽probit激活函数像
exp
(
−
x
2
)
\exp \left( - x ^ { 2 } \right)
exp(−x2)那样衰减,因此probit模型对于离群点会更加敏感。
然⽽,logistic模型和probit模型都假设数据点被正确标记了。错误标记的影响可以很容易地合并到概率模型中。我们引⼊⼀个概率ϵ,它是⽬标值t被翻转到错误值的概率(Opper and Winther, 2000a)。这时,数据点x的⽬标值的分布为
p
(
t
∣
x
)
=
(
1
−
ϵ
)
σ
(
x
)
+
ϵ
(
1
−
σ
(
x
)
)
=
ϵ
+
(
1
−
2
ϵ
)
σ
(
x
)
\begin{aligned} p ( t | \mathbf { x } ) & = ( 1 - \epsilon ) \sigma ( \mathbf { x } ) + \epsilon ( 1 - \sigma ( \mathbf { x } ) ) \\ & = \epsilon + ( 1 - 2 \epsilon ) \sigma ( \mathbf { x } ) \end{aligned}
p(t∣x)=(1−ϵ)σ(x)+ϵ(1−σ(x))=ϵ+(1−2ϵ)σ(x)
4.3.6 Canonical link functions
对于⾼斯噪声分布的线性回归模型,误差函数,对应于负对数似然函数
E
D
(
w
)
=
1
2
∑
n
=
1
N
{
t
n
−
w
T
ϕ
(
x
n
)
}
2
E _ { D } ( \mathbf { w } ) = \frac { 1 } { 2 } \sum _ { n = 1 } ^ { N } \left\{ t _ { n } - \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \left( \mathbf { x } _ { n } \right) \right\} ^ { 2 }
ED(w)=21∑n=1N{tn−wTϕ(xn)}2。如果我们对数据点
n
n
n对误差函数的贡献关于参数向量
w
\mathbf { w }
w求导数,那么导数的形式为“误差”
y
n
−
t
n
y _ { n } - t _ { n }
yn−tn与特征向量
ϕ
n
\phi _ { n }
ϕn的乘积,其中
y
n
=
w
T
ϕ
n
y _ { n } = \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } _ { n }
yn=wTϕn。类似地,对于logistic sigmoid激活函数与交叉熵误差函数
E
(
w
)
=
−
ln
p
(
t
∣
w
)
=
−
∑
n
=
1
N
{
t
n
ln
y
n
+
(
1
−
t
n
)
ln
(
1
−
y
n
)
}
E ( \mathbf { w } ) = - \ln p ( \mathbf { t } | \mathbf { w } ) = - \sum _ { n = 1 } ^ { N } \left\{ t _ { n } \ln y _ { n } + \left( 1 - t _ { n } \right) \ln \left( 1 - y _ { n } \right) \right\}
E(w)=−lnp(t∣w)=−∑n=1N{tnlnyn+(1−tn)ln(1−yn)}的组合,以及多类交叉熵误差函数
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( \mathbf { w } _ { 1 } , \ldots , \mathbf { w } _ { K } \right) = - \ln p \left( \mathbf { T } | \mathbf { w } _ { 1 } , \ldots , \mathbf { w } _ { K } \right) = - \sum _ { n = 1 } ^ { N } \sum _ { k = 1 } ^ { K } t _ { n k } \ln y _ { n k }
E(w1,…,wK)=−lnp(T∣w1,…,wK)=−∑n=1N∑k=1Ktnklnynk的softmax激活函数,我们再次得到了同样的简单形式。现在我们证明,如果假设⽬标变量的条件分布来⾃于指数族分布,对应的激活函数选为标准链接函数(canonical link function),那么这个结果是⼀个⼀般的结果。
考虑一个指数族分布
p
(
t
∣
η
,
s
)
=
1
s
h
(
t
s
)
g
(
η
)
exp
{
η
t
s
}
p ( t | \eta , s ) = \frac { 1 } { s } h \left( \frac { t } { s } \right) g ( \eta ) \exp \left\{ \frac { \eta t } { s } \right\}
p(t∣η,s)=s1h(st)g(η)exp{sηt}由之前的结果可知
y
≡
E
[
t
∣
η
]
=
−
s
d
d
η
ln
g
(
η
)
y \equiv \mathbb { E } [ t | \eta ] = - s \frac { d } { d \eta } \ln g ( \eta )
y≡E[t∣η]=−sdηdlng(η)那么我们定义一般的线性模型
y
=
f
(
w
T
ϕ
)
y = f \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right)
y=f(wTϕ)此时的似然函数为
ln
p
(
t
∣
η
,
s
)
=
∑
n
=
1
N
ln
p
(
t
n
∣
η
,
s
)
=
∑
n
=
1
N
{
ln
g
(
η
n
)
+
η
n
t
n
s
}
+
c
o
n
s
t
\ln p ( \mathbf { t } | \eta , s ) = \sum _ { n = 1 } ^ { N } \ln p \left( t _ { n } | \eta , s \right) = \sum _ { n = 1 } ^ { N } \left\{ \ln g \left( \eta _ { n } \right) + \frac { \eta _ { n } t _ { n } } { s } \right\} + \mathrm { const }
lnp(t∣η,s)=n=1∑Nlnp(tn∣η,s)=n=1∑N{lng(ηn)+sηntn}+const对参数求导
∇
w
ln
p
(
t
∣
η
,
s
)
=
∑
n
=
1
N
{
d
d
η
n
ln
g
(
η
n
)
+
t
n
s
}
d
η
n
d
y
n
d
y
n
d
a
n
∇
a
n
=
∑
n
=
1
N
1
s
{
t
n
−
y
n
}
ψ
′
(
y
n
)
f
′
(
a
n
)
ϕ
n
\begin{aligned} \nabla _ { \mathrm { w } } \ln p ( \mathbf { t } | \eta , s ) & = \sum _ { n = 1 } ^ { N } \left\{ \frac { d } { d \eta _ { n } } \ln g \left( \eta _ { n } \right) + \frac { t _ { n } } { s } \right\} \frac { d \eta _ { n } } { d y _ { n } } \frac { d y _ { n } } { d a _ { n } } \nabla a _ { n } \\ & = \sum _ { n = 1 } ^ { N } \frac { 1 } { s } \left\{ t _ { n } - y _ { n } \right\} \psi ^ { \prime } \left( y _ { n } \right) f ^ { \prime } \left( a _ { n } \right) \phi _ { n } \end{aligned}
∇wlnp(t∣η,s)=n=1∑N{dηndlng(ηn)+stn}dyndηndandyn∇an=n=1∑Ns1{tn−yn}ψ′(yn)f′(an)ϕn其中
a
n
=
w
T
ϕ
n
a _ { n } = \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } _ { n }
an=wTϕn和
y
n
=
f
(
a
n
)
y _ { n } = f \left( a _ { n } \right)
yn=f(an)当选择
f
−
1
(
y
)
=
ψ
(
y
)
f ^ { - 1 } ( y ) = \psi ( y )
f−1(y)=ψ(y)时,就会变得很简单
4.4 The Laplace Approximation
在4.5节,我们会讨论logistic回归的贝叶斯观点。正如我们将看到的那样,这⽐3.3节和3.5节讨论的线性回归模型的贝叶斯观点更加复杂。特别地,我们不能够精确地关于参数向量
w
\mathbf { w }
w求积分,因为后验概率分布不再是⾼斯分布。因此,有必要介绍某种形式的近似。稍后在本书中,我们会介绍⼀系列基于分析估计和数值采样的技术。
这⾥我们介绍⼀个简单的但是⼴泛使⽤的框架,被称为拉普拉斯近似。它的⽬标是找到定义在⼀组连续变量上的概率密度的⾼斯近似。⾸先考虑单⼀连续变量
z
\mathcal { z}
z的情形,假设分布
p
(
z
)
p ( z )
p(z)的定义为
p
(
z
)
=
1
Z
f
(
z
)
p ( z ) = \frac { 1 } { Z } f ( z )
p(z)=Z1f(z)其中
Z
Z
Z为未知。目的为由一个高斯分布
q
(
z
)
q(z)
q(z)近似目标分布,其中心位于
p
(
z
)
p(z)
p(z)的众数
z
0
z_0
z0。
d
f
(
z
)
d
z
∣
z
=
z
0
=
0
\left. \frac { d f ( z ) } { d z } \right| _ { z = z _ { 0 } } = 0
dzdf(z)∣∣∣∣z=z0=0利用泰勒展开
ln
f
(
z
)
≃
ln
f
(
z
0
)
−
1
2
A
(
z
−
z
0
)
2
\ln f ( z ) \simeq \ln f \left( z _ { 0 } \right) - \frac { 1 } { 2 } A \left( z - z _ { 0 } \right) ^ { 2 }
lnf(z)≃lnf(z0)−21A(z−z0)2其中
A
=
−
d
2
d
z
2
ln
f
(
z
)
∣
z
=
z
0
A = - \frac { d ^ { 2 } } { d z ^ { 2 } } \ln f \left. ( z ) \right| _ { z = z _ { 0 } }
A=−dz2d2lnf(z)∣z=z0则
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\}
f(z)≃f(z0)exp{−2A(z−z0)2}那么
q
(
z
)
=
(
A
2
π
)
1
/
2
exp
{
−
A
2
(
z
−
z
0
)
2
}
q ( z ) = \left( \frac { A } { 2 \pi } \right) ^ { 1 / 2 } \exp \left\{ - \frac { A } { 2 } \left( z - z _ { 0 } \right) ^ { 2 } \right\}
q(z)=(2πA)1/2exp{−2A(z−z0)2}注意,⾼斯近似只在精度
A
>
0
A > 0
A>0时有良好的定义,换句话说,驻点
z
0
z_0
z0⼀定是⼀个局部最⼤值,使得
f
(
z
)
f(z)
f(z)在驻点
z
0
z_0
z0处的⼆阶导数为负。
在多维的情况下
ln
f
(
z
)
≃
ln
f
(
z
0
)
−
1
2
(
z
−
z
0
)
T
A
(
z
−
z
0
)
\ln f ( \mathbf { z } ) \simeq \ln f \left( \mathbf { z } _ { 0 } \right) - \frac { 1 } { 2 } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right) ^ { \mathrm { T } } \mathbf { A } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right)
lnf(z)≃lnf(z0)−21(z−z0)TA(z−z0)其中
A
=
−
∇
∇
ln
f
(
z
)
∣
z
=
z
0
\mathbf { A } = - \nabla \nabla \ln f \left. ( \mathbf { z } ) \right| _ { \mathbf { z } = \mathbf { z } _ { 0 } }
A=−∇∇lnf(z)∣z=z0则
f
(
z
)
≃
f
(
z
0
)
exp
{
−
1
2
(
z
−
z
0
)
T
A
(
z
−
z
0
)
}
f ( \mathbf { z } ) \simeq f \left( \mathbf { z } _ { 0 } \right) \exp \left\{ - \frac { 1 } { 2 } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right) ^ { \mathrm { T } } \mathbf { A } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right) \right\}
f(z)≃f(z0)exp{−21(z−z0)TA(z−z0)}
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 ( \mathbf { z } ) = \frac { | \mathbf { A } | ^ { 1 / 2 } } { ( 2 \pi ) ^ { M / 2 } } \exp \left\{ - \frac { 1 } { 2 } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right) ^ { \mathrm { T } } \mathbf { A } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right) \right\} = \mathcal { N } \left( \mathbf { z } | \mathbf { z } _ { 0 } , \mathbf { A } ^ { - 1 } \right)
q(z)=(2π)M/2∣A∣1/2exp{−21(z−z0)TA(z−z0)}=N(z∣z0,A−1)。这个⾼斯分布有良好定义的前提是,精度矩阵
A
\mathbf A
A是正定的,这表明驻点
z
0
\mathbf z_0
z0⼀定是⼀个局部最⼤值,⽽不是⼀个最⼩值或者鞍点。
为了应⽤拉普拉斯近似, 我们⾸先需要寻找众数
z
0
\mathbf z_0
z0, 然后计算在那个众数位置上
的Hessian矩阵。在实际应⽤当中,众数通常可以通过运⾏某种形式的数值最优化算法得到(Bishop and Nabney, 2008)。许多在实际应⽤中遇到的概率分布都是多峰的,因此根据考虑的峰值(众数)的不同,会有不同的拉普拉斯近似。注意,在应⽤拉普拉斯⽅法时,真实概率分布的归⼀化常数
Z
Z
Z不必事先知道。根据中⼼极限定理,我们可以预见模型的后验概率会随着观测数据点的增多⽽越来越近似于⾼斯分布,因此我们可以预见在数据点相对较多的情况下,拉普拉斯近似会更有⽤。
拉普拉斯近似的⼀个主要缺点是,由于它是以⾼斯分布为基础的,因此它只能直接应⽤于实值变量。在其他情况下,可以将拉普拉斯近似应⽤于变换之后的变量上。例如,如果
0
⩽
τ
<
∞
0 \leqslant \tau < \infty
0⩽τ<∞,那么我们可以考虑
ln
τ
\ln \tau
lnτ的拉普拉斯近似。但是,拉普拉斯框架的最严重的局限性是,它完全依赖于真实概率分布在变量的某个具体值位置上的性质,因此会⽆法描述⼀些重要的全局属性。在第10章,我们会考虑其他的⽅法,这种⽅法从⼀个更加全局的⾓度考察了这个问题。
4.4.1 Model comparison and BIC
一旦得到了
p
(
z
)
p(z)
p(z)的近似分布,那么可以得到近似的
Z
Z
Z
Z
=
∫
f
(
z
)
d
z
≃
f
(
z
0
)
∫
exp
{
−
1
2
(
z
−
z
0
)
T
A
(
z
−
z
0
)
}
d
z
=
f
(
z
0
)
(
2
π
)
M
/
2
∣
A
∣
1
/
2
\begin{aligned} Z & = \int f ( \mathbf { z } ) \mathrm { d } \mathbf { z } \\ & \simeq f \left( \mathbf { z } _ { 0 } \right) \int \exp \left\{ - \frac { 1 } { 2 } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right) ^ { \mathrm { T } } \mathbf { A } \left( \mathbf { z } - \mathbf { z } _ { 0 } \right) \right\} \mathrm { d } \mathbf { z } \\ & = f \left( \mathbf { z } _ { 0 } \right) \frac { ( 2 \pi ) ^ { M / 2 } } { | \mathbf { A } | ^ { 1 / 2 } } \end{aligned}
Z=∫f(z)dz≃f(z0)∫exp{−21(z−z0)TA(z−z0)}dz=f(z0)∣A∣1/2(2π)M/2利用上式可以获得对于模型证据的⼀个近似。
给定数据集
D
D
D和带有参数
{
θ
i
}
\left\{ \boldsymbol { \theta } _ { i } \right\}
{θi}的模型
{
M
i
}
\left\{ \mathcal { M } _ { i } \right\}
{Mi}。那么模型证据为
p
(
D
∣
M
i
)
p \left( \mathcal { D } | \mathcal { M } _ { i } \right)
p(D∣Mi)。令
f
(
θ
)
=
p
(
D
∣
θ
)
p
(
θ
)
f ( \boldsymbol { \theta } ) = p ( \mathcal { D } | \boldsymbol { \theta } ) p ( \boldsymbol { \theta } )
f(θ)=p(D∣θ)p(θ),
Z
=
p
(
D
)
Z = p ( \mathcal { D } )
Z=p(D)则利用上面的式子可得
ln
p
(
D
)
≃
ln
p
(
D
∣
θ
M
A
P
)
+
ln
p
(
θ
M
A
P
)
+
M
2
ln
(
2
π
)
−
1
2
ln
∣
A
∣
⎵
Occam factor
\ln p ( \mathcal { D } ) \simeq \ln p \left( \mathcal { D } | \boldsymbol { \theta } _ { \mathrm { MAP } } \right) + \underbrace { \ln p \left( \boldsymbol { \theta } _ { \mathrm { MAP } } \right) + \frac { M } { 2 } \ln ( 2 \pi ) - \frac { 1 } { 2 } \ln | \mathbf { A } | } _ { \text { Occam factor } }
lnp(D)≃lnp(D∣θMAP)+ Occam factor
lnp(θMAP)+2Mln(2π)−21ln∣A∣其中
A
=
−
∇
∇
ln
p
(
D
∣
θ
M
A
P
)
p
(
θ
M
A
P
)
=
−
∇
∇
ln
p
(
θ
M
A
P
∣
D
)
\mathbf { A } = - \nabla \nabla \ln p \left( \mathcal { D } | \boldsymbol { \theta } _ { \mathrm { MAP } } \right) p \left( \boldsymbol { \theta } _ { \mathrm { MAP } } \right) = - \nabla \nabla \ln p \left( \boldsymbol { \theta } _ { \mathrm { MAP } } | \mathcal { D } \right)
A=−∇∇lnp(D∣θMAP)p(θMAP)=−∇∇lnp(θMAP∣D)如果我们假设参数的⾼斯先验分布⽐较宽,且Hessian矩阵是满秩的,那么我们可以使⽤下式来⾮常粗略地近似
ln
p
(
D
)
≃
ln
p
(
D
∣
θ
M
A
P
)
−
1
2
M
ln
N
\ln p ( \mathcal { D } ) \simeq \ln p \left( \mathcal { D } | \boldsymbol { \theta } _ { M A P } \right) - \frac { 1 } { 2 } M \ln N
lnp(D)≃lnp(D∣θMAP)−21MlnN与第一章中的AIC比较,
ln
p
(
D
∣
w
M
L
)
−
M
\ln p \left( \mathcal { D } | \mathbf { w } _ { \mathrm { ML } } \right) - M
lnp(D∣wML)−MBIC信息准则对模型复杂度的惩罚更严重。像AIC和BIC这样的复杂度度量很容易计算,但是也会产⽣有误导性的结果。特别地,对于Hessian矩阵满秩的假设通常不成⽴,因为许多参数都不是“良好确定”的。我们可以使⽤基于拉普拉斯近似的公式(也就是更上面的公式)来获得对于模型证据的⼀个更加准确的估计。
4.5 Bayesian Logistic Regression
我们现在考虑logistic回归的贝叶斯观点。对于logistic回归,精确的贝叶斯推断是⽆法处理的。特别地,计算后验概率分布需要对先验概率分布于似然函数的乘积进⾏归⼀化,⽽似然函数本⾝由⼀系列logistic sigmoid函数的乘积组成,每个数据点都有⼀个logistic sigmoid函数。对于预测分布的计算类似地也是⽆法处理的。这⾥我们考虑使⽤拉普拉斯近似来处理贝叶斯logistic回归的问题(Spiegelhalter and Lauritzen, 1990; MacKay, 1992b)。
4.5.1 Laplace approximation
回忆⼀下,在4.4节中,拉普拉斯近似由下⾯的⽅式获得:⾸先寻找后验概率分布的众数,然后调节⼀个以众数为中⼼的⾼斯分布。这需要计算对数后验概率的⼆阶导数,这等价于寻找Hessian矩阵。
由于后验近似为高斯了,那么我们的先验也选择为高斯
p
(
w
)
=
N
(
w
∣
m
0
,
S
0
)
p ( \mathbf { w } ) = \mathcal { N } \left( \mathbf { w } | \mathbf { m } _ { 0 } , \mathbf { S } _ { 0 } \right)
p(w)=N(w∣m0,S0)那么后验为
p
(
w
∣
t
)
∝
p
(
w
)
p
(
t
∣
w
)
p ( \mathbf { w } | \mathbf { t } ) \propto p ( \mathbf { w } ) p ( \mathbf { t } | \mathbf { w } )
p(w∣t)∝p(w)p(t∣w)采用似然为
p
(
t
∣
w
)
=
∏
n
=
1
N
y
n
t
n
{
1
−
y
n
}
1
−
t
n
p ( \mathbf { t } | \mathbf { w } ) = \prod _ { n = 1 } ^ { N } y _ { n } ^ { t _ { n } } \left\{ 1 - y _ { n } \right\} ^ { 1 - t _ { n } }
p(t∣w)=n=1∏Nyntn{1−yn}1−tn则
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}
lnp(w∣t)=−21(w−m0)TS0−1(w−m0)+n=1∑N{tnlnyn+(1−tn)ln(1−yn)}+const其中
y
n
=
σ
(
w
T
ϕ
n
)
y _ { n } = \sigma \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } _ { n } \right)
yn=σ(wTϕn)那么近似为
q
(
w
)
=
N
(
w
∣
w
M
A
P
,
S
N
)
q ( \mathbf { w } ) = \mathcal { N } \left( \mathbf { w } | \mathbf { w } _ { \mathrm { MAP } } , \mathbf { S } _ { N } \right)
q(w)=N(w∣wMAP,SN)其中
S
N
=
−
∇
∇
ln
p
(
w
∣
t
)
=
S
0
−
1
+
∑
n
=
1
N
y
n
(
1
−
y
n
)
ϕ
n
ϕ
n
T
\mathbf { S } _ { N } = - \nabla \nabla \ln p ( \mathbf { w } | \mathbf { t } ) = \mathbf { S } _ { 0 } ^ { - 1 } + \sum _ { n = 1 } ^ { N } y _ { n } \left( 1 - y _ { n } \right) \boldsymbol { \phi } _ { n } \boldsymbol { \phi } _ { n } ^ { \mathrm { T } }
SN=−∇∇lnp(w∣t)=S0−1+n=1∑Nyn(1−yn)ϕnϕnT
4.5.2 Predictive distribution
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 } | \phi , \mathbf { w } \right) p ( \mathbf { w } | \mathbf { t } ) \mathrm { d } \mathbf { w } \simeq \int \sigma \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right) q ( \mathbf { w } ) \mathrm { d } \mathbf { w } p(C1∣ϕ,t)=∫p(C1∣ϕ,w)p(w∣t)dw≃∫σ(wTϕ)q(w)dw令 a = w T ϕ a = \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } a=wTϕ则 σ ( w T ϕ ) = ∫ δ ( a − w T ϕ ) σ ( a ) d a \sigma \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right) = \int \delta \left( a - \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right) \sigma ( a ) \mathrm { d } a σ(wTϕ)=∫δ(a−wTϕ)σ(a)da ∫ σ ( w T ϕ ) q ( w ) d w = ∫ σ ( a ) p ( a ) d a \int \sigma \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right) q ( \mathbf { w } ) \mathrm { d } \mathbf { w } = \int \sigma ( a ) p ( a ) \mathrm { d } a ∫σ(wTϕ)q(w)dw=∫σ(a)p(a)da其中 p ( a ) = ∫ δ ( a − w T ϕ ) q ( w ) d w p ( a ) = \int \delta \left( a - \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right) q ( \mathbf { w } ) \mathrm { d } \mathbf { w } p(a)=∫δ(a−wTϕ)q(w)dw我们可以这样计算 p ( a ) p(a) p(a):注意到Delta函数给 w \mathbf w w施加了⼀个线性限制,因此在所有与 ϕ \phi ϕ正交的⽅向上积分,就得到了联合概率分布 q ( w ) q(\mathbf w) q(w)的边缘分布。由于 q ( w ) q(\mathbf w) q(w)是⾼斯分布,因此根据2.3.2节,我们知道边缘概率分布也是⾼斯分布。我们可以通过计算各阶矩然后交换 a a a和 w \mathbf w w的积分顺序的⽅式计算均值和协⽅差,即 μ a = E [ a ] = ∫ p ( a ) a d a = ∫ q ( w ) w T ϕ d w = w M A P T ϕ \mu _ { a } = \mathbb { E } [ a ] = \int p ( a ) a \mathrm { d } a = \int q ( \mathbf { w } ) \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \mathrm { d } \mathbf { w } = \mathbf { w } _ { \mathrm { MAP } } ^ { \mathrm { T } } \boldsymbol { \phi } μa=E[a]=∫p(a)ada=∫q(w)wTϕdw=wMAPTϕ σ a 2 = var [ a ] = ∫ p ( a ) { a 2 − E [ a ] 2 } d a = ∫ q ( w ) { ( w T ϕ ) 2 − ( m N T ϕ ) 2 } d w = ϕ T S N ϕ \begin{aligned} \sigma _ { a } ^ { 2 } & = \operatorname { var } [ a ] = \int p ( a ) \left\{ a ^ { 2 } - \mathbb { E } [ a ] ^ { 2 } \right\} \mathrm { d } a \\ & = \int q ( \mathbf { w } ) \left\{ \left( \mathbf { w } ^ { \mathrm { T } } \boldsymbol { \phi } \right) ^ { 2 } - \left( \mathbf { m } _ { N } ^ { \mathrm { T } } \boldsymbol { \phi } \right) ^ { 2 } \right\} \mathrm { d } \mathbf { w } = \boldsymbol { \phi } ^ { \mathrm { T } } \mathbf { S } _ { N } \boldsymbol { \phi } \end{aligned} σa2=var[a]=∫p(a){a2−E[a]2}da=∫q(w){(wTϕ)2−(mNTϕ)2}dw=ϕTSNϕ则 p ( C 1 ∣ t ) = ∫ σ ( a ) p ( a ) d a = ∫ σ ( a ) N ( a ∣ μ a , σ a 2 ) d a p \left( \mathcal { C } _ { 1 } | \mathbf { t } \right) = \int \sigma ( a ) p ( a ) \mathrm { d } a = \int \sigma ( a ) \mathcal { N } \left( a | \mu _ { a } , \sigma _ { a } ^ { 2 } \right) \mathrm { d } a p(C1∣t)=∫σ(a)p(a)da=∫σ(a)N(a∣μa,σa2)da然而以上的积分是没有解析解的。之前介绍过probit函数,可以采用 Φ ( λ a ) \Phi ( \lambda a ) Φ(λa)近似 σ ( a ) \sigma ( a ) σ(a)。则可得 ∫ Φ ( λ a ) N ( a ∣ μ , σ 2 ) d a = Φ ( μ ( λ − 2 + σ 2 ) 1 / 2 ) \int \Phi ( \lambda a ) \mathcal { N } \left( a | \mu , \sigma ^ { 2 } \right) \mathrm { d } a = \Phi \left( \frac { \mu } { \left( \lambda ^ { - 2 } + \sigma ^ { 2 } \right) ^ { 1 / 2 } } \right) ∫Φ(λa)N(a∣μ,σ2)da=Φ((λ−2+σ2)1/2μ) ∫ σ ( a ) N ( a ∣ μ , σ 2 ) d a ≃ σ ( κ ( σ 2 ) μ ) \int \sigma ( a ) \mathcal { N } \left( a | \mu , \sigma ^ { 2 } \right) \mathrm { d } a \simeq \sigma \left( \kappa \left( \sigma ^ { 2 } \right) \mu \right) ∫σ(a)N(a∣μ,σ2)da≃σ(κ(σ2)μ) κ ( σ 2 ) = ( 1 + π σ 2 / 8 ) − 1 / 2 \kappa \left( \sigma ^ { 2 } \right) = \left( 1 + \pi \sigma ^ { 2 } / 8 \right) ^ { - 1 / 2 } κ(σ2)=(1+πσ2/8)−1/2 p ( C 1 ∣ ϕ , t ) = σ ( κ ( σ a 2 ) μ a ) p \left( \mathcal { C } _ { 1 } | \boldsymbol { \phi } , \mathbf { t } \right) = \sigma \left( \kappa \left( \sigma _ { a } ^ { 2 } \right) \mu _ { a } \right) p(C1∣ϕ,t)=σ(κ(σa2)μa)