对多分类问题(multi-class),通常使用 cross-entropy 作为 loss function。cross entropy 最早是信息论(information theory)中的概念,由信息熵(information entropy,与压缩比率有关)变化而来,然后被用到很多地方,包括通信,纠错码,博弈论和机器学习等。交叉熵与信息熵的关系请见:<a href=“http://blog.csdn.net/lanchunhui/article/details/50970625”, target="_blank">机器学习基础(六)—— 交叉熵代价函数(cross-entropy error)。

在运作对 loss function 的定义时,yyy 是预测的概率分布,y′y'y′ 是真实的概率分布(在多分类问题的 one-hot 编码),用来判断模型对真实概率分布估计的准确程度。

H(y,y′)=Hy′(y)=−∑iyi′log⁡yiH(y,y')=H_{y'}(y)=-\sum_{i}y'_i\log y_i H(y,y′)=Hy′​(y)=−i∑​yi′​logyi​

iii 表示的是样本编号。此外交叉熵还可以用来度量两个同维度的向量之间的举例,二分类问题又可进一步展开为:

H(y,a)=Hy(a)=−(ylog⁡a+(1−y)log⁡(1−a))H(y,a)=H_y(a)=-\left(y\log a+(1-y)\log (1-a)\right) H(y,a)=Hy​(a)=−(yloga+(1−y)log(1−a))

# y_ 真实输出值,y 预测值
y_ = tf.placeholder(tf.float32, [None, 10])
cross_ent = -tf.reduce_mean(tf.reduce_sum(y_*tf.log(y), reduce_indices=[1]))

预测值y是经过一系列的机器学习(深度学习)的算法得到(y_以预先 placeholder,占位),此时便可定义优化算法:

lr = 1e-4
train_step = tf.train.AdamOptimizer(lr).minimize(cross_ent)

1. softmax_cross_entropy_with_logits

https://blog.csdn.net/mao_xiao_feng/article/details/53382790

  • softmax_cross_entropy_with_logits 该接口对 y_*tf.log(y) 取了负号,但未求和

  • 其 logits 参数表示未经过 softmax 前的输出;

    logits = tf.constant([[1, 2, 3], [2, 1, 3], [3, 1, 2]], tf.float64)
    y = tf.nn.softmax(logits)
    y_ = tf.constant([[0, 0, 1], [0, 1, 0], [0, 0, 1]], tf.float64)cross_ent = -tf.reduce_sum(y_ * tf.log(y))
    cross_ent2 = tf.reduce_sum(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=y_))with tf.Session() as sess:print('cross_ent: ', sess.run(cross_ent))print('cross_ent2: ', sess.run(cross_ent2))
    

TensorFlow 实战(一)—— 交叉熵(cross entropy)的定义相关推荐

  1. 平均符号熵的计算公式_交叉熵(Cross Entropy)从原理到代码解读

    交叉熵(Cross Entropy)是Shannon(香浓)信息论中的一个概念,在深度学习领域中解决分类问题时常用它作为损失函数. 原理部分:要想搞懂交叉熵需要先清楚一些概念,顺序如下:==1.自信息 ...

  2. 机器学习中交叉熵cross entropy是什么,怎么计算?

    项目背景:人体动作识别(分类),CNN或者RNN网络,softmax分类输出,输出为one-hot型标签. loss可以理解为预测输出pred与实际输出Y之间的差距,其中pred和Y均为one-hot ...

  3. 交叉熵(cross entropy)概念整理

    网上写得实在是太乱,整理下: 交叉熵函数: H(p,q)=Ep[−logq]=−∑x∈χp(x)logq(x)①H(p,q)=E_p[-log\ q]=-\sum_{x\in \chi}p(x)log ...

  4. tensorflow中的交叉熵损失

    tf.nn.softmax_cross_entropy_with_logits传入的 labels是one-hot编码,logits需未使用softmax, tf.nn.softmax_cross_e ...

  5. 联合熵、条件熵、互信息、相对熵、交叉熵的详解

    本篇博客,我们将介绍联合熵.条件熵.互信息.相对熵.交叉熵,如果对熵的概念还有不清楚的朋友,可以看一下这一篇博客,信息熵是什么呢? https://blog.csdn.net/ding_program ...

  6. 信息论中的香农熵、条件熵、最大熵、相对熵、交叉熵理解

    目录 信息论基础 信息熵.香农熵 最大熵定理 条件熵 信息增益 信息增益与决策树算法 相对熵与GAN算法 相对熵 相对熵的致命问题 交叉熵 结束语 信息论基础 前几天朋友问我决策树中的香农熵公式来源的 ...

  7. 详解机器学习中的熵、条件熵、相对熵、交叉熵

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 目录 信息熵 条件熵 相对熵 交叉熵 总结 一 信息熵 (info ...

  8. 【数据挖掘】神经网络 后向传播算法( 向后传播误差 | 输出层误差公式 | 隐藏层误差公式 | 单元连接权值更新公式 | 单元偏置更新公式 | 反向传播 | 损失函数 | 误差平方和 | 交叉熵 )

    文章目录 I . 向后传播误差 简介 II . 输出层误差计算公式 III . 隐藏层层误差计算公式 IV . 使用误差更新 连接权值 V . 使用误差更新 单元偏置 VI . 反向传播 过程 VII ...

  9. 为什么要返回softmax_为什么softmax搭配cross entropy是解决分类问题的通用方案?

    众所周知,softmax+cross entropy是在线性模型.神经网络等模型中解决分类问题的通用方案,但是为什么选择这种方案呢?它相对于其他方案有什么优势?笔者一直也困惑不解,最近浏览了一些资料, ...

  10. 【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度

    1 信息熵 熵 (Entropy),信息熵:常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据. 1.1 信息熵的性质 单调性,发生概率越高的事件,其 ...

最新文章

  1. 一个老产品的心路历程
  2. wpf 绘制rectangle 代码
  3. 成功解决xgboost\core.py, ValueError: feature_names may not contain [, ] or
  4. java属性修改前后_java 记录对象前后修改的内容(工具类)
  5. 荣获中国音视频产业大会「科技创新奖」,网易云信彰显行业领先水平
  6. 页面瘦身之压缩viewState和保存viewState到服务器
  7. 如何在bootstrap轮播中调整图像大小
  8. linux /etc/passwd
  9. 如何安装CocoaPods,以便在Xcode中快速添加第三方库
  10. 知道半径 两点角度 怎么求坐标
  11. html lt;tablegt;,HTML布局lt;divgt;orlt;tablegt;,
  12. Linux设备驱动之字符设备(二)
  13. C++数据结构之图的储存结构——十字链表
  14. java日期字符串排序_对字符串格式的日期进行排序
  15. 中兴配置dhcp服务器,中兴ZXR10 5928三层交换机DHCP配制步骤
  16. 关于驻波比(VSWR)的详细解析
  17. ThingJS:次时代3D城市大屏,2款工具3分钟搭建完成!
  18. android文件管理器——文件检索
  19. pm2 for linux
  20. 织梦后台图片集图片内容框太小解决办法

热门文章

  1. C#获得Access数据库中的表名,以及根据表名获取字段名
  2. ATL 实现定制的 IE 浏览器栏、工具栏和桌面工具栏
  3. cas client 更新ticket_cas sso单点登录系列6_cas单点登录防止登出退出后刷新后退ticket失效报500错...
  4. clover更新驱动 后不能开机_黑苹果笔记本电池模式下省电驱动,延长笔记本续航...
  5. mysql 事务原子性_数据库事务原子性、一致性是怎样实现的?
  6. js 将点击事件当作参数引入_NodeJS中的事件驱动程序实现原理解析
  7. 数据建模的的参考工具EZDML
  8. 在计算机里分数线怎么表示什么意思,高考投档分数线是什么意思 怎么定的
  9. python,C语言求阶乘函数
  10. 图像变换——图像反转