通过函数图像介绍信息熵的概念

摘要

本文通过函数图像介绍信息熵的概念.

相关

系列文章索引 :
https://blog.****.net/oBrightLamp/article/details/85067981

正文

信息熵:信息的基本作用就是消除人们对事物的不确定性.

信息熵是不确定程度的度量, 一个事件的不确定程度越大, 则信息熵越大.

香农 (Shannon) 提出信息熵的定义如下 :
entropy=i=1npilog(pi) entropy = -\sum_{i=1}^{n}p_ilog(p_i)
为了方便理解, 需要补充条件 :
pi1  i=1npi=1 p_i \leqslant 1\\ \;\\ \sum_{i=1}^{n}p_i =1
pip_i 是某件事出现的概率, 向量 pp 是概率分布. 比如 :

  1. 抛一个硬币共有 2 种可能的情况, 其概率分布为 p=(12,12)p=(\frac{1}{2}, \frac{1}{2})
  2. 抛一个骰子共有 6 种可能的情况, 其概率分布为 p=(16,16,16,16,16,16)p = ( \frac{1}{6}, \frac{1}{6}, \frac{1}{6}, \frac{1}{6}, \frac{1}{6}, \frac{1}{6} )

1. 事件的可能情况数对信息熵的影响

假设某个事件共有 nn 种可能的情况, 其概率分布式是和骰子类似的均匀分布.

使用 Python 作图查看交叉熵的数值 :

import numpy as np
import matplotlib.pyplot as plt


def distribution(x):
    s = np.sum(x)
    p = x / s
    return p


def entropy(p):
    ei = - p * np.log(p)
    return np.sum(ei)


e_list = []
for i in range(1000):
    p_x = distribution(np.ones(i))
    e = entropy(p_x)
    e_list.append(e)

plt.figure(figsize=(9, 5))
plt.plot(range(len(e_list)), e_list)
plt.xlabel("n")
plt.ylabel("information entropy")
plt.show()

通过函数图像介绍信息熵的概念

可以看到, 某个事件的可能情况 (n) 越多, 信息熵 (information) 数值越大.

2. 事件的概率分布对信息熵的影响

假设某个事件的可能情况数量确定, 但其概率分布不一定满足均匀分布, 会随某些条件而发生改变.

使用 Python 作图查看交叉熵的数值的变化 :

x = np.linspace(1, 10, 100)
x_tick = range(1, 101)

x_dict = {
    "$y = 1$": np.ones(len(x)),
    "$y = \sqrt{x}$": np.sqrt(x),
    "$y = x$": x,
    "$y = x^2$": x ** 2,
    "$y = x^3$": x ** 3,
    "$y = e^x$": np.exp(x),
    "$y = (e^x)^2$": np.exp(x) ** 2,
    "$y = (e^x)^{12}$": np.exp(x) ** 12,
}

plt.figure(figsize=(9, 5))
i = 0
for key, value in x_dict.items():
    p_x = distribution(value)
    e = entropy(p_x)
    plt.plot(x_tick, p_x, label="e = %.2f | " % e + key)

plt.ylim(0, 0.1)
plt.xlabel("x")
plt.ylabel("probability")
plt.legend()
plt.show()

通过函数图像介绍信息熵的概念

从上图可以看到, 该事件共有 100 种情况 (x).

其概率分布 ( probability ) 会随着不同的函数条件 (如 y=xy=\sqrt{x} ) 等的不同而发生变化.

其信息熵 ( e ) 的数字也会发生变化 :

  1. 最大值发生在 y=xy={x} 均匀分布的情况下.

  2. 最小值发生在 y=(ex)12y = (e^x)^{12} 指数分布的情况下.

其规律是, 一个事件的可能性越均匀, 该事件的复杂程度越大, 信息熵越大.