深度学习基础(三)loss函数

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

目录

一、loss函数定义

二、常见的loss算法种类

1.MSE(均值平方差)

2.交叉熵

三、总结

四、tensorflow相应函数

1.MSE

2.交叉熵


一、loss函数定义

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

 

二、常见的loss算法种类

1.MSE(均值平方差)

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

                                                                        MSE = \frac{1}{n}\sum_{i=1}^{n}{(Y-Y_{pred})^2}

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

2.交叉熵

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

                                                                    C = \frac{1}{n}\sum_{i=1}^{n}{[Yln(Y_{pred})+(1-Y)ln(1-Y_{pred})]}

与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》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shift键关闭大小写

同事说他的大写开了之后无法关闭,我检查了下,的确是,非常奇怪,然后我不小心按了下下面的Shift键,大写指示灯灭了,我立即明白是怎么回事,原来是文字和语言设置里的Key setting改了,如…

深度学习之pytorch(一) 环境安装

快2周没更新博客了,别问为什么!我才不会告诉你忙的飞起!说心里话,个人更喜欢用tensorflow来做深度学习! 一、环境配置 1.win10 64位系统; 2.anaconda3; 3.不管是CPU还是GPU具有(…

CAD——将图形移动到指定点的方法(此处以捕捉坐标系原点为例)

1、在CAD中画一个正方形,没有任何角点在坐标原点上 2、点击修改工具栏的“移动命令”,选择刚刚画好的图形,选择一个点为第一个基点; 3、先输入#号(shift3),再输入0,0,用英文逗号隔开&#xff0c…

容器的综合应用:文本查询程序

需求 程序读取用户指定的任意文本文件,允许用户从该文件中查找单词。查询结果是该单词出现的次数,并列出每次出现所在行,如果某单词在同一行中多次出现,程序将只显示该行一次。行号按升序显示,即第 7 行应该在第 9 行之…

Anaconda 安装操作及遇到的坑

最近刚用Pytorch,编译开源代码的时候发现缺少n个package,原来是之前在Anaconda3 创建的虚拟环境各自是独立的,tensorflow下安装的不能在别的环境下使用,所以要重新安装。然而关键是国内各种屏蔽资源,无法FQ去直接下载安…

IE浏览器历史版本图标大全

上个月IE团队庆祝了IE的15周岁生日, 并晒了晒IE各个历史版本的图标: Internet Explorer 1.0 图标 Internet Explorer 2.0 图标 Internet Explorer 3.0 图标 Internet Explorer 4.0 图标 Internet Explorer 5.0 图标 Internet Explorer 6.0 图标 Internet…

7.Mybatis关联表查询(这里主要讲的是一对一和一对多的关联查询)

视频地址:http://edu.51cto.com/sd/be679 在Mybatis中的管理表查询这里主要介绍的是一对一和一对多的关联查询的resultMap的管理配置查询,当然你也可以用包装类来实现。不过这里不说,做关联查询的步骤可以简单的总结为以下的几步:…

ANSYS——查看某一截面的云图分布(也叫做切片图)

1.确定截面的位置 此处以图中红色处截面为例 2.将工作平面经过坐标变化移动到指定截面处(工作平面的XY平面与截面重合) 工作平面坐标系默认是与总体坐标系重合的,这里是先平移再进行旋转

深度学习之keras (一) 初探

之前一段时间里,学习过tensorflow和Pytorch也写了点心得,目前是因为项目原因用了一段时间Keras,觉得很不错啊,至少从入门来说对新手极度友好,由于keras是基于tensoflow的基础,相当于tensorflow的高级API吧&…

swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)...

swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算。 不同于C语言中的数值计算,Swift的数值计算默…

收集、报告或保存系统活动信息:sar命令

2019独角兽企业重金招聘Python工程师标准>>> 索引 sar命令的使用常用方法 查看网络设备(网卡)的状态信息查看socket使用情况查看cpu使用情况(默认)查看内存和交换空间使用情况查看内存的统计信息查看tty设备的活动状态查看等待运行的进程数和…

【GOF23设计模式】原型模式

【GOF23设计模式】原型模式 来源:http://www.bjsxt.com/ 一、【GOF23设计模式】_原型模式、prototype、浅复制、深复制、Cloneable接口 浅复制 1 package com.test.prototype;2 3 import java.util.Date;4 5 /**6 * 浅复制7 */8 public class Sheep implements C…

Deepfacelab 小白教程

不小心入了AI换脸的坑,但是感觉AI换脸很有意思,第一次感觉科研使我快乐。 目录 一、AI换脸软件简介 二、Deepfacelab下载安装 三、Deepfacelab Demo实现 四、Deepfacelab 填坑 五、总结 一、AI换脸软件简介 这个没有具体使用过,目前我…

Underscore.js 的模板功能

Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能。 无论你写一段小的js代码,还是写一个大型的HTML5应用,underscore都能帮上忙。目前&…

ANSYS——查看剖面图的应力分布云图以及工作平面的相关设置

剖面图和切片图其实差不多,只是切片图只有一个截面,而剖面图是切去一部分保留另一部分模型,不但可以看到截面处应力分布还可以看到剩余模型的应力分布 切片应力云图可见:https://blog.csdn.net/qq_45769063/article/details/106357700 1.剖面云图的查看 首先将工作平面的…

2016.8.2

高端内存映射方式 高端内存映射分为三种:永久映射、临时映射和非连续动态内存映射。高端内存一般是指896MB以上的页框,这段区间内核一般不能直接访问。 1.永久映射 永久内核映射允许内核建立高端页框到内核地址空间的长期映射。它们使用主内核页表中的一…

深度学习之pytorch(三) C++调用

玩深度学习,个人觉得基于anaconda的python适合开发与测试,C适合实际的工程部署!而pytorch官方有编译好的libtorch,特别方便,适合于我这样的伸手党和手残党(win10下编译tensorflow编译了好久都没通过,好忧伤…

机器学习(一) 基于sklearn库的数据集划分(交叉验证)

机器学习中首要环节就是数据集的处理,其中数据集的处理从个人理解(如有错误敬请谅解)的角度来说包括两个方面:数据集划分和数据清理。其中数据集划分是指训练集、验证集和测试集的数据类别划分;数据清理是指数据的清洗、删除等等方面。这两天…

敏捷项目开源管理软件ScrumBasic(2)- 多项目支持

1.加入Project对象模型 public class Project{[Key][MaxLength(32)]public string ID { get; set; }public string Name { get; set; }public int Order { get; set; }public ICollection<UserStory> Stories { get; set; }public ApplicationUser Creator { get; set; }…

postgresql表和列注释(描述)

2019独角兽企业重金招聘Python工程师标准>>> PostgreSQL添加表和列注释。本文为测试表test&#xff0c;默认无注释。 test# \d关联列表架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述 -------------------------------------------------public | test | …