损失函数

神经网络以某个指标为线索寻找最优权重参数。神经网络的学习中所用的指标称为损失函数 (loss function)。这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。

交叉熵误差

除了均方误差之外,交叉熵误差 (cross entropy error)也经常被用作损失函数。交叉熵误差如下式所示。

这里,log 表示以e为底数的自然对数(loge )。yk是神经网络的输出,tk 是正确解标签。并且,tk 中只有正确解标签的索引为 1,其他均为 0(one-hot 表示)。因此,式(4.2)实际上只计算对应正确解标签的输出的自然对数。

自然对数的图像如图 4-3 所示。

如图 4-3 所示,x 等于 1 时,y 为 0;随着 x 向 0 靠近,y 逐渐变小。所以,正确解标签对应的输出越大,式(4.2)的值越接近 0;

当输出为 1 时,交叉熵误差为 0。此外,如果正确解标签对应的输出较小,则式(4.2)的值较大。

代码实现

import numpy as npdef cross_entropy_error(y, t):delta = 1e-7return -np.sum(t * np.log(y + delta))if __name__ == '__main__':t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]print(cross_entropy_error(np.array(y), np.array(t)))y = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0]print(cross_entropy_error(np.array(y), np.array(t)))

运行结果:

0.510825457099338
2.302584092994546

这里,参数 y 和 t 是 NumPy 数组。函数内部在计算 np.log 时,加上了一个微小值 delta 。这是因为,当出现np.log(0) 时,np.log(0) 会变为负无限大的 -inf,这样一来就会导致后续计算无法进行。作为保护性对策,添加一个微小值可以防止负无限大的发生。

正确解标签的索引是“2”,与之对应的神经网络的输出是 0.6,则交叉熵误差是 -log 0.6 = 0.51;若“2”对应的输出是 0.1,则交叉熵误差为 -log 0.1 = 2.30。也就是说,交叉熵误差的值是由正确解标签所对应的输出结果决定的。

损失函数(交叉熵误差)相关推荐

  1. 机器学习入门(08)— 损失函数作用和分类(均方误差、交叉熵误差)

    神经网络的学习中的"学习"是指从训练数据中自动获取最优权重参数的过程. 为了使神经网络能进行学习,将导入损失函数这一指标.而学习的目的就是以该损失函数为基准,找出能使它的值达到最小 ...

  2. 神经网络的学习(训练):损失函数(均方误差、交叉熵误差)

    1 神经网络学习(训练)步骤: 初始化权值和偏置参数--1 从总训练集抽取一批数据--2 前向传播计算损失.反向传播由损失计算各参数的梯度--3 利用梯度更新参数--4 重复1.2.3 2 神经网络: ...

  3. 经典损失函数——均方误差(MSE)和交叉熵误差(CEE)的python实现

    损失函数(loss function)用来表示当前的神经网络对训练数据不拟合的程度.这个损失函数有很多,但是一般使用均方误差和交叉熵误差等. 1.均方误差(mean squared error) 先来 ...

  4. 交叉熵误差(cross entropy error)

    熵真是一个神奇的东西,据说之所以把它命名为熵就是因为它难以理解 但是它确实是一个很有用的西东,光机器学习里面,就经常见到它的身影,决策树要用到它,神经网络和logistic回归也用到了它. 先说熵的定 ...

  5. 【转载】损失函数 - 交叉熵损失函数

    MSE 转载自:损失函数 - MSE[1] 数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE.MSE是衡量"平均误差"的一种较方便的方法,MSE可以评价数据的变 ...

  6. DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax+交叉熵误差)简介、使用方法、应用案例之详细攻略

    DL之SoftmaxWithLoss:SoftmaxWithLoss算法(Softmax函数+交叉熵误差)简介.使用方法.应用案例之详细攻略 目录 SoftmaxWithLoss算法简介 1.Soft ...

  7. TensorFlow笔记-06-神经网络优化-损失函数,自定义损失函数,交叉熵

    TensorFlow笔记-06-神经网络优化-损失函数,自定义损失函数,交叉熵 神经元模型:用数学公式比表示为:f(Σi xi*wi + b), f为激活函数 神经网络 是以神经元为基本单位构成的 激 ...

  8. 损失函数 -交叉熵损失函数

    参考文献: 1)https://zhuanlan.zhihu.com/p/35709485 2)https://jackon.me/posts/why-use-cross-entropy-error- ...

  9. 损失函数——交叉熵损失函数(CrossEntropy Loss)

    损失函数--交叉熵损失函数(CrossEntropy Loss) 交叉熵函数为在处理分类问题中常用的一种损失函数,其具体公式为: 1.交叉熵损失函数由来 交叉熵是信息论中的一个重要概念,主要用于度量两 ...

最新文章

  1. 机器学习中的数学:一份新鲜出炉的热门草稿
  2. 三步快删EXCEL工作表下面出现1000多万行无用数据或者空白行(空值行)
  3. win8以上windows系统eclipse环境下图片显示乱码问题解决
  4. 揭秘腾讯会议背后的视频编码“神器”
  5. 深入研究嵌入式操作系统的绝佳教材
  6. Python操作Excel——win32com模块和xlrd+xlwt+xlutils组合
  7. [渝粤教育] 广东-国家-开放大学 21秋期末考试计量经济学10551k1
  8. 只有数学老师懂的15个泪流满面的瞬间~
  9. 自学it18大数据笔记-第二阶段hadoop-day11——会持续更新……
  10. JavaWeb应用项目部署到云ubuntu
  11. Bailian2715 谁拿了最多奖学金【分段计算处理】(Vijos P1001)
  12. 顺通车间扫码出入库管理系统仓库扫码软件
  13. lingo数学软件完整教程
  14. 电脑端图纸设计辅助工具-AutoCAD提供下载
  15. 方舟生存进化服务器信息错误,方舟生存进化网络错误信息怎么办
  16. office 论文 页码_毕业论文页码格式word操作
  17. Unity Tilemap Collider 总结
  18. 计算机图形学基础第七章ppt,计算机图形学 -第七章讲义ppt课件
  19. 联想7400pro打印有横黑道
  20. cassandra 3.x官方文档(4)---分区器

热门文章

  1. 2012“粤嵌杯”大学生嵌入式物联网设计大赛成功举办
  2. 学会了 Vim 还有必要用 GitHub Atom 或者 Sublime Text 么?
  3. flask -- 路由与视图函数
  4. java 吃饭 洗手_在舒肤佳“洗手吃饭”的第五年,如何简化营销?
  5. annimation动画
  6. 用PS更换照片背景色
  7. 记录--Vue自定义指令实现加载中效果v-load(不使用Vue.extend)
  8. CN2网络是什么?CN2网络超详细介绍
  9. 我爱发明快餐计算机,一种快餐行业的快速就餐智能系统
  10. Linux安装禅道最新版