【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】Logistic回归

在线性分类中介绍了0-1损失函数,模型为:
g ( f ( x ; w ) ) = { 1      i f    f ( x ; w ) > 0 0      i f    f ( x ; w ) < 0 g(f(x;w))= \left\{ \begin{aligned} 1\ \ \ \ if\ \ f(x;w)>0\\ 0\ \ \ \ if\ \ f(x;w)<0 \end{aligned}\right. g(f(x;w))={1    if  f(x;w)>00    if  f(x;w)<0

由于这个模型不可导,因此不能跟以前一样通过求导的方式来进行数学优化进而求解最优参数。而是需要通过将分类问题转换成概率估计问题,然后用交叉熵来建立损失函数。
对于分类问题,已知的只有判别函数 f ( x ; w ) ∈ R f(x;w)\in R f(x;w)R,要将分类问题看作条件概率估计问题,需要引入非线性函数 g g g来预测类别标签的条件概率 p ( y = c ∣ x ) p(y=c\mid x) p(y=cx)。以二分类问题为例,就是找到使得 p θ ( y = 1 ∣ x ) = g ( f ( x ; w ) ) p_\theta(y=1\mid x)=g(f(x;w)) pθ(y=1x)=g(f(x;w))成立的非线性函数,同时另一个 p θ ( y = 0 ∣ x ) = 1 − p θ ( y = 1 ∣ x ) p_\theta(y=0\mid x)=1-p_\theta(y=1\mid x) pθ(y=0x)=1pθ(y=1x) 。因此,只需要再找到一个激活函数g就能把线性函数的值域从实数区间“挤压”到 ( 0 , 1 ) (0,1) (0,1)之间来表示概率。

Logistic函数

Logistic函数是一个S型函数(或者说sigmoid型函数1),当x趋于负无穷时函数趋向于0,x趋于正无穷时函数趋向于1,函数整体连续单增。Logistic函数上面提到的激活函数的一种:
σ ( x ) = 1 1 + exp ⁡ ( − x ) \sigma(x)=\frac{1}{1+\exp(-x)} σ(x)=1+exp(x)1
函数图像如下:
在这里插入图片描述

这样就实现了将判别函数 f ( x ) f(x) f(x)从实数域映射到区间 ( 0 , 1 ) (0,1) (0,1)

Logistic 回归

模型预测的条件概率
p θ ( y = 1 ∣ x ) = σ ( w T x ) ≜ 1 1 + exp ⁡ ( − w T x ) p θ ( y = 0 ∣ x ) = 1 − p θ ( y = 1 ∣ x ) \begin{aligned} p_\theta(y=1\mid x) &=\sigma(w^Tx)\\ &\triangleq\frac{1}{1+\exp(-w^Tx)}\\ \\ p_\theta(y=0\mid x) &=1-p_\theta(y=1\mid x) \end{aligned} pθ(y=1x)pθ(y=0x)=σ(wTx)1+exp(wTx)1=1pθ(y=1x)
对于一个样本 ( x , y ∗ ) (x,y^*) (x,y),真实的条件概率
p r ( y = 1 ∣ x ) = y ∗ p r ( y = 0 ∣ x ) = 1 − y ∗ \begin{aligned} &p_r(y=1\mid x)=y^*\\ &p_r(y=0\mid x)=1-y^*\\ \end{aligned} pr(y=1x)=ypr(y=0x)=1y
这里的 y ∗ y^* y表示一个具体的样本值,比如对于样本 ( x 1 , 0 ) (x_1,0) (x1,0)那么 p r ( y = 0 ∣ x 1 ) = 1 , p r ( y = 1 ∣ x 1 ) = 0 p_r(y=0\mid x_1)=1,p_r(y=1\mid x_1)=0 pr(y=0x1)=1,pr(y=1x1)=0
用交叉熵建立两个分布之间的差异:
H ( p r , p θ ) = − ∑ y p r ( y ∣ x ) log ⁡ p θ ( y ∣ x ) = − p r ( y = 1 ∣ x ) log ⁡ p θ ( y = 1 ∣ x ) − p r ( y = 0 ∣ x ) log ⁡ p θ ( y = 0 ∣ x ) = − p r ( y = 1 ∣ x ) log ⁡ p θ ( y = 1 ∣ x ) − ( 1 − p r ( y = 1 ∣ x ) ) log ⁡ ( 1 − p θ ( y = 1 ∣ x ) ) 记 p θ ( y = 1 ∣ x ) = y ^ = − ( y ∗ log ⁡ y ^ + ( 1 − y ∗ ) log ⁡ ( 1 − y ^ ) ) \begin{aligned} H(p_r,p_\theta) &=-\sum_y p_r(y\mid x)\log p_\theta(y\mid x)\\ &=-p_r(y=1\mid x)\log p_\theta(y=1\mid x)-p_r(y=0\mid x)\log p_\theta(y=0\mid x)\\ &=-p_r(y=1\mid x)\log p_\theta(y=1\mid x)-(1-p_r(y=1\mid x))\log (1-p_\theta(y=1\mid x))\\ &记p_\theta(y=1\mid x)=\hat{y}\\ &=-(y^*\log\hat{y}+(1-y^*)\log(1-\hat{y})) \end{aligned} H(pr,pθ)=ypr(yx)logpθ(yx)=pr(y=1x)logpθ(y=1x)pr(y=0x)logpθ(y=0x)=pr(y=1x)logpθ(y=1x)(1pr(y=1x))log(1pθ(y=1x))pθ(y=1x)=y^=(ylogy^+(1y)log(1y^))
两个分布之间差异越小,则交叉熵越小,这样就可以对其进行数学优化。取模型在训练集上的风险函数为交叉熵损失函数:
R ( w ) = − 1 N ∑ n = 1 N ( y ^ ( n ) log ⁡ y ^ ( n ) + ( 1 − y ( n ) ) log ⁡ ( 1 − y ^ ( n ) ) ) + 1 2 ∥ w ∥ 2 \mathcal{R}(w)=-\frac{1}{N}\sum_{n=1}^N(\hat{y}^{(n)}\log\hat{y}^{(n)}+(1-y^{(n)})\log(1-\hat{y}^{(n)}))+\frac{1}{2}\parallel w\parallel^2 R(w)=N1n=1N(y^(n)logy^(n)+(1y(n))log(1y^(n)))+21w2
其中 1 2 ∥ w ∥ 2 \frac{1}{2}\parallel w\parallel^2 21w2为正则项。
然后用梯度下降方式来进行优化,使损失函数尽可能接近于0。损失函数梯度为:
∂ y ^ ( n ) ∂ w = x ( n ) exp ⁡ ( − w T x ( n ) ) ( 1 + exp ⁡ ( − w T x ( n ) ) ) 2 = 1 1 + exp ⁡ ( − w T x ( n ) ) ⋅ 1 + exp ⁡ ( − w T x ( n ) ) − 1 1 + exp ⁡ ( − w T x ( n ) ) ⋅ x ( n ) = y ^ ( n ) ( 1 − y ^ ( n ) ) x ( n ) ∂ R ( w ) ∂ w = − 1 N ∑ n = 1 N [ y ( n ) y ^ ( n ) ( 1 − y ^ ( n ) ) x ( n ) y ^ ( n ) − ( 1 − y ( n ) ) ( 1 − y ^ ( n ) ) y ^ ( n ) x ( n ) 1 − y ^ ( n ) ] + 2 w = − 1 N ∑ n = 1 N x ( n ) [ y ( n ) ( 1 − y ^ ( n ) ) − ( 1 − y ( n ) ) y ^ ( n ) ] + 2 w = − 1 N ∑ n = 1 N x ( n ) ( y ( n ) − y ^ ( n ) ) + 2 w \begin{aligned} \frac{\partial \hat{y}^{(n)}}{\partial w} &=\frac{x^{(n)}\exp(-w^Tx^{(n)})}{(1+\exp(-w^Tx^{(n)}))^2}\\ &=\frac{1}{1+\exp(-w^Tx^{(n)})}\cdot \frac{1+\exp(-w^Tx^{(n)})-1}{1+\exp(-w^Tx^{(n)})}\cdot x^{(n)}\\ &=\hat{y}^{(n)}(1-\hat{y}^{(n)})x^{(n)}\\ \\ \frac{\partial\mathcal{R}(w)}{\partial w} &=-\frac{1}{N}\sum_{n=1}^N[y^{(n)}\frac{\hat{y}^{(n)}(1-\hat{y}^{(n)})x^{(n)}}{\hat{y}^{(n)}}-(1-y^{(n)})\frac{(1-\hat{y}^{(n)})\hat{y}^{(n)}x^{(n)}}{1-\hat{y}^{(n)}}]+2w\\ &=-\frac{1}{N}\sum_{n=1}^Nx^{(n)}[y^{(n)}(1-\hat{y}^{(n)})-(1-y^{(n)})\hat{y}^{(n)}]+2w\\ &=-\frac{1}{N}\sum_{n=1}^Nx^{(n)}(y^{(n)}-\hat{y}^{(n)})+2w \end{aligned} wy^(n)wR(w)=(1+exp(wTx(n)))2x(n)exp(wTx(n))=1+exp(wTx(n))11+exp(wTx(n))1+exp(wTx(n))1x(n)=y^(n)(1y^(n))x(n)=N1n=1N[y(n)y^(n)y^(n)(1y^(n))x(n)(1y(n))1y^(n)(1y^(n))y^(n)x(n)]+2w=N1n=1Nx(n)[y(n)(1y^(n))(1y(n))y^(n)]+2w=N1n=1Nx(n)(y(n)y^(n))+2w
梯度向量表示了 R ( w ) \mathcal{R}(w) R(w)上升的方向,因此沿梯度反方向(梯度下降方向,也就是 − ∂ R ( w ) ∂ w -\frac{\partial\mathcal{R}(w)}{\partial w} wR(w))对 w w w进行迭代,迭代过程为:
w t + 1 ← w t + α [ 1 N ∑ n = 1 N x ( n ) ( y ( n ) − y ^ ( n ) ) + 2 w ] w_{t+1}\leftarrow w_t+\alpha[\frac{1}{N}\sum_{n=1}^Nx^{(n)}(y^{(n)}-\hat{y}^{(n)})+2w] wt+1wt+α[N1n=1Nx(n)(y(n)y^(n))+2w]
可见, y ( n ) y^{(n)} y(n)趋向于1时, w w w会更大,导致判别函数 w T x w^Tx wTx增大,最终结果 σ ( x ) \sigma(x) σ(x)更靠近1;同理 y ( n ) y^{(n)} y(n)趋向于0时, w w w会更小,导致判别函数 w T x w^Tx wTx减小,最终结果 σ ( x ) \sigma(x) σ(x)更靠近0。
事实上,在进行梯度优化时并不需要将损失优化到非常小,只要能够使得判别函数经过激活函数后能够完成分类任务即可,例如:
在这里插入图片描述

虽然参数取值不同,但二者都可以对这两类进行很好的分类。


  1. 一篇文章搞懂logit, logistic和sigmoid的区别 - 知乎 (zhihu.com) ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Don't move

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值