文章目录

  • 分类与回归的区别
  • 逻辑回归
    • 逻辑回归不是回归
    • 逻辑回归算法原理及公式推导
      • 求解目标
      • 损失函数
        • 什么是交叉熵损失函数
      • 梯度下降
      • 逻辑回归怎么处理非线性分类问题
    • 总结
  • softmax简介
    • softmax函数的数学形式定义
    • 损失函数
    • 梯度下降
    • 总结

分类与回归的区别

我们可以按照任务的种类,将任务分为回归任务和分类任务。那这两者的区别是什么呢?按照较官方些的说法,输入变量与输出变量均为连续变量的预测问题是回归问题,输出变量为有限个离散变量的预测问题成为分类问题.
通俗一点讲,我们要预测的结果是一个数,比如要通过一个人的饮食预测一个人的体重,体重的值可以有无限多个,有的人50kg,有的人51kg,在50和51之间也有无限多个数.这种预测结果有无限多种可能的问题,我们会训练出一个模型,传入参数后得到这个确定的数,这类问题我们称为回归问题.预测的这个变量(体重)因为有无限多种可能,在数轴上是连续的,所以我们称这种变量为连续变量.
我们要预测一个人身体健康或者不健康,预测会得癌症或者不会得癌症,预测他是水瓶座,天蝎座还是射手座,这种结果只有几个值或者多个值的问题,我们可以把每个值都当做一类,预测对象到底属于哪一类.这样的问题称为分类问题.如果一个分类问题的结果只有两个,比如"是"和"不是"两个结果,我们把结果为"是"的样例数据称为"正例",讲结果为"不是"的样例数据称为"负例",对应的,这种结果的变量称为离散型变量.

逻辑回归

逻辑回归不是回归

从名字来理解逻辑回归,我们前一段讲到回归任务是结果为连续型变量的任务,logistics regression是用来做分类任务的。

逻辑回归算法原理及公式推导

求解目标

逻辑回归的目的是,对于给定的X,我们算出y’。其中y’表示在X的情况下y=1的概率。

那么这里的y’怎么算呢?按照线性回归的思想,我们可以假设:

但是这里有个问题:在逻辑回归中,y’表示在X的情况下y=1的概率。所以我们计算出来的y’应该是界于[0,1]之间。为了解决这个问题,我们引入sigmiod函数对上面的式子进行处理。使y’界于[0,1]之间

至此,问题就已经结束了,我们只需要将式子中的参数w,b求出来就可以了。

损失函数

那么如何才能算出最合适的w,b呢?这里我们需要设置一个损失函数L(X),当损失函数最小的时候,w,b就是最合适的。
这里我们将L(x)设定为:
这个函数就是我们逻辑回归(logistics regression)的损失函数,我们叫它交叉熵损失函数。

什么是交叉熵损失函数

交叉熵是信息论中的一个重要概念,主要用于度量两个概率分布间的差异性。

交叉熵公式表示为:

p ( x ) 来表示样本的真实分布,q ( x ) 来表示模型所预测的分布。在机器学习训练网络时,输入数据与标签常常已经确定,那么真实概率分布p ( x ) 也就确定下来了,所以p ( x )在这里就是一个常量y。由于交叉熵表示真实概率分布P ( x ) 与预测概率分布Q ( x ) 之间的差异,值越小表示预测的结果越好。所以在机器学习中常常使用交叉熵损失函数来计算loss就行了。

梯度下降

对L(X)求极大值,得到参数的估计值。这样,问题就变成了以对数似然函数为目标函数的最优化问题,我们可以使用梯度下降法来求解:

至此,找到了梯度下降中的方向,只要给定一个步长就可以用迭代的方式来求待求参数,迭代的公式为:

至此逻辑回归算法的全部过程结束。

逻辑回归怎么处理非线性分类问题

如果要解决非线性问题,需要对输入做非线性变换。例如对特征先进行交叉,再输入逻辑回归算法。
举例来说,假设特征A和B线性不可分,那我们把这两个特征进行组合,当成一个特征不就行了吗?
这也是为什么facebook提出了GBDT+LR的组合,通过GBDT做特征交叉然后输入LR中,这样即可以实现特征的交叉又可以解决非线性的问题。

总结

逻辑回归的优点有以下几点:
1、模型的可解释性比较好,从特征的权重可以看到每个特征对结果的影响程度。
2、输出结果是样本属于类别的概率,方便根据需要调整阈值。
3、训练速度快,资源占用少。
而缺点是:
1、准确率并不是很高。因为形式非常简单(非常类似线性模型),很难去拟合数据的真实分布。
2、处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据。
3、很难处理数据不平衡的问题。

softmax简介

逻辑回归只能处理二分类问题,处理多分类问题需要使用softmax。
在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。

softmax函数的数学形式定义


可以看到,softmax函数解决了从一个原始的n维向量,向一个n维的概率分布映射的问题。那么在多分类问题中,假设分类数是n,模型希望预测的就是某样本在n个分类上的概率分布。如果用深度学习模型进行建模,那么最后输出层的形式是由n个神经元组成的,再把n个神经元的输出结果作为一个n维向量输入最终的softmax函数,在最后的输出中得到最终的多分类概率分布。在一个神经网络中,softmax输出层的结构如下图所示。

损失函数

与逻辑回归一样,softmax函数往往和交叉熵损失函数一起使用:

其中,ti 表示真实值,yi表示求出的softmax值。当预测第i个时,可以认为ti=1。此时损失函数变成了:

梯度下降

接下来对Loss求导:

上面的结果表示,我们只需要正向求出yi ,将结果减1就是反向更新的梯度,导数的计算是不是非常简单!

总结

可以看出,softmax函数和交叉熵的配合,不仅在数学含义上完美统一, 而且在梯度形式上也非常简洁。基于上式的梯度形式,通过梯度反向传播的方法,即可完成整个神经网络权重的更新。

逻辑回归(logistics regression)与 softmax相关推荐

  1. 高斯分布Gaussian distribution、线性回归、逻辑回归logistics regression

    高斯分布Gaussian distribution/正态分布Normal distribution 1.广泛的存在 2020年11月24日,探月工程嫦娥五号探测器发射成功.其运转轨道至关重要,根据开普 ...

  2. 复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥

    复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥? 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学 ...

  3. 机器学习:逻辑回归(logistics regression)

    title: 机器学习:逻辑回归(logistics regression) date: 2019-11-30 20:55:06 mathjax: true categories: 机器学习 tags ...

  4. 机器学习必备算法之(一)逻辑回归(logistics regression)及Python实现

    笔者为数学系的一个小白,最近系统的在复习机器学习以及一些深度学习的内容,准备开个博记录一下这个有趣又痛苦的过程~hiahiahia,主要记录机器学习的几大经典算法的理论以及Python的实现.非计算机 ...

  5. 逻辑回归三部曲——逻辑回归(logistics regression)原理-让你彻底读懂逻辑回归

         逻辑回归已经在各大银行和公司都实际运用于业务,已经有很多前辈写过逻辑回归.本文将从我实际应用的角度阐述逻辑回归原理,致力于让逻辑回归变得清晰.易懂.逻辑回归又叫对数几率回归,是一种广义的线性 ...

  6. 逻辑回归(Logistic Regression)简介及C++实现

    逻辑回归(Logistic Regression):该模型用于分类而非回归,可以使用logistic sigmoid函数( 可参考:http://blog.csdn.net/fengbingchun/ ...

  7. OpenCV3.3中逻辑回归(Logistic Regression)使用举例

    OpenCV3.3中给出了逻辑回归(logistic regression)的实现,即cv::ml::LogisticRegression类,类的声明在include/opencv2/ml.hpp文件 ...

  8. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

    Coursera公开课笔记: 斯坦福大学机器学习第六课"逻辑回归(Logistic Regression)" 斯坦福大学机器学习第六课"逻辑回归"学习笔记,本次 ...

  9. OpenCV逻辑回归Logistic Regression的实例(附完整代码)

    OpenCV逻辑回归Logistic Regression的实例 OpenCV逻辑回归Logistic Regression的实例 OpenCV逻辑回归Logistic Regression的实例 # ...

  10. 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”

    斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...

最新文章

  1. Linux-LNMP(静态元素不记录日志和过期时间,防盗链,解析php,代理,支持ssl)
  2. 如何购买指定配置的ECS服务器【新手小白攻略】...
  3. 运用ajax技术写联动的效果
  4. tensorflow fetch 取回某个值
  5. 科大星云诗社动态20210302
  6. attribute java c_属性别名(Attribute Aliasing)
  7. crontab实现每秒执行
  8. python transform(img)_pytorch之ImageFolder使用详解
  9. 光伏储能容量优化MATLAB论坛,【推荐】基于需求响应的光伏微网储能系统多目标容量优化配置!...
  10. 7 行为型模式之 - 状态模式
  11. java 添加字段注释_java自定义注释
  12. 微信跳转,wap浏览器跳转到微信
  13. html颜色设计,网页设计中经典色彩搭配方案
  14. [iOS]分析Mach-O文件
  15. 整理一个将qq音乐的歌单导入到苹果音乐中的方法
  16. teeth mirror牙小护牙膏让你唇红齿白,亮白笑容不是梦
  17. 3.17 Inappropriate Intimacy 狎昵关系
  18. 面试必问 K8S 的经典题目,来看看你会几个?
  19. 讨论 | 博士延期毕业?如何避免?
  20. 职业规划,如何月入1万、3万、5万、10万?

热门文章

  1. 鸿蒙系统对谷歌有影响吗,任正非表示华为鸿蒙系统已经上网,这会对谷歌形成多大的影响吗?...
  2. [POI2008]CLO
  3. 主机、虚拟机、开发板之间网络连接设置
  4. JavaScript深度优先和广度优先
  5. Packet Tracer 配置PAP双向认证
  6. 写一个关于 雨天的个人心情低落文章
  7. 浅聊一下自动驾驶去高精地图的趋势
  8. 逻辑斯蒂回归、朴素贝叶斯
  9. linux中ctags的使用方法
  10. LDPC编码译码方法研究及误码率实现