d2l 学习笔记:交叉熵
信息量: 概率的信息量。描述单个事件的信息量。 因为在编码中我们希望能减少的整体的编码长度来提高信息密度,从而提高传输效率。所以可以统计编码中代表不同状态信息出现的概率,对出现概率较小的事件使用长编码,对概率高的事件使用短编码。例如,如果需要传输的信息是英文,那么可以统计不同字母出现的概率。假设出现概率最高的字母是e,那么就可以对e使用进行编码,而对于概率最小的u就可以使用多位数的编码。这么做的原因是光凭借一位数二进制的和实际上无法表示26个字母。在二进制中,如果想表示26个字母,至少需要5位二进制数。那有没有办法能减少整体的编码位呢,就是对从到的不同数字,将位数小的分配给出现概率高的e,以此类推。 为什么选这个公式作为信息量? 这来源于对信息量的直觉,既:
-
单调性:概率越小,信息量越大。 太阳升起 ,几乎没信息;彩票头奖 ,信息量爆炸。 数学表达:
-
零信息条件:必然事件 ,信息量为 。 百分百会发生的事,没有任何新消息。
-
可加性(最关键):独立事件联合信息量 = 各自信息量相加 设 A、B 独立,,则 举例:抛两次独立硬币,“第一次正面、第二次反面” 这件事的总信息量 = 第一次正面的信息量 + 第二次反面的信息量。
-
非负性:信息量不能是负数,,不可能 “发生一件事反而丢失信息”。 其实也很好理解,因为如字母e出现的概率是100%那么就只需要一个0就能表示了,但我们在全是字母e的大串字母里获取不到任何信息。而如果一个字母出现的概率,非常小,当他出现时,你甚至都能猜到他一定是属于那几个单词中的一个。同时我们需要判断使用新编码方式后,优化了多少信息量,就自然引出了熵的概念。 熵: 信息量的数学期望,也就是加权平均数。
交叉熵: 使用真实分布 P 做权重对模型分布 Q 的信息量进行加权平均。
为什么深度学习要用这样一个公式来评判参数的好坏? 表示了真实的数据分布,它表示了从的真实的映射,而就是我们通过模型预测的概率。如果参数能够完美预测,那么就会有,也就是。但事实是训练结果总是会与真实结果有差距的,所以计算交叉熵给了我们一个优化模型的方向,就是通过不断的缩小使其不断趋近于。
关联文档
- d2l 学习笔记:引言:D2L 学习入口。
- d2l 学习笔记:线性回归的损失函数:线性回归与损失函数基础。
