神经网络中常用损失函数汇总

假设训练集有N个数据对,输入数据XXX:x1,x2,⋯,xNx_1, x_2, \cdots, x_Nx1​,x2​,⋯,xN​,输入数据预测值为YpredictY_{predict}Ypredict​:ypredict1,ypredict2,⋯,ypredictNy_{predict}^1, y_{predict}^2, \cdots, y_{predict}^Nypredict1​,ypredict2​,⋯,ypredictN​,输入数据真实值为YtrueY_{true}Ytrue​:ytrue1,ytrue2,⋯,ytrueNy_{true}^1, y_{true}^2, \cdots, y_{true}^Nytrue1​,ytrue2​,⋯,ytrueN​

mean_squared_error 均方误差

MSE(Ytrue,Ypredict)=1N∑i=1N(ytruei−ypredicti)2MSE(Y_{true}, Y_{predict})=\frac{1}{N} \sum_{i=1}^{N}(y_{true}^i-y_{predict}^i)^2 MSE(Ytrue​,Ypredict​)=N1​i=1∑N​(ytruei​−ypredicti​)2

def mean_squared_error(y_true, y_pred):return K.mean(K.square(y_pred - y_true), axis=-1)

mean_absolute_error:平均绝对误差

MAE(Ytrue,Ypredict)=1N∑i=1N∣ytruei−ypredicti∣MAE(Y_{true}, Y_{predict})=\frac{1}{N} \sum_{i=1}^{N}|y_{true}^i-y_{predict}^i| MAE(Ytrue​,Ypredict​)=N1​i=1∑N​∣ytruei​−ypredicti​∣

def mean_absolute_error(y_true, y_pred):return K.mean(K.abs(y_pred - y_true), axis=-1)

mean_absolute_percentage_error:平均绝对百分比误差

MAPE(Ytrue,Ypredict)=1N∑i=1N∣ytruei−ypredictiytruei∣MAPE(Y_{true}, Y_{predict})=\frac{1}{N} \sum_{i=1}^{N}|\frac{y_{true}^i-y_{predict}^i}{y_{true}^i}| MAPE(Ytrue​,Ypredict​)=N1​i=1∑N​∣ytruei​ytruei​−ypredicti​​∣

这里要注意分母不能除0

def mean_absolute_percentage_error(y_true, y_pred):diff = K.abs((y_true - y_pred) / K.clip(K.abs(y_true),K.epsilon(),None))return 100. * K.mean(diff, axis=-1)

hinge:合页误差:

hinge(Ytrue,Ypredict)=1N∑i=1N(max(1−ytrueiypredicti,0)hinge(Y_{true}, Y_{predict})=\frac{1}{N} \sum_{i=1}^{N}(max(1-y_{true}^iy_{predict}^i, 0) hinge(Ytrue​,Ypredict​)=N1​i=1∑N​(max(1−ytruei​ypredicti​,0)

def hinge(y_true, y_pred):return K.mean(K.maximum(1. - y_true * y_pred, 0.), axis=-1)

squared_hinge

hinge(Ytrue,Ypredict)=1N∑i=1N(max(1−ytrueiypredicti,0)2hinge(Y_{true}, Y_{predict})=\frac{1}{N} \sum_{i=1}^{N}(max(1-y_{true}^iy_{predict}^i, 0)^2 hinge(Ytrue​,Ypredict​)=N1​i=1∑N​(max(1−ytruei​ypredicti​,0)2

def squared_hinge(y_true, y_pred):return K.mean(K.square(K.maximum(1. - y_true * y_pred, 0.)), axis=-1)

categorical_hinge

def categorical_hinge(y_true, y_pred):pos = K.sum(y_true * y_pred, axis=-1)neg = K.max((1. - y_true) * y_pred, axis=-1)return K.maximum(0., neg - pos + 1.)

categorical_crossentropy:多分类交叉熵

多类交叉熵损失针对的是多分类问题。真实值采用one-hot编码。例如总共有3个类,第0个类表示为 (1,0,0)。假设有n个类,则第iii个样本真实值为yi=(y1i,y2i,⋯,yni)y^i=(y_1^i, y_2^i, \cdots, y_n^i)yi=(y1i​,y2i​,⋯,yni​),预测值为y^i=(y^1i,y^2i,⋯,y^ni)\hat{y}^i=(\hat{y}_1^i, \hat{y}_2^i, \cdots, \hat{y}_n^i)y^​i=(y^​1i​,y^​2i​,⋯,y^​ni​),

categorical_crossentropy(Ytrue,Ypredict)=1N∑i=1N∑j=1nyjilog⁡y^jicategorical\_ crossentropy(Y_{true}, Y_{predict})=\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{n}y^i_j \log \hat{y}^{i}_{j} categorical_crossentropy(Ytrue​,Ypredict​)=N1​i=1∑N​j=1∑n​yji​logy^​ji​

sparse_categorical_crossentropy:稀疏的分类交叉熵

原理与categorical_crossentropy一样,不过真实值采用的整数编码。例如第0个类用数字0表示,第3个类用数字3表示。

binary_crossentropy:二分类交叉熵。

binary_crossentropy(Ytrue,Ypredict)=−1N∑i=1N[ytrueilog⁡(ypredi)+(1−ytruei)log⁡(1−ypredi)]binary \_crossentropy(Y_{true}, Y_{predict})=-\frac{1}{N}\sum_{i=1}^{N}[y^i_{true} \log (y^i_{pred}) + (1-y_{true}^i)\log (1-y^i_{pred})] binary_crossentropy(Ytrue​,Ypredict​)=−N1​i=1∑N​[ytruei​log(ypredi​)+(1−ytruei​)log(1−ypredi​)]

当yprediy_{pred}^iypredi​和ytrueiy_{true}^iytruei​一致时(都为0或1),交叉熵为0,否则为无穷。

先汇总这么多,以后在更。

神经网络常用和不常用损失函数相关推荐

  1. 边框回归的损失函数_一文搞懂常用的七种损失函数

    主要内容: 0-1, Hinge, Logistic, Cross Entropy, Square, Absolute, Huber 简述: 损失函数刻画了模型与训练样本的匹配程度. 分类损失 分类L ...

  2. 神经网络基础知识、常用激活函数及其Python图形绘制

    在人工智能与机器学习研究与应用领域,神经网络占有重要地位.神经网络(Neural Networks, NNs),又称人工神经网络(Artificial Neural Networks, ANNs),是 ...

  3. 神经网络中的激活函数与损失函数深入理解推导softmax交叉熵

    神经网络中的激活函数与损失函数&深入理解softmax交叉熵 前面在深度学习入门笔记1和深度学习入门笔记2中已经介绍了激活函数和损失函数,这里做一些补充,主要是介绍softmax交叉熵损失函数 ...

  4. R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析

    R语言广义线性模型函数GLM.广义线性模型(Generalized linear models).GLM函数的语法形式.glm模型常用函数.常用连接函数.逻辑回归.泊松回归.系数解读.过散度分析 目录

  5. 常用和不常用端口一览表收藏

    大家在学习计算机的时候,对于最常用的几个端口比如80端口肯定有很深的印象,但是对于其他一些不是那么常用的端口可能就没那么了解.所以,在一些使用频率相对较高的端口上,很容易会引发一些由于陌生而出现的错误 ...

  6. cmake 常用变量和常用环境变量查表手册

    cmake 常用变量和常用环境变量查表手册 一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定 ...

  7. Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略

    Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...

  8. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略

    Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例之详细攻略 目录 DataFrame的简介 DataFrame的常用案例 1.写入和读取excel表格文件

  9. 73.JVM内存基础结构,参数分类,推荐的配置项,参数混用问题,常用工具,常用命令

    73.JVM内存基础结构,参数分类,推荐的配置项,参数混用问题,常用工具,常用命令 73.1.堆内存基本结构 73.2.参数分类 73.3.推荐的配置项 73.4.参数混用问题 73.5.常用命令 7 ...

  10. python 常用包_Python常用指引

    Python常用指引 Python常用指引的形式来源于Linux文档项目的常用指引章节,是一系列独立.指定主题并尝试完全覆盖该主题的文章集合.致力于提供比Python库参考帮助更详尽的文档. Pyth ...

最新文章

  1. 雅虎前端优化的35条军规
  2. vue3数据绑定显示列表数据局
  3. 吴恩达机器学习训练2:Logistic回归
  4. UWA TIPS:让你的项目更懂你!
  5. 微信小程序背景图片如何设置--如何用background-image Base64设置背景
  6. 中医预约管理系统都需要哪些功能?
  7. STM32/KEIL/MDK 查看 FLASH 和 RAM 使用情况
  8. linux 安装SopCast实现在线直播(2)
  9. 纯前端word导出echarts图表
  10. Android Jni 调用
  11. jmeter逻辑控制器之如果(if)控制器实战(二)
  12. 飞机机翼机身对接结构数值计算分析(ANSYS)
  13. 部署卡巴斯基网络版6.0:安装控制中心和服务器端推送
  14. 统一安全管理平台解决方案
  15. 膨胀卷积神经网络_用膨胀的卷积神经网络生成钢琴音乐
  16. PTA程序设计类实验辅助教学平台-基础编程题--JAVA--7.10 计算工资
  17. 什么是大数据架构?需要学什么内容?
  18. 武汉大学中山大学计算机就业,中山大学与武汉大学:实力接近,规模相当,2021录取差距拉大...
  19. 4 UML 图中,一张交互图显示一个交互,由一组对象及其之间的关系组成,包含它 们之间可能传递的消息,以下不是交互图的是( )
  20. 国家正在进行数据安全布局,你get到了吗?

热门文章

  1. 看互联网将如何颠覆这17个传统行业
  2. Fluent飞行器动导数计算方法
  3. 如何快速设计一款门磁传感器产品?App即可确认门窗关闭
  4. 解决matlab 关于警告(warning)、错误(error)、异常(exception)与断言(assert)问题总结
  5. 形式逻辑(05)假言判断 和 推理
  6. 分享一个开源的QT的串口示波器
  7. centos修改系统可用内存_centos7开启交换内存
  8. 汉诺塔问题及时间复杂度推导
  9. python汉罗塔用递归函数实现
  10. 无模型预测控制(model-free predictive control)+ESO