机器学习笔记之——逻辑回归

逻辑回归


1. 逻辑回归(Logistic Regression)

1.1 模型描述

逻辑回归虽然名字里有回归,但是实际上不是用于回归问题,而是一个分类模型。考虑一个二分类任务,其输出标签 y ∈ { 0 , 1 } y\in \{0,1\} y{0,1}。线性模型 z = w T x + b z=\boldsymbol w^T \boldsymbol x + b z=wTx+b 的输出值是一个连续值,我们需要把其转化成 0 或者 1 的离散值。最简单的方法是设定一个阈值,大于这个阈值则预测为 1,否则预测为 0,最常用的阈值是 0,则预测函数如下:
g ( z ) = { 1 , i f    z > 0 0 , i f    z ≤ 0 g(z) = \begin{cases} 1, & if\ \ z > 0\\ 0, & if \ \ z \le 0 \end{cases} g(z)={1,0,if  z>0if  z0 但是这个函数不连续,而 Sigmoid 函数有着很好的性质,它是连续的,且任意阶可导,值域在 (0,1) 之间,因此我们使用其来把线性组合的值 z z z 映射到 (0,1) 之间的值,我们可以把这个实数看成是样本属于正例的概率
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1 z = w T x + b z=\boldsymbol w^T \boldsymbol x + b z=wTx+b 代入,得到:
f ( x ) = g ( z ) = 1 1 + e − ( w T x + b ) f(\boldsymbol x)=g(z)=\frac{1}{1+e^{-(\boldsymbol w^T \boldsymbol x + b)}} f(x)=g(z)=1+e(wTx+b)1

1.2 损失函数

逻辑回归的损失函数是交叉熵(Cross Entropy),具体如下:
L = − y log ⁡ f ( x ) − ( 1 − y ) log ⁡ ( 1 − f ( x ) ) L=-y \log f(\boldsymbol x)-(1-y)\log (1-f(\boldsymbol x)) L=ylogf(x)(1y)log(1f(x)) 预测函数 f ( x ) f(\boldsymbol x) f(x) 的输出值是一个 (0,1) 之间的实数,具体分析如下:

  • 当样本是正例 ( y = 1 ) (y=1) (y=1) 时,此时 1 − y = 0 1-y=0 1y=0,因此 L = − log ⁡ f ( x ) L=-\log f(\boldsymbol x) L=logf(x)。当 f ( x ) f(\boldsymbol x) f(x) 趋近于 1 时,L 趋近于 0,而且当 f ( x ) f(\boldsymbol x) f(x) 靠近 0 时,L 会急剧增加到无穷。
  • 当样本是反例 ( y = 0 ) (y=0) (y=0) 时,此时 L = − log ⁡ ( 1 − f ( x ) ) L=-\log (1-f(\boldsymbol x)) L=log(1f(x)),情况刚好与上面相反,此时的损失函数会驱使 f ( x ) f(\boldsymbol x) f(x) 逼近于 0,否则损失会急剧增加。

我们把 f ( x ) f(\boldsymbol x) f(x) 看成是样本属于正例的概率,即 p ( y = 1 ) = f ( x ) p(y=1)=f(\boldsymbol x) p(y=1)=f(x),而样本属于反例的概率是 p ( y = 0 ) = 1 − f ( x ) p(y=0)=1-f(\boldsymbol x) p(y=0)=1f(x),那么 y y y 的概率分布为:
p ( y ) = f ( x ) y ( 1 − f ( x ) ) 1 − y p(y)=f(\boldsymbol x)^y(1-f(\boldsymbol x))^{1-y} p(y)=f(x)y(1f(x))1y 取个对数,得到对数似然:
log ⁡ p ( y ) = y log ⁡ f ( x ) + ( 1 − y ) log ⁡ ( 1 − f ( x ) ) \log p(y)=y \log f(\boldsymbol x) + (1-y)\log (1-f(\boldsymbol x)) logp(y)=ylogf(x)+(1y)log(1f(x)) 由此我们可以看出,最大化对数似然等价于最小化交叉熵

1.3 梯度下降求解

我们使用链式法则求损失函数 L 对参数 w j , b w_j, b wj,b 的偏导数,相关函数写出来如下:
L = − y log ⁡ g ( z ) − ( 1 − y ) log ⁡ ( 1 − g ( z ) ) L=-y \log g(z)-(1-y)\log (1-g(z)) L=ylogg(z)(1y)log(1g(z)) g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1 z = w T x + b z=\boldsymbol w^T \boldsymbol x + b z=wTx+b 分别求偏导如下:
∂ L ∂ g = − y g ( z ) + 1 − y 1 − g ( z ) = g ( z ) − y g ( z ) ( 1 − g ( z ) ) \frac{\partial L}{\partial g}=-\frac{y}{g(z)}+\frac{1-y}{1-g(z)}=\frac{g(z)-y}{g(z)(1-g(z))} gL=g(z)y+1g(z)1y=g(z)(1g(z))g(z)y ∂ g ∂ z = g ( z ) ( 1 − g ( z ) ) \frac{\partial g}{\partial z}=g(z)(1-g(z)) zg=g(z)(1g(z)) ∂ z ∂ w j = x j \frac{\partial z}{\partial w_j}=x_j wjz=xj ∂ z ∂ b = 1 \frac{\partial z}{\partial b}=1 bz=1 所以,损失函数 L 对参数 w j , b w_j, b wj,b 的偏导数为:
∂ L ∂ w j = ∂ L ∂ g ∂ g ∂ z ∂ z ∂ w j = ( g ( z ) − y ) x j \frac{\partial L}{\partial w_j}=\frac{\partial L}{\partial g}\frac{\partial g}{\partial z}\frac{\partial z}{\partial w_j}=(g(z)-y)x_j wjL=gLzgwjz=(g(z)y)xj ∂ L ∂ b = ∂ L ∂ g ∂ g ∂ z ∂ z ∂ b = g ( z ) − y \frac{\partial L}{\partial b}=\frac{\partial L}{\partial g}\frac{\partial g}{\partial z}\frac{\partial z}{\partial b}=g(z)-y bL=gLzgbz=g(z)y 不过,上述式子是对于单个样本来说的,考虑到整个数据集 m 个样本的话,
∂ L ∂ w j = ∑ i = 1 m ( f ( x i ) − y i ) x i j \frac{\partial L}{\partial w_j}=\sum_{i=1}^m(f(\boldsymbol x_i)-y_i)x_{ij} wjL=i=1m(f(xi)yi)xij ∂ L ∂ b = ∑ i = 1 m ( f ( x i ) − y i ) \frac{\partial L}{\partial b}=\sum_{i=1}^m(f(\boldsymbol x_i)-y_i) bL=i=1m(f(xi)yi) 可以看出,上述梯度与 线性回归 完全一致,不过其中 f ( x i ) f(\boldsymbol x_i) f(xi) 的计算不同。

2. 从广义线性模型看逻辑回归

2.1 广义线性模型

线性回归是用线性模型的输出值 w T x + b \boldsymbol w^T \boldsymbol x + b wTx+b 逼近样本的真实值 y y y,但是我们也可以稍加变换,使得线性模型的输出值逼近 y y y 的衍生物,比如 y y y 的对数
log ⁡ y = w T x + b \log y = \boldsymbol w^T \boldsymbol x + b logy=wTx+b 这个其实等价于用 e w T x + b e^{\boldsymbol w^T \boldsymbol x + b} ewTx+b 去逼近 y y y。考虑更一般的情况,我们在线性模型的输出值上,加上一个单调可微的函数做变换,用其变换值来逼近 y y y。这种被称为广义线性模型。

2.2 广义线性模型与逻辑回归

逻辑回归的公式如下:
y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(\boldsymbol w^T \boldsymbol x + b)}} y=1+e(wTx+b)1 经过变换之后,可以得到:
log ⁡ y 1 − y = w T x + b \log \frac{y}{1-y}=\boldsymbol w^T \boldsymbol x + b log1yy=wTx+b 我们可以看出,逻辑回归可以看成是用线性模型的值来逼近 log ⁡ y 1 − y \log \frac{y}{1-y} log1yy。因为 y y y 表示样本为正例的概率, 1 − y 1-y 1y 是样本属于反例的概率,其比值 y / ( 1 − y ) y/(1-y) y/(1y) 称为 “几率”(odds),其意义是样本属于正例的相对概率。取对数之后称为 “对数几率”(log odds, 或 logit),这就是 Logitstic Regression 名字的由来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值