文章目录

  • 1、背景
  • 2、loss
  • 3、metrics
  • 4、对比
  • 5、当Loss和Metrics定义都是mse时,为什么显示不同
  • 6、optimizer
  • 7、参考资料

1、背景

在神经网络的训练过程中,我们总是需要选择编译(compile)步骤的三个参数,loss, metrics,optimizer 。那么他们到底代表什么含义呢?
损失函数(loss function):网络如何衡量在训练数据上的性能,即网络如何朝着正确的方向前进。
优化器(optimizer):基于训练数据和损失函数来更新网络的机制。
在训练和测试过程中需要监控的指标(metric)。

2、loss

想要控制一件事物,首先需要能够观察它。想要控制神经网络的输出,就需要能够衡量该输出与预期值之间的距离。这是神经网络损失函数(loss function)的任务,该函数也叫目标函数(objective function)。
损失函数的输入是网络预测值与真实目标值(即你希望网络输出的结果),然后计算一个距离值,衡量该网络在这个示例上的效果好坏。

3、metrics

在训练和测试过程中需要监控的指标(metrics)

# 分类任务中使用
metrics=['accuracy'])
# 回归任务中使用
metrics=['mae'])
metrics=['mse'])

4、对比

loss metric
是网络进行优化的目标,。需要参与到更新权值W的优化运算中 只是作为评价网络表现的一种“指标”,方便直观地了解算法效果,不参与到优化过程中
训练时必须有 训练时可以没有

5、当Loss和Metrics定义都是mse时,为什么显示不同

细心的同学会发现,当Loss和Metrics定义都是mse时,值显示不同。于是会好奇,既然loss和metrics都是一样的计算方法时,为什么会不同呢。
实际上,造成这个微小差异的原因在于,模型评价的时候(metrics的结果)是模型训练完一个批次后,对这个批次做的评价。而显示的loss却是在训练过程中的这个批次样本产生的loss的均值。
一句话解释,那就是 模型在batch训练过程中,是变化的。loss的结果是动态的每一个样本的loss的均值,而metrics却是在此batch结束后,对这个batch的数据做评价的结果。

6、optimizer

深度学习的基本技巧是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示例对应的损失值(如下图)。这种调节由优化器(optimizer)来完成,它实现了所谓的反向传播(backpropagation)算法,这是深度学习的核心算法。

7、参考资料

《【Keras作者大作】Python深度学习》

loss与metric的区别 以及 optimizer的介绍相关推荐

  1. SoftTriple Loss: Deep Metric Learning Without Triplet Sampling

    1. Abstract 距离度量学习(DML)用于学习嵌入(特征提取),其中来自同一类别的示例比来自不同类别的示例更接近. 可以将其转换为具有三元约束的优化问题. 由于存在大量三元组约束,因此DML的 ...

  2. 我的世界服务器vip账号和密码是多少,我的世界hypixel服务器会员有什么区别 hypixel服务器会员介绍...

    我的世界hypixel服务器会员有什么区别?hypixel服务器竟然开启了会员制,而且还有不同的会员等级,下面小编就为各位玩家带来:hypixel服务器会员介绍,一起来看看吧~ hypixel服务器会 ...

  3. TensorFlow 2.0 - Keras Pipeline、自定义Layer、Loss、Metric

    文章目录 1. Keras Sequential / Functional API 2. 自定义 layer 3. 自定义 loss 4. 自定义 评估方法 学习于:简单粗暴 TensorFlow 2 ...

  4. 路由协议的优先级,以及管理距离AD和metric的区别

    路由协议的优先级(Preference,即管理距离Administrative Distance)一般为一个0到255之间的数字,数字越大则优先级越低.表一是通常情况下各路由协议的优先级规定: 表一: ...

  5. keras.metrics中各种metric的区别

    (一)keras.metrics有五种accuracy https://blog.csdn.net/weixin_44866160/article/details/106437277?utm_medi ...

  6. C语言和我的世界指令哪个难,我的世界难度有什么区别 难度选择指令介绍

    我的世界中的难度(Difficulty)可以在Minecraft的选项菜单内切换.更改这个选项将直接影响到游戏本身.选项中并没有设定影响攻击性生物的可生成数量,包括和平模式. 目前游戏共有和平.简单. ...

  7. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  8. Linux中要重启apache服务与在windows是有很大的区别,下面我们来介绍一下

    在Linux中要重启apache服务与在windows是有很大的区别,下面我们来介绍一下常用的命令,需要的朋友参考下吧(http://www.hnkjlb.com) linux系统为Ubuntu 一. ...

  9. 计算机处理器i5和i7,i5与i7有什么区别 酷睿i5和i7区别汇总【详细介绍】

    酷睿i5和i7都是英特尔生产的产品,作为电脑的核心处理器,它们的质量和性能都是非常不错的,目前电脑市场上大多数都是安装了酷睿i5或者i7的机子,可见这两款产品就是主流的电脑中央处理器.不过这两款产品虽 ...

最新文章

  1. Android中与Intent相关的还有,Android中Intent的相关用法
  2. 跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析
  3. 动手学深度学习(PyTorch实现)(七)--LeNet模型
  4. shell脚本和常用命令
  5. JVM优化系列-JVM内存溢出的原因
  6. DiscuzNT 1.0正式版推出了
  7. 【英语学习】【WOTD】newspeak 释义/词源/示例
  8. JAVA学习-JAVA数组的使用示例
  9. OC----预处理器
  10. 计算机上的科学计算器怎么使用,电脑自带的科学计算器怎么使用?
  11. Hive列合并与元素搜集
  12. 重写equals()与hashcode()方法,及comparable接口的实现
  13. python生成器yield原理_python生成器generator,yield
  14. io vivado 怎么查看ps_一次诡异的磁盘IO使用率高排查
  15. 图像各向异性平滑滤波
  16. 直流无刷电机的一些介绍
  17. java中的数据结构——栈
  18. 运行xgboost 时出现的问题 from scipy.misc import comb ImportError: cannot import name 'comb'的
  19. VirtulBox安装虚拟机(鼠标点击时)0x00000000指令引用的0x00000000内存该内存不能为written错误解决方案...
  20. 云服务器数据库密码修改zoc,云服务器数据库密码修改zoc

热门文章

  1. Java 北大青鸟 第一学期 第六章 循环结构(二) 上级练习+课后作业
  2. 利用SSH 或 Teamviewer 控制远程服务器
  3. [画质提高30%利器]暴风5本地左眼爆破
  4. 诺基亚5500 sport ucweb7 http sisx版本下载
  5. 远离国产!windows唯一推荐杀毒软件-Avast
  6. ibook备份_在“提示”框中:选择多个壁纸,iBook快速导航和跟踪应用价格
  7. Android GridView的使用
  8. 电脑与移动设备的USB网络热点恋爱方法
  9. 菜鸟潇寒学习库----静态库
  10. 一个标准的行业分析怎么做