精华内容
下载资源
问答
  • JointEntropy:返回 'X' 每一列的联合熵(以位为单位) 注意:每个不同的值都被视为一个唯一的符号。 H = 联合熵(X) H = 计算的联合熵(以位为单位) X = 要分析的数据
  • 对于熵H = 熵(S) 此命令将计算 S 的熵,S 应为行矩阵H = 熵([X;...Z]) 此命令将找到 3 个变量的联合熵H = 熵([X,Y],[Z,W]) 这将找到 H(X,Y/Z,W).. 你可以将它用于任何联合熵的组合 请在使用前验证此功能
  • 图像计算过程: 1) 输入一幅图像,并将其转换成灰度图像。 2) 统计出图像中每个灰度阶象素概率。 3) 计算出一幅图像的一维
  • python实现求联合熵

    2021-06-08 15:10:34
    python实现求联合熵 联合熵: H(X,Y)=−∑x,yp(x,y)log⁡p(x,y)=−∑i=1n∑j=1mp(xi,yj)log⁡p(xi,yj) H(X,Y) = - \sum\limits_{{\rm{x}},y} {p(x,y)} \log p(x,y) = - \sum\limits_{i = 1}^n {} \sum\limits_{j = 1...

    python实现求联合熵

    联合熵:

    H ( X , Y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) = − ∑ i = 1 n ∑ j = 1 m p ( x i , y j ) log ⁡ p ( x i , y j ) H(X,Y) = - \sum\limits_{{\rm{x}},y} {p(x,y)} \log p(x,y) = - \sum\limits_{i = 1}^n {} \sum\limits_{j = 1}^m {p({x_i},{y_j})\log p({x_i},{y_j})} H(X,Y)=x,yp(x,y)logp(x,y)=i=1nj=1mp(xi,yj)logp(xi,yj)

    “entropy” python完整代码如下:

    导入包

    # 江南大学物联网18级——MH
    import math
    import numpy as np
    

    检查概率完备性

    def check(probability):
        sum_num = 0
        for x_index in range(0, len(probability), 1):
            for y_index in range(0, len(probability[0]), 1):
                if 1 >= probability[x_index][y_index] >= 0:
                    sum_num += probability[x_index][y_index]
                else:
                    print("第", x_index + 1, "行,第", y_index + 1, "列概率不属于[0,1]")
                    exit(0)
        return (sum_num - 1.0) < 1e-9
    

    计算熵

    def calculate_entropy(probability):
        entropy = 0
        for x_index in range(0, len(probability)):
            for y_index in range(0, len(probability[0])):
                if not probability[x_index][y_index] == 0:
                    entropy += -(probability[x_index][y_index] * math.log2(probability[x_index][y_index]))
        return entropy
    

    输入概率矩阵

    def array_input_str(num_rows, num_columns):
        probability = np.zeros((num_rows, num_columns), dtype=float)
        for x_index in range(0, num_rows):
            str_array = input().split(" ")
            for y_index in range(0, len(str_array)):
                probability[x_index][y_index] = str_array[y_index]
        return probability
    

    main函数

    if __name__ == '__main__':
        rows = int(input("请输入概率分布矩阵行数\n"))
        columns = int(input("请输入概率分布矩阵列数\n"))
        print("请输入概率矩阵")
        array_probability = array_input_str(rows, columns)
        # 概率完备性及是否位于[0,1]区间检验
        if check(array_probability):
            if len(array_probability) == 1:
                print("熵为:", calculate_entropy(array_probability), "bit/sym")
            else:
                print("联合熵为:", calculate_entropy(array_probability), "bit/sym")
        else:
            print("概率不具有完备性,请重新输入!")
    

    运行结果:

    一维合法输入

    请输入概率分布矩阵行数
    1
    请输入概率分布矩阵列数
    4
    请输入概率矩阵
    0.25 0.125 0.125 0.5
    熵为: 1.75 bit/sym
    

    二维合法输入

    请输入概率分布矩阵行数
    3
    请输入概率分布矩阵列数
    2
    请输入概率矩阵
    0.5000 0.2500
    0.1250 0.0000
    0.0625 0.0625
    联合熵为: 1.875 bit/sym
    

    非法输入——概率和不为1

    请输入概率分布矩阵行数
    3
    请输入概率分布矩阵列数
    2
    请输入概率矩阵
    0.5 0.2
    0.1 0.1
    0.4 0.3
    概率不具有完备性,请重新输入!
    

    非法输入——某个概率不属于[0,1]

    请输入概率分布矩阵行数
    3
    请输入概率分布矩阵列数
    3
    请输入概率矩阵
    0.1 0.2 0.3
    0.4 0.4 0.5
    1.5 0.2 0.43 行,第 1 列概率不属于[0,1]
    
    展开全文
  • 该m文件是求两幅图像联合熵的函数代码,简洁明了易懂!
  • 大家或多或少都听过一些熵的概念和定义,但是可能对他们的关系不是很清楚,本文就熵,联合熵,条件熵,互信息的推导展开介绍。 熵 H(X)=−∑xεXP(x)log⁡P(x) H(X)=-\sum_{x\varepsilon X}{P}(x)\log P(x) H(X)=−x...

    前言

    机器学习领域有一个十分重要的概念:熵。大家或多或少都听过一些熵的概念和定义,但是可能对他们的关系不是很清楚,本文就熵,联合熵,条件熵,互信息的推导展开介绍。

    H ( X ) = − ∑ x ε X P ( x ) log ⁡ P ( x ) H(X)=-\sum_{x\varepsilon X}{P}(x)\log P(x) H(X)=xεXP(x)logP(x)

    联合熵

    H ( X , Y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) H(X,Y)=-\sum_{x,y}{p}(x,y)\log p(x,y) H(X,Y)=x,yp(x,y)logp(x,y)

    条件熵

    H ( X ∣ Y ) = H ( X , Y ) − H ( Y ) \mathrm{H(X}\mid \mathrm{Y)}=\mathrm{H(X},\mathrm{Y)}-\mathrm{H(Y)} H(XY)=H(X,Y)H(Y)

    推导:
    H ( X , Y ) − H ( X ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x p ( x ) log ⁡ p ( x ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x ( ∑ y p ( x , y ) ) log ⁡ p ( x ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x , y p ( x , y ) log ⁡ p ( x ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) H(X,Y)-H(X) \\ =-\sum_{x,y}{p}(x,y)\log p(x,y)+\sum_x{p}(x)\log p(x) \\ =-\sum_{x,y}{p}(x,y)\log p(x,y)+\sum_x{\left( \sum_y{p}(x,y) \right)}\log p(x) \\ =-\sum_{x,y}{p}(x,y)\log p(x,y)+\sum_{x,y}{p}(x,y)\log p(x) \\ =-\sum_{x,y}{p}(x,y)\log \frac{p(x,y)}{p(x)} H(X,Y)H(X)=x,yp(x,y)logp(x,y)+xp(x)logp(x)=x,yp(x,y)logp(x,y)+x(yp(x,y))logp(x)=x,yp(x,y)logp(x,y)+x,yp(x,y)logp(x)=x,yp(x,y)logp(x)p(x,y)
    但是上述推导的最后一项显得并不直观,可能有人会疑惑为什么是 p ( x , y ) {p}(x,y) p(x,y),而不是 p ( y ∣ x ) {p}(y\mid x) p(yx)。我们便从另一个角度来推导:

    H ( X , Y ) − H ( X ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) = − ∑ x ∑ y p ( x , y ) log ⁡ p ( y ∣ x ) = − ∑ x ∑ y p ( x ) p ( y ∣ x ) log ⁡ p ( y ∣ x ) = − ∑ x p ( x ) ∑ y p ( y ∣ x ) log ⁡ p ( y ∣ x ) = ∑ x p ( x ) ( − ∑ y p ( y ∣ x ) log ⁡ p ( y ∣ x ) ) = ∑ x p ( x ) H ( Y ∣ X = x ) H(X,Y)-H(X)=-\sum_{x,y}{p}(x,y)\log p(y\mid x) \\ =-\sum_x{\sum_y{p}}(x,y)\log p(y\mid x) \\ =-\sum_x{\sum_y{p}}(x)p(y\mid x)\log p(y\mid x) \\ =-\sum_x{p}(x)\sum_y{p}(y\mid x)\log p(y\mid x) \\ =\sum_x{p}(x)\left( -\sum_y{p}(y\mid x)\log p(y\mid x) \right) \\ =\sum_x{p}(x)H(Y\mid X=x) H(X,Y)H(X)=x,yp(x,y)logp(yx)=xyp(x,y)logp(yx)=xyp(x)p(yx)logp(yx)=xp(x)yp(yx)logp(yx)=xp(x)(yp(yx)logp(yx))=xp(x)H(YX=x)
    简单理解就是给一个x的定值,但并不是整个变量都满足这个表达。

    互信息

    直接求KL散度:
    I ( X , Y ) = D ( ( P ( X , Y ) ∣ ∣ P ( X ) P ( Y ) ) \mathrm{I(X},\mathrm{Y)}=\mathrm{D}\left( (\mathrm{P(X},\mathrm{Y)}||\mathrm{P(X)P(Y)} \right) I(X,Y)=D((P(X,Y)P(X)P(Y))

    I ( X , Y ) = ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) I(X,Y)=\sum_{x,y}{p}(x,y)\log \frac{p\left( x,y \right)}{p(x)p(y)} I(X,Y)=x,yp(x,y)logp(x)p(y)p(x,y)
    如果独立的话,最后一项为1,整个值就为0。只要大于0,说明不是完全独立的。
    H ( Y ) − I ( X , Y ) = − ∑ y p ( y ) log ⁡ p ( y ) − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) = − ∑ y ( ∑ x p ( x , y ) ) log ⁡ p ( y ) − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ) − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) p ( y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) = H ( Y ∣ X ) H(Y)-I(X,Y) \\ =-\sum_y{p}(y)\log p(y)-\sum_{x,y}{p}(x,y)\log \frac{p(x,y)}{p(x)p(y)} \\ =-\sum_y{\left( \sum_x{p}(x,y) \right)}\log p(y)-\sum_{x,y}{p}(x,y)\log \frac{p(x,y)}{p(x)p(y)} \\ =-\sum_{x,y}{p}(x,y)\log p(y)-\sum_{x,y}{p}(x,y)\log \frac{p(x,y)}{p(x)p(y)} \\ =-\sum_{x,y}{p}(x,y)\log \frac{p(x,y)}{p(x)} \\ =-\sum_{x,y}{p}(x,y)\log p(y\mid x) \\ =H(Y\mid X) H(Y)I(X,Y)=yp(y)logp(y)x,yp(x,y)logp(x)p(y)p(x,y)=y(xp(x,y))logp(y)x,yp(x,y)logp(x)p(y)p(x,y)=x,yp(x,y)logp(y)x,yp(x,y)logp(x)p(y)p(x,y)=x,yp(x,y)logp(x)p(x,y)=x,yp(x,y)logp(yx)=H(YX)

    几种熵之间的关系

    推论1:
    H ( X ∣ Y ) = H ( X , Y ) − H ( Y ) \mathrm{H(X}\mid \mathrm{Y)}=\mathrm{H(X},\mathrm{Y)}-\mathrm{H(Y)} H(XY)=H(X,Y)H(Y)
    推论2:
    H ( X ∣ Y ) = H ( X ) − I ( X , Y ) \mathrm{H(X}\mid \mathrm{Y)}=\mathrm{H(X)}-\mathrm{I(X},\mathrm{Y)} H(XY)=H(X)I(X,Y)
    推论3:
    I ( X , Y ) = H ( X ) + H ( Y ) − H ( X , Y ) \mathrm{I(X},\mathrm{Y)}=\mathrm{H(X)}+\mathrm{H(Y)}-\mathrm{H(X},\mathrm{Y)} I(X,Y)=H(X)+H(Y)H(X,Y)
    直接上图:
    在这里插入图片描述

    展开全文
  • 使用深圳市某区的出租车辆的轨迹数据验证了联合熵隐私度量模型及基于该模型的 Mix-zone 创建方案,实验结果表明,该联合熵模型能刻画交通场景中参数与隐私保护程度的正比关系,在联合熵所表示的无序性指标上,所提 ...
  • 信息熵、联合熵、条件熵、互信息

    万次阅读 多人点赞 2018-12-18 03:24:17
    信息熵、联合熵、条件熵、互信息 1. 自信息量 一个随机事件xxx的自信息量1定义为: I(x)=log⁡1p(x)I(x)=\log\frac{1}{p(x)}I(x)=logp(x)1​ 注意,在信息论中,log⁡\loglog函数的底通常设置为2,此时,自信息量的...

    信息熵、联合熵、条件熵、互信息

    《强化学习(微课版)》这本书是我们面向初学者的强化学习入门教材,由清华大学出版社出版,同样是简明扼要的风格。

    戳我,我是《强化学习(微课版)》当当网购买地址

    在这里插入图片描述


    1. 自信息量

    一个随机事件 x x x自信息量1定义为:
    I ( x ) = log ⁡ 1 p ( x ) I(x)=\log\frac{1}{p(x)} I(x)=logp(x)1

    注意,在信息论中, log ⁡ \log log函数的底通常设置为2,此时,自信息量的单位为比特(bit);在机器学习中, log ⁡ \log log函数的底通常设置为自然常数e,此时,自信息量的单位为奈特(nat)。

    需要从以下两方面来理解自信息量:

    • 自信息量表示,如果随机事件 x x x发生的概率 p ( x ) p(x) p(x)越小,一旦其发生,所获得的信息量就越大
    • 自信息量反映了事件发生的不确定性

    举例说明,“中彩票”事件的概率极小,但是一旦中了彩票,“中彩票”事件的自信息量很大,也就是说,“中彩票”会获得极大的信息量(即收益)。另一方面,“中彩票”事件的概率很低,自信息量很大,意味着“中彩票”事件发生的不确定性也很大。

    • 发生概率越高的事情,具有的自信息量越少
    • 发生概率越低的事情,具有的自信息量越多

    2. 信息熵

    一个随机变量 X X X信息熵2定义为:
    \begin{align*}
    H(X) &= \sum_{x_i\in X}p(x_i)I(x_i)\
    &= \sum_{x_i\in X}p(x_i)\log\frac{1}{p(x_i)}.
    \end{align*}

    简记为: H ( X ) = − ∑ x p ( x ) log ⁡ p ( x ) . H(X)=-\sum_{x}p(x)\log p(x). H(X)=xp(x)logp(x).

    信息熵的单位与自信息量一样。一个随机变量 X X X可以有多种取值可能,信息熵是随机变量 X X X所有可能情况的自信息量的期望。信息熵 H ( X ) H(X) H(X)表征了随机变量 X X X所有情况下的平均不确定度。

    • 不确定度越大,信息量越大
    • 不确定度越小,信息量越小

    3. 最大熵定理

    当随机变量 X X X所有取值的概率相等时,即 p ( x i ) p(x_i) p(xi)的概率都相等时,信息熵取最大值,随机变量具有最大的不确定性。例如,情景一:买彩票中奖和不中奖的概率都是 0.5 0.5 0.5时,此时买彩票是否中奖的不确定性最大。情景二:真实情况中,不中奖的概率远远大于中奖的概率,此时的不确定性要小于情景一,因为几乎能确定为不中奖。

    最大熵定理
    当随机变量 X X X,在离散情况下所有取值概率相等(或在连续情况下服从均匀分布),此时熵最大。即 0 ≤ H ( X ) ≤ log ⁡ ∣ X ∣ 0\leq H(X)\leq \log |X| 0H(X)logX,其中 ∣ X ∣ |X| X表示 X X X的取值个数。

    例1. 根据经验判断,买彩票中奖的概率是 80 % 80\% 80%,不中奖的概率是 20 % 20\% 20%,求买彩票的信息熵。

    解: 买彩票的概率空间为:
    ( X P ) = ( x 1 x 2 0.8 0.2 ) \binom{X}{P}=\begin{pmatrix} x_{1} &x_{2} \\ 0.8 & 0.2 \end{pmatrix} (PX)=(x10.8x20.2)

    其中, x 1 x_{1} x1表示买的彩票没奖, x 2 x_{2} x2表示买的彩票有奖。

    • 买彩票后,“没中奖”事件获得的自信息量为:
      I ( x 1 ) = log ⁡ 2 1 0.8 = log ⁡ 2 1.25 = log ⁡ 10 1.25 log ⁡ 10 2 = 0.322  bit I(x_1)=\log_2\frac{1}{0.8}=\log_21.25=\frac{\log_{10}1.25}{\log_{10}2}=0.322~\text{bit} I(x1)=log20.81=log21.25=log102log101.25=0.322 bit
    • 买彩票后,“中奖”事件获得的自信息量为:
      I ( x 2 ) = log ⁡ 2 1 0.2 = log ⁡ 2 5 = log ⁡ 10 5 log ⁡ 10 2 = 2.322  bit I(x_2)=\log_2\frac{1}{0.2}=\log_25=\frac{\log_{10}5}{\log_{10}2}=2.322~\text{bit} I(x2)=log20.21=log25=log102log105=2.322 bit

    I ( x 1 ) < I ( x 2 ) I(x_1)<I(x_2) I(x1)<I(x2)可知,彩票有奖的不确定性要大于彩票没奖。

    买彩票的信息熵为:
    H ( X ) = p ( x 1 ) I ( x 1 ) + p ( x 2 ) I ( x 2 ) = 0.8 ∗ 0.322 + 0.2 ∗ 2.322 = 0.722  bit H(X)=p(x_1)I(x_1)+p(x_2)I(x_2)=0.8*0.322+0.2*2.322=0.722~\text{bit} H(X)=p(x1)I(x1)+p(x2)I(x2)=0.80.322+0.22.322=0.722 bit

    **结果分析:**由最大熵定理可知,信息熵 H ( X ) H(X) H(X)的最大值为 H ( X ) max ⁡ = − log ⁡ 1 / 2 = 1 H(X)_{\max}=-\log 1/2=1 H(X)max=log1/2=1。例 1 1 1 H ( X ) H(X) H(X)小于1比特,意味着不确定性减少,带来的信息量也减少。也就是说,先验经验(买彩票大概率不中奖)减少了不确定性。

    4. 联合熵

    随机变量 X X X Y Y Y联合熵定义为:
    \begin{align*}
    H(X, Y)&=\sum_{x_i\in X}\sum_{y_i\in Y}p(x_i, y_i)I(x_i, y_i)\
    &=\sum_{x_i\in X}\sum_{y_i\in Y}p(x_i, y_i)log\frac{1}{p(x_i, y_i)}
    \end{align*}

    简记为: H ( X , Y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) H(X, Y)=-\sum_{x,y}p(x,y)\log p(x,y) H(X,Y)=x,yp(x,y)logp(x,y)

    **联合熵 H ( X , Y ) H(X, Y) H(X,Y)表示随机变量 X X X Y Y Y一起发生时的信息熵,即 X X X Y Y Y一起发生时的确定度。**通俗地讲,联合熵 H ( X , Y ) H(X, Y) H(X,Y)表示 X X X Y Y Y一起发生时,产生的信息量。

    5. 条件熵 H ( X ∣ Y ) H(X|Y) H(XY)

    随机变量 X X X Y Y Y的**条件熵 H ( Y ∣ X ) H(Y|X) H(YX)**定义为:
    H ( X ∣ Y ) = ∑ y j ∈ Y p ( y j ) H ( X ∣ Y = y j ) H(X|Y)=\sum_{y_j\in Y}p(y_j)H(X|Y=y_j) H(XY)=yjYp(yj)H(XY=yj)

    **条件熵 H ( X ∣ Y ) H(X|Y) H(XY)表示已知随机变量 Y Y Y的情况下,随机变量 X X X的信息熵,即在 Y Y Y发生的前提下, X X X发生后新带来的不确定度。**通俗地讲,条件熵 H ( X ∣ Y ) H(X|Y) H(XY)表示在 Y Y Y发生的前提下, X X X发生新带来的信息量。

    具体使用形式为:
    \begin{align*}
    H(X|Y) &= \sum_{y_j\in Y}p(y_j)H(X|Y=y_j) \
    &= -\sum_{y_j\in Y}p(y_j)\sum_{x_i\in X}p(x_i|y_j)\log p(x_i|y_j)\
    &= -\sum_{y_j\in Y}\sum_{x_i\in X}p(y_j)p(x_i|y_j)\log p(x_i|y_j)\
    &= -\sum_{x_i,y_j}p(x_i,y_j)\log p(x_i|y_j)
    \end{align*}

    简记为: H ( X ∣ Y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x ∣ y ) H(X|Y)=-\sum_{x,y}p(x,y)\log p(x|y) H(XY)=x,yp(x,y)logp(xy)

    条件熵 H ( X ∣ Y ) H(X|Y) H(XY)与联合熵 H ( X , Y ) H(X,Y) H(X,Y)的关系为:
    H ( X ∣ Y ) = H ( X , Y ) − H ( Y ) H(X|Y)=H(X,Y)-H(Y) H(XY)=H(X,Y)H(Y)

    推导过程如下:
    \begin{align*}
    H(X|Y) &= -\sum_{x,y}p(x,y)\log p(x|y)\
    &= -\sum_{x,y}p(x,y)\log \frac{p(x,y)}{p(y)}\
    &= -\sum_{x,y}p(x,y)\log p(x,y)+\sum_{x,y}p(x,y)\log p(y)\
    &= -\sum_{x,y}p(x,y)\log p(x,y)+\sum_{y}(\sum_{x}p(x,y))\log p(y)\
    &= -\sum_{x,y}p(x,y)\log p(x,y)+\sum_{y}p(y)\log p(y)\
    &= H(X,Y)-H(Y)
    \end{align*}

    5. 条件熵 H ( Y ∣ X ) H(Y|X) H(YX)

    随机变量 X X X Y Y Y的**条件熵 H ( Y ∣ X ) H(Y|X) H(YX)**定义为:
    H ( Y ∣ X ) = ∑ x i ∈ X p ( x i ) H ( Y ∣ X = x i ) H(Y|X)=\sum_{x_i\in X}p(x_i)H(Y|X=x_i) H(YX)=xiXp(xi)H(YX=xi)

    **条件熵 H ( Y ∣ X ) H(Y|X) H(YX)表示已知随机变量 X X X的情况下,随机变量 Y Y Y的信息熵,即在 X X X发生的前提下, Y Y Y发生后新带来的不确定度。**通俗地讲,条件熵 H ( Y ∣ X ) H(Y|X) H(YX)表示在 X X X发生的前提下, Y Y Y发生新带来的信息量。

    具体使用形式为:
    \begin{align*}
    H(Y|X) &= \sum_{x_i\in X}p(x_i)H(Y|X=x_i) \
    &= -\sum_{x_i\in X}p(x_i)\sum_{y_j\in Y}p(y_j|x_i)\log p(y_j|x_i)\
    &= -\sum_{x_i\in X}\sum_{y_j\in Y}p(x_i)p(y_j|x_i)\log p(y_j|x_i)\
    &= -\sum_{x_i,y_j}p(x_i,y_j)\log p(y_j|x_i)
    \end{align*}

    简记为: H ( Y ∣ X ) = − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) H(Y|X)=-\sum_{x,y}p(x,y)\log p(y|x) H(YX)=x,yp(x,y)logp(yx)

    条件熵 H ( Y ∣ X ) H(Y|X) H(YX)与联合熵 H ( X , Y ) H(X,Y) H(X,Y)的关系为:
    H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(YX)=H(X,Y)H(X)

    推导过程见 H ( X ∣ Y ) H(X|Y) H(XY)

    7. 互信息

    互信息量定义为后验概率与先验概率比值的对数:
    I ( x i ; y j ) = log ⁡ p ( x i ∣ y j ) p ( x i ) I(x_i;y_j)=\log \frac{p(x_i|y_j)}{p(x_i)} I(xi;yj)=logp(xi)p(xiyj)

    互信息(平均互信息量):
    I ( X ; Y ) = ∑ x i ∈ X ∑ y j ∈ Y p ( x i , y j ) log ⁡ p ( x i ∣ y j ) p ( x i ) I(X;Y)=\sum_{x_i\in X}\sum_{y_j \in Y}p(x_i,y_j)\log \frac{p(x_i|y_j)}{p(x_i)} I(X;Y)=xiXyjYp(xi,yj)logp(xi)p(xiyj)

    简记为:
    I ( X ; Y ) = ∑ x , y p ( x , y ) log ⁡ p ( x ∣ y ) p ( x ) I(X;Y)=\sum_{x,y}p(x,y)\log \frac{p(x|y)}{p(x)} I(X;Y)=x,yp(x,y)logp(x)p(xy)

    互信息具有以下性质:
    \begin{align*}
    I(X;Y) &= H(X)-H(X|Y) \
    &= H(Y)-H(Y|X)\
    &= I(Y;X)
    \end{align*}

    互信息的理解:
    H ( X ) H(X) H(X) X X X的不确定度, H ( X ∣ Y ) H(X|Y) H(XY) Y Y Y已知时是 X X X的不确定度,则 I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) I(X;Y)=H(X)-H(X|Y) I(X;Y)=H(X)H(XY)表示 Y Y Y已知使得 X X X的不确定度减少了 I ( X ; Y ) I(X;Y) I(X;Y) Y Y Y已知时 X X X的不确定度为 H ( X ∣ Y ) = H ( X ) − I ( X ; Y ) H(X|Y)=H(X)-I(X;Y) H(XY)=H(X)I(X;Y)

    8. 小结

    名称公式含义
    H ( X ) H(X) H(X) H ( X ) = − ∑ x ∈ X p ( x ) log ⁡ p ( x ) H(X)=-\sum_{x\in X}p(x)\log p(x) H(X)=xXp(x)logp(x) H ( X ) H(X) H(X)表示 X X X的不确定度
    联合熵 H ( X , Y ) H(X, Y) H(X,Y) H ( X , Y ) = − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) H(X, Y)=-\sum_{x,y}p(x,y)\log p(x,y) H(X,Y)=x,yp(x,y)logp(x,y)联合熵 H ( X , Y ) H(X, Y) H(X,Y)表示 X X X Y Y Y一起发生的不确定度
    条件熵$H(YX)$$H(Y
    条件熵$H(XY)$$H(X
    互信息 I ( X ; Y ) I(X;Y) I(X;Y)\begin{align*}
    I(X;Y) &= H(X)-H(XY) \
    I(Y;X) &= H(Y)-H(YX)\

    I(X;Y) &= I(Y;X)
    \end{align*}| 互信息 I ( X ; Y ) I(X;Y) I(X;Y)表示 Y Y Y发生后, X X X的不确定度减少了 I ( X ; Y ) I(X;Y) I(X;Y)|

    关系图:
    熵.JPG-37.1kB

    在这里插入图片描述


    1. 曹雪虹, 张宗橙. 信息论与编码[J]. 2009. ↩︎

    2. Shannon C E. A mathematical theory of communication[J]. Bell System Technical Journal, 1948, 27(4):379-423. ↩︎

    展开全文
  • 信息(Information Entropy) 所谓也就是信息的不确定性,也就是混乱程度,举个例子便于理解。 我们玩一个大转盘,有32个格子,分别标了1-32的数字,格子大小都一样,那么转动以后每个格子被指针指到的概率也是...
    1. 信息熵(Information Entropy)

    所谓熵也就是信息的不确定性,也就是混乱程度,举个例子便于理解。
    我们玩一个大转盘,有32个格子,分别标了1-32的数字,格子大小都一样,那么转动以后每个格子被指针指到的概率也是一样的。那么在转盘转动之前我们要下注的话就很纠结了,随便下哪一个都一样。这时候整个系统的信息是非常混乱无序的。
    我现在转好了让你猜是哪个数字,你会怎么猜?我会问,是1-16里面的么?如果不是,那么我会猜:是17到28里的么?最坏情况我需要猜五次,才能确定到底是哪个数字。
    如果每次猜对是1,猜错是0,那么表达出来就可能是10101,一共五个数字可以表示最后的结果,我们说这个数字的信息量是5
    5 = log32(这里的log都是以2为底)

    我们变化一下,假如其中数字1的格子占了31份,那么我们要猜是不是1,那么第一个问题肯定会问,是不是1啊,有31/32的几率会猜对,这时候整个系统就没有那么混乱了。
    为了衡量这个混乱程度,信息学里引入了熵的概念, H(xi)表示某个变量的熵
    在这里插入图片描述
    整个系统的熵:
    在这里插入图片描述
    如果每个数字的概率都是1/32的话,整个系统的熵是5, 也是最大值,某个数字概率变大都会使得整个系统的熵减少->变的更有序和好猜。

    为了方便后面引入其他熵的概念,再看一个列子
    我们有10个球,5个白的,5个黑的,那么设随机变量X为取一个球,颜色的概率分布
    P(白) = p(黑) = 0.5
    H(X) = -0.5log(0.5) - 0.5log(0.5) = 1

    1. 联合熵(Joint Entropy)

    两个随机变量X,Y的联合分布,可以形成联合熵(Joint Entropy),用H(X, Y)表示。
    即:H(X, Y) = -Σ p(x, y) log(x, y)

    还是上面的列子,这次我们弄A和B两个盒子,把10个球先放进去。记随机变量X为取到某种颜色球的概率分布,随机变量Y为取到某个盒子的概率分布
    第一次我们把5个黑球放进A盒子,5个白球放进B盒子,联合概率分布如下:
    在这里插入图片描述
    第二次我们把2个黑球3个白球放入A盒,3个黑球2个白球放入B盒,联合概率分布如下:
    在这里插入图片描述
    根据熵和联合熵的公式计算一下:
    第一次的:
    H(X,Y) = -0.5log(0.5) - 0.5log(0.5) - 0log(0) - 0log(0)= 1
    H(X) = -0.5log(0.5) - 0.5log(0.5)= 1
    H(Y) = -0.5log(0.5) - 0.5log(0.5)= 1
    第二次的,不管取的哪个盒子,取到黑球和白球的概率还是一样的0.5:
    H(X,Y) = -0.2log(0.2) - 0.3log(0.3) -0.2log(0.2) - 0.3log(0.3)= 1.97
    H(X) = -0.5log(0.5) - 0.5log(0.5)= 1
    H(Y) = -0.5log(0.5) - 0.5log(0.5)= 1

    于是可以看出来,单论X和Y的不确定性,其实两种分类是一样的,信息熵都是1,但是联合熵就不同了,一个是1,一个是1.97。第一个分类为什么是1呢,因为我们确定了盒子就确定了球的颜色,整个系统是非常有序的,需要表达的信息量和表达盒子的信息量是一样的。但第二种分法,我们抽出一个盒子以后,对球的颜色还是不太知道,不过已经比原来不分盒子要好点,最少我们知道哪种颜色多一个,于是联合熵就没有等于两个随机变量的信息熵之和,而是小了一点。

    这里再说联合熵所表达的物理含义是,对一个两个随机变量组成的随机系统,我们可以先观察一个随机变量获取信息量,观察完后,我们可以在拥有这个信息量的基础上观察第二个随机变量的信息量。如果两个随机变量毫无关系,那么H(X, Y) = H(X) + H(Y)

    1. 条件熵(Conditional entropy)

    条件熵 H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性。条件熵 H(Y|X) 定义为 X 给定条件下 Y 的条件概率分布的熵对 X 的数学期望:
    在这里插入图片描述
    我们再对上面的两种分类计算一下条件熵:
    第一次的:
    H(Y|X) = -0.5log(1) - 0log(0) - 0log(0) - 0.5log(1) = 0
    第二次的:
    H(Y|X) = -0.2
    log(0.4) - 0.3log(0.6) - 0.3log(0.6) - 0.2log(0.4) = 0.97

    惊奇的发现:
    H(Y|X) = H(X,Y) - H(X)

    其实条件熵就是在X确定了的情况下,我们要知道Y还需要多少信息量,第一种分法,盒子一确定我们就知道球的颜色了,于是条件熵是0,第二种分法,确定了盒子我们还是得接着猜,于是条件熵接近于H(Y),第一次分类没啥用。。。这里就回想起了之前看得决策树算法ID3,其实就是做了一次分类之后,再看确定分类还需要多少信息量——条件熵
    https://blog.csdn.net/weixin_43909872/article/details/85206009

    条件熵H(Y|X) = H(X,Y) - H(X)的证明:
    在这里插入图片描述

    1. 交叉熵(Cross Entropy)

    其实交叉熵应该放在相对熵前面讲。
    相对熵用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小,也就是需要的信息量。
    最低的交叉熵就是原分布的信息熵,此时p(x) = q(x)
    在这里插入图片描述
    那么这个交叉熵到底好不好呢,得跟原来的真实分布做比较,于是有了下面的相对熵。
    具体例子也在下面一起说。

    1. 相对熵 (Relative entropy),也称KL散度 (Kullback–Leibler divergence)

    设 p(x)、q(x) 是 离散随机变量 X 中取值的两个概率分布,则 p 对 q 的相对熵是:
    在这里插入图片描述
    相对熵用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。

    回到前面32数字转盘的列子,假设一个数字占了16格,其他的31个数字平分剩下的16格,那么真实分布就是:1/2,1/62,1/62.。。。。
    如果我们要玩这个转盘,肯定要下重注在数字1上,其他的策略都不太聪明
    那么如何来衡量这个“不太聪明”的程度呢?用相对熵!

    先来看下上面的公式,p(x)是真实分布,q(x)为非真实分布,如果我们按照真实分布去猜,那么这个公式结果就是0, 因为p(x) = q(x)
    但是我们现在用的策略是平均下注,也就是认为一个数字占一格,那么q(x1) = 1/32,而p(x1) = 1/2,很明显p(x)/q(x) = 16,其他的因为p(x)占比较少,算出来的交叉熵肯定是大于1的,说明选择的策略不符合真实分布。

    再对相对熵的公式做一些变形:
    在这里插入图片描述
    DKL(p||q)=H(p,q)−H§(当用非真实分布 q(x) 得到的平均码长比真实分布 p(x) 得到的平均码长多出的比特数就是相对熵)
    在这里插入图片描述
    因为H(p)是固定的,所以在机器学习里我们一般用交叉熵做loss函数

    展开全文
  • 信息论——联合熵

    千次阅读 2018-09-19 22:35:20
    联合熵Q:什么是联合熵?Q:联合熵的物理意义是什么? Q:什么是联合熵联合熵就是度量一个联合分布的随机系统的不确定度,下面给出两个随机变量的联合熵的定义: 分布为 p(x,y)p(x,y)p(x,y) 的一对随机变量 (X,Y)...
  • 一、离散信源的信息 (一)信源的数学模型及分类 在信息论中,我们将抛开信源的具体内部构造,而主要研究一个抽象的信源的通用模型。 信源相当于一个随机出现的消息的集合,一是这个信源所有可能出现的消息,...
  • 计算X与Y的熵、联合熵、条件熵

    热门讨论 2009-11-24 14:36:24
    C++代码: 离散二维随机变换熵的计算 (1)利用random函数和归一化方法构造一个二维离散随机变量(X,Y);...(2)分别计算X与Y的熵、联合熵、条件熵:H(X)、 H(Y)、H(X,Y)H(X|Y)、I(X|Y);
  • 这部分内容算是对前面时间序列中近似、样本、模糊的基础部分,毕竟前面部分只是对各种的求法步骤做了归纳,要理解其中的意义来得从最基础的部分进行分析。 Entropy () 是衡量随机变量不确定性的指标...
  • 在信息论中,(entropy)是表示随机变量不确定性的度量,如果一个事件是必然发生的,那么他的不确定度为0,不包含信息。假设XXX是一个取有限个值的离散随机变量,其概率分布为: P(X=xi)=piP(X=x_i)=p_iP(X=...
  • 信息量的定义 某事件发生的概率小,则该事件的信息量大。 定义随机变量XXX的概率分布为P(X)P(X)P\left( X \right),XXX的信息量为:h(X)=−log2P...对随机事件按的信息量求期望,得到随机变量XXX的: H(X)=−∑...
  • 大概是统计学、信息学中最让人纠结的基本概念之一。很多的人对于是什么多多少少能说出一二,但是不能准确的表达出来。我们都知道可以用来描述含有的信息丰富程度的多少,但具体指什么呢? 在讲到之前,在...
  • 信息论条件熵、联合熵及熵的性质课件 信息论条件熵、联合熵及熵的性质课件 信息论条件熵、联合熵及熵的性质课件 信息论条件熵、联合熵及熵的性质课件
  • '''计算联合熵''' ############################################# def JointEntropy( distributionXY ): je = 0 [lenY, lenX] = np.shape( distributionXY ) for i in range( lenY ): for j in range( lenX ): if( ...
  • 目录 1 信息 2 信息 3 条件、互信息 3.1 条件 3.2 互信息 ... 3.3 之间的关系推导与证明 ... 在机器学习中,信息(Entropy)...信息的概念是由香农在1948年提出的,这个概念最初源于热力学,热力学中...
  • 如果XXX是一个离散性随机变量,其概率分布为:P(x)=P(X=x)x∈XP(x)=P(X=x)x∈XP(x) = P(X = x){\rm{ }} x \in X,XXX的H(X)H(X)H(X)为: H(X)=−∑x∈XP(x)log2P(x)H(X)=−∑x∈XP(x)log2P(x)H(X) = - \s...
  • 文章目录1、熵1.1 **自信息和熵**1.2 **联合熵和条件熵**2、互信息3、交叉熵和散度3.1 **交叉熵 **3.2 **KL散度**3.3 **JS散度**4、熵编码 1、熵 在信息论中,熵用来衡量一个随机事件的不确定性。在物理学中,表示一...
  • 好不容易理解了信息熵的概念后,又发现还有其他各种熵,经常把人绕晕,比如决策树模型中要计算信息增益(其实就是互信息),最大熵模型中要计算条件熵,下面我们就来用5分钟理解下互信息,条件熵,联合熵。...
  • 你好,我想请教一下,如何用python计算3D图像的联合熵,这样我才可以计算互信息。我试过几个库,但是很不幸,都不适用计算互信息。如果你知道如何计算3D图像互信息的,也可以告诉我,提前感谢你的帮助。
  • 为了快速有效地检测出聚类的边界点, 提出一种将网格技术与联合熵相结合的边界点检测算法. 该算法中 网格技术用于快速查找数据集中聚类边界所在的网格范围, 联合熵用于在边界落入的网格范围内准确识别聚类的边...
  • P(X,Y) : 随机变量X,Y的联合概率分布 P(Y|X) : 已知随机变量X的情况下,随机变量Y的条件概率分布 P(X=x) => p(x) : 随机变量取某个值的概率 P(X=x,Y=y) => p(x,y) : 联合概率 P(X=x|Y=y) =>p(y|x) : 条件.....
  • 机器学习,信息理论,信息熵的定义、条件熵的定义、联合熵的定义、互信息的定义、条件互信息的定义
  • 熵、联合熵、条件熵

    千次阅读 2019-03-01 13:48:19
    表示不确定性,引入一个故事 小明班有32个人,在你不认识小明的情况下,采用问问题的方式,知道小明班的第一名是谁?小明只能回答是或者不是。 你们班的第一名学号在1-16之间吗? 是。 你们班的第一名学号在1-8...
  • 【深度学习基础】:信息论(一)_自信息/熵/联合熵/条件熵/相对熵/交叉熵/互信息及其相互之间的关系_bqw的博客-CSDN博客详解机器学习中的熵、条件熵、相对熵和交叉熵 - 遍地胡说 - 博客园
  • 熵:如果一个随机变量X的可能取值为X =... 联合熵:两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示。 条件熵:在随机变量X发生的前提下,随机变量Y发生所新带来的熵定义为Y的条件熵,用H(...
  • 1、信息 (information entropy) ...1948年,克劳德·爱尔伍德·香农将热力学中的引入信息论,所以也被称为香农 (Shannon entropy),信息 (information entropy)。本文只讨论信息。首...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,355
精华内容 3,742
关键字:

联合熵