为什么平方损失函数不适用于分类问题?

邱锡鹏教授《神经网络与深度学习》的课后习题特别经典,并且书中并没有解答,非常值得我们思考,今天的这个问题就是出自此书的第二章的习题,想来和大家分享一下本题的一种思路,是从数据分布的角度叙述,本人知识有限不免有错误,希望大家能给予批评和建议,提出您的看法。

首先给出平方损失函数(Quadratic-Entropy Loss Function)的数学定义:
L(y,f(x;θ))=12(y−f(x;θ))2L(y,f(x; θ)) = \frac{1}{2}(y-f(x;θ))^2L(y,f(x;θ))=21​(y−f(x;θ))2

最大似然估计看平方损失函数

简要理解

从概率的角度看问题,线性回归中求解最优参数w中使用最大似然估计最小二乘法(平方损失) 的解相同(下面的详细解释中会给出),而此处的最大似然估计的是对于高斯分布而言的,既然求解参数效果相同,那么若使用平方损失函数就类似于假设了高斯先验高斯分布不太适合用在分类问题中(比如二分类问题符合二项分布,二项分布属于离散型随机变量,而正态分布属于连续型随机变量,二项分布逼近正态分布会有误差),那么平方损失函数自然不适用于分类问题。
在实际的分类问题中,在Softmax激活函数的作用下,若使用平方损失函数,离散型分布逼近于正态分布的损失会放大(非线性激活函数作用下,函数会变得复杂,不易于优化),损失越大导数反而越小,学习速率则会很慢。

详细解释:

需要的预备知识:线性回归、最小二乘法、概率论

平方损失函数中使用了最小二乘法,属于机器学习中用线性回归拟合一个函数,用来表示特征向量与标签之间关系的方法,而线性回归还可以从建模条件概率P(y|x)的角度去进行参数估计,建模过程中我们需要加入一个随机噪声ε,即:
y=f(x;w)+ε=wTx+εy = f(x;w) + ε = w^Tx+εy=f(x;w)+ε=wTx+ε
其中,ε服从均值为0、方差为σ2的高斯分布,这样,y就服从均值为WTx、方差为σ2的高斯分布:
p(y∣x;w;σ)=N(y;wT,σ2)=p(y|x;w;σ) = N(y;w^T,σ^2) = p(y∣x;w;σ)=N(y;wT,σ2)=12πσexp(−(y−wTx)22σ2)\frac{1}{\sqrt{2π}σ }exp(-\frac{(y-w^Tx)^2}{2σ^2})2π​σ1​exp(−2σ2(y−wTx)2​)
参数w在训练集D上的似然函数(Likelihood)为:
p(y∣X;w,σ)=∏n=1Np(y(n)∣xn;w,σ)p(y|X;w,σ) = \prod_{n=1}^Np(y^{(n)}|x^{n};w,σ)p(y∣X;w,σ)=n=1∏N​p(y(n)∣xn;w,σ)=∏n=1NN(y(n);wTxn;w,σ2)= \prod_{n=1}^NN(y^{(n)};w^Tx^{n};w,σ^2)=n=1∏N​N(y(n);wTxn;w,σ2)

其中,y=[y1,...,yN]Ty=[y^{1},...,y^{N}]^Ty=[y1,...,yN]T为所有样本标签组成的向量,X=[x1,...,xN]TX=[x^{1},...,x^{N}]^TX=[x1,...,xN]T为所有样本特征向量组成的矩阵。

对数似然函数
logp(y∣X;w,σ)=∑n=1NlogN(y(n);wTxn;w,σ2)logp(y|X;w,σ) = \sum_{n=1}^NlogN(y^{(n)};w^Tx^{n};w,σ^2)logp(y∣X;w,σ)=n=1∑N​logN(y(n);wTxn;w,σ2)

最大似然估计是找到一组参数 www 使得似然函数 p(y∣X;w,σ)p(y|X;w,σ)p(y∣X;w,σ) 最大,采用的方法是求导后求极值,等价于对数似然函数logp(y∣X;w,σ)log p(y|X;w,σ)logp(y∣X;w,σ)最大,令:
∂logp(y∣X;w,σ)∂w=0\frac{∂log p(y|X;w,σ)}{∂w}= 0∂w∂logp(y∣X;w,σ)​=0得到:
w=(XXT)−1Xyw = (XX^T)^{-1}Xyw=(XXT)−1Xy
可以看出,最大似然估计的解和最小二乘法的解是相同的。

Reference: 神经网络与深度学习 邱锡鹏

为什么平方损失函数不适应于分类问题?——从概率论的角度相关推荐

  1. 【深度学习】损失函数系列 (一) 平方损失函数、交叉熵损失函数 (含label_smoothing、ignore_index等内容)

    一.平方损失函数(Quadratic Loss / MSELoss): Pytorch实现: from torch.nn import MSELoss loss = nn.MSELoss(reduct ...

  2. pytorch_lesson10 二分类交叉熵损失函数及调用+多分类交叉熵损失函数及调用

    注:仅仅是学习记录笔记,搬运了学习课程的ppt内容,本意不是抄袭!望大家不要误解!纯属学习记录笔记!!!!!! 文章目录 一.机器学习中的优化思想 二.回归:误差平方和SSE 三.二分类交叉熵损失函数 ...

  3. 交叉熵比平方损失函数的优点

    https://blog.csdn.net/u014313009/article/details/51043064

  4. 人脸识别-Loss-2016:Large Margin Softmax Loss【Margin:角度分类边界之间的空白角度区域】【增大Margin来提高分类精度】【缺陷:无法处理W_i≠W_j的情况】

    尽管传统的softmax在卷积网络作为最常用的监督学习组件,但是他不能促进判别性强的特征的学习,在这篇论文里面首先提出一种基于Margin的L-Softmax损失函数,可以明确地促使学习到的特征具有类 ...

  5. 排序模型训练中过程中的损失函数,盘它!

    转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thi ...

  6. 阅读笔记--神经网络与深度学习(邱锡鹏)

    第2章 机器学习概述 2.2 机器学习三要素 模型 学习准则 优化算法 2.2.1 损失函数 0-1损失函数 虽然0-1损失能够客观的评价模型的好坏,但缺点是数学性质不是很好:不连续且导数为0,难以优 ...

  7. 《神经网络与深度学习》习题解答(至第七章)

    部分题目的个人解答,参考了github上的习题解答分享与知乎解答.题目是自己做的,部分解答可能出错,有问题的解题部分欢迎指正.原文挂在自己的自建博客上. 第二章 2-1 直观上,对特定的分类问题,平方 ...

  8. 机器学习的三个基本因素【模型、学习准则、优化算法】

    机器学习的三个基本因素 机器学习是从有限的观测数据中学习 (或"猜测")出具有一般性的规律,并可以将总结出来的规律推广应用到未观测样本上. 机器学习方法可以粗略地分为三个基本要素: ...

  9. 交叉熵损失函数分类_交叉熵损失函数

    我们先从逻辑回归的角度推导一下交叉熵(cross entropy)损失函数. 从逻辑回归到交叉熵损失函数 这部分参考自 cs229-note1 part2. 为了根据给定的 预测 (0或1),令假设函 ...

  10. python 线性回归与逻辑回归区别(有监督学习【分类、回归】、无监督学习【聚类、强化学习】、损失函数、梯度下降、学习率、过拟合、欠拟合、正则化)

    引用文章1 https://blog.csdn.net/viewcode/article/details/8794401 引用文章2:一.线性回归和逻辑回归 一.什么是机器学习 利用大量的数据样本,使 ...

最新文章

  1. 算法试题 - 找出字符流中第一个不重复的元素
  2. 【数组】 - 有序数组设计
  3. The credentials you provided during SQL Server 2008 install are invalid
  4. python基础数据类型语法
  5. mfc遍历指定文件夹下的所有文件并排序
  6. H3CTE讲师分享H3C认证培训实验9 IP基础
  7. xcap发包工具的简单使用3(报文描述)
  8. flash builder 4.7 打开闪退解决办法
  9. 七年级上册计算机工作计划,七年级上册班主任工作计划
  10. linux系统修复home文件夹,在Linux操作系统上修复损坏的主分区/主目录
  11. 一年节省费用100万,AI导航误差不到1米,杭州奥体“大小莲花”智慧场馆大揭秘...
  12. 少儿学python真的有用吗_如何看待海淀妈妈们认为Python是儿童才学的低端编程?...
  13. Java并发之魂——synchronized深度解析
  14. (十一)java.io.File学习进阶及separator、pathSeparator分隔符简介
  15. Pipe Comet
  16. C语言函数大全--h开头的函数
  17. 一起读JavaScript红宝书 —— 01JavaScript概述
  18. 视频画质修复,老旧视频的模糊画质如何修复为4K画质?
  19. 2018.7.26第二次课及预习
  20. 工业废水的种类及其处理工艺简析

热门文章

  1. 微信小程序实现微信企业付款到零钱功能的流程
  2. Taro小程序分享功能
  3. Distance from a point to a hyperplane
  4. C++11 auto类型说明符如for(atuo x : s)
  5. 枚举类(Enumerated types)介绍
  6. excel宏教程_Excel做的带动态备忘录的2020年日历,简单到没朋友!
  7. 固态硬盘量产工具_固态硬盘测速工具CDM更新8.0版,但我们不推荐你使用
  8. git命令之配置diff3冲突合并方式及KDiff3工具
  9. 68个经典励志小故事|哲理小故事,让你终身受益(1)
  10. 实用的Chrome插件推荐