交叉熵

交叉熵与KL散度

僤鯓⒐⒋嵵緔 提交于 2020-01-07 14:14:00
参考: https://blog.csdn.net/b1055077005/article/details/100152102 (文中所有公式均来自该bolg,侵删) 信息奠基人香农(Shannon)认为“信息是用来 消除 随机 不确定性 的东西”,我们需要寻找一个量来衡量信息的有用程度。 首先要先明确,这里的信息都指的是正确信息。 一件越不可能的事发生了,对其他人的用处就越大。比如:我的cvpr被拒稿了。这是一个极大概率事件,所以我跟你说的话,你会感觉:这还用你说?也就是说这句话对你没啥用。 但是如果我说:我cvpr被接收了。你肯定内心立刻被‘震’了一下子,说明这句话的信息量很大,所以,我们可以用一个量来描述信息的有用性,它就是信息量: I ( x ) = − log ( P ( x ) ) 但是用信息量来衡量一件有一定概率发生的信息的有用程度是不合逻辑的,‘彩票中奖了’,‘太阳从西方升起’这种信息量很大的信息因为发生概率太小使其有用程度大打折扣。 明显,衡量信息有用程度的这个量需要有这样的性质:对于越不确定的信息,这个量应该越大。因此,定义一个新的量来衡量一定概率发生的信息,信息熵: 这实际上就是信息量的期望。 因此KL散度又称为相对熵。在深度学习中,信息熵是个定值,因此大多数情况下KL散度和交叉熵是等价的。 来源: https://www.cnblogs.com

损失函数理解:MSE和 Cross Entropy Error

╄→尐↘猪︶ㄣ 提交于 2020-01-01 21:15:31
损失函数与代价函数 :目前理解是损失函数就是代价函数,且在损失函数的基础上进行梯度下降,找到最优解。 损失函数 :根据目标模型的不同,会分为回归损失函数,逻辑回归分类损失。 MSE损失函数:度量特征图之间的距离,目标是提取特征图推理一致性。平均平方误差(mean square error)。MAE损失函数与之会有差异,mean absolute error,思想是这一类。 交叉熵损失函数: 交叉熵由真实分布编码长度的期望演变而来(参考 https://www.cnblogs.com/ljy2013/p/6432269.html ),交叉熵(cross entropy error)是衡量两个概率分布p,q之间的相似性。这在特征工程中,用来衡量变量的重要性。 所以交叉熵常用于分类。表达式是 类别✖️相应的概率表达。其他分类损失函数如0-1损失函数,变形联立后用交叉熵表达就是交叉熵损失函数。 来源: https://www.cnblogs.com/xiaoheizi-12345/p/12129947.html

信息熵,交叉熵与相对熵

邮差的信 提交于 2019-12-27 02:24:28
前言 最近在多处看到熵的概念,之前零散的了解了一下,最近总结下,加深一下理解。 熵 熵是信息论中的一个概念,用于衡量一个随机变量的不确定性,公式很简单: l o g ( 1 / p ( x ) ) log(1/p(x)) l o g ( 1 / p ( x ) ) ,其中 p ( x ) p(x) p ( x ) 为x的概率分布(离散)或者概率密度(连续)函数,公式很直观,概率越小熵越大,即信息量越大。 信息熵 信息熵为熵的期望,用于衡量一个分布的不确定性,以下为离散变量概率分布下的计算公式: H ( p ) = ∑ i p ( i ) l o g ( 1 / p ( i ) ) = − ∑ i p ( i ) l o g p ( i ) H(p)=\sum_i p(i)log(1/p(i))=-\sum_i p(i)logp(i) H ( p ) = i ∑ ​ p ( i ) l o g ( 1 / p ( i ) ) = − i ∑ ​ p ( i ) l o g p ( i ) 基本可以看出,当一个随机变量分布越散,信息熵越大,而分布越集中,信息熵越小,二元分布和连续分布类似,这里不多做讨论。 交叉熵 假设我们知道某个分布的真实概率分布 p ( x ) p(x) p ( x ) (机器学习中的标签)和一个预测概率分布 q ( x ) q(x) q ( x ) (模型预测概率

交叉熵代价函数(作用及公式推导)

我与影子孤独终老i 提交于 2019-12-22 15:03:32
交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预測值与实际值的一种方式。与二次代价函数相比,它能更有效地促进ANN的训练。 在介绍交叉熵代价函数之前,本文先简要介绍二次代价函数,以及其存在的不足。 1. 二次代价函数的不足 ANN的设计目的之中的一个是为了使机器能够像人一样学习知识。人在学习分析新事物时。当发现自己犯的错误越大时。改正的力度就越大。比方投篮:当运动员发现自己的投篮方向离正确方向越远,那么他调整的投篮角度就应该越大,篮球就更easy投进篮筐。同理, 我们希望:ANN在训练时,假设预測值与实际值的误差越大,那么在 反向传播训练 的过程中,各种參数调整的幅度就要更大,从而使训练更快收敛。 然而,假设使用二次代价函数训练ANN,看到的 实际 效果是,假设误差越大。參数调整的幅度可能更小,训练更缓慢。 以一个神经元的二类分类训练为例,进行两次实验(ANN经常使用的激活函数为sigmoid函数,该实验也採用该函数):输入一个同样的样本数据x=1.0(该样本相应的实际分类y=0);两次实验各自随机初始化參数。从而在各自的第一次前向传播后得到不同的输出值。形成不同的代价(误差): 实验1:第一次输出值为0.82 实验2:第一次输出值为0.98 在实验1中。随机初始化參数。使得第一次输出值为0.82(该样本相应的实际值为0)

交叉熵损失函数和均方误差损失函数

泪湿孤枕 提交于 2019-12-21 20:11:08
交叉熵 分类问题中,预测结果是(或可以转化成)输入样本属于n个不同分类的对应概率。比如对于一个4分类问题,期望输出应该为 g0=[0,1,0,0] ,实际输出为 g1=[0.2,0.4,0.4,0] ,计算g1与g0之间的差异所使用的方法,就是损失函数,分类问题中常用损失函数是交叉熵。 交叉熵( cross entropy )描述的是两个概率分布之间的距离,距离越小表示这两个概率越相近,越大表示两个概率差异越大。对于两个概率分布 p 和 q ,使用 q 来表示 p 的交叉熵为: 由公式可以看出来,p 与 q 之间的交叉熵 和 q 与 p 之间的交叉熵不是等价的。上式表示的物理意义是使用概率分布 q 来表示概率分布 p 的困难程序,q 是预测值,p 是期望值。 神经网络的输出,也就是前向传播的输出可以通过Softmax回归变成概率分布 ,之后就可以使用交叉熵函数计算损失了。 交叉熵一般会跟Softmax一起使用,在tf中对这两个函数做了封装,就是 tf.nn.softmax_cross_entropy_with_logits 函数,可以直接计算神经网络的交叉熵损失。 cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y, y_) 其中 y 是网络的输出,y_ 是期望输出。 针对分类任务中,正确答案往往只有一个的情况

一文搞懂交叉熵损失

痞子三分冷 提交于 2019-12-20 06:12:42
本文从信息论和最大似然估计得角度推导交叉熵作为分类损失函数的依据。 从熵来看交叉熵损失 信息量 信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。 设 \(X\) 是一个离散型随机变量,其取值为集合 \(X = {x_0,x_1,\dots,x_n}\) ,则其概率分布函数为 \(p(x) = Pr(X = x),x \in X\) ,则定义事件 \(X = x_0\) 的信息量为: \[ I(x_0) = -\log(p(x_0)) \] 当 \(p(x_0) = 1\) 时,该事件必定发生,其信息量为0. 熵 熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。 信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。 熵的计算公式 \[ H(x) = -\sum_{i=1}^np(x_i)\log(p(x_i)) \] 其中, \(p(x_i)\) 为事件 \(X=x_i\) 的概率, \(-log(p(x_i))\) 为事件 \(X=x_i\) 的信息量。 可以看出,熵是信息量的期望值,是一个随机变量(一个系统,事件所有可能性)不确定性的度量。熵值越大,随机变量的取值就越难确定,系统也就越不稳定;熵值越小,随机变量的取值也就越容易确定,系统越稳定。 相对熵

KL散度和交叉熵

懵懂的女人 提交于 2019-12-11 10:25:50
本文主要包括: 1. k l 散 度 和 交 叉 熵 的 概 念 比 较 {\color{red}1. kl散度和交叉熵的概念比较} 1 . k l 散 度 和 交 叉 熵 的 概 念 比 较 2. 交 叉 熵 在 分 类 任 务 中 的 本 质 {\color{red}2. 交叉熵在分类任务中的本质} 2 . 交 叉 熵 在 分 类 任 务 中 的 本 质 在学习机器学习的过程中,我们经常会碰到这两个概念:KL散度(kl divergence)以及交叉熵,并且经常是同时出现的。很多同学对这两个概念都理解的不是很透彻,造成经常会搞混他们两者。本文最主要的目的就是带大家深入理解这两个重要的概念,同时搞懂,区别的理解他们,保证以后不会再搞混它们。 首先,这两个概念都来自信息论。 交叉熵:当我们使用模型Q来编码(表示)来自分布P的数据时,所需要的平均bit数。 交叉熵数学定义为: H ( p , q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q)=-\sum_{i=1}^n p(x_i)log(q(x_i)) H ( p , q ) = − ∑ i = 1 n ​ p ( x i ​ ) l o g ( q ( x i ​ ) ) KL散度: 也就是相对熵, 是当我们使用模型(分布)Q来编码,而不是使用真实的P分布来编码数据时

机器学习之相对熵、交叉熵(为什么交叉熵可以作为损失函数)

回眸只為那壹抹淺笑 提交于 2019-12-10 15:58:10
文章目录 自信息 信息熵 相对熵(KL散度) 交叉熵 为什么交叉熵可以作为损失函数 参考文章 自信息   信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能够提供发更多的信息。消息说:“今天早上太阳升起”,信息量是如此少,以至于没有必要发送;但一条消息说:“今天早上有日食”,信息量就很丰富。   一条信息的信息量大小和它的不确定性有直接的关系,我们可以认为, 信息量的度量就等于不确定性的多少 。使用 自信息 来量化 信息量 : I ( x ) = − l o g P ( x ) I(x)=-logP(x) I ( x ) = − l o g P ( x )    l o g log l o g 函数基的选择是任意的,信息论中基常常选择为2,因此信息的单位为比特(bit);而机器学习中基常常选择为自然常数,因此单位常常被称为奈特(nats)。 信息熵   使用信息熵对整个 概率分布 中的 不确定性总量 进行量化: H ( X ) = E x ∼ P [ I ( x ) ] = − E x ∼ P [ l o g P ( x ) ] H(X)=E_{x\sim P}[I(x)]=-E_{x\sim P}[logP(x)] H ( X ) = E x ∼ P ​ [ I ( x ) ] = − E x ∼ P ​ [ l o g P ( x ) ]  

损失函数--KL散度与交叉熵

廉价感情. 提交于 2019-12-06 11:15:22
损失函数 在逻辑回归建立过程中,我们需要一个关于模型参数的可导函数,并且它能够以某种方式衡量模型的效果。这种函数称为损失函数(loss function)。 损失函数越 小 ,则模型的预测效果越 优 。所以我们可以把训练模型问题转化为 最小化损失函数 的问题。 损失函数有多种,此次介绍分类问题最常用的 交叉熵(cross entropy)损失 ,并从 信息论 和 贝叶斯 两种视角阐释交叉熵损失的内涵。 ## 公式请查看 : https://blog.csdn.net/Ambrosedream/article/details/103379183 K-L散度与交叉熵 随机变量 X 有 k 种不同的取值: ,, ​ 。 记 X 的取值 ​ 的概率为p(X= ​ ) ,简写为P( ​ ) . 克劳德 · 香农定义了信息的信息量: ​ 注:其中对数可以以任意合理数为底,如 2、e。使用不同的底数所得到的信息量之间相差一个常系数。 若以2为底,信息量的单位是bit ,I(X= ​ )是X = ​ 这条信息的自信息量(self-information) . 自信息量 I 随着概率 P ( ​ )的图像变化如下: 自信息量背后的含义:信息中事件发生的概率越小,则信息量越大。 举例:假如有人告诉你即将开奖的彩票中奖号码是777777777,这条信息的价值很高,类似事情发生概率极小

熵、交叉熵、KL散度、JS散度

蹲街弑〆低调 提交于 2019-12-05 17:46:09
熵、交叉熵、KL散度、JS散度 一、信息量 事件发生的可能性大,信息量少;事件发生的可能性小,其信息量大。 即一条信息的信息量大小和它的不确定性有直接的关系,比如说现在在下雨,然后有个憨憨跟你说今天有雨,这对你了解获取天气的信息没有任何用处。但是有人跟你说明天可能也下雨,这条信息就比前一条的信息量大。可以看出信息量的大小与事件发生的可能性成反比。 \[ \begin{align} p\left(x\right) &= Pr(X=x),x \in \chi \\ I(x) &= - \log(p(x)) \tag{1} \end{align} \] \(I(x)\) 称为随机变量X的自信息,描述的是随机变量的某个事件(X = \(x\) )发生所带来的信息量。这里可以稍微理解一下为什么使用 \(log\) :例如两个相互独立的事件 \(x,y\) ,因为两者相互独立所以两个事件带来的信息量为 \(I(x)+I(y)\) ,而两个事件同时发生的概率是 \(p(x,y) = p(x)p(y)\) 。 \(log\) 函数就满足这两个式子,其中 \(log\) 的基数可以任意,常用的是2(二进制编码), \(e\) 。 二、熵 从信息量的公式可以看出,当一个事件的发生概率为 \(p(x)\) 时,它的信息量就是 \(-log(p(x))\)