写下此文是因自己在学习的过程中对逻辑回归的损失函数定义有所疑惑,查了诸多资料才得以理解,因此在此记录下来,一是为来日忘却时能够回来查阅,二是希望为有同样困惑的伙伴提供一点帮助。

1. 逻辑回归(Logistic Regression)简介

虽然名字里面含”回归“, 但逻辑回归一般用于解决分类问题,原生的逻辑回归用于二分类问题,也就是0-1分类。逻辑回归由于其英文名为Logistic Regression,也常简称为LR。

简单来说,LR就是将回归方程代入到Sigmod函数中。

先来看一个简单的回归方程:

z=f(X)=w0+w1x1+w2x2+⋯+wmxmz=f(X)=w_0+w_1x_1+w_2x_2+⋯+w_mx_mz=f(X)=w0​+w1​x1​+w2​x2​+⋯+wm​xm​

其中xk(1<=k<=m)x_k (1<=k<=m)xk​(1<=k<=m) 代表样本的某一维特征, mmm为特征的维度。

在线性回归中,我们已知xkx_kxk​和zzz,通过列出回归方程组,求解权重wkw_kwk​.

而在逻辑回归中,我们将回归方程代入到sigmod函数中。

sigmod函数

公式:ϕ(z)=11+e−z\phi(z)=\frac{1}{1+e^{-z}}ϕ(z)=1+e−z1​

Q1. 为什么要使用sigmod函数

对于上文的回归方程来说,其值域为R\mathbb{R}R(整个实数集),而加了一层sigmod函数之后,函数最后的值域为[0,1]之间,这也与事件发生的概率等同。

那么, 问题又来了,这个概率代表什么

答:概率表示条件概率p(Y=1∣x)p(Y=1|x)p(Y=1∣x), 即对于特定的x, 样本属于正例的概率。即:
p(Y=1∣x)=11+e−zp(Y=1|x)=\frac{1}{1+e^{-z}}p(Y=1∣x)=1+e−z1​

2. 逻辑回归的损失函数

先来看一下损失函数的最终形式:

现在来解释为什么逻辑回归的损失函数时这样的形式。

首先,我们先回到损失函数本身的定义:

损失函数:又称为代价函数,是用来评价一个模型的好坏的。

概括来说,任何能够衡量模型的预测值y^\hat{y}y^​与真实值yyy之间差异的函数都可以称为代价函数。

再回到回归模型,看一下我们回归里面所使用的代价函数:

J=1m∑i=0m(yi^−yi)2J=\frac{1}{m}\displaystyle \sum^{m} _{i=0}{( \hat{y_i} - y_i )^2}J=m1​i=0∑m​(yi​^​−yi​)2

即:预测值与真实值的差值的平方和,再除以样本个数。

怎么理解这个代价函数?
例如,我们使用线性回归来预测房价,那么我们当然希望预测的房价与真实房价越接近越好。那么,上述损失函数恰好能表示整体的预测值与真实值的差异,我们的目标是让损失函数的值越小越好。上式也就是人们常说的最小二乘法

那么,逻辑回归是不是也能使用最小二乘法定义损失函数呢?

答案:不能

如果使用最小二乘法定义损失函数,那么损失函数形式为:

J=1m∑i=0m(yi^−11+e−z)2J=\frac{1}{m}\displaystyle \sum^{m} _{i=0}{( \hat{y_i} - \frac{1}{1+e^{-z}} )^2}J=m1​i=0∑m​(yi​^​−1+e−z1​)2

该函数为非凸函数(函数图像如下图所示),求解不易,容易陷入局部,从而得到局部最优解。

现在,我们来推导逻辑回归损失函数最终形式的由来。
首先,来看一下在逻辑回归中,对于单个样本来说,衡量预测值和真实值差异的损失函数:
L(y^−y)=−ylog(y^)−(1−y)log(1−y^)L(\hat{y} - y) = -ylog(\hat{y}) - (1 - y) log(1 - \hat{y})L(y^​−y)=−ylog(y^​)−(1−y)log(1−y^​)

在理解上述损失函数之前,我们再回顾下损失函数的目标:使误差尽可能地减小。

对于上述损失损失函数:

当真实值类别y=1y = 1y=1时,损失函数的形式为L=−ylog(y^)L = -ylog(\hat{y})L=−ylog(y^​) , 如果想让损失函数L尽可能减小,那么y^\hat{y}y^​就要尽可能增大, 由于sigmod函数的值域为[0,1][0,1][0,1], 所以y^\hat{y}y^​ 就要无限接近1,也就是朝着样本真实值的方向靠近。

当真实是的类别y=0y=0y=0时,损失函数的形式为L=−log(1−y^)L = -log(1 - \hat{y})L=−log(1−y^​), 如果想让损失函数L尽可能减小,那么y^\hat{y}y^​就要尽可能减小,由于sigmod函数的值域为[0,1][0,1][0,1], 所以y^\hat{y}y^​ 就要无限接近0,同样是朝着样本真实值的方向靠近。
因此,采用上述损失函数对于逻辑回归来说是合理的。

现在,我们从单个样本推广到全部样本, 为了衡量算法在全部训练样本上的表现,我们需要定义针对所有样本的损失函数,该损失函数即为单个样本的损失函数之和然后除以样本的个数,即得到逻辑回归的损失函数最终形式


该损失函数的函数图像如下,能够求到全局最优解。

3.损失函数的求解方法

常用的求解方法有梯度下降和牛顿法。
求解方法在本文中就不详细讲解了,感兴趣的伙伴可以直戳知乎文章:【机器学习】逻辑回归(非常详细)述

参考文章:
逻辑回归的损失函数怎么理解
逻辑回归(logistic regression)原理详解

小白也能懂--逻辑回归中损失函数的难点理解相关推荐

  1. 【深度学习】逻辑回归及其损失函数的理解

    文章目录 一.什么是二分类与逻辑回归(Logistic Regression)? 二.逻辑回归基本思路 三.定义损失函数(Loss Function) 一.什么是二分类与逻辑回归(Logistic R ...

  2. 理解逻辑回归中的后验概率和损失函数

    一.理解后验概率 在LR中, 后验概率 .很多人不禁会问,为什么要这么计算?  这里通过对后验概率的推导,并结合sigmod,来谈谈自己的看法. 首先,由贝叶斯公式得                 ...

  3. 逻辑回归中的损失函数的解释

    1.Logistic Regression(逻辑回归) 逻辑回归是机器学习中的一个非常常见的模型, 逻辑回归模型其实仅在线性回归的基础上,套用了一个逻辑函数. 逻辑回归可以看做是两步,第一步和线性回归 ...

  4. 逻辑回归中的损失函数

    一.为什么不能用线性回归中的平方损失函数 上一课中讲到的线性回归,在线性回归中损失函数是平方损失, 如果逻辑回归的损失函数也定义为平方损失,那么: 其中:

  5. 线性回归、逻辑回归、损失函数

    回归问题的条件/前提: 1) 收集的数据 2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数.然后利用这个模型去预测/分类新的数据. 1. 线性回归 假设 特征 和 结果 ...

  6. 梯度下降原理及在线性回归、逻辑回归中的应用

    1 基本概念 1)定义 梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减小. 梯度下降法是2范数下的最速下降法. 最速下降法的一种简单形式是:x(k+ ...

  7. Logistic Regression逻辑回归的损失函数与梯度下降训练

    有一篇博文提到logistic regression的简单理解(Logistic Regression逻辑回归的简单解释).逻辑回归实际上是odds取对数后的反函数,其函数形式也称为sigmoid f ...

  8. 吴恩达深度学习 —— 2.9 逻辑回归中的梯度下降法

    这一节讨论怎么计算偏导数来实现逻辑回归的梯度下降法,它的核心关键点是其中有几个重要法公式用于实现逻辑回归的梯度下降法. 这里将使用导数流程图来计算梯度,必须承认,用导数流程图来计算逻辑回归的梯度下降有 ...

  9. 机器学习--LR逻辑回归与损失函数理解

    损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好.损失函数是经验 ...

最新文章

  1. Linux项目自动部署
  2. python 正则search 所有_python之路----正则re(search,match,findall……)
  3. 深度强化学习和强化学习_深度强化学习:从哪里开始
  4. linux查看目录下文件个球,球服务翻译……只找到以前版本的。新版的服务名称改了……...
  5. ArrayList实现线程的几种方法
  6. ffmpeg转换格式
  7. 为iPhone 12上市做准备,台积电月底前投产A14 Bionic芯片
  8. qt调用import sys库_【开源库】使用Qt.py进行开发
  9. 用JavaScript实现按钮点击全选和下拉列表根据省份复选框显示对应城市功能
  10. wps实现项目编号转成文本形式
  11. CAD坐标怎么输入?CAD坐标标注教程
  12. 一个编辑的黑洞项目:编程日历背后的 “鬼级操作”
  13. C语言学习笔记(12)——函数基础
  14. 环境保护概论课程作业
  15. Python_封装案例(士兵突击)
  16. 不礼让行人怎么抓拍的_斑马线前不礼让行人抓拍设备增加!详细图解告诉你各情况下怎么让才对!...
  17. 【组合数学】组合数学简介 ( 组合思想 2 : 数学归纳法 | 数学归纳法推广 | 多重归纳思想 )
  18. Modbus协议应用纪实
  19. Js根据身份证号获取出生日期、性别和年龄
  20. 二陈丸配什么吃不上火_什么样的人群不适合吃二陈丸?

热门文章

  1. ProgressDialog
  2. 【linux】【git】自动提取git两次提交中被修改的文件
  3. 5700刀打造3卡1080Ti深度学习机器【转】
  4. 如何通过ffmpeg实现视频变速播放
  5. Android Studio : Read timed out和connect timed out的解决方法
  6. 魅蓝e2 改android,魅族4月26日发布魅蓝E2究竟要删除什么?
  7. 最近常常梦见家乡,梦见儿时的同伴了.....
  8. Linux文件系统类型介绍
  9. Java Seckill Module:Order details are static and Resolve purchases beyond
  10. Verilog语法之任务Task与函数Function