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

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

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

2.逻辑回归梯度下降

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

首先我们sigmod函数表达式
y(i)=σ(ωTx(i)+b),where:σ(t(i)=ωTx(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+e−t(i))

函数图像:

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

t = 0 为决策边界,则有

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

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

那么我们来设计其losslossloss函数:

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

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

loss(ypre,y)=−(ylogypre+(1−y)log(1−ypre))loss (y^{pre},y) = - (ylogy^{pre} + (1-y)log(1-y^{pre})) loss(ypre,y)=−(ylogypre+(1−y)log(1−ypre))

if:y=1loss=−logypreif:loss=min则有logypre趋于最大,则t最大if :y = 1 \;loss = -logy^{pre} \; \;if :loss = min 则有logy^{pre}趋于最大,则t最大if:y=1loss=−logypreif:loss=min则有logypre趋于最大,则t最大

if:y=0loss=−log(1−ypre)if:loss=min则有log(1−ypre)趋于最大,则t最小if :y = 0\; loss = -log(1-y^{pre}) \;\;if :loss = min 则有log(1-y^{pre})趋于最大,则t最小if:y=0loss=−log(1−ypre)if:loss=min则有log(1−ypre)趋于最大,则t最小

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

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

J(ω,b)=1/m∑i=1mloss(ypre(i),yi)=−1/m∑i=1m(yilogypre(i)+(1−yi)log(1−ypre(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=1∑m​loss(ypre(i),yi)=−1/mi=1∑m​(yilogypre(i)+(1−yi)log(1−ypre(i)))

2.逻辑回归梯度下降

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

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

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

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

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

J(w,b)=1/m∑i=1ml(ypre(i),y(i))=−1/m∑i=1my(i)logy(i)+(1−y(i))log(1−ypre(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/m∑i=1m​l(ypre(i),y(i))=−1/m∑i=1m​y(i)logy(i)+(1−y(i))log(1−ypre(i))

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

所谓的梯度下降就是:

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

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

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

这里losslossloss对某一个值求导 我们使用 dvard\,vardvar来表示

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

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

上面图中x轴代表www

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

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

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

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

  1. 【机器学习基础】(三):理解逻辑回归及二分类、多分类代码实践

    本文是机器学习系列的第三篇,算上前置机器学习系列是第八篇.本文的概念相对简单,主要侧重于代码实践. 上一篇文章说到,我们可以用线性回归做预测,但显然现实生活中不止有预测的问题还有分类的问题.我们可以从 ...

  2. 机器学习算法应用30篇(十一)-理解逻辑回归及二分类、多分类代码实践

    一.逻辑回归:二分类 1.1 理解逻辑回归 我们把连续的预测值进行人工定义,边界的一边定义为1,另一边定义为0.这样我们就把回归问题转换成了分类问题. 如上图,我们把连续的变量分布压制在0-1的范围内 ...

  3. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  4. 机器学习:理解逻辑回归及二分类、多分类代码实践

    作者 | caiyongji   责编 | 张红月 来源 | 转载自 caiyongji(ID:cai-yong-ji) 本文的概念相对简单,主要侧重于代码实践.现实生活中不止有预测的问题还有分类的问 ...

  5. 机器学习(三):理解逻辑回归及二分类、多分类代码实践

    本文是机器学习系列的第三篇,算上前置机器学习系列是第八篇.本文的概念相对简单,主要侧重于代码实践. 上一篇文章说到,我们可以用线性回归做预测,但显然现实生活中不止有预测的问题还有分类的问题.我们可以从 ...

  6. 分类算法-逻辑回归与二分类

    逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系.由于算法的简单和高效,在实际中应用非常广泛. 1 ...

  7. 吴恩达机器学习(四)逻辑回归(二分类与多分类)

    目录 0. 前言 1. 假设函数(Hypothesis) 2. 决策边界(Decision Boundary) 3. 代价函数(Cost Funciton) 4. 梯度下降(Gradient Desc ...

  8. 逻辑回归解决二分类问题(一)

    文章目录 Binary Classification Logistic Regression Logistic Regression Error (Cost function) 逻辑回归模型一般用来解 ...

  9. 分类---逻辑回归(二分类)

    逻辑回归的基本原理:逻辑回归预测的是概率,需要求解的是如何选取参数c和b可以使得所有样本预测正确的可能性最大.逻辑回归算法需要找到分类概率P(y=1)与输入向量X的直接关系,然后通过比较概率值来判断类 ...

最新文章

  1. SpringBoot b2b2c 多用户商城系统 ssm b2b2c
  2. MYSQL性能调优及架构设计学习笔记-基础篇MYSQL架构组成
  3. JAVA首次课堂测试总结
  4. 如何生成.p12文件
  5. 安卓布局位置,dp与px的区别
  6. 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量
  7. sqlplus 调试存储过程
  8. matlab乘幂的指数是矩阵,信号与系统MATLAB基本语法.ppt
  9. 在vue中实现picker样式_基于vue的颜色选择器vue-color-picker
  10. java validate注解_JAVA 注解验证字段(例子)
  11. hive(3)HiveQL数据定义
  12. 【渝粤教育】国家开放大学2018年秋季 0365-21T电子商务概论 参考试题
  13. 解决RHEL6 vncserver 启动 could not open default font 'fixed'错误.
  14. mybaties知识点整理与SSM
  15. 用python分析世界各国的 “幸福指数”。
  16. 《2015年中国公有云服务发展报告》跋
  17. 新书推荐 |《3D用户界面设计与评估》
  18. Windows 更新安装错误 - 0x80070643
  19. umap算法_科学网—[转载]【源码】均匀流形近似与投影(UMAP)算法仿真 - 刘春静的博文...
  20. 工业智能网关BL110应用之37:实现台达 PLC Delta_DVP 接入华为云平台

热门文章

  1. java开闭原则是什么?
  2. C语言 指针 int* p=a 与iny* p=a 的区别
  3. 梦幻江湖java_梦幻江湖BT增值版
  4. 全球用户数超1亿的安克创新,如何借力牛客布局校园招聘,抢顶尖人才?
  5. Centos 搭建Hadoop集群
  6. python转盘抽奖_python实现大转盘抽奖效果
  7. Frappe安装问题
  8. 双十一好物推荐:2022年好用的数码好物分享
  9. 计算机专业参加的活动,生涯规划系列活动 | 信息和计算机专业交流会
  10. 美国CAFC做出对于手机下拉菜单的可专利性决定、苹果成功无效部份权项