对互信息量的理解

对互信息量的理解在概率论与随机过程中对于两个随机变量 X 与 Y 我们仅仅停留在随机变量 X 与 Y 是否相关这个非黑即白的问题

在概率论中对于两个随机变量X与Y,我们定义若两个随机变量X,Y满足
P(X,Y)=P(X)P(Y)
则我们说随机变量X,Y独立。我们仅仅停留在随机变量X与Y是否相关这个非黑即白的问题上,而引入信息论中的互信息量,我们不仅可以说明随机变量X与Y之间是否相关,更可以反映随机变量之间相关性的强弱。我们定义信源X发出的消息ai通过信道后,信宿Y只可能收到由于干扰作用引起的某种变型bj,我们将由新宿收到bj后推测信源发出ai的概率p(ai | bj)称为后验概率,p(ai)称为先验概率,此时定义bjai的互信息量为

对互信息量的理解
上式可化为
 对互信息量的理解
下面我们将不通过数学推导,仅从物理含义解释互信息量。
首先我们已知条件自信息量I(ai|bj)在数值上与该事件所包含的不确定度相同,但两者的含义是不同的;不确定度表示含有多少信息,信息量表示随机事件发生后可以得到多少信息。
从不确定度的角度来看,上式中我们可以知道互信息量就是在对bj一无所知的条件下ai存在的不确定度与引入bj后ai仍存在的不确定度之差,就是引入bj后不确定度被消除的部分,也就是通过bj我们确定下来的信息,即我们通过bj获得的对ai的信息量。
从信息量的角度看时,I(ai)是对bj一无所知的情况下发生ai后我们获得的信息量,I(ai|bj)是引入bj后发生ai我们获得的信息量。不难想象,当bj与ai毫无相关性,即相互独立时,此时p(ai | bj)=p(ai), I(ai|bj)=I(ai)我们通过信宿收到的bj是无法推测信源是否发出了ai,即通过引入bj来推测ai所得到的信息量是为0的,则此时互信息量为0,相当于信道不传递任何信息,可以看做信道断开;而如果bj与ai是一一对应的关系,即我们在信宿接收到bj时我们能完全确定信源就是ai,此时p(ai | bj)=1, I(ai|bj)=0,此时的互信息量最大且等于I(ai)。
在思考信息量的时候我曾有一个误区,总是不经意间把信息量I(ai|bj)当做在在bj发生时我们对ai所确定下来的东西,而实际恰恰相反,信息量是未知的,信息量I(ai|bj)是不确定的信息,可以看做是信宿为bj时信源为ai的惊讶度,正因为有惊讶度的存在,所以才会有从bj得到关于ai的信息量。这样也解释了上述的所有问题,若bj和ai一一对应,我们通过bj可以完全确定ai,则我们收到bj时对ai没有任何的未知,故I(ai|bj)=0。当bj和ai相互独立的时候,就算知道bj也对ai没有任何帮助,所以面对bj和ai都是一样的未知,故I(ai|bj)=I(ai)
所以bj对ai的互信息量是通过bj对ai确定下来的信息,是信源ai通过信道传递到信宿这个过程中流经信道的信息量




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

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

(0)
上一篇 2026年3月16日 下午10:45
下一篇 2026年3月16日 下午10:45


相关推荐

  • Trae类AI插件生成代码时为何常出现逻辑错误或上下文丢失?

    Trae类AI插件生成代码时为何常出现逻辑错误或上下文丢失?

    2026年3月15日
    2
  • Java写俄罗斯方块,了解一下

    Java写俄罗斯方块,了解一下Java 俄罗斯方块目录 Java 俄罗斯方块 一 游戏场景篇 Java 俄罗斯方块 二 游戏操作与逻辑篇简要分析 俄罗斯方块的规则在这里就不细说了 大家都知道 控制方块的移动 到底即停 当方块能填满一行时 便消除那一行的方块 并计分 我们将用 JPanel 来完成整个游戏的制作 首先我们来看看游戏运行时的图片 游戏图片 上图是游戏制作过程中我

    2026年3月19日
    1
  • kali——kali更新源

    kali——kali更新源为什么更新源官方下载并安装的KaliLinux,在进行原件升级的时候会首先默认选择到Kali官方的源地址去下载,位于国内的用户由于网络线路的问题,下载速度会非常的慢,因此修改为国内的源,方便快速!1.更新软件源sudovim/etc/apt/sources.list2.选择比较合适的源(选择一个即可)下面是国内的一些kali源#中科大debhttp://mirrors.us…

    2022年5月27日
    42
  • 使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证

    使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证这是深度学习课程的第一个实验,主要目的就是熟悉Pytorch框架。MLP是多层感知器,我这次实现的是四层感知器,代码和思路参考了网上的很多文章。个人认为,感知器的代码大同小异,尤其是用Pytorch实现,除了层数和参数外,代码都很相似。Pytorch写神经网络的主要步骤主要有以下几步:1.构建网络结构2.加载数据集3.训练神经网络(包括优化器的选择和Loss的计算)4.测试神经网络

    2022年6月22日
    55
  • Handler用法及解析

    Handler用法及解析nbsp nbsp 目录 1 handler 作用 nbsp 1 传递消息 Message2 子线程通知主线程更新 ui2 常用 api3 handler 使用避免内存泄露 nbsp 1 handler 怎么使用会产生内存泄露 nbsp 2 如何避免 handler 的内存泄露 nbsp 3 nbsp 雷区 4 handlerThrea nbsp handlerThrea 是什么 2 HandlerThrea 使用及销毁

    2026年3月18日
    2
  • 7年员工主动辞职HR: 本来想辞退你, 现在28万赔偿不用给你亏大了

    7年员工主动辞职HR: 本来想辞退你, 现在28万赔偿不用给你亏大了

    2022年2月13日
    48

发表回复

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

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