本文首发于我的个人博客Suixin’s Blog
原文: https://suixinblog.cn/2018/10/linear-classification3.html 作者: Suixin
判别式方法:直接对条件概率分布
p(Ck∣xxx)进行建模。
相比生成式方法有两个优点:需要训练的参数更少,预测表现会提升(尤其当类条件概率密度的假设没有很好的近似真实分布的时候)。
logistic回归
对于二分类问题,类别
C1的后验概率为
p(C1∣ϕϕϕ)=y(ϕϕϕ)=σ(www⊤ϕϕϕ)
可见,对于
M维特征空间
ϕϕϕ,该模型只有
M个可调节参数,而生成式模型需要调节参数总数为
2M(M+5)+1。
对于一个数据集
{ϕϕϕn,tn},其中,
tn∈{0,1}且
ϕϕϕn=ϕ(xxxn),
n=1,2,⋯,N。
似然函数为
p(t∣www)=n=1∏Nyntn(1−yn)1−tn
其中,
t=(t1,t2,⋯,tN)⊤。通过对似然函数取负对数的方式定义一个误差函数,即交叉熵(cross-entropy)误差函数
E(www)=−lnp(t∣www)=−n=1∑N{tnlnyn+(1−tn)ln(1−yn)}
对
www求梯度,可得
∇E(www)=n=1∑N(yn−tn)ϕϕϕn=Φ⊤(y−t)
注: 最大似然方法对于线性可分的数据集会产生严重的过拟合。
迭代重加权最小平方(IRLS)
logistic回归不再有解析解,故需要用Newton-Raphson迭代
wwwnew=wwwold−H−1∇E(www)
其中,
H是Hessian矩阵,其元素为
E(www)关于
www的二阶导数。
推导可得
H=∇∇E(www)=n=1∑Nyn(1−yn)ϕϕϕnϕϕϕn⊤=Φ⊤RΦ
其中,
N×N的对角矩阵
R元素为
Rnn=yn(1−yn)。由于
o<yn<1,故对任意向量
u都有
u⊤Hu>0,即
H正定,因此误差函数是
www的凸函数,有唯一最小值。
softmax分类
对于多分类问题,后验概率为
p(Ck∣ϕϕϕ)=yk(ϕϕϕ)=∑jexp(aj)exp(ak)
其中,
ak=wwwk⊤ϕϕϕ。求导,有
∂aj∂yk={yk(1−yk),−ykyj,j=kj̸=k
从而,似然函数为
p(T∣www1,⋯,wwwK)=n=1∏Nk=1∏Kp(Ck∣ϕϕϕn)tnk=n=1∏Nk=1∏Kynktnk
其中,
ynk=yk(ϕϕϕn),
T是一个
N×K的矩阵,元素
tnk为1-of-K编码值。
交叉熵误差函数为
E(www1,⋯,wwwK)=−lnp(T∣www1,⋯,wwwK)=−n=1∑Nk=1∑Ktnklnynk
同样利用Newton-Raphson迭代可求解。
参考
“Pattern Recognition and Machine Learning”