logistic 回归

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+ez(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 )

通过化简可得:
logy1y=wTx+b(4) (4) log ⁡ y 1 − y = w T x + b

若将 y y 视为样本 x x 作为正例的可能性,则 1y 1 − y 是其反例的可能性,两者的比值 y1y y 1 − y 称为 几率 (odds),反应了 x x 作为正例的相对可能性,对几率取对数则得到 对数几率 (log odds,亦称logit):
logy1y(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)1y 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)1yi 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)+(1yi)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,bi=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 的高阶可导的凸优化问题,根据凸优化理论,经典的数值优化算法如梯度下降,牛顿法等都可以求得其最优解。

你可能感兴趣的:(优化算法)