本文首发于我的个人博客Suixin’s Blog
原文: https://suixinblog.cn/2018/10/linear-classification3.html 作者: Suixin
判别式方法:直接对条件概率分布
p
(
C
k
∣
x
)
p(C_k|\pmb{x})
p(Ck∣xxx)进行建模。
相比生成式方法有两个优点:需要训练的参数更少,预测表现会提升(尤其当类条件概率密度的假设没有很好的近似真实分布的时候)。
logistic回归
对于二分类问题,类别
C
1
C_1
C1的后验概率为
p
(
C
1
∣
ϕ
)
=
y
(
ϕ
)
=
σ
(
w
⊤
ϕ
)
p(C_1|\pmb{\phi})=y(\pmb{\phi})=\sigma(\pmb{w}^\top\pmb{\phi})
p(C1∣ϕϕϕ)=y(ϕϕϕ)=σ(www⊤ϕϕϕ)
可见,对于
M
M
M维特征空间
ϕ
\pmb{\phi}
ϕϕϕ,该模型只有
M
M
M个可调节参数,而生成式模型需要调节参数总数为
M
(
M
+
5
)
2
+
1
\frac{M(M+5)}{2}+1
2M(M+5)+1。
对于一个数据集
{
ϕ
n
,
t
n
}
\{\pmb{\phi}_n,t_n\}
{ϕϕϕn,tn},其中,
t
n
∈
{
0
,
1
}
t_n\in \{0,1\}
tn∈{0,1}且
ϕ
n
=
ϕ
(
x
n
)
\pmb{\phi}_n=\phi(\pmb{x}_n)
ϕϕϕn=ϕ(xxxn),
n
=
1
,
2
,
⋯
 
,
N
n=1,2,\cdots,N
n=1,2,⋯,N。
似然函数为
p
(
t
∣
w
)
=
∏
n
=
1
N
y
n
t
n
(
1
−
y
n
)
1
−
t
n
p(\textbf{t}|\pmb{w})=\prod_{n=1}^Ny_n^{t_n}(1-y_n)^{1-t_n}
p(t∣www)=n=1∏Nyntn(1−yn)1−tn
其中,
t
=
(
t
1
,
t
2
,
⋯
 
,
t
N
)
⊤
\textbf{t}=(t_1,t_2,\cdots,t_N)^\top
t=(t1,t2,⋯,tN)⊤。通过对似然函数取负对数的方式定义一个误差函数,即交叉熵(cross-entropy)误差函数
E
(
w
)
=
−
ln
p
(
t
∣
w
)
=
−
∑
n
=
1
N
{
t
n
ln
y
n
+
(
1
−
t
n
)
ln
(
1
−
y
n
)
}
E(\pmb{w})=-\ln p(\textbf{t}|\pmb{w})=-\sum_{n=1}^N\{t_n\ln y_n+(1-t_n)\ln(1-y_n)\}
E(www)=−lnp(t∣www)=−n=1∑N{tnlnyn+(1−tn)ln(1−yn)}
对
w
\pmb{w}
www求梯度,可得
∇
E
(
w
)
=
∑
n
=
1
N
(
y
n
−
t
n
)
ϕ
n
=
Φ
⊤
(
y
−
t
)
\nabla E(\pmb{w})=\sum_{n=1}^N(y_n-t_n)\pmb{\phi}_n=\Phi^\top(\textbf{y}-\textbf{t})
∇E(www)=n=1∑N(yn−tn)ϕϕϕn=Φ⊤(y−t)
注: 最大似然方法对于线性可分的数据集会产生严重的过拟合。
迭代重加权最小平方(IRLS)
logistic回归不再有解析解,故需要用Newton-Raphson迭代
w
n
e
w
=
w
o
l
d
−
H
−
1
∇
E
(
w
)
\pmb{w}^{new}=\pmb{w}^{old}-H^{-1}\nabla E(\pmb{w})
wwwnew=wwwold−H−1∇E(www)
其中,
H
H
H是Hessian矩阵,其元素为
E
(
w
)
E(\pmb{w})
E(www)关于
w
\pmb{w}
www的二阶导数。
推导可得
H
=
∇
∇
E
(
w
)
=
∑
n
=
1
N
y
n
(
1
−
y
n
)
ϕ
n
ϕ
n
⊤
=
Φ
⊤
R
Φ
H=\nabla\nabla E(\pmb{w})=\sum_{n=1}^Ny_n(1-y_n)\pmb{\phi}_n\pmb{\phi}_n^\top=\Phi^\top R\Phi
H=∇∇E(www)=n=1∑Nyn(1−yn)ϕϕϕnϕϕϕn⊤=Φ⊤RΦ
其中,
N
×
N
N\times N
N×N的对角矩阵
R
R
R元素为
R
n
n
=
y
n
(
1
−
y
n
)
R_{nn}=y_n(1-y_n)
Rnn=yn(1−yn)。由于
o
<
y
n
<
1
o<y_n<1
o<yn<1,故对任意向量
u
u
u都有
u
⊤
H
u
>
0
u^\top Hu>0
u⊤Hu>0,即
H
H
H正定,因此误差函数是
w
\pmb{w}
www的凸函数,有唯一最小值。
softmax分类
对于多分类问题,后验概率为
p
(
C
k
∣
ϕ
)
=
y
k
(
ϕ
)
=
exp
(
a
k
)
∑
j
exp
(
a
j
)
p(C_k|\pmb{\phi})=y_k(\pmb{\phi})=\frac{\exp(a_k)}{\sum_j\exp(a_j)}
p(Ck∣ϕϕϕ)=yk(ϕϕϕ)=∑jexp(aj)exp(ak)
其中,
a
k
=
w
k
⊤
ϕ
a_k=\pmb{w}_k^\top\pmb{\phi}
ak=wwwk⊤ϕϕϕ。求导,有
∂
y
k
∂
a
j
=
{
y
k
(
1
−
y
k
)
,
j
=
k
−
y
k
y
j
,
j
≠
k
\frac{\partial y_k}{\partial a_j}=\begin{cases} y_k(1-y_k), & j=k \\ -y_ky_j, & j\neq k \end{cases}
∂aj∂yk={yk(1−yk),−ykyj,j=kj̸=k
从而,似然函数为
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(T|\pmb{w}_1,\cdots,\pmb{w}_K)=\prod_{n=1}^N\prod_{k=1}^Kp(C_k|\pmb{\phi}_n)^{t_{nk}}=\prod_{n=1}^N\prod_{k=1}^Ky_{nk}^{t_{nk}}
p(T∣www1,⋯,wwwK)=n=1∏Nk=1∏Kp(Ck∣ϕϕϕn)tnk=n=1∏Nk=1∏Kynktnk
其中,
y
n
k
=
y
k
(
ϕ
n
)
y_{nk}=y_k(\pmb{\phi}_n)
ynk=yk(ϕϕϕn),
T
T
T是一个
N
×
K
N\times K
N×K的矩阵,元素
t
n
k
t_{nk}
tnk为1-of-K编码值。
交叉熵误差函数为
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(\pmb{w}_1,\cdots,\pmb{w}_K)=-\ln p(T|\pmb{w}_1,\cdots,\pmb{w}_K)=-\sum_{n=1}^N\sum_{k=1}^Kt_{nk}\ln y_{nk}
E(www1,⋯,wwwK)=−lnp(T∣www1,⋯,wwwK)=−n=1∑Nk=1∑Ktnklnynk
同样利用Newton-Raphson迭代可求解。