本文主要由Professor Simon DeDeo所讲授的内容为主整理而成。
最大熵原理(Max Ent),也称最大熵原理(The Principle of Maximum Entropy),同时也称最大熵方法(Maximum Entropy Method)。本入门介绍可以分为两部分。第一部分主要介绍最大熵原理,第二部分主要介绍最大熵如何和机器学习相结合运用到一些实际问题中去。
引言
最大熵最早是由E.T. Jaynes提出的,他把它整理发表在物理学刊物上。他本人有着很高的哲学造诣,包括认识论以及对物理学的表现形式有着很深刻的理解。但近年来,我们发现最大熵原理在机器学习和对现实世界建模有着这个原理上独到的说明和理解方式。有些人热衷于预测事物的发生轨迹,比如说:股票的走势,癌细胞的恶化情况等等,他们希望能够建立一个模型来预测这些事情。
一个简单的案例:公交车预测
首先,我们要知道什么样的问题适用于最大熵原理呢?答案是高维度预测。什么是高维度预测,简单来说,就是输入的维度要远远大于输出的维度。例如,手写数字识别就是一项高维度预测。假设我们的处理对象是一张像素为256*256的黑白图片,它的输入维度实际是 2 65536 2^{65536} 265536,这是一个天文数字中的天文数字,至少在 2 × 1 0 19728 2\times 10^{19728} 2×1019728以上,假设我们每秒处理100万张数据,至少需要 6 × 1 0 19713 6\times10^{19713} 6×1019713年,宇宙都重启了不知道多少次了,但是它的输出端只有10种可能。类似于这种我们预测的目标只有少量,而输入维度特别高的情况下,最大熵原理就比较适合。
在生活中我们都在公交车站等车的经历,假设现在收集了一份等公交车的数据 {6,3,4,6,2,3,2,6,4,4 },花括号里的数字表示在公交车站第几分钟来了公交车。
我们可以根据这些数据预测一下在第几分钟我坐公交车的概率:
比如说,第6分钟坐公交车概率是
P
(
x
=
6
)
=
3
10
P(x = 6) = \frac{3}{10}
P(x=6)=103
P
(
x
)
=
{
2
10
x
=
2
2
10
x
=
3
3
10
x
=
4
3
10
x
=
6
P(x)=\left\{\begin{matrix} \frac{2}{10} & x=2\\ \frac{2}{10} & x=3\\ \frac{3}{10} & x=4\\ \frac{3}{10} & x=6\\ \end{matrix}\right.
P(x)=⎩⎪⎪⎨⎪⎪⎧102102103103x=2x=3x=4x=6
然后我们就会发现一个很荒谬的事情,在第1分钟坐上公交车的概率是0,在第7分钟坐上公交车的概率也是0。这显然违背了我们的常识。导致这个的原因是我们选择的模型对数据似乎进行了过拟合。
为了防止这种“过拟合”的事情发生,最大熵原理要求我们在选择我们的模型的时候还需要遵循两条规则:
- 我们预测的模型 P ( x ) P(x) P(x)必须要满足一系列的条件;
- 这个预测的模型在所有的模型种有最大熵。
介绍上面两条规则之前,我们引入期望:
E
(
x
)
=
∫
0
∞
P
(
x
)
x
d
t
E(x) = \int_0^\infty P(x)xdt\
E(x)=∫0∞P(x)xdt
对于,本文所考虑的问题也可以写成
E
(
x
)
=
∑
x
=
0
∞
P
(
x
)
x
E(x) = \sum_{x=0}^{\infty}P(x)x
E(x)=x=0∑∞P(x)x
也可以去计算时间平方的期望
E
(
x
)
=
∫
0
∞
P
(
x
)
x
2
d
t
=
∑
x
=
0
∞
P
(
x
)
x
2
E(x) = \int_0^\infty P(x)x^2dt\ = \sum_{x=0}^{\infty}P(x)x^2
E(x)=∫0∞P(x)x2dt =x=0∑∞P(x)x2
更一般的可以推导任意函数的期望
E
(
f
(
x
)
)
=
∫
0
∞
P
(
x
)
f
(
x
)
d
t
=
∑
x
=
0
∞
P
(
x
)
f
(
x
)
E( f(x) ) = \int_0^\infty P(x)f(x)dt\ = \sum_{x=0}^{\infty}P(x)f(x)
E(f(x))=∫0∞P(x)f(x)dt =x=0∑∞P(x)f(x)
回到我们之前的规则。最大熵原理的第一条规则需要满足的条件之一就是,模型的期望要符合数据所对应的期望值,
E
(
x
)
=
4
E(x) = 4
E(x)=4
在这个条件下,我们可以找到无穷组模型来拟合我们的数据,比如说
P
(
x
)
=
0
unless
x
=
4
P(x) = 0 \ \text{unless } x =4
P(x)=0 unless x=4
或者
P
(
x
)
=
{
1
2
x
=
3
1
2
x
=
5
0
o
t
h
e
r
w
i
s
e
P(x)=\left\{\begin{matrix} \frac{1}{2} & x=3\\ \frac{1}{2} & x=5\\ 0&otherwise \end{matrix}\right.
P(x)=⎩⎨⎧21210x=3x=5otherwise
最大熵的条件二就是选择的模型要最大化
−
∑
x
=
0
∞
P
(
x
)
l
o
g
P
(
x
)
-\sum_{x=0}^{\infty}P(x)logP(x)
−x=0∑∞P(x)logP(x)
从上面两个条件来看,我们目标是选一个尽可能混乱的模型,这个模型仅仅受到条件一的制约。