一.损失函数的使用

  损失函数【也称目标函数或优化评分函数】是编译模型时所需的两个参数之一。

  model.compile(loss='mean_squared_error', optimizer='sgd')

  或

  from keras import losses

  model.compile(loss=losses.mean_squared_error, optimizer='sgd')

  可以传递一个现有的损失函数名或者一个TensorFlow/Theano符号函数。该符号函数为每个数据点返回一个标量,有一下两个参数:

  1.y_true

    真实标签,TensorFlow/Theano张量。

  2.y_pred

    预测值,TensorFlow/Theano张量,其shape与y_true相同。

  实际的优化目标是所有数据点的输出数组的平均值。

二.可用的损失函数

  1.mean_squared_error(y_true, y_pred)【MSE,均方误差】

    计算公式:

    

    源码:

    

  2.mean_absolute_error(y_true, y_pred)【MAE,平均绝对误差】

    提到MAE就不能不说显著性目标检测,所谓显著性目标,举个例子来说,当我们观察一张图片时,我们会首先关注那些颜色鲜明,夺人眼球的内容。就像我们看变形金刚时会首先看擎天柱一样,这是绝对的C位。所以我们把变形金刚中的擎天柱定义为显著性目标。

    在显著性目标检测中的评价指标计算中,常用的检测算法就有平均绝对误差,其计算公式如下:

    

    源码:

    

  3.mean_absolute_percentage_error【MAPE,平均绝对百分比误差】

    与平均绝对误差类似,平均绝对百分比误差预测结果与真实值之间的偏差比例。计算公式如下:

    

    源码:

    

    备注:

    1.clip

      逐元素,将超出指定范围的数强制变为边界数。

    2.epsilon

      固定参数,默认值为1*e-7。

  4.mean_squared_logarithmic_error【MSLE,均方对数误差】

    在计算均方误差之前先对数据取对数,再计算。

    计算公式:

    

    源码:

    

  5.squared_hinage【不常用】

    计算公式:

    

    源码:

    

  6.hinage【不常用】

    计算公式:

    

    源码:

    

  7.categorical_hinge【不常用】

    源码:

    

  8.logcosh【不常用】

    预测误差的双曲余弦的对数。计算结果与均方误差大致相同,但不会受到偶尔疯狂的错误预测的强烈影响。

    源码:

    

  9.categorical_crossentropy【不常用】

    当使用categorical_crossentropy损失时,目标值应该是分类格式【即假如是10类,那么每个样本的目标值应该是一个10维的向量,这个向量除了表示类别的那个索引为1,其它均为0】。为了将整数目标值转换为分类目标值,可以使用keras实用函数to_categorical。

    from keras.utils.np_utils import to_categorical

    categorical_labels = to_categorical(int_labels, num_classes=None)

    源码:

    

  10.sparse_categorical_crossentropy【不常用】

    源码:

    

  11.binary_crossentropy【不常用】

    源码:

    

  12.kullback_leibler_divergence【不常用】

    源码:

    

  13.poisson【不常用】

    计算公式:

    

    源码:

    

  14.cosine_proximity【不常用】

    计算公式:

    

    源码:

    

Keras深度学习框架之损失函数的更多相关文章

  1. 解析基于keras深度学习框架下yolov3的算法

    一.前言 由于前一段时间以及实现了基于keras深度学习框架下yolov3的算法,本来想趁着余热将自己的心得体会进行总结,但由于前几天有点事就没有完成计划,现在趁午休时间整理一下. 二.Keras框架 ...

  2. Keras深度学习框架安装及快速入门

    1.下载安装Keras 如果你是安装的Anaconda组合套件,可以直接在Prompt上执行安装命令:pip install keras 注意:最下面为Successfully...表示安装成功! 2 ...

  3. win7上安装theano keras深度学习框架

    近期在学习深度学习,需要在本机上安装keras框架,好上手.上网查了一些资料,弄了几天今天终于完全搞好了.本次是使用GPU进行加速,使用cpu处理的请查看之前的随笔keras在win7下环境搭建 本机 ...

  4. 一个可扩展的深度学习框架的Python实现(仿keras接口)

    一个可扩展的深度学习框架的Python实现(仿keras接口) 动机 keras是一种非常优秀的深度学习框架,其具有较好的易用性,可扩展性.keras的接口设计非常优雅,使用起来非常方便.在这里,我将 ...

  5. 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

    http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...

  6. 深度学习框架Keras与Pytorch对比

    对于许多科学家.工程师和开发人员来说,TensorFlow是他们的第一个深度学习框架.TensorFlow 1.0于2017年2月发布,可以说,它对用户不太友好. 在过去的几年里,两个主要的深度学习库 ...

  7. 深度学习框架比较TensorFlow、Theano、Caffe、SciKit-learn、Keras

    TheanoTheano在深度学习框架中是祖师级的存在.Theano基于Python语言开发的,是一个擅长处理多维数组的库,这一点和numpy很像.当与其他深度学习库结合起来,它十分适合数据探索.它为 ...

  8. 基于Theano的深度学习框架keras及配合SVM训练模型

    https://blog.csdn.net/a819825294/article/details/51334397 1.介绍 Keras是基于Theano的一个深度学习框架,它的设计参考了Torch, ...

  9. 如何评价深度学习框架Keras?

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...

随机推荐

  1. 从网上下载DLL

    1,微软官网 2:https://www.zhaodll.com/ 3:http://www.dllzj.com/

  2. 【转】KAFKA分布式消息系统

    Kafka[1]是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为(登录.浏览.点击.分享.喜欢)以及系统运行日志(CPU ...

  3. HTTP图解笔记(一)—— 第1章 了解Web及网络基础

    TCP/IP协议族 网络是在TCP/IP协议族的基础上运作的,HTTP是一个子集 OSI四层: 应用层:通用的应用服务协议,FTP.DNS.HTTP ↓ 传输层:提供计算机之间的数据传输,TCP.UD ...

  4. 【UWP】使用 LiteDB 存储数据

    序言: 在 UWP 中,常见的存储数据方式基本上就两种.第一种方案是 UWP 框架提供的 ApplicationData Settings 这一系列的方法,适用于存放比较轻量的数据,例如存个 Bool ...

  5. 150行代码打造.net core生产力工具,你值得拥有

    你是否在初学 .net core时,被依赖注入所折磨? 你是否在开发过程中,为了注入依赖而不停的在Startup中增加注入代码,而感到麻烦? 你是否考虑过或寻找过能轻松实现自动注入的组件? 如果有,那 ...

  6. Linux内存管理解析(一) : 分段与分页机制

    背景 : 在此文章里会从分页分段机制去解析Linux内存管理系统如何工作的,由于Linux内存管理过于复杂而本人能力有限.会尽量将自己总结归纳的部分写清晰. 从实模式到保护模式的寻址方式的不同 : 1 ...

  7. C入门题目

    37. 反转一个3位整数 反转一个只有3位数的整数. 样例 样例 1: 输入: number = 123 输出: 321 样例 2: 输入: number = 900 输出: 9 注意事项 你可以假设 ...

  8. Java 8 Stream流编程学习

    本文是自己学习菜鸟教程中总结的笔记,用于快速找代码,完整的文档见菜鸟教程:Java 8 Stream Stream 使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达 ...

  9. Java基础语法面试题50题整理(带答案)

    嗯,之前某些原因整理了这份面试题,加油生活 (:   0,嗯,先做简单的,那个不对() 1,int [] sy = {0,9,2,3}; 2,int [] sy1 = new int[4]; 3,in ...

  10. Arrays.asList()用法梳理

    Arrays.asList()用法梳理 asList概述 Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁. asList本质 ...