Logistic逻辑回归(sigmod二分类)成本函数推导 && 及其梯度下降

logistic逻辑回归是比较常用的二分分类,其激活函数适用于各种二分类场景,但是其函数在t极大或者极小的时候趋于饱和会引发梯度消失,影响网络调参使得函数不能很好的收敛

有兴趣的同学可以参阅我的上一篇博客,来参看梯度消失&爆炸的原理:
https://blog.csdn.net/soullines/article/details/94399187
下面来看基于sigmod激活函数的ogistic逻辑回归;

1.logistic激活函数 sigmod & 及其损失函数/成本函数推导

2.逻辑回归梯度下降

1.logistic激活函数 sigmod & 及其损失函数/成本函数推导

首先我们sigmod函数表达式
y ( i ) = σ ( ω T x ( i ) + b ) , w h e r e : σ ( t ( i ) = ω T x ( i ) + b ) = 1 / ( 1 + e − t ( i ) ) y^{(i)} = \sigma(\omega^Tx^{(i)} + b) ,where :\sigma(t^{(i)} = \omega^Tx^{(i) + b}) = 1/(1+e^{-t^{(i)}}) y(i)=σ(ωTx(i)+b),where:σ(t(i)=ωTx(i)+b)=1/(1+et(i))

函数图像:

在这里插入图片描述

显然这是一个两边饱和的函数:

t = 0 为决策边界,则有

y < 0.5 — y = 0 y < 0.5 — y = 0 y<0.5y=0

y > 0.5 — y = 1 y > 0.5 — y = 1 y>0.5y=1

那么我们来设计其 l o s s loss loss函数:

我们应该有这样一个预期 对于y=0时,t应该是趋于最小,这样识别为0的概率最大,识别1的概率最小,反之亦然,也就是 l o s s loss loss越小模型的准确率越高

因为分类涉及到概率,所以 M S E MSE MSE不再适用
单个实例的损失函数:

l o s s ( y p r e , y ) = − ( y l o g y p r e + ( 1 − y ) l o g ( 1 − y p r e ) ) loss (y^{pre},y) = - (ylogy^{pre} + (1-y)log(1-y^{pre})) loss(ypre,y)=(ylogypre+(1y)log(1ypre))

i f : y = 1    l o s s = − l o g y p r e      i f : l o s s = m i n 则 有 l o g y p r e 趋 于 最 大 , 则 t 最 大 if :y = 1 \;loss = -logy^{pre} \; \;if :loss = min 则有logy^{pre}趋于最大,则t最大 if:y=1loss=logypreif:loss=minlogypre,t

i f : y = 0    l o s s = − l o g ( 1 − y p r e )      i f : l o s s = m i n 则 有 l o g ( 1 − y p r e ) 趋 于 最 大 , 则 t 最 小 if :y = 0\; loss = -log(1-y^{pre}) \;\;if :loss = min 则有log(1-y^{pre})趋于最大,则t最小 if:y=0loss=log(1ypre)if:loss=minlog(1ypre),t

这样 完全符合预期的要求;

但是成本函数不同于损失函数(是多个损失函数的平均值),不仅仅是针对于一个实例,应该是对一个batch的计算,所以就有

J ( ω , b ) = 1 / m ∑ i = 1 m l o s s ( y p r e ( i ) , y i ) = − 1 / m ∑ i = 1 m ( y i l o g y p r e ( i ) + ( 1 − y i ) l o g ( 1 − y p r e ( i ) ) ) J (\omega,b) =1/m\sum_{i=1}^{m}loss(y^{pre(i)},y^{i})= -1/m\sum_{i=1}^{m} (y^{i}logy^{pre(i)} + (1-y^{i})log(1-y^{pre(i)})) J(ω,b)=1/mi=1mloss(ypre(i),yi)=1/mi=1m(yilogypre(i)+(1yi)log(1ypre(i)))

2.逻辑回归梯度下降
2.1.导数 & 微积分(熟悉的同学可以直接跳过,接下来的梯度下降要用到)

导数这个概念对于我们是不陌生的,这里简单赘述即可

在这里插入图片描述

求导过程就是对函数微分的过程(函数是 y = 2 x y = 2x y=2x)

  • a点: y = 2 * 0.4,b点: y = 2 * 1,那么 △ x = 0.6 x = 0.6 x=0.6 △ y = 1.2 △y = 1.2 y=1.2 所以斜率就是 d = △ y / △ x = 2 d = △y/△x = 2 d=y/x=2
  • 同理如果是一个凸函数,当 △ x △x x无限趋近0的时候,对于函数图像上任意一点a,和其偏移的点b,都存在 △ y / △ x ≈ a △y/△x ≈ a y/xa 则我们认为a就是改函数图像的斜率,也是改函数图像的导数
2.2.逻辑回归梯度下降

沿用Andrew NG文档中的一个图来看:

J ( w , b ) = 1 / m ∑ i = 1 m l ( y p r e ( i ) , y ( i ) ) = − 1 / m ∑ i = 1 m y ( i ) l o g y ( i ) + ( 1 − y ( i ) ) l o g ( 1 − y p r e ( i ) ) J(w,b) = 1/m\sum_{i=1}^ml(y^{pre(i)},y^{(i)}) = -1/m\sum_{i=1}^my^(i)logy^{(i)} + (1-y^{(i)})log(1-y^{pre(i)}) J(w,b)=1/mi=1ml(ypre(i),y(i))=1/mi=1my(i)logy(i)+(1y(i))log(1ypre(i))

在这里插入图片描述

这里 为了方便我们将 w w w(看做一维)和 b b b

所谓的梯度下降就是:

  • 反向传播过程中,loss函数分别对 w w w b b b求偏导,同步更新 w w w b b b

    w = w − α    d   w w = w - \alpha \;d\,w w=wαdw

    b = b − α    d   b b = b -\alpha \;d\,b b=bαdb

这里 l o s s loss loss对某一个值求导 我们使用 d   v a r d\,var dvar来表示

这里我们为了更加直观的来看梯度下降 忽略 b b b直接来看成本函数对 w w w的梯度下降过程

在这里插入图片描述

w = w − α    d   w w = w - \alpha \;d\,w w=wαdw

上面图中x轴代表 w w w

  • 蓝色点代表 d   w d\,w dw为负的场景,这时候成本函数变小的方向就是 w w w会增加的方向
  • 红色点代表 d   w d\,w dw为正的场景,这时候成本函数变小的方向就是 w w w会减小的方向

所以对于梯度下降会有一个在 l o s s loss loss附近左右抖动的情况出现,所以建议使用小批量随机梯度下降,并使用学习率衰减来进行反向传播调参

上面展示了 w w w梯度下降的场景, b b b也是这样

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值