Logistic Regression

Logistic Regression

二值随机变量的伯努利分布。二值随机变量 c ∈ 0 , 1 c \in {0,1} c0,1,其概率分布为 f ( c ; p ) = p c ( 1 − p ) 1 − c f(c;p) = p^c(1-p)^{1-c} f(c;p)=pc(1p)1c。其中 p = P r ( c = 1 ) p = Pr(c = 1) p=Pr(c=1),即事件发生的可能性。

概率:一个事件发生的可能性

P ( 抽到红球 ) = 红球个数 所有球个数 P(抽到红球) = \frac{红球个数}{所有球个数} P(抽到红球)=所有球个数红球个数

发生比:

o d d s ( 抽到红球 ) = P ( 抽到红球 ) 1 − P ( 抽到红球 ) odds(抽到红球) = \frac{P(抽到红球)}{1-P(抽到红球)} odds(抽到红球)=1P(抽到红球)P(抽到红球)

Logit:对发生比求对数

L o g i t = l o g ( P ( 抽到红球 ) 1 − P ( 抽到红球 ) ) Logit = log(\frac{P(抽到红球)}{1-P(抽到红球)}) Logit=log(1P(抽到红球)P(抽到红球))

三者有以下关系。概率取值在01、发生比取值在0lnf。

  • 当概率为0.5时,odds = 1

  • 当概率大于0.5时, o d d s ∈ ( 1 , l n f ) odds \in (1,lnf) odds(1,lnf)

  • 当概率小于0.5时, o d d s ∈ ( 0 , 1 ) odds \in (0,1) odds(0,1)

可见,当概率大于或小于0.5时,odds范围并不对称。因此当两个概率“对称”时,其发生比并不对称。

概率为0.3和0.7时,这两个概率的均值是0.5,他们是“对称”的;但这两个概率的发生比却分别是0.429和2.333,这使我们很难直观地感受到他们的对称关系。

当概率从0.1增加到0.2,时,发生比增加了0.139;当概率从0.8增加到0.9时,发生比却增加了5,虽然概率的增量相同,但发生比的增量却大大的不同。

概率为0.3和0.7时,Logit分别为-0.847和0.847,这两个值关于0对称,因此我们知道这两Logit值对应的发生比是对称的。

当概率从0.2减少至0.1时,Logit的增量是-0.811;当概率从0.8增加到0.9时,Logit的增量也是0.811,我们可以直观地感受到发生比增量也是对称的。

当发生比为1时,Logit为0;当发生比小于或大于1时,Logit取值范围为(-Inf,0)和(0,Inf).取值范围对称。

作者:小严闲不住 https://www.bilibili.com/read/cv6157816/ 出处:bilibili

θ = L o g i t ( p ) = l o g ( P 1 − P ) \theta = Logit(p) = log(\frac{P}{1-P}) θ=Logit(p)=log(1PP),可以推出$ p = \frac{1}{1+exp(-\theta)}$

Sigmoid函数

σ ( θ ) = e θ e θ + 1 = 1 1 + e − θ \sigma(\theta) = \frac{e^{\theta}}{e^{\theta} + 1} = \frac{1}{1 + e^{-\theta}} σ(θ)=eθ+1eθ=1+eθ1

  • $ \sigma(-\theta) = 1-\sigma(\theta)$
  • ∂ σ ( θ ) ∂ θ = σ ( θ ) ( 1 − σ ( θ ) ) = σ ( θ ) σ ( − θ ) \frac{\partial\sigma(\theta)}{\partial \theta} = \sigma(\theta)(1-\sigma(\theta)) = \sigma(\theta)\sigma(-\theta) θσ(θ)=σ(θ)(1σ(θ))=σ(θ)σ(θ)
  • ∂ l o g σ ( θ ) ∂ θ = σ ( θ ) ( 1 − σ ( θ ) ) σ ( θ ) = σ ( − θ ) \frac{\partial log \sigma(\theta)}{\partial \theta} = \frac{\sigma(\theta)(1-\sigma(\theta))}{\sigma(\theta)} = \sigma(-\theta) θlogσ(θ)=σ(θ)σ(θ)(1σ(θ))=σ(θ)
  • l o g ( 1 − σ ( θ ) ) = l o g ( e − θ 1 + e − θ ) = − θ − l o g ( 1 + e − θ ) log(1-\sigma(\theta)) = log(\frac{e^{-\theta}}{1+e^{-\theta}}) = -\theta - log(1+e^{-\theta}) log(1σ(θ))=log(1+eθeθ)=θlog(1+eθ)
  • l o g ( σ ( θ ) ) = − l o g ( 1 + e − θ ) log(\sigma(\theta)) = - log(1+e^{-\theta}) log(σ(θ))=log(1+eθ)

损失函数

根据sigmoid的概念,可以得到在给定样本 x x x和参数 w w w,样本 x x x属于正样本 y = 1 y=1 y=1和负样本 y = 0 y=0 y=0的条件概率如下

P ( y = 1 ∣ x ; w ) = σ ( w ′ x ) P ( y = 0 ∣ x ; w ) = 1 − σ ( w ′ x ) P(y=1|x;w) = \sigma(w'x) \\ P(y=0|x;w) = 1 - \sigma(w'x) P(y=1∣x;w)=σ(wx)P(y=0∣x;w)=1σ(wx)

在理想情况下,我们希望上述概率越接近1越好,对第一个公式,概率越接近1说明该样本属于正样本概率更大。下面将两个公式合并统一起来。

L o s s ( σ ( w ′ x ) , y ) = σ ( w ′ x ) y ( 1 − σ ( w ′ x ) ) 1 − y Loss(\sigma(w'x),y) = \sigma(w'x)^y(1-\sigma(w'x))^{1-y} Loss(σ(wx),y)=σ(wx)y(1σ(wx))1y

最后将损失函数对数化,当标签值为0和1时。此时 L 01 L_{01} L01为交叉熵损失函数。

L 01 = − [ y l o g σ ( w ′ x ) + ( 1 − y ) l o g ( 1 − σ ( w ′ x ) ) ] = y l o g ( 1 + e − w ′ x ) + ( 1 − y ) [ w ′ x + l o g ( 1 + e − w ′ x ) ] = ( 1 − y ) w ′ x + l o g ( 1 + e − w ′ x ) L_{01} = - [ylog\sigma(w'x) + (1-y)log(1-\sigma(w'x))] \\ = ylog(1+e^{-w'x}) + (1-y)[w'x + log(1+e^{-w'x})] \\= (1-y)w'x + log(1+e^{-w'x}) L01=[ylogσ(wx)+(1y)log(1σ(wx))]=ylog(1+ewx)+(1y)[wx+log(1+ewx)]=(1y)wx+log(1+ewx)

  • 当y=1时: L 01 = − l o g σ ( w ′ x ) = l o g ( 1 + e − w ′ x ) L_{01} = - log\sigma{(w'x)} = log(1+e^{-w'x}) L01=logσ(wx)=log(1+ewx)
  • 当y=0时: L 01 = − l o g ( 1 − σ ( w ′ x ) ) ) = w ′ x + l o g ( 1 + e − w ′ x ) L_{01} = -log(1-\sigma(w'x))) = w'x + log(1+e^{-w'x}) L01=log(1σ(wx)))=wx+log(1+ewx)

当标签值为1和-1时

L ± 1 = l o g ( 1 + e − y w ′ x ) = − l o g σ ( y w ′ x ) L_{\pm 1} = log(1+e^{-yw'x}) = -log\sigma(yw'x) L±1=log(1+eywx)=logσ(ywx)

目标函数

原本损失函数是希望概率越大越好,越接近1越好。加了负号后,目标函数为最小化损失函数。

上面的损失函数是针对单个样本的,对于整个数据集,假设所有样本相互独立,求所有样本损失函数最值,采用极大似然估计

$min J(w) = -\sum_{i=1}^{m} [y{i}log\sigma(w’x{i}) + (1-y{i})log(1-\sigma(w’x{i}))] $

梯度下降算法

对于简单函数,求最值可以转换为求其导数为零的点,但对于复杂函数,直接求导为零的点很困难,但可以求函数在某一个点处的导数,并使得函数在这个点处按导数和一个步长更新一个小距离,这样不断迭代,直到参数的变化小于一个非常小的值为止。

  1. 目标函数的导数 f ′ ( x ) f'(x) f(x)
  2. 超参数选择:固定步长alpha = 0.1、精确值 precision = 0.00001、随机选择一个初始x_new = 0,x_old = -1,两者之间的差距要大于precision
  3. 迭代更新,直到abs(x_old , x_new) < precision
    1. x_old = x_new
    2. x_new = x_old + alpha * f ′ ( x o l d ) f'(x_{old}) f(xold)
  4. 输出x_new

具体求导公式如下:

∂ J ( w ) ∂ w j = ∂ J ( w ) ∂ σ ( w ) . ∂ σ ( w x ) ∂ w x . ∂ w x ∂ w \frac{\partial J(w)}{\partial w_j} = \frac{\partial J(w)}{\partial \sigma(w)} . \frac{\partial \sigma(wx)}{\partial wx} . \frac{\partial wx}{\partial w} wjJ(w)=σ(w)J(w).wxσ(wx).wwx

∂ J ( w ) ∂ σ ( w ) = y i σ ( w x ) + y − 1 1 − σ ( w x ) \frac{\partial J(w)}{\partial \sigma(w)} = \frac{y^i}{\sigma(wx)} + \frac{y-1}{1-\sigma(wx)} σ(w)J(w)=σ(wx)yi+1σ(wx)y1

∂ σ ( w x ) ∂ w x = σ ( w x ) ( 1 − σ ( w x ) ) \frac{\partial \sigma(wx)}{\partial wx} = \sigma(wx)(1-\sigma(wx)) wxσ(wx)=σ(wx)(1σ(wx))

∂ w x ∂ w = x j \frac{\partial wx}{\partial w} = x_j wwx=xj

∂ J ( w ) ∂ w j = ∂ J ( w ) ∂ σ ( w ) . ∂ σ ( w x ) ∂ w x . ∂ w x ∂ w = ( y i − σ ( w x ) ) x j \frac{\partial J(w)}{\partial w_j} = \frac{\partial J(w)}{\partial \sigma(w)} . \frac{\partial \sigma(wx)}{\partial wx} . \frac{\partial wx}{\partial w} = (y^i - \sigma(wx))x_j wjJ(w)=σ(w)J(w).wxσ(wx).wwx=yiσ(wx)xj

综上所属,参数 w j w_j wj的更新公式为

w j = w j + α ∑ i = 1 m ( y i − σ ( w x ) ) x j w_j = w_j + \alpha \sum_{i=1}^m (y^i - \sigma(wx))x_j wj=wj+αi=1m(yiσ(wx))xj

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值