什么是信息熵?香农利用信息熵回答了什么问题_香农定律

什么是信息熵?香农利用信息熵回答了什么问题_香农定律第九个知识点:香农(Shannon)定义的熵和信息是什么这是计算机理论的最后一篇.我们讨论信息理论的基础概念,什么是香农定义的熵和信息.信息论在1948年被ClaudeE.Shannon建立.信

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

第九个知识点:香农(Shannon)定义的熵和信息是什么

这是计算机理论的最后一篇.我们讨论信息理论的基础概念,什么是香农定义的熵和信息.

信息论在1948年被Claude E.Shannon建立.信息论最开始被应用于信号处理,但是经过几十年的发展,它现在已经被应用到各个学科了.这篇文章尝试简洁的介绍两个基础的概念,熵(entropy)和信息(information).如果你对这个感兴趣,我个人推荐你在这里学习更多.[1]

熵是衡量一个或者多个变量不确定性的度量.

假设我们调查人们打开浏览器的时候打开的第一个网页.我们用抽样的方法将测试人员分出两组.四个来自Bristol Cryptogroup的密码学研究人员和在Bristol客车站被抽取的四个乘客.让我们做一个激进的假设,假设四个密码学研究者第一次都会访问http://bristolcrypto.blogspot.co.uk/ .

现在让我们评价一下他们的答案:显然,密码学家的答案是相当确定的(低不确定性),而如果答案来自乘客,则很难猜到(高不确定性).换句话说,我们说密码学家组的答案熵低,而乘客组的答案熵高.

因此香农的一个最著名的贡献就是香农熵的定义:

\(H = – \sum_ip_ilog_bp_i\)

其中\(p_i\)是一个之前答案出现的可能性.在计算机科学中,我们通常使用\(b = 2\)(bits).

如果我们计算熵值,我们就有

\(H_{cryptographer} = – \sum_i^41log_21=0\)

\(H_{passenger} = -\sum_1^4log_2(1/4)=2\)

所以乘客的答案的熵确实比密码学家的高!

信息

形式上,Shannon信息的定义在[2]中给出:

信息是衡量一个人在选择信息时的选择自由.

为了解释这个问题,让我们对前面的事例做一个小的修改.让我们从Bristol火车站再抓四个乘客,假设他们的答案也是随机门户,就像长途汽车站的乘客一样.

问题是:给定一个答案\(y\),你能说答案来自哪一组?

如果\(y\)http://bristolcrypto.blogspot.co.uk/,那么我们马上就可以知道答案来自于我们的密码编码员组.但是如果y是随机的,我们就会遇到困难.因此我们就可以说http://bristolcrypto.blogspot.co.uk/包含比随机的更多的信息.

因此它们跟熵有什么关系?

扩展熵的定义,我们将条件熵定义为:

\[H(Y|X) = sum_{x \in X}p(x)H(Y|X=x) \]

这个公式描述了当\(X=x\)条件\(Y\)的熵.更明确的说,因为熵是一个变量的不确定性.因此,先前条件熵的定义实际上是当给定条件为”线索”(条件)\(X\)的不确定的\(Y\).

观察:考虑两个变量\(X\)\(Y\).如果\(X\)包括\(Y\)的最小信息,然后给出一个额外的\(X\)的精确值对我们推断\(Y\)的值应该没有多大帮助,也就是说,它并没有明显的降低\(Y\)的不确定性.另一方面,如果\(X\)包含了\(Y\)的基本信息.那么当\(X\)给定时,\(Y\)的熵应该是低了很多.因此,条件熵可以看作是看作是对\(X\)\(Y\)的信息是一种合理的度量!

另一个重要的指标就是互信息(Mutual Information).它是两个变量测量的度量.一种定义它的方法就是熵的减少值.

\(I(X;Y) = H(X)-H(X|Y)=H(Y)-H(Y|X)\)

密码学实例

信息论的概念广泛应用于密码学.一个典型的例子就是把密码学看作一个信道,明文是输入,密文是输出.侧信道的研究也得益于信息论.

[1] Thomas M. Cover and Joy A. Thomas. Elements of Information Theory
​ 2nd Edition. Wiley-Interscience, 2 edition, July 2006.

[2] S. Vajda, Claude E. Shannon, and Warren Weaver. The mathematical
​ theory of communication. The Mathematical Gazette, 34(310):312+,
​ December 1950.

[3] http://en.wikipedia.org/wiki/Entropy_(information_theory)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167928.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js除法取整数取余数_java中取余中的余数怎么取

    js除法取整数取余数_java中取余中的余数怎么取取整1.取整//丢弃小数部分,保留整数部分parseInt(5/2)  //22.向上取整//向上取整,有小数就整数部分加1Math.ceil(5/2)  //33.向下取整//向下取整,丢弃小数部分Math.floor(5/2)  //24四舍五入//四舍五入Math.round(5/2)  //3取余//取余6%4 …

    2022年4月20日
    69
  • 对象数组(C++学习笔记 20)[通俗易懂]

    对象数组(C++学习笔记 20)[通俗易懂]一、对象数组的定义所谓对象数组,指每一个数组元素都是对象的数组,即若一个类有若干个对象,我们把这一系列的对象用一个数组来存放。对象数组的元素是对象,不仅具有数据成员,而且还有函数成员。定义一个一维数组的格式如下:类名数组名[下标表达式]与基本数据类型的数组一样,在使用对象数组时也只能访问单个数组元素,其一般形式为:数组名[下标].成员名在建立数组时,同样要调用构造函数。有几个数组元…

    2022年7月12日
    21
  • android基于xposed框架,基于Xposed框架的模块:Android EagleEye

    android基于xposed框架,基于Xposed框架的模块:Android EagleEye基于Xposed框架的模块:AndroidEagleEye2015-06-2609:59:42阅读:0次一个基于Xposed框架的模块(可对Android系统APIs和应用的方法进行hook操作)。相关联的被hook的APIs或应用的方法信息将被作为输出被记录。使用AndroidEagleEye的一切风险由自己承担特性对Android系统APIs和应用的方法进行hook操作Hook需要的…

    2022年8月16日
    6
  • idea企业开发之插件推荐

    idea企业开发之插件推荐推荐在企业开发中,使用IntelliJIDEA时常使用到的插件。

    2022年6月6日
    58
  • VIM编辑器和VI编辑器的区别

    VIM编辑器和VI编辑器的区别

    2021年6月15日
    133
  • Linux Vim编辑器的基本使用

    Linux Vim编辑器的基本使用vi、vim编辑器:如何安装vim编辑器?vim编辑器的四种模式及其关系是什么?vim编辑器如何使用?vim如何进行复制、粘贴、剪切、恢复、撤销、删除等操作?vim四种模式如何切换?vim怎么添加多行注释?代码着色、异常退出如何解决、vim各模式的作用是什么…

    2022年7月26日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号