2018-04-22 开胃学习数学系列 - 信息熵

中文是熵, /shāng/。下面是个简单科普:

是一种测量在动力学方面不能做功的能量总数,也就是当总体的熵增加,其做功能力也下降,熵的量度正是能量退化的指标。熵亦被用于计算一个系统中的失序现象,也就是计算该系统混乱的程度。熵是一个描述系统状态的函数,但是经常用熵的参考值和变化量进行分析比较,它在控制论、概率论、数论、天体物理、生命科学等领域都有重要应用,在不同的学科中也有引申出的更为具体的定义,是各领域十分重要的参量。

在信息论中,熵是接收的每条消息中包含的信息的平均量,又被称为信息熵、信源熵、平均自信息量。这里,“消息”代表来自分布或数据流中的事件、样本或特征。

这句话我暂时没有理解:
(熵最好理解为不确定性的量度而不是确定性的量度,因为越随机的信源的熵越大。)

来自信源的另一个特征是样本的概率分布。这里的想法是,比较不可能发生的事情,当它发生了,会提供更多的信息。

由于一些其他的原因,把信息(熵)定义为 概率分布的对数的相反数 是有道理的。事件的概率分布和每个事件的信息量构成了一个随机变量,这个随机变量的均值(即期望)就是这个分布产生的信息量的平均值(即熵)。熵的单位通常为比特,但也用Sh、nat、Hart计量,取决于定义用到对数的底。

采用概率分布的对数作为信息的量度的原因是其可加性。

例如,投掷一次硬币提供了1 Sh的信息,而掷m次就为m位。更一般地,你需要用log2(n)位来表示一个可以取n个值的变量。

在1948年,克劳德·艾尔伍德·香农将热力学的熵,引入到信息论,因此它又被称为香农熵。






Model for Information

观察发生概率为p 的事件,得到的信息为i(p)

  • i(p) ≥ 0 : information never decrease,得到的信息永远增加
  • i(1) = 0 : observing a certain event adds no information 必然发生的时间,是得不到信息的
  • i(p1p2) = i(p1)+i(p2): information from observing independent events are additive 信息可以相加

信息论之父克劳德·香农,总结出了信息熵的三条性质:

  • 单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。
  • 非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。
  • 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。

能满足上面的模型,最简单就是 i(p) = −log(p)







Shannon's Information Entropy

上面是离散的和连续的 变量 x浪的 Entropy 函数

直觉上,信息量等于传输该信息所用的代价,这个也是通信中考虑最多的问题。比如说:赌马比赛里,有4匹马{A, B, C, D} ,获胜概率分别为 1/2, 1/4,1/8, 1/8

如果 A ,那么需要问1次(问题1:是不是A?),概率为1/2;
如果 B ,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为 1/4 ;
如果 C ,那么需要问3次(问题1,问题2,问题3),概率为 1/8 ;
如果 D ,那么同样需要问3次(问题1,问题2,问题3),概率为 1/8
为了确定 赢的马,在这种问法下, 取值的二元问题数量为:


那么我们回到信息熵的定义,会发现通过之前的信息熵公式,神奇地得到了:

这样就很好理解信息熵的概念,

这部分去看 知乎 - 信息熵是什么?

  1. 这句话我也没有太理解,信息熵 Information entropy 是 分布的 disorder
  2. why this is not a good model for knowledge? For Shannon's Information Entropy




下面是抛硬币的entropy情况

%pylab inline
import warnings
warnings.filterwarnings('ignore')

p = np.array([.5, .25, .01])
print(-p*np.log2(p) - (1-p)*np.log2(1-p))
>>>
Populating the interactive namespace from numpy and matplotlib
[ 1.          0.81127812  0.08079314]






Underdetermined problem

An optimization problem with more variables than constraints:
关于变量比 约束多的 优化问题:

  • has infinite number of solutions 有无数的解决方案
  • requires an objective function for a unique solution 需要一个独特解决方案的目标函数
  • common problem in quant finance
    • finding implied distribution from few liquid market prices 从流动性差的市场价格中找到隐含分布
    • curve building

In (early) literature, various ad hoc objective functions are used: 目标函数

  • e.g.: sum of squares of first and second order derivatives 例一阶和二阶导数的平方和

Ignorance is strength

Disorder (or the lack of information) in a distribution is highly desirable:
分布中的无序,信息缺失是非常需要的

  • more uncertainty in outcome, leaves open more possibilities 结果中更多的不确定性,留下更多的可能性
  • free from the contamination of irrelevant and artificial restrictions 不受无关和人为限制的干扰
  • the distribution is smooth and well behaved 分布光滑且表现良好
  • more difficult to arbitrage against 更难以套利

Max entropy is the ideal objective for finding implied distributions:
最大熵是寻找隐含分布的理想目标

  • much better than ad hoc smoothness constraints 比特设光滑度限制好
  • invokes the higher principles of the information theory 引用信息论的更高原则






Maximum Entropy Method

离散分布的信息熵最大值

  • exp(p), log(p) 都是列向量
  • 对p 求导 d/dp (p^T * log(p)) = log(p^T) + 1^T
  • 我们只考虑线性约束,在实践中易于处理和充分
  • 连续分布可以用积分来表示。

在后面的操作中,其实都是:为了把原带约束的极值问题转换为无约束的极值问题,一般引入拉格朗日乘子,建立拉格朗日函数,然后对拉格朗日函数求导,令求导结果等于0,得到极值。

Maximum Entropy Method 问题:

  1. 1^T p = 1 的1 是什么意思
  2. Ap = b b是什么意思
  3. 这个我也不完全懂:对p 求导 d/dp (p^T * log(p)) = log(p^T) + 1^T






Uniform distribution

均匀分布在所有分布中,具有最大熵

使得log(p)在 = -(1+ λ) 1 时有最大值

Uniform distribution问题:

  1. 1 究竟是什么?
  2. 应用拉格朗日乘数,后面λ部分应该是约束条件。究竟是个什么约束条件?






Normal distribution

Normal distribution has the maximum entropy with given mean and variance
正态分布给定均值和方差时有最大熵

  • This explains the ubiquity of the normal distribution 解释了正态分布的普遍性
  • Knowing only mean and variance, we have to assume the distribution is normal 只知道均值和方差,我们必须假设分布是正常的

有三个约束条件
Normal distribution问题:

  1. 三个约束条件都是怎么得出来的?






Exponential distribution

Exponential distribution has the maximum entropy for a positive random variable with a given expectation 指数分布在给定期望的正随机变量时,有最大熵

  • Without addtional information, we have to assume all survival times are exponetially distributed. 没有附加信息,我们必须假设所有survival times 都是指数分布的。


比较一下正太分布,约束条件都有:

  1. p(x)dx - 1
  2. xp(x)dx - μ






写个例子

%pylab inline
import me
from scipy.optimize import minimize
import pandas as pd
lecture = 10

matplotlib.rcParams.update({'font.size': 14})
x = np.arange(0, 10, .05)
a = np.array([x])
u = np.array([1.])
e = np.array([0])
q = np.ones(np.size(x))
dual = me.MaxEntDual(q, a, u, e)

res = minimize(dual.dual, np.zeros(len(u)), jac=dual.grad, method="BFGS")

figure(figsize=[12, 8])
subplot(2, 2, 1)

plot(x, dual.dist(res.x));
title('$x>0, \mathbb{E}[x]=1$');

subplot(2, 2, 3)
x = np.arange(-13., 13., .01)
a = np.array([x, x*x])
u = np.array([0., 1.])
e = np.array([0., 0.])
q = np.ones(np.size(x))/len(q)
dual = me.MaxEntDual(q, a, u, e)

res = minimize(dual.dual, np.zeros(len(u)), jac=dual.grad, method="BFGS")
semilogy(x, dual.dist(res.x))
xlim(-8, 8)
ylim(1e-16, 1e-2)
title('$\mathbb{E}[x] = 0, \mathbb{E}[x^2] = 1$');

subplot(2, 2, 4)
a = np.vstack([a, x*x*x*x])
u = np.append(u, 20)
e = np.append(e, 0)
dual = me.MaxEntDual(q, a, u, e)

res = minimize(dual.dual, np.zeros(len(u)), jac=dual.grad, method="BFGS")
semilogy(x, dual.dist(res.x))
xlim(-8, 8)
title('$\mathbb{E}[x] = 0, \mathbb{E}[x^2] = 1, \mathbb{E}[x^4] = 20$');

subplot(2, 2, 2)
a = np.vstack([a, x*x*x])
u = np.append(u, -4)
e = np.append(e, 0)
dual = me.MaxEntDual(q, a, u, e)

res = minimize(dual.dual, np.zeros(len(u)), jac=dual.grad, method="BFGS")
plot(x, dual.dist(res.x))
xlim(-8, 4)
title('$\mathbb{E}[x] = 0, \mathbb{E}[x^2] = 1, \mathbb{E}[x^3] = -4, \mathbb{E}[x^4] = 20$');

这一块老师用了他自己的 import me
同时我也不太理解他的 MaxEntDual 是什么?先跳过,之后要回来再找找。


























Shannon's Information Entropy问题:

  1. 这句话我也没有太理解,信息熵 Information entropy 是 分布的 disorder
  2. why this is not a good model for knowledge? For Shannon's Information Entropy



Maximum Entropy Method 问题:

  1. 1^T p = 1 的1 是什么意思
  2. Ap = b b是什么意思
  3. 这个我也不完全懂:对p 求导 d/dp (p^T * log(p)) = log(p^T) + 1^T



Uniform distribution问题:

  1. 1 究竟是什么?
  2. 应用拉格朗日乘数,后面λ部分应该是约束条件。究竟是个什么约束条件?



Normal distribution问题:

  1. 三个约束条件都是怎么得出来的?






相关链接

维基 - 熵 (信息论)
知乎 - 信息熵是什么?

CSDN - 最大熵模型中的数学推导

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容