logistic 回归
如何用线性模型做分类任务?
只需要在广义线性模型 (1) 中找一个单调可微函数将线性回归的值与分类任务的真实标签 y y 联系起来。
y=g(wTx+b)(1) (1) y = g ( w T x + b )
其中,
g(⋅) g ( ⋅ ) 称为
link function
考虑二分类任务,其输出标签 y∈{0,1} y ∈ { 0 , 1 } ,而线性回归模型产生的预测值 z=wTx+b z = w T x + b 是实值,于是,需要将实值 z z 转换为 0/1 0 / 1 值。最理想的单位阶跃函数 (unit-step function, Heaviside function)。
y=⎧⎩⎨00.51z<0z=0z>0 y = { 0 z < 0 0.5 z = 0 1 z > 0
即若预测值
z z 大于零就判为正例,小于零则判为负例,预测值为临界值零则可以任意判断。
但单位阶跃函数不连续,因此不能直接用作 g(⋅) g ( ⋅ ) ,于是希望找到能在一定程度上近似单位阶跃函数的替代函数 ,并希望它单调可微。对数几率函数 (logistic function)正是这样一个常用的替代函数:
y=11+e−z(2) (2) y = 1 1 + e − z
对数几率函数是一种
Sigmoid function ,它将
z z 值转化为一个接近0或1的
y y 值,并且其输出值在
z=0 z = 0 附近变化很陡。将对数几率函数 (2) 带入 (1) 得到:
y=11+e−(wTx+b)(3) (3) y = 1 1 + e − ( w T x + b )
通过化简可得:
logy1−y=wTx+b(4) (4) log y 1 − y = w T x + b
若将
y y 视为样本
x x 作为正例的可能性,则
1−y 1 − y 是其反例的可能性,两者的比值
y1−y y 1 − y 称为
几率 (odds),反应了
x x 作为正例的相对可能性,对几率取对数则得到
对数几率 (log odds,亦称logit):
logy1−y(5) (5) log y 1 − y
由此可以看出,(5) 实际上是在用线性回归模型的预测结果去逼近真实标签的对数几率,因此,其对应的模型称为
对数几率回归 (logistic regression)。特别需要注意到,虽然它的名字是”回归”,但实际确实一种分类学习方法。
这种方法有很多优点,例如:
- 它是直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题。
- 它不是仅预测出”类别”,而是可以得到近似概率的预测,这对许多需利用概率辅助决策的任务很有用。
- 对数几率函数是任意阶可导的凸函数,有很好的数学性质,现有的很多数值优化算法都可以直接用于求解最优解。
若将 (4) 中的 y y 视为类的后验概率估计 p(y=1|x) p ( y = 1 | x ) ,因此有:
logp(y=1|x)p(y=0|x)=wTx+b log p ( y = 1 | x ) p ( y = 0 | x ) = w T x + b
注意到
p(y=0|x)+p(y=1|x)=1 p ( y = 0 | x ) + p ( y = 1 | x ) = 1 ,可以得到:
p(y=1|x)=ewTx+b1+ewTx+bp(y=0|x)=11+ewTx+b p ( y = 1 | x ) = e w T x + b 1 + e w T x + b p ( y = 0 | x ) = 1 1 + e w T x + b
因此,
y y 概率密度函数为:
p(y|x,w,b)=p(y=1|x)yp(y=0|x)1−y p ( y | x , w , b ) = p ( y = 1 | x ) y p ( y = 0 | x ) 1 − y
于是,可以通过
极大似然估计 (MLP) 来估计
w,b w , b 。
似然函数为:
L(w,b)=∏i=1np(yi=1|xi)yip(yi=0|x)1−yi L ( w , b ) = ∏ i = 1 n p ( y i = 1 | x i ) y i p ( y i = 0 | x ) 1 − y i
对数似然函数为:
==l(w,b)=logL(w,b)∑i=1nyilogp(yi=1|xi)+(1−yi)logp(yi=0|x)∑i=1n(yi(wTxi+b)−log(1+ewTxi+b)) l ( w , b ) = log L ( w , b ) = ∑ i = 1 n y i log p ( y i = 1 | x i ) + ( 1 − y i ) log p ( y i = 0 | x ) = ∑ i = 1 n ( y i ( w T x i + b ) − log ( 1 + e w T x i + b ) )
于是对应的优化问题是为:
minw,b∑i=1n(−yi(wTxi+b)+log(1+ewTxi+b))(6) (6) min w , b ∑ i = 1 n ( − y i ( w T x i + b ) + log ( 1 + e w T x i + b ) )
优化问题 (6) 是关于
w,b w , b 的高阶可导的凸优化问题,根据凸优化理论,经典的数值优化算法如梯度下降,牛顿法等都可以求得其最优解。