徐丢丢的机器学习笔记(一)—— Logistic Regression

线性模型

首先,我们回顾一下线性模型的概念,周志华《机器学习》中是这样定义线性模型的:

给定由d个属性描述的示例 x = ( x 1 ; x 2 ; . . . ; x d ) \bm{x}=(x_1;x_2;...;x_d) x=(x1;x2;...;xd),其中 x i x_i xi x \bm{x} x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即:

f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b (1) f(x)=w_1x_1+w_2x_2+...+w_dx_d+b \tag{1} f(x)=w1x1+w2x2+...+wdxd+b(1)

一般可以写作向量形式:

f ( x ) = w T x + b (2) f(\bm{x}) = \bm{w}^T \bm{x} + b \tag{2} f(x)=wTx+b(2)

因此我们只需要学习得到 w \bm{w} w b b b就能确定模型。


Logistics函数是怎么来的?

首先需要确立关于广义线性模型的几个概念:

  1. 给定特征属性x和参数 θ \theta θ,y的条件概率 P ( y ∣ x ; θ ) P(y|x;\theta) P(yx;θ)服从指数分布族
    P ( y ; η ) = b ( y ) exp ⁡ ( η T T ( y ) − a ( η ) ) (3) P(y;\eta) = b(y)\exp(\eta^TT(y)-a(\eta)) \tag{3} P(y;η)=b(y)exp(ηTT(y)a(η))(3)
  2. 预测T(y)的期望,即计算 E [ T ( y ) ∣ x ] E[T(y)|x] E[T(y)x]
  3. η \eta η x x x之间是线性的,即 η = θ T x \eta=\theta^Tx η=θTx

一般来说,逻辑回归二分类问题遵循伯努利分布,因此预测概率可以写成:

P ( y ; ϕ ) = ϕ y ( 1 − ϕ ) 1 − y = exp ⁡ ( ln ⁡ ( ϕ y ( 1 − ϕ ) 1 − y ) ) = exp ⁡ ( y ln ⁡ ϕ + ( 1 − y ) ln ⁡ ( 1 − ϕ ) ) = exp ⁡ ( y ln ⁡ ϕ 1 − ϕ + ln ⁡ ( 1 − ϕ ) ) (4) \begin{aligned} P(y;\phi) & = \phi^y(1-\phi)^{1-y} \\ & =\exp(\ln(\phi^y(1-\phi)^{1-y})) \\ & =\exp(y\ln\phi+(1-y)\ln(1-\phi)) \\ &= \exp(y\ln\frac{\phi}{1-\phi}+\ln(1-\phi)) \end{aligned} \tag{4} P(y;ϕ)=ϕy(1ϕ)1y=exp(ln(ϕy(1ϕ)1y))=exp(ylnϕ+(1y)ln(1ϕ))=exp(yln1ϕϕ+ln(1ϕ))(4)

对照指数分布族的式子,我们可以得到对应关系:

{ b ( y ) = 1 η = ln ⁡ ( ϕ 1 − ϕ ) T ( y ) = y a ( η ) = − ln ⁡ ( 1 − ϕ ) (5) \begin{cases} b(y)=1 \\ \eta=\ln(\frac{\phi}{1-\phi}) \\ T(y) = y \\ a(\eta) = -\ln(1-\phi) \end{cases} \tag{5} b(y)=1η=ln(1ϕϕ)T(y)=ya(η)=ln(1ϕ)(5)

因此,我们可以得到 η \eta η ϕ \phi ϕ之间的关系式:
ϕ = 1 1 + e − η = 1 1 + e − θ T x (6) \phi = \frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^Tx}} \tag{6} ϕ=1+eη1=1+eθTx1(6)

到这里,是否对这条式子有一些熟悉了,如果对逻辑回归熟悉的同学,可能已经发现,以上这个式子,就是逻辑回归中所使用的Sigmoid函数。因此,逻辑回归中使用Sigmoid函数是具有理论依据的。


逻辑回归的理论推导

首先,我们知道线性回归可以写成公式(2)中 f ( x ) = w T x + b f(\bm{x}) = \bm{w}^T \bm{x} + b f(x)=wTx+b的形式,并且使用Sigmoid函数将线性回归的预测值压缩到 ( 0 , 1 ) (0,1) (0,1)的区间中,Sigmoid函数可以写成:
y = 1 1 + e − z = 1 1 + e − ( w T x + b ) (7) y=\frac{1}{1+e^{-z}} = \frac{1}{1+e^{-(\bm{w}^T\bm{x}+b)}} \tag{7} y=1+ez1=1+e(wTx+b)1(7)

Sigmoid函数及其导数的图像,如图1图2所示。根据图像我们可以发现,当 z > 0 z>0 z>0时, y > 0.5 y>0.5 y>0.5,当 z ≤ 0 z\le0 z0时, y ≤ 0.5 y\le0.5 y0.5,由此我们可以通过计算y的值从而判断是哪一类。

接下来我们正式开始数学推导过程,大家拿好纸笔跟着一起来推 😃

这里引入正反例的概念,由于逻辑回归中遵循伯努利分布,因此 y ∈ { 0 , 1 } y\in\{0, 1\} y{0,1},我们可以假设1代表正例,0代表反例,那么我们可以写出y分别为正例和反例的概率:
f w , b ( x ) = p ( y = 1 ∣ x ) = e − ( w T x + b ) 1 + e − ( w T x + b ) (8) f_{w,b}(x)=p(y=1|x)=\frac{e^{-(\bm{w}^T\bm{x}+b)}}{1+e^{-(\bm{w}^T\bm{x}+b)}} \tag{8} fw,b(x)=p(y=1x)=1+e(wTx+b)e(wTx+b)(8)

1 − f w , b ( x ) = p ( y = 0 ∣ x ) = 1 1 + e − ( w T x + b ) (9) 1-f_{w,b}(x)=p(y=0|x)=\frac{1}{1+e^{-(\bm{w}^T\bm{x}+b)}} \tag{9} 1fw,b(x)=p(y=0x)=1+e(wTx+b)1(9)

其中 f w , b ( x ) f_{w,b}(x) fw,b(x)为当给定一组 ( w , b ) (w,b) (w,b)时,对特征向量x预测出为正例的概率。

因此,我们可以通过极大似然估计去估计 ( w , b ) (w,b) (w,b),我们可以写出下面一条式子:

L ( w , b ) = ∏ i = 1 m p ( y i ∣ x i ; w , b ) (10) L(w,b) = \prod_{i=1}^m p(y_i|x_i;w,b) \tag{10} L(w,b)=i=1mp(yixi;w,b)(10)

即令每个样本属于其真实标记的概率越大越好,为了方便计算,我们可以将上述式子改写成对数形式:

L ( w , b ) = ∑ i = 1 m ln ⁡ p ( y i ∣ x i ; w , b ) = ∑ i = 1 m [ y i ln ⁡ f w , b ( x i ) + ( 1 − y i ) ln ⁡ ( 1 − f w , b ( x i ) ) ] (11) \begin{aligned} L(w,b) & = \sum_{i=1}^m \ln p(y_i|x_i;w,b) \\ & = \sum_{i=1}^m [y_i\ln f_{w,b}(x_i) + (1-y_i)\ln (1-f_{w,b}(x_i))] \end{aligned} \tag{11} L(w,b)=i=1mlnp(yixi;w,b)=i=1m[yilnfw,b(xi)+(1yi)ln(1fw,b(xi))](11)

我们的目标函数是使得 L ( w , b ) L(w,b) L(w,b)最大化,那么也可以改写为令 − L ( w , b ) -L(w,b) L(w,b)最小化,因此有:

O b j = − L ( w , b ) = − ∑ i = 1 m [ y i ln ⁡ f w , b ( x i ) + ( 1 − y i ) ln ⁡ ( 1 − f w , b ( x i ) ) ] (12) Obj=-L(w,b) = -\sum_{i=1}^m [y_i\ln f_{w,b}(x_i) + (1-y_i)\ln (1-f_{w,b}(x_i))] \tag{12} Obj=L(w,b)=i=1m[yilnfw,b(xi)+(1yi)ln(1fw,b(xi))](12)

推到这里,我们可以发现,上式实际上是 y y y f w , b ( x ) f_{w,b}(x) fw,b(x)两个伯努利分布的交叉熵。

那么,接下来我们可以用梯度下降法来求得最优解。

w w w求导有:
∂ ( − L ( w , b ) ) ∂ w = − ∑ i = 1 m y i ( 1 − f ( x i ) ) x − ( 1 − y i ) f ( x i ) x = − ∑ i = 1 m ( y i − f ( x i ) ) x (13) \begin{aligned} \frac{\partial (-L(w,b))}{\partial w} & =-\sum_{i=1}^m y_i(1-f(x_i))x-(1-y_i)f(x_i)x \\ & =-\sum_{i=1}^m (y_i-f(x_i))x \end{aligned} \tag{13} w(L(w,b))=i=1myi(1f(xi))x(1yi)f(xi)x=i=1m(yif(xi))x(13)

因此梯度下降法的迭代过程为: w ← w − η ∑ i = 1 m − ( y i − f ( x i ) ) x i w \leftarrow w - \eta \sum_{i=1}^m-(y_i-f(x_i))x_i wwηi=1m(yif(xi))xi

图1 Sigmoid函数
图2 Sigmoid函数导数

逻辑回归的优缺点

优点:

  • 使用的是频率学派的思想,使用极大似然估计方法建模,因此无需事先假设数据的分布,能避免假设分布不准确带来的问题
  • 能预测概率而不只是类别
  • 目标函数是凸函数

缺点:

  • 本质上是线性分类器,处理不好特征之间相关的情况,对多重共线性数据比较敏感
  • 很难处理数据不平衡的问题
  • 特征空间很大时性能欠佳
  • 容易欠拟合

关于逻辑回归的一些值得注意的点

为什么用交叉熵而不用均方误差作为损失函数?

  1. 面对分类问题的场景,如果使用均方误差作为损失函数,那么在用梯度下降法对w求微分时,当目标很远或很近时,计算出的偏微分均为0,也就是说不管目前离目标远还是近,下降速度都会非常缓慢。
  2. 使用均方误差时,MSE的导数中包含了Sigmoid函数的导数形式,Sigmoid导数最大为0.25,因此更新非常缓慢。

Bias的意义是什么?

偏差Bias的意义是一定程度上反映正反例判定的偏好性,当Bias为0,则两个类别是均匀分布的,不存在任何的偏差,当Bia大于0时,那么模型更容易判定为正例,反之亦然。

LR与其他常用模型的对比

1、LR vs 线性回归

  • LR使用的是极大似然估计法,线性回归使用的是最小二乘法
  • LR用于分类,线性回归用于回归
  • 两者对于非线性问题的处理效果都欠佳

2、LR vs 最大熵模型

  • 本质没有区别
  • 后者在解决二分类问题时就是逻辑回归
  • 后者在解决多分类问题时就是多项逻辑回归

3、LR vs SVM

  • LR使用交叉熵作为损失函数,SVM使用Hinge Loss作为损失函数
  • LR使用全量数据进行训练,SVM使用支持向量进行训练
  • LR的参数有前提假设(高斯分布),SVM不需要
  • LR使用极大似然估计法,SVM则是使用距离最大的思想

4、LR vs NB

  • LR是判别模型,NB是生成模型
  • NB需要有属性条件独立假设,LR则不需要。

LR为什么需要对数据进行归一化或取对数?

  • 工程角度:加速收敛,提高计算效率
  • 理论角度:使梯度下降过程更加稳定,使数据更加服从高斯分布以满足假设前提

参考资料

本文的撰写参考自以下文章、视频、网页及书籍,非常感谢这些文章给予我的启发,本人也强烈推荐读者能移步至如下链接以进一步的了解。
[1] 李宏毅《机器学习》笔记
[2] 李宏毅《机器学习》
[3] 广义线性模型
[4] 周志华《机器学习》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值