loss函数,即损失函数,是决定网络学习质量的关键。若网络结构不变的前提下,损失函数选择不当会导致模型精度差等后果。若有错误,敬请指正,Thank you!

目录

一、loss函数定义

二、常见的loss算法种类

1.MSE(均值平方差)

2.交叉熵

三、总结

四、tensorflow相应函数

1.MSE

2.交叉熵


一、loss函数定义

loss函数的作用就是描述模型的预测值与真实值之间的差距大小。我的理解是寻找一个标准来帮助训练机制随时优化参数,以便于找到网络的最高精度下的参数。这个标准不难理解,与我们日常生活中的很多事情一致,例如倒车入库,在你倒车的同时肯定会一边打方向盘一边看倒后镜一样(当然具备自动倒车入库功能的车除外),根据倒后镜中看到的停车线,随时调整以便能够准确入库,这个停车线就是标准。更通俗的来说,loss函数就是指导模型在训练过程中朝着收敛的方向前进。

二、常见的loss算法种类

1.MSE(均值平方差)

数理统计中演化而来,均方误差是指参数估计值和参数真实值之差平方的期望值。在此处其主要是对每个预测值与真实值作差求平方的平均值,具体公式如下所示:

MSE越小代表模型越好,类似的算法还包括RMSE和MAD。

2.交叉熵

交叉熵(crossentropy)刻画了两个概率分布之间的距离,更适合用在分类问题上,因为交叉熵表达预测输入样本属于某一类的概率。其公式如下所示:

与MSE一样,交叉熵也是值越小代表模型精度越高。

三、总结

loss函数的选取取决于输入标签数据的类型:若输入的是实数、无界的值,损失函数使用平方差;若输入标签是位矢量(分类标志),使用交叉熵更适合。此外预测值与真实值要采用同样的数据分布,以便于loss函数取得更佳的效果。

四、tensorflow相应函数

由于博主是基于tensorflow的框架来学习深度学习,之后的每篇文章最后一部分都会介绍tensorflow相应函数。

1.MSE

tensorflow没有单独的MSE函数,不过可由开发者自己组合即可,如下所示:

#logits为真实值,outputs为预测值
MSE = tf.reduce_mean(tf.square(logits-outputs)))
RMSE = tf.sqrt(tf.reduce_mean(tf.square(logits-outputs)))
mad =  tf.reduce_mean(tf.complex_abs(logits-outputs))

2.交叉熵

tensorflow具有多种常见的交叉熵函数:

#Sigmoid交叉熵
tf.nn.simoid_cross_entropy_with_logits(logits,target,name=None)
#softmax交叉熵
tf.nn.softmax_cross_entropy_with_logits(logits,target,name=None)
#Sparse交叉熵
tf.nn.sparse_cross_entropy_with_logits(logits,target,name=None)
#加权Sigmoid交叉熵
tf.nn.weighter_cross_entropy_with_logits(logits,target,pos_weight,name=None)

参考文献:

1.《深度学习之tensorflow》

深度学习基础(三)loss函数相关推荐

  1. 《深度学习笔记》——loss函数的学习笔记

    1 loss的作用 在南溪看来,loss函数是对目标target和预测prediction之间的一种距离度量的公式: 2 loss函数的设计原则 此设计原则参考了距离的定义,(注意:距离跟范数是两个概 ...

  2. 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)

    独家思维导图!让你秒懂李宏毅2020深度学习(三)--深度学习基础(神经网络和反向传播部分) 长文预警!!!前面两篇文章主要介绍了李宏毅视频中的机器学习部分,从这篇文章开始,我将介绍李宏毅视频中的深度 ...

  3. 第三章_深度学习基础

    文章目录 第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 3.1.2神经网络有哪些常用模型结构? 3.1.3如何选择深度学习开发平台? 3.1.4为什么使用深层表示? 3.1.5为 ...

  4. 《机器学习系列教程》第三章 深度学习基础

    @[第三章 深度学习基础] 第三章 深度学习基础 3.1 基本概念 3.1.1 神经网络组成? 为了描述神经网络,我们先从最简单的神经网络说起. 感知机 简单的感知机如下图所示: [外链图片转存失败( ...

  5. 【完结】有三AI阿里云的深度学习基础课程暂时完结,欢迎扩散学习

    2021年3月份有三AI与阿里天池联合推出了深度学习系列课程, 课程内容包括人工智能与深度学习发展背景,深度学习典型应用,卷积神经网络,循环神经网络,生成对抗网络,深度学习开源框架等内容,目前已经基本 ...

  6. 深度学习基础 - 概率的三个公理

    深度学习基础 - 概率的三个公理 flyfish 对于公理的内容 ,不敢有一丝一毫的更改.改公理,再建立另一套体系那都是大神级别的人物. 曾经"概率"的定义是不清晰的,拉普拉斯的古 ...

  7. 深度学习基础 | RNN家族全面解析

    作者 | Chilia 整理 | NewBeeNLP 首先,请阅读先修知识:深度学习基础 | 从Language Model到RNN 1. 梯度消失和梯度爆炸 1.1 梯度消失 [定义]当很多的层都用 ...

  8. 五万字总结,深度学习基础。

    文章目录 1 基本概念 1.1 神经网络组成? 1.2 神经网络有哪些常用模型结构? 1.3 如何选择深度学习开发平台? 1.4 为什么深层神经网络难以训练? 1.5 深度学习和机器学习的异同? 2 ...

  9. 日月光华深度学习(一、二)深度学习基础和tf.keras

    日月光华深度学习(一.二)深度学习基础和tf.keras [2.2]--tf.keras实现线性回归 [2.5]--多层感知器(神经网络)的代码实现 [2.6]--逻辑回归与交叉熵 [2.7]--逻辑 ...

  10. 二分类交叉熵损失函数python_【深度学习基础】第二课:softmax分类器和交叉熵损失函数...

    [深度学习基础]系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记. 本文为原创文章,未经本人允许,禁止转载.转载请注明出处. 1.线性分类 如果我们使用一个线性分类器去进行图像分类该怎 ...

最新文章

  1. Django REST framework API 指南(25):状态码
  2. 对实施运维的一点心得体会
  3. java学习笔记(一) ----java下常用的包功能
  4. 算法1:找出第一个非重复字符在字符串中的位置
  5. 推荐10款来自极客标签的超棒前端特效[第五期]
  6. Python学习手册之Python介绍、基本语法(二)
  7. 取某个单元格的值_vba中如何进行单元格复制,Copy方法使用介绍,一定要学
  8. RequestDispatcher提供两个方法:forward,include有什么区别
  9. 【转】地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法 C语言
  10. 人工智能行业有哪些岗位_建筑行业“七大员”是哪些岗位?职责是什么?
  11. 关于Remoting(续)
  12. java 开发者异常处理_Java异常处理和设计
  13. 软件开发报价的计算方法
  14. 解决百度文库不能复制最简单方法
  15. Oracle项目管理系统之供应商筛选及资格预审
  16. 08Ansible jinjia2模板的使用和管理大项目
  17. VM虚拟机搭建以及配置网络
  18. Integer.MAX_VALUE是什么意思
  19. api存在csrf攻击吗_使用rest api防止单页应用上的csrf攻击
  20. 服务器——如何查看自己电脑的ip地址

热门文章

  1. 解决报表部署时数据源存在不能替换的问题
  2. NSTimer 进阶使用总结与注意事项
  3. d3.js 教程 模仿echarts legend功能
  4. mysql三-3:完整性约束
  5. Linux命令行参数前加--,-和不加杠
  6. 旧知识打造新技术--AJAX学习总结
  7. Codeforces 722C. Destroying Array
  8. Backup--修改实例级别是否使用压缩备份的默认值
  9. java学习笔记十一——对象转型
  10. 报错:不是可以识别的内置函数名称