本偏笔记主要针对线性分类模型中的logistic regression 以及 multiclass logistic regression
Logistic Regression Model
逻辑回归模型是针对二类的分类模型,本质上其建模了类的后验概率
1.其由来(Probabilistic Generative Models)
根据贝叶斯公式,类的后验概率为:
p(C1|x)=p(x|C1)p(C1)p(x|C2)p(C2)+p(x|C1)p(C1)(1.1) (1.1) p ( C 1 | x ) = p ( x | C 1 ) p ( C 1 ) p ( x | C 2 ) p ( C 2 ) + p ( x | C 1 ) p ( C 1 )
假设我们定义如下一个式子:
a=lnp(x|C1)p(C1)p(x|C2)p(C2)(1.2) (1.2) a = l n p ( x | C 1 ) p ( C 1 ) p ( x | C 2 ) p ( C 2 )
那么恰有:
σ(a)=11+exp(−a)=p(C1|x)(1.3) (1.3) σ ( a ) = 1 1 + e x p ( − a ) = p ( C 1 | x )
也就是说,当我们做了式 (1.2) ( 1.2 ) 这样一个特殊的变量替换or换元后,类的后验概率可以用logistic sigmoid建模。实际上,我们知道logistic regression模型在做决策时:
y=⎧⎩⎨⎪⎪⎪⎪C1,y>0.5C2,y<0.5randomGuess,y==0.5(1.4) (1.4) y = { C 1 , y > 0.5 C 2 , y < 0.5 r a n d o m G u e s s , y == 0.5
而当逻辑回归模型当输出为0.5时,也就是
a=lnp(x|C1)p(C1)p(x|C2)p(C2)=lnp(C1|x)p(x)p(C2|x)p(x)=lnp(C1|x)p(C2|x)=0.5 a = l n p ( x | C 1 ) p ( C 1 ) p ( x | C 2 ) p ( C 2 ) = l n p ( C 1 | x ) p ( x ) p ( C 2 | x ) p ( x ) = l n p ( C 1 | x ) p ( C 2 | x ) = 0.5 , 换言之两类当后验概率相等时,无法做出决策。
2.其求解(Maximum likelihood)
如果输入变量是连续的
假设类条件概率密度(class-conditional distribution)服从高斯分布,并且两类的协方差一致。在这样的前提假设下,据式 (1.2) ( 1.2 ) 可化为
a=wTx+w0(2.1) (2.1) a = w T x + w 0
其中
w=Σ−1(μ1−μ2)(2.2) (2.2) w = Σ − 1 ( μ 1 − μ 2 )
w0=−12μT1Σ−1μ1+12μT2Σ−1μ2+lnp1p2(2.3) (2.3) w 0 = − 1 2 μ 1 T Σ − 1 μ 1 + 1 2 μ 2 T Σ − 1 μ 2 + l n p 1 p 2
则式
(1.3) ( 1.3 ) 可化为
p(C1|x)=σ(a)=σ(wTx+w0)(2.4) (2.4) p ( C 1 | x ) = σ ( a ) = σ ( w T x + w 0 )
其中
μ1 μ 1 和
μ2 μ 2 分别为
C1 C 1 和
C2 C 2 类分布的期望,
Σ Σ 为分布的协方差。
也就是说在我们假定类条件密度分布服从高斯分布的前提下,最终类的后验概率是式 (2.4) ( 2.4 ) .可以看到最终的决策边界是线性超平面,也即 wTx=0 w T x = 0
要求类的后验,可以先求类的先验和类的条件密度分布的参数,再由贝叶斯公式(等价于直接使用式 (2.2) ( 2.2 ) 和 (2.3) ( 2.3 ) , (2.4) ( 2.4 ) )。
假设当下训练数据集为 {xn,tn} { x n , t n } ,且类别编码方式
tn=⎧⎩⎨⎪⎪1,若为C10,else t n = { 1 , 若 为 C 1 0 , e l s e
那么完全数据的对数似然函数为:
lnp(t,X|π,μ1,μ2,Σ)=ln∏i=1N[π(xn|μ1,Σ)]tn[π(xn|μ2,Σ)]1−tn(2.5) (2.5) l n p ( t , X | π , μ 1 , μ 2 , Σ ) = l n ∏ i = 1 N [ π N ( x n | μ 1 , Σ ) ] n t [ π N ( x n | μ 2 , Σ ) ] 1 − t n
求解可得:
μ1=1N1∑i=1Ntnxn(2.6) (2.6) μ 1 = 1 N 1 ∑ i = 1 N t n x n
μ2=1N2∑i=1N(1−tn)xn(2.7) (2.7) μ 2 = 1 N 2 ∑ i = 1 N ( 1 − t n ) x n
Σ=S=N1NS1+N2NS2(2.8) (2.8) Σ = S = N 1 N S 1 + N 2 N S 2
其中
Si=1Ni∑n∈Ci(xn−μ1)(xn−μ1)T(2.9) (2.9) S i = 1 N i ∑ n ∈ C i ( x n − μ 1 ) ( x n − μ 1 ) T
也就是说利用最大似然求解,类条件密度分布的期望为该类的数据的均值,而协方差则为各类协方差的加权平均
3.换个角度求解(Probabilistic Discriminative Models)
实际上,除了利用最大似然求解先验以及类的条件密度分布的参数后,隐式地利用式 (2.2),(2.3),(2.4) ( 2.2 ) , ( 2.3 ) , ( 2.4 ) 求解外,还有另一种求法。既然我们已经知道了类的后验概率可以在一定的假设下写作式 (2.4) ( 2.4 ) ,那么此时我们可以直接利用训练数据通过最大似然显式地求解参数 w w 和 w0 w 0
3.1 梯度下降
要利用随机梯度下降或者批梯度下降求解,我们需要获得的便是梯度
假设我们手中的训练集为 {ϕn,tn} { ϕ n , t n } ,此处 ϕn=ϕ(xn) ϕ n = ϕ ( x n ) 可视为对原始输入做了特征提取。那么似然函数为:
p(t|w)=∏n=1Nytnn{1−yn}1−tn(3.1) (3.1) p ( t | w ) = ∏ n = 1 N y n t n { 1 − y n } 1 − t n
其中
yn=p(C1|ϕn)=σ(wTϕn)(3.2) (3.2) y n = p ( C 1 | ϕ n ) = σ ( w T ϕ n )
那么损失函数便可定义为:
E(w)=−lnp(t|w)=−∑n=1N{tnlnyn+(1−tn)ln(1−yn)}(3.3) (3.3) E ( w ) = − l n p ( t | w ) = − ∑ n = 1 N { t n l n y n + ( 1 − t n ) l n ( 1 − y n ) }
注意到这个误差函数叫交叉熵损失函数
其关于参数 w w 的导数为:
∇E(w)=∑n=1N(yn−tn)ϕn(3.4) (3.4) ∇ E ( w ) = ∑ n = 1 N ( y n − t n ) ϕ n
3.2迭代再加权最小二乘法
对于参数 w w 的求解除了一般的梯度下降,我们还可以使用更有效的迭代算法,这便是IRLS(IteRative reweighted least squares)。这个算法是基于Newton-Raphson Iterative optimization scheme:
w(new)=w(old)−H−1∇E(w)(3.5) (3.5) w ( n e w ) = w ( o l d ) − H − 1 ∇ E ( w )
其中
H H 为误差函数关于参数
w w 的二阶导
这是一种局部二次近似,我们可以从线性回归模型来看看:
在线性回归模型中,我们知道对数似然函数是参数 w的二次函数 w 的 二 次 函 数 ,其有解析解(Normal Equation),但是在利用梯度下降求解的时候,我们是逐步去逼近这个最优解(解析解)。但是如果我们用局部二次近似,便可以一步到位
:
∇E(w)=∑n=1N(wTϕn−tn)ϕn=ΦTΦw−ΦTt ∇ E ( w ) = ∑ n = 1 N ( w T ϕ n − t n ) ϕ n = Φ T Φ w − Φ T t
∇∇E(w)=∑n=1NϕnϕTn=ΦTΦ ∇ ∇ E ( w ) = ∑ n = 1 N ϕ n ϕ n T = Φ T Φ
w(new)=w(old)−(ΦTΦ)−1{ΦTΦwold−ΦTt}=(ΦTΦ)−1ΦTt(3.6) (3.6) w ( n e w ) = w ( o l d ) − ( Φ T Φ ) − 1 { Φ T Φ w o l d − Φ T t } = ( Φ T Φ ) − 1 Φ T t
那么对于logistic regression而言:
∇E(w)=∑n=1N(yn−tn)ϕn=ΦT(y−t)(3.7) (3.7) ∇ E ( w ) = ∑ n = 1 N ( y n − t n ) ϕ n = Φ T ( y − t )
∇∇E(w)=H=∑n=1Nyn(1−yn)ϕnϕTn=ΦTRΦ(3.8) (3.8) ∇ ∇ E ( w ) = H = ∑ n = 1 N y n ( 1 − y n ) ϕ n ϕ n T = Φ T R Φ
其中
R R 是一个对角阵,
Rnn=yn(1−yn) R n n = y n ( 1 − y n )
w(new)=w(old)−(ΦTRΦ)−1ΦT(y−t)=(ΦTRΦ)−1ΦTRZ(3.9) (3.9) w ( n e w ) = w ( o l d ) − ( Φ T R Φ ) − 1 Φ T ( y − t ) = ( Φ T R Φ ) − 1 Φ T R Z
其中
Z=Φwold−R−1(y−t)(3.10) (3.10) Z = Φ w o l d − R − 1 ( y − t )
直接求解的好处
Multi-class logistic regression
More general