本文是《TensorFlow从浅入深》系列之第6篇

TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法)

TensorFlow从浅入深系列之二 -- 教你通过思维导图深度理解深层神经网络

TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别

TensorFlow从浅入深系列之四 -- 教你深入理解过拟合问题(正则化)

TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型

目录

1、交叉熵

2、均方误差


1、交叉熵

交叉熵分类问题中使用比较广的一种损失函数,刻画了两个概率分布之间的距离。

给定两个概率分布p和q,通过q来表示p的交叉熵为:

交叉熵刻画的是两个概率分布之间的距离,然而神经网络的输出却不一定是一个概率分布。Softmax回归就是一个非常常用的方法,用来将神经网络前向传播得到的结果变成概率分布。

交叉熵刻画的是通过概率分布q来表达概率分布p的困难程度。因为正确答案是希望得到的结果,所以当交叉熵作为神经网络的损失函数时,p代表的是正确答案,q代表的是预测值交叉熵刻画的是两个概率分布的距离,也就是说交叉熵值越小, 两个概率分布越接近。

图4-10展示了加上Softmax回归的神经网络结构图。

假设原始的神经网络输出为,…,,那么经过Sotmax回归处理之后的输出为:


假设有一个分类问题,某个样例的正确答案是(1,0,0)。某模型经过Softmax回归之后的预测答案是(0.5,0.4,0.1),那么这个预测和正确答案之间的交叉熵为:

如果另外一个模型的预测是(0.8,0.1 ,0.1),那么这个预测值和真实值之间的交叉娟是:

从直观上可以很容易地知道第二个预测答案要优于第一个 。


TensorFlow实现交叉熵代码:

cross_entyopy=-tf.reduce_mean(y_*tf.log(tf.clip_by_balue(y,1e-10,1.0)))

其中y_代表正确结果,y代表预测结果。(有对tf.clip_by_value函数不懂的,请参考本博客对其的介绍TensorFlow函数之tf.clip_by_value())

因为交叉煽一般会与softmax回归一起使用,所以TensorFlow对这两个功能进行了统一封装,并提供了tf.nn.softmax_cross_entropy_with_logits函数。

Softmax回归之后的交叉熵损失函数:

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y )

其中y代表了原始神经网络的输出结果,而 y_给出了标准答案 。

在只有一个正确答案的分类问题中,TensorFlow提供了tf.nn.sparse_softmax_cross_entropy_with_logits函数来进一步加速计算过程。(博客《TensorFlow:实战Google深度学习框架》--5.2.1 MNIST手写识别问题(程序已改进)有此方法的详细案例。)


2、均方误差

与分类问题不同,回归问题解决的是对具体数值的预测。比如房价预测、销量预测等都是回归问题。这些问题需要预测的不是一个事先定义好的类别,而是一个任意实数。解决回归问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。

对于回归问题,最常用的损失函数是均方误差(MSE,mean squared error)。定义如下:

其中为一个batch中第i个数据的正确答案,而为神经网络给出的预测值。


TensorFlow实现均方误差函数:

mse=tf.reduce_mean(tf.square(y_-y))

其中y代表了神经网络的输出答案,y_代表了标准答案 。

【TensorFlow】TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)相关推荐

  1. 【TensorFlow】TensorFlow从浅入深系列之四 -- 教你深入理解过拟合问题(正则化)

    本文是<TensorFlow从浅入深>系列之第4篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  2. 【TensorFlow】TensorFlow从浅入深系列之八 -- 教你学会变量管理

    本文是<TensorFlow从浅入深>系列之第8篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  3. 【TensorFlow】TensorFlow从浅入深系列之七 -- 教你使用验证数据集判断模型效果

    本文是<TensorFlow从浅入深>系列之第7篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  4. 【TensorFlow】TensorFlow从浅入深系列之五 -- 教你详解滑动平均模型

    本文是<TensorFlow从浅入深>系列之第5篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  5. 【TensorFlow】TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法)

    本文是<TensorFlow从浅入深>系列之第1篇 [TensorFlow]TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) 在训练神经网络时,需要设置学习率( ...

  6. 【TensorFlow】TensorFlow从浅入深系列之三 -- 教你如何对MNIST手写识别

    本文是<TensorFlow从浅入深>系列之第3篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维导 ...

  7. 【TensorFlow】TensorFlow从浅入深系列之十三 -- 教你深入理解模型持久化(模型保存、模型加载)

    本文是<TensorFlow从浅入深>系列之第13篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  8. 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层

    本文是<TensorFlow从浅入深>系列之第12篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  9. 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层

    本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

最新文章

  1. SSH下的组合批量增加
  2. AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器???
  3. apache开源项目--Sirona
  4. 分页查询抽象出的对象属性(笔记)
  5. 几级工作台做石头高墙_创造与魔法:建筑新手入门攻略,家园建材怎么做
  6. 剑指offer面试题[17]-合并两个排序的链表
  7. python模拟操作_请用Python如何模拟键盘操作
  8. SpringCloud Alibaba之Sentinelt组件
  9. 网页设计与制作(HTML+CSS)
  10. 电子科技大学软件工程860考研专业课真题考频总结
  11. 采用曼码调制的非接触式IC卡译码软件设计
  12. 线程的学习,和线程的相关概念及多线程的学习指引
  13. Debug Error :abort() has been called 报错原因及解决方法
  14. 全国程序员【工资统计】, 你想去哪个城市工作?
  15. C语言求水仙花数(自幂数)
  16. 利用Java实现从键盘输入一个double型数,输出该数的整数部分和小数部分
  17. 华为交换机boot默认密码
  18. keras的seq2seq
  19. 卓别林论Scrum价值观:当我真正开始爱自己
  20. 怎么在自己电脑上搭建一个服务器,以便于外网访问呢?

热门文章

  1. mysql改单行数据编码_mysql数据库字符编码修改
  2. 大学学python用记笔记吗_3年Python程序员平时学习笔记总结,对于学习Python非常有帮助!...
  3. go 语言ase ecb加密_Go技术日报(20201112)
  4. java学完jdk后学什么_学完了javase之后要学什么?
  5. solaris linux nfs,solaris 10 nfs服务配置
  6. 音乐上传网站_国外最受欢迎的15个BT下载网站
  7. intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法
  8. linux c变量命名规则,C语言中变量名及函数名的命名规则与驼峰命名法
  9. 计算机启动需输入两次密码,为什么我的电脑要2次启动才能启动我电脑设置了启动密码后就一定要2 爱问知识人...
  10. 多个字符合并成一个数组_一个excel多个sheet,需要合并为一个sheet