逻辑回归其实是是一种广义的线性回归,虽然说是回归函数,但是它其实是处理分类问题,我们从其背景,损失函数两方面说清楚。

背景

参考周志华教授的《机器学习》和吴恩达大神的深度学习中的讲解,逻辑回归的起源是解决二分类问题,这里我们假设二分类中的类别是{0,1},我们想知道给定一个样本X,这个样本属于1类的概率是多少?也就是要求得的值,而线性回归模型产生的预测值是实值,但是要想得到概率值,输出的值必须是在区间[0,1]内,所以想到的就是将线性回归模型产生的预测值通过变换使其在区间(0,1)内。

很明显sigmoid函数的值域在区间(0,1)内,如下图:

所以我们就得到:,这个就是逻辑回归函数的原型。这里的转换函数就是sigmoid函数,至于为什么选这个函数,首先这个函数的值域是在区间(0,1)内,还有一点很重要的是,这个函数连续可导。在机器学习和深度学习中,函数的选择包括各种激活函数都满足连续可导,这是因为在反向传播的时候,我们需要对误差函数进行求导,如果不可导的话,这个过程完全做不了。

从上述可以看出,逻辑回归具有以下优点:

(1) 它是直接对分类可能性进行建模,不需要事先假设数据分布,这样就避免了假设分布不准确所带来的的问题;

(2) 它不仅预测出“类别”,而是可以得到近似概率预测,这对于许多需要利用概率辅助决策的任务很有用;

(3) 此外,逻辑回归函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可以直接用于求解最优解。

损失函数

给定m个样本,,其中,这是个二分类问题,用逻辑回归解决。所以:,其中,最终的目的是希望预测的值和真实值无限接近:。也就是说希望预测值和真实值之间的误差越小越好。

在线性回归中,我们一般使用真实值和预测值的差得平方作为我们的损失函数,然后对其进行最小化,如,但是通常在逻辑回归中,不会选择使用这个损失函数,因为当我们使用这个损失函数来学习参数w和b的时候,会发现后面的优化问题会变成非凸的,最后会得到,很多个局部最优解,也就是说我们的梯度下降法可能找不到全局最优解,这个是机器学习中令人头痛的一个问题。

所以在逻辑回归中会定义一个不同的损失函数,它起着与误差平方相似的作用,最重要的是这个损失函数使得我们的优化问题是凸优化,以下是逻辑回归中的损失函数:

所以我们的目的是最小化上面这个损失函数。

为什么这个损失函数能够起作用,举两个例子说明:

(1) 当真实值y=1的时候,,这个时候,想要足够的小,也就是说足够的大,也就是足够的大,但是因为,所以的区间是在(0,1)内,又要想足够大,所以只能无限接近1。

(2) 同理当真实值y=0的时候,这个时候最小化损失函数的时候,只会让无限接近于0。

损失函数(loss function)是在单个训练样本中定义的,它衡量了在单个训练样本上的表现,下面定义一个成本函数(cost function)来衡量在全体训练样本上的表现。

成本函数

cost function:,所以最终的优化目标是成本函数。

问题变成了,通过最小化来找到参数w和b:

很明显可以看到成本函数是个凸函数,可以找到全局最优解,这也就是选择逻辑回归函数中选择作为损失函数的重要原因之一。

接下来就是使用梯度下降法找到使得成本函数最小的w和b的值:

(1) 初始化w和b,对于逻辑回归而言,几乎是任意的初始化方法都有效,这是因为我们的最小化函数是凸函数,无论w和b的初始值如何,我们总能找到全局最优解,通常用0来初始化w和b。

(2) 将训练数据输入逻辑回归模型中,得到成本函数

(3) 这一步是梯度下降的关键,我们重复计算:知道w和b的值不再变化。其中称为学习率,用来控制每一次的迭代或者梯度下降法中的步长。求解w和b就是迭代求导的过程。

一文读懂逻辑回归(Logistic Regression)相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的

    逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种.通过历史数据的表现对未来结果发生的概率进行预测.例如,我们可以将购买的概率设置为因变量,将用户的 ...

  7. 逻辑回归(logistic regression)的本质——极大似然估计

    文章目录 1 前言 2 什么是逻辑回归 3 逻辑回归的代价函数 4 利用梯度下降法求参数 5 结束语 6 参考文献 1 前言 逻辑回归是分类当中极为常用的手段,因此,掌握其内在原理是非常必要的.我会争 ...

  8. CS229学习笔记(3)逻辑回归(Logistic Regression)

    1.分类问题 你要预测的变量yyy是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法. 从二元的分类问题开始讨论. 我们 ...

  9. 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

    之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...

最新文章

  1. 图神经网络世界冠军团队手把手授课,7天搞定图神经网络!
  2. spring mvc logback
  3. OceanBase开源,11张图带你了解分布式数据库的核心知识
  4. java比较字符能用等于号码_Java字符串比较,==,等于,匹配,compareTo()之间的差异。...
  5. 解决纵向滚屏导致的轮播图异常
  6. L1-023. 输出GPLT-PAT团体程序设计天梯赛GPLT
  7. [2018.10.31 T3] 玩
  8. matlab绘制图形hold on_Matlab绘图示例
  9. 安卓10自带录屏_荣耀v10怎么录屏?荣耀v10三种录屏方法
  10. XSS修炼之独孤九剑
  11. Dynamic CRM9.0 环境安装部署手册步骤和遇到的一些问题解决方案(包含ADFS部署)
  12. 论文阅读——椭圆检测算法 2018 使用梯度分析利用错误检测控制的精确椭圆检测
  13. linux下x264安装
  14. 系统定制开发,微商来----专业做分销商城
  15. 银河麒麟root用户自动登录
  16. springboot集成mongoDB高级聚合查询,关联查询
  17. hive窗口函数练习题
  18. RNA-seq | 转录组标准分析流程和常用工具软件介绍
  19. 网站繁简体切换(一)
  20. PhysX3.4 编译记录

热门文章

  1. Nodejs框架分享
  2. Flutter 的野心,Google 的认真,是时候准备走一波了
  3. 中国新生儿黄疸仪市场趋势报告、技术动态创新及市场预测
  4. 零基础入门数据挖掘 - 二手车交易价格预测
  5. 微型计算机原理与接口技术于枫答案,信号发生器(完整)毕业设计.doc
  6. 隐私策略(今日头条 - 你关心的,才是头条)
  7. 用jsdelivr代替访问困难的jquery
  8. 双目立体匹配之视差优化
  9. 第一道防线__SpringMVC配置拦截器
  10. 在python中import .pyx文件的各种坑