ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

信息量、熵、KL散度、交叉熵

2022-08-29 23:30:19  阅读:177  来源: 互联网

标签:logQ 信息量 sum 交叉 散度 KL 我们


信息量、熵、KL散度、交叉熵

相信很多小伙伴在学习交叉熵时,对交叉熵感觉到非常的迷惑。"交叉熵怎么来的?","为什么交叉熵的表达式是这样婶儿的?","熵和交叉熵到底有什么关系?"。本文通过由浅到深的顺序,来引入交叉熵,希望能对各位学习路上的小伙伴有所帮助,不足的地方恳请批评指正

一、 信息量

1. 何为信息量?

从字面意思来看,直观理解:如果我们知道一件事情,这件事情给我们带来的信息有多少。

2. 信息量如何定义?

让我们想象一个能带给我们信息量的例子:四个人比赛争夺冠军,编编号为1,2,3,4,每个人每场胜利的概率是\(\frac{1}{2}\)

选手1、2比赛,1获胜的概率是\(\frac{1}{2}\);选手3、4比赛,4获胜的概率是\(\frac{1}{2}\);1、4再比赛,1获胜的概率还是\(\frac{1}{2}\);我们关注1号选手,并设信息\(x\)所具有的信息量为\(f(x)\),即

\[f(x) := 信息x所包含的信息量 \]

设选手1第一场获胜的事件为\(x_1\),选手1第二场获胜的事件为\(x_2\),选手1获得冠军的事件为\(x = x_1 * x_2\),表示\(x_1\)与\(x_2\)同时发生. 为了保证信息量量纲的一致性,我们猜想

\[f(x) = f(x_1) + f(x_2) \\ \rightarrow f(x_1 * x_2) = f(x_1) + f(x_2) \]

之所以是加法而不是乘法,是为了保证量纲的一致性。

根据上式,我们就能断定:信息量的计算一定是一个对数函数。接下来我们猜想下一个问题,一个事情发生的概率越小还是越大,他能带来的信息量越大?思考一下我们就能发现,一个事情发生的概率越小,它所带来的信息量就越大,如中国国足夺冠(手动狗头)。至于对数函数的底数,什么值都没有关系,为了更好的进行运算,信息论中将其定义为以2为底。故信息量定义如下:

\[f(x) = - log_{2}(p_x) \]

\(x\)为事件,\(p_x\)为事件\(x\)发生的概率,信息量的单位为奈特 nat.

二、熵

是衡量一个信息系统的混乱程度,定义为信息量的期望。故其计算表达式为:

\[H(X) = -\sum_i^n p_i log_2(p_i) \]

其中,\(X\)的分布为\(\{p_1,p_2,\cdots,p_n\}\). 熵用来衡量一个信息系统的混乱程度

三、KL散度

有了熵,我们就能衡量一个信息系统或一个概率分布的分布情况,那么肯定会有同学思考,如何衡量两个分布的"距离"呢?

  • 对于相同的分布,如高斯分布,我们只需要比较均值\(\mu\)与标准差\(\sigma\)
  • 对于不同的分布,我们必须通过一个更高层的指标来比较

由此,我们引入KL散度(Kullback-Leibler Divergence)的概念,用于度量两个分布之间的"距离"。设有两个概率分布\(P(X)\)与\(Q(X)\),定义以\(P\)为基础的\(P,Q\)之间的KL散度为

\[\begin{aligned} KL[P(X)|Q(X)] &= \sum_{x \in X}[-P(x)logQ(x) - (-P(x)logP(x))] \\ &= \sum_{x \in X}[ P(x)log\frac{P(x)}{Q(x)}] \end{aligned} \]

四、交叉熵

1. 交叉熵引入

我们观察KL散度的公式:

\[\begin{aligned} KL[P(X)|Q(X)] &= \sum_{x \in X}[-P(x)logQ(x) - (-P(x)logP(x))] \\ &= \sum_{x \in X}[-P(x)logQ(x)] - \sum_{x \in X}[-P(x)logP(x)] \end{aligned} \]

为了让分布\(Q(x)\)更接近分布\(P(x)\). 上式必须趋近于0,但我们并不知道$\sum_{x \in X}[-P(x)logQ(x)] \(与\) \sum_{x \in X}[-P(x)logP(x)]$谁大谁小。当然已经有人帮我们解决了这个问题,根据吉布斯不等式:

\[\sum_{x \in X}[-P(x)logQ(x)] \geq \sum_{x \in X}[-P(x)logP(x)] \]

恒成立,所以为了为了让分布\(Q(x)\)更接近分布\(P(x)\).我们只需要让$\sum_{x \in X}[-P(x)logQ(x)] $尽可能的小即可。

2. 交叉熵定义

为了更方便描述,我们给$\sum_{x \in X}[-P(x)logQ(x)] $取了个名字,叫做交叉熵

在机器学习中,我们常用一个已知数据集来训练一个机器学习模型,故我们想让模型预测的概率分布更接近已知数据集的概率分布,所以我们将已知数据集的分布看作\(P(x)\),模型预测的分布看作\(Q(x)\).

由于数据集已知,则\(P(x)\)已知,故我们需要优化\(Q(x)\). 在深度学习神经网络上,我们要做分类任务时,经常用全连接层后的神经元输出,经过\(Softmax\)得到模型预测的概率分布,所以对分类神经网络来说,交叉熵损失函数即为

\[\begin{aligned} Loss &= -\sum_{x \in X}P(x)log (Softmax(x)) \\ &= \sum_{i=0}^{N-1}\sum_{k=0}^{K-1} y_{i,k}log (p_{i,k}) \end{aligned} \]

其中,\(p_{i,k}\)为第i个样本预测为标签k的概率,\(y_{i,k}\)是样本\(i\)真实的标签的one-hot编码,当样本属于类别\(k\)时,\(y_k = 0\),即\(y_{i,k} \in R^{K}\),第\(k\)位为1,其余位为0.

标签:logQ,信息量,sum,交叉,散度,KL,我们
来源: https://www.cnblogs.com/Aegsteh/p/16637810.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有