我是靠谱客的博主 斯文果汁,最近开发中收集的这篇文章主要介绍交叉熵是什么,能干什么用,,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在做tensorflow对手写mnist字体识别中,用到了交叉熵来定义损失函数的方法,看着别人用这个,但是又不知道原理,

心里特别的不踏实,就特地查了一些资料了解了一下:

事先说明一下,我在做mnist数据集的时候,我做了数据的归一化操作,也就是说,我最终的到的是一个概率;

而交叉熵的定义就是:衡量两个概率分布的差异性,而恰好这个函数有两个参数,一个是预测(logist)的,一个是我们输入的

标签(labels);这样我们就得到了这个损失函数了;

此处再给一下标准定义:

交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。语言模型的性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。平滑是指对没观察到的N元组合赋予一个概率值,以保证词序列总能通过语言模型得到一个概率值。通常使用的平滑技术有图灵估计、删除插值平滑、Katz平滑和Kneser-Ney平滑。


交叉熵的应用:

交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性。交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。  [1]  
在特征工程中,可以用来衡量两个随机变量之间的相似度。
在语言模型中(NLP)中,由于真实的分布p是未知的,在语言模型中,模型是通过训练集得到的,交叉熵就是衡量这个模型在测试集上的正确率。

最后

以上就是斯文果汁为你收集整理的交叉熵是什么,能干什么用,的全部内容,希望文章能够帮你解决交叉熵是什么,能干什么用,所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部