熵导论与最大熵模型

74
熵熵熵熵熵熵熵熵熵 熵熵 10 熵熵熵熵熵熵 熵熵 2014 熵 10 熵 26 熵

description

北京10月机器学习班 邹博 2014年10月26日

Transcript of 熵导论与最大熵模型

Page 1: 熵导论与最大熵模型

熵导论与最大熵模型

北京 10 月机器学习班 邹博 2014 年 10 月 26 日

Page 2: 熵导论与最大熵模型

2/74

本次目标 理解并掌握熵 Entropy 的定义

理解“ Huffman 编码是所有编码中总编码长度最短的”熵含义 理解联合熵 H(X,Y) 、相对熵 D(X||Y) 、条件熵 H(X|Y) 、互信

息 I(X,Y) 的定义和含义,并了解如下公式: H(X|Y) = H(X,Y) - H(Y)=H(X) - I(X,Y) H(Y|X) = H(X,Y) - H(X)=H(Y) – I(X,Y) I(X,Y) = H(X) - H(X|Y) = H(X) + H(Y) - H(X,Y) ≥0

掌握最大熵模型 Maxent Maximum Entropy Models

了解最大熵在自然语言处理 NLP 中的应用 Natural Language Processing

与前序知识的联系:最大熵模型和极大似然估计 MLE 的关系 Maximum Likelihood Estimation

副产品:了解数据分析、函数作图的一般步骤

Page 3: 熵导论与最大熵模型

3/74

温故知新 证明: -lnx ≥1-x , x>0

f(x)=-lnx + x – 1, x>0 , 凸函数 在 x=1 处取极值

Jensen 不等式: exp(p’x)≤p’ exp(x) 暂且记下这两个不等式,后面的内容会涉及到

拉格朗日对偶问题 举例说明最大熵模型的应用

Page 4: 熵导论与最大熵模型

4/74

对偶问题 一般优化问题的 Lagrange 乘子法

Lagrange 函数

对固定的 x , Lagrange 函数 L(x,λ,v) 为关于 λ和 v 的仿射函数

Page 5: 熵导论与最大熵模型

5/74

Lagrange对偶函数 (dual function)

Lagrange 对偶函数

若没有下确界,定义:

根据定义,显然有:对∀ λ>0 ,∀ v ,若原优化问题有最优值 p* ,则

进一步: Lagrange 对偶函数为凹函数。

Page 6: 熵导论与最大熵模型

6/74

Page 7: 熵导论与最大熵模型

7/74

Page 8: 熵导论与最大熵模型

8/74

Page 9: 熵导论与最大熵模型

9/74

从小学数学开始 假设有 5 个硬币: 1,2,3,4,5 ,其中一个是假

的,比其他的硬币轻。有一个天平,天平每次能比较两堆硬币,得出的结果可能是以下三种之一: 左边比右边轻 右边比左边轻 两边同样重

问:至少要使用天平多少次才能确保找到假硬币 ?

Page 10: 熵导论与最大熵模型

10/74

答案 一种可能的称量方法如右图所示 答案: 2 次 追问:为什么 2 次?

1+2 ? 3+4

1 ? 2 3 ? 45

1 4

>

=

><

<

2 3

<>

Page 11: 熵导论与最大熵模型

11/74

分析 令 x 表示假硬币的序号: x X={1,2,3,4,5}∈ ; 令 yi 是第 i 次使用天平所得到的结果:

y Y={1,2,3}∈ ; 1 表示“左轻”, 2 表示“平衡”, 3 表示“右轻”

用天平称 n 次,获得的结果是: y1 y2… yn ; y1 y2… yn 的所有可能组合数目是 3n ; 根据题意,要求通过 y1 y2… yn 确定 x 。即建立影

射 map(y1y2…yn)=x ; 从而: y1y2…yn 的变化数目大于等于 x 的变化数目

即 3n≥5 一般意义下: XY

n

Page 12: 熵导论与最大熵模型

12/74

进一步分析 用 y1 y2… yn 表达 x 。即设计编码: x-> y1

y2… yn X 的“总不确定度”是: Y 的“表达能力”是: 至少要多少个 Y 才能准确表示 X ?

5loglog XXH

3loglog YYH

46.1

3log

5log

)(

YH

XH

Page 13: 熵导论与最大熵模型

13/74

题目的变种 假设有 5 个硬币: 1,2,3,4,5 ,其中一个是假的,比

其他的硬币轻。已知第一个硬币是假硬币的概率是三分之一;第二个硬币是假硬币的概率也是三分之一,其他硬币是假硬币的概率都是九分之一。

有一个天平,天平每次能比较两堆硬币,得出的结果可能是以下三种之一: 左边比右边轻 右边比左边轻 两边同样重

假设使用天平 n 次找到假硬币。问 n 的期望值至少是多少?

Page 14: 熵导论与最大熵模型

14/74

解 1/3 概率的硬币有 2 个, 1/9 概率的硬币有 3

个:

定义: -Σplogap 为熵

3

4

3log

9log

9

13

3log

3log

3

1

3

1

Page 15: 熵导论与最大熵模型

15/74

用熵解释 Huffman编码

51/ 9

11/ 3

41/ 9

21/ 3

31/ 9

Page 16: 熵导论与最大熵模型

16/74

用熵解释 Huffman编码

1 ? 2

3 ? 51/ 3

51/ 9

11/ 3

41/ 9

21/ 3

31/ 9

Page 17: 熵导论与最大熵模型

17/74

Huffman编码 本质:高概率出现的字符用更短的编码

Page 18: 熵导论与最大熵模型

18/74

广泛的结论 如果一个随机变量 x 的可能取值为 X={x1,

x2,…, xk} 。要用 n 位 y: y1y2…yn 表示(每位 y 有 c 种取值) n 的期望值至少为:

一般地,我们令 c 为 2 (二进制表示),于是, X 的信息量为:

c

xxpxxp

c

xxpxxp

k

i iik

i

ii log

1log

log

1log

1

1

k

i ii xxpxxpXH

1

1log

Page 19: 熵导论与最大熵模型

19/74

熵 将 P(x=xi) 写成普适公式,就得到熵的定义:

Page 20: 熵导论与最大熵模型

20/74

研究函数 f(x)=xlnx

f(x)=xlnx , x [0,1]∈ f’(x) = lnx + 1 f’’(x) = 1/x>0( 凸函数 ) 当 f’(x)=0 时, x=1/e ,取极小值; lim f(0)=0 lim f(1)=1

Page 21: 熵导论与最大熵模型

21/74

离散采样

Page 22: 熵导论与最大熵模型

22/74

绘图

Page 23: 熵导论与最大熵模型

23/74

熵和不确定性 熵是随机变量不确定性的度量,不确定性越

大,熵值越大;若随机变量退化成定值,熵为 0

均匀分布是“最不确定”的分布

Page 24: 熵导论与最大熵模型

24/74

联合熵和条件熵 两个随机变量 X , Y 的联合分布,可以形

成联合熵 Joint Entropy ,用 H(X,Y) 表示 H(X,Y) – H(Y)

(X,Y) 发生所包含的熵,减去 Y单独发生包含的熵:在 Y 发生的前提下, X 发生“新”带来的熵

该式子定义为 Y 发生前提下, X 的熵: 条件熵 H(X|Y)

Page 25: 熵导论与最大熵模型

25/74

推导条件熵的定义式

yx

yx

yxyx

y xyx

yyx

yxpyxp

yp

yxpyxp

ypyxpyxpyxp

ypyxpyxpyxp

ypypyxpyxp

YHYXH

,

,

,,

,

,

)|(log),(

)(

),(log),(

)(log),(),(log),(

)(log),(),(log),(

)(log)(),(log),(

)(),(

Page 26: 熵导论与最大熵模型

26/74

自封闭系统的运动总是倒向均匀分布

Page 27: 熵导论与最大熵模型

27/74

相对熵 相对熵,又称互熵,交叉熵,鉴别信息, Kullback

熵, Kullback-Leible散度等 设 p(x) 、 q(x) 是 X 中取值的两个概率分布,则 p

对 q 的相对熵是

两点说明: 在一定程度上,相对熵可以度量两个随机变量的“距离”

一般的, D(p||q) ≠D(q||p)

x

xp yq

xpE

xq

xPxpqpD

)(

)(log

)(

)(log)()||( )(

Page 28: 熵导论与最大熵模型

28/74

互信息 两个随机变量 X , Y 的互信息,定义为

X , Y 的联合分布和独立分布乘积的相对熵。 I(X,Y)=D(P(X,Y) || P(X)P(Y))

yx ypxp

yxpyxpYXI

, )()(

),(log),(),(

Page 29: 熵导论与最大熵模型

29/74

计算 H(X)-I(X,Y)

)|(

)|(log),(

)(

),(log),(

)()(

),(log),()(log),(

)()(

),(log),()(log),(

)()(

),(log),()(log)(

),()(

,

,

,,

,

,

YXH

yxpyxp

yp

yxpyxp

ypxp

yxpyxpxpyxp

ypxp

yxpyxpxpyxp

ypxp

yxpyxpxpxp

YXIXH

yx

yx

yxyx

yxx y

yxx

Page 30: 熵导论与最大熵模型

30/74

整理得到的等式 H(X|Y) = H(X,Y) - H(Y)

条件熵定义 H(X|Y) = H(X) - I(X,Y)

根据互信息定义展开得到 对偶式

H(Y|X)= H(X,Y) - H(X) H(Y|X)= H(Y) - I(X,Y)

I(X,Y)= H(X) + H(Y) - H(X,Y) 多数文献,将该式作为互信息的定义式

试证明: H(X|Y) ≤H(X)

Page 31: 熵导论与最大熵模型

31/74

强大的 Venn图:帮助记忆

Page 32: 熵导论与最大熵模型

32/74

最大熵模型的原则 承认已知事物(知识) 对未知事物不做任何假设,没有任何偏见

Page 33: 熵导论与最大熵模型

33/74

两点分布的最大熵 H(X) = -plnp - (1-p)ln(1-p)

注:经典熵的定义,底数是 2 ,单位是 bit 本例中,为分析方便使用底数 e 若底数是 e ,单位是 nat(奈特 )

如何求最值?

Page 34: 熵导论与最大熵模型

34/74

X满足均匀分布时,熵最大 当 p=0.5 时,取 H(X) 取最大值; 思考:若“多点”分布呢? X 是随机变量,可以取从 1 到 K 的 K 个数。

问: X满足什么分布时, X 的熵最大? p(X)=1/K :均匀分布

XXH log0

Page 35: 熵导论与最大熵模型

35/74

例如 已知:

“ 学习”可能是动词,也可能是名词。 “ 学习”可以被标为主语、谓语、宾语、定语……

令 x1 表示“学习”被标为名词, x2 表示“学习”被标为动词。

令 y1 表示“学习”被标为主语, y2 表示被标为谓语, y3 表示宾语, y4 表示定语。得到下面的表示:

根据无偏原则

1)()( 21 xpxp 1)(4

1

i

iyp

5.0)()( 21 xpxp

25.0)()()()( 4321 ypypypyp

1)()( 21 xpxp 1)(4

1

i

iyp1)()( 21 xpxp

Page 36: 熵导论与最大熵模型

36/74

引入新知识 若已知:“学习”被标为定语的可能性很小,只有 0.05

仍然坚持无偏原则:

05.0)( 4 yp

5.0)()( 21 xpxp

3

95.0)()()( 321 ypypyp

Page 37: 熵导论与最大熵模型

37/74

再次引入新知识 当“学习”被标作动词的时候,它被标作谓

语的概率为 0.95

除此之外,仍然坚持无偏见原则,尽量使概率分布平均。

问:怎么样能尽量无偏见的分布?

95.0)|( 12 xyp

Page 38: 熵导论与最大熵模型

38/74

最大熵模型Maximum Entropy

概率平均分布 等价于 熵最大 问题转化为:计算 X 和 Y 的分布,使 H(Y|

X) 达到最大值,并且满足条件

1)(4

1

i

iyp

1)()( 21 xpxp

95.0)|( 12 xyp

05.0)( 4 yp

Page 39: 熵导论与最大熵模型

39/74

最大熵模型Maxent

95.0)|(

05.0)(

1)()()()(

1)()(

)|(

1log),()|(max

12

4

4321

21

,,,,

4321

21

xyp

yp

ypypypyp

xpxp

xypyxpXYH

yyyyyxxx

Page 40: 熵导论与最大熵模型

40/74

Maxent的一般式 一般模型:

P={p | p 是 X上满足条件的概率分布 }

yx

Pp xypyxpXYH

, )|(

1log),()|(max

Page 41: 熵导论与最大熵模型

41/74

特征 (Feature)和样本 (Sample) 特征: (x,y)

y: 这个特征中需要确定的信息 x: 这个特征中的上下文信息

样本:关于某个特征 (x,y) 的样本,特征所描述的语法现象在标准集合里的分布: (xi,yi) 对 yi 是 y 的一个实例 xi 是 yi 的上下文 (x1,y1) (x2,y2) (x3,y3)……

Page 42: 熵导论与最大熵模型

42/74

特征函数 特征函数:对于一个特征 (x0,y0) ,定义特征函数:

对于一个特征 (x0,y0) ,在样本中的期望值是:

是 (x,y) 在样本中出现的概率

:其他情况

而且:如果0

xy1),( 00 xyyxf

ii yx

yxfyxpfp,

),(),()(

),( yxp

Page 43: 熵导论与最大熵模型

43/74

条件 Constraints

对每一个特征 (x,y) ,模型所建立的条件概率分布要与训练样本表现出来的分布相同。

假设样本的分布是(已知):出现的概率xxp )(

出现的概率xyyxp ),(

在样本中的期望值特征ffp )(

Page 44: 熵导论与最大熵模型

44/74

条件 Constraints

特征 f 在模型中的期望值:

ii

ii

ii

yxiiiii

yxiiiii

yxiiii

yxfxpxyp

yxfxpxyp

yxfyxpfp

,

,

,

,|

,|

,,)(

)()( fpfp

Page 45: 熵导论与最大熵模型

45/74

最大熵模型在 NLP中的完整提法 NLP 模型:

P={p | p 是 y|x 的概率分布并且已知条件 } 对训练样本,对任意给定的特征 fi :

)|(* maxarg XYHpPp

)()( fpfp

Page 46: 熵导论与最大熵模型

46/74

最大熵模型在 NLP中的完整提法

yxPp xyp

xpxypp, |

1log|* maxarg

y

yxi

yxi

i

xypx

yxfyxp

yxfxpxyp

fxypP

1|:

),(,

),(|

:|

,

,

Page 47: 熵导论与最大熵模型

47/74

最大熵模型总结定义条件熵 ( , )

( ) ( , ) log ( )x y z

H y x p y x p y x

*

( )( ) arg max ( )

p y x Pp y x H y x

模型目的

定义特征函数 ( , ) {0,1}if x y

( ) ( )i iE f E f 约束条件

1,2, ,i m

1,2, ,i m

( , )

( ) ( , ) ( , )i ix y z

E f p x y f x y

( , )

( ) ( , ) ( , )i ix y z

E f p x y f x y

( , )

( ) ( ) ( , )ix y z

p x p y x f x y

( , )

1( , )i

x y T

f x yN

N T

( 1 )( ) 1y Y

p y x

( 2 )

Page 48: 熵导论与最大熵模型

48/74

求解Maxent模型 该条件约束优化问题的 Lagrange 函数

分析: 已知若干条件,要求若干变量的值使到目标函数(熵)最大

数学本质: 最优化问题( Optimization Problem )

条件:线性、等式 目标函数:非线性 非线性规划(线性约束) (non-linear programming with linear

constraints)

11

( , ) ( ) ( ) ( ) ( ) 1m

i i i mi y Y

p H y x E f E f p y x

Page 49: 熵导论与最大熵模型

49/74

拉格朗日函数 L

1|

),()()|(),(

)|(

1log)()|(

0

),(

),(

y

i yxii

yx

xyp

yxpxpxypyxf

xypxpxypL

Page 50: 熵导论与最大熵模型

50/74

最优解形式 Exponential:求偏导,等于 0

iii yxfxp

xypxp

xyp

L0),()()1

)|(

1)(log(

)|(

1)(

),( 0

)|(*

xpyxf

iii

exyp

iii yxf

exZ

xyp),(1

)|(*

y

yxfi

ii

exZ

11 ),(

y

yxfi

ii

exZ),(

Page 51: 熵导论与最大熵模型

51/74

λ未知 由 , Maxent 模型是对数线性模型 因为包含指数函数,几乎不可能有解析解

退一步说:有了解析解,仍然需要数值解 能不能找到另一种逼近?构造函数 f(λ) ,求

其最大 / 最小值?

y

yxfi

ii

exZ),(

Page 52: 熵导论与最大熵模型

52/74

当前任务 理论问题

解释通过最大熵模型建立的目标函数和最大似然估计的关系

实践问题 找到有效的求解 λ 的算法

先解决理论问题 发现 Maxent 和 MLE 的关系后,有利于 λ 的求

Page 53: 熵导论与最大熵模型

53/74

最大似然估计Maximum likelihood estimate

找出与样本的分布最接近的概率分布模型。 简单的例子

10 次抛硬币的结果是:正正反正正正反反正正 假设 p 是每次抛硬币结果为正的概率。则: 得到这样的实验结果的概率是:

37 1

111

pp

ppppppppppP

Page 54: 熵导论与最大熵模型

54/74

极大似然估计MLE

目标函数: 最优解是: p=0.7

思考:如何求解?

一般形式:

37

101maxmax ppP

p

x

xp

pxpL

是实验结果的分布模型是估计的概率分布

xp

xp

Page 55: 熵导论与最大熵模型

55/74

取对数 对数极大似然估计:

第二项是常数,可忽略

xx

xp

pxpxpxpL loglog

yxyx

yx

yxp

xpyxpxypyxp

xypxpyxp

yxpyxppL

,,

,

,

log,|log,

|log,

,log,

Page 56: 熵导论与最大熵模型

56/74

MLE与条件熵 此目标式,与条件熵具有相同的形式。

既然函数式相同,极有可能二者殊途同归,目标函数是相同的。 演示推导

yx

pxypyxppL

,

|log,

1|),()()|(),()|(

1log)()|( 0

1 ),(),( y

k

i yxii

yx

xypyxpxpxypyxfxyp

xpxypL

Page 57: 熵导论与最大熵模型

57/74

最优解 Pλ(y|x)带入 L,得到关于 λ的式子

k

i yxii

yx

k

i yxiii

k

ii

yxyx

k

i yxii

k

i yxii

yx

k

i yxii

yx

yxfyxpxZxypxp

yxfyxpyxfxypxpxypxypxp

yxfyxpyxfxypxpxypxypxp

yxpxpxypyxfxypxpxypL

1 ,,

1 ,1,,

1 ,1 ,,

1 ,,

),(),(log)|()(

),(),(),()|()()|(log)|()(

),(),(),()|()()|(log)|()(

),()()|(),()|(log)()|()(

Page 58: 熵导论与最大熵模型

58/74

将最大熵的解带入MLE,计算得到

yx

n

i xii

yx

n

i yxii

yx

n

iii

yxp

xZxpyxfyxp

xZyxpyxfyxp

xZyxfyxp

xypyxppL

, 1

, 1 ,

, 1

,

log,,

log,,,

log,,

|log,

Page 59: 熵导论与最大熵模型

59/74

结论 可以看到,二者的右端具有完全相同的目标函数。 根据 MLE 的正确性,可以断定:最大熵的解(无偏的对待不确定性)同时是最符合样本数据分布的解,进一步证明了最大熵模型的合理性。

做点思考: 熵:不确定度 似然:与知识的吻合程度 最大熵模型:对不确定度的无偏分配 最大似然估计:对知识的无偏理解

知识=不确定度的补集

Page 60: 熵导论与最大熵模型

60/74

λ的求解 因为没有显式的解析式,使用 IIS 计算最大

熵模型的数值解 IIS 是目前最大熵模型的最优化算法,优于梯度

下降算法 IIS , Improved Iterative Scaling ,改进的迭代尺

度算法

Page 61: 熵导论与最大熵模型

61/74

改进的迭代尺度法 IIS

iii yxf

exZ

xyp),(1

)|(*

y

yxfi

ii

exZ),(

yx

n

i xiip

xZxpyxfyxppL, 1

log,,

iii yxf

exZ

xyp),(1

)|(*

y

yxfi

ii

exZ),(

Page 62: 熵导论与最大熵模型

62/74

IIS的思想 假设最大熵模型当前的参数向量是 λ ,希望

找到新的参数向量 λ+δ ,是的模型的对数似然函数值 L增加。重复这一过程,直至找到对数似然函数的最大值。

Page 63: 熵导论与最大熵模型

63/74

L(λ+δ)-L(λ)

yx

n

i x

n

iii

yii

yx

n

i x

n

iiiii

yx

n

i xii

yx

n

i xii

yx

n

i xii

yxfxypxpyxfyxp

yxfxpyxfyxp

xZ

xZxpyxfyxp

xZ

xZxpyxfyxp

xZ

xZxpyxfyxp

LL

, 1 1

, 1 1

, 1

, 1

, 1

,exp|1,,

,exp1,,

1,,

1,,

log,,

注: -lnx ≥1-x , x>0

Page 64: 熵导论与最大熵模型

64/74

使用 Jensen不等式(即凸不等式)

ii yxfyxf ,,#

yx

n

i xi

n

i

i

yii

yx

n

i x

n

i

ii

yii

yx

n

i x

n

iii

yii

yxfyxf

yxfxypxpyxfyxp

yxf

yxfyxfxypxpyxfyxp

yxfxypxpyxfyxpA

, 1

#

1#

, 1 1#

#

, 1 1

,exp,

,|1,,

,

,,exp|1,,

,exp|1,,)|(

Page 65: 熵导论与最大熵模型

65/74

对下界求偏导,令为 0,求出 δ

yx

n

i xi

n

i

i

yii yxf

yxf

yxfxypxpyxfyxpB

, 1

#

1#

,exp,

,|1,,|

yxiiip

yx yxiii

yx xii

yi

i

yxfyxfxypxpfE

yxfyxfxypxpyxfyxp

yxfyxfxypxpyxfyxpB

,

#

, ,

#

,

#

,exp,|

,exp,|,,

,exp,|,,|

ipyx

ii fEyxfyxfxypxp ,

# ,exp,|

Page 66: 熵导论与最大熵模型

66/74

δ的求法:若 f#(x,y)=M为常数

ip

ipi fE

fE

Mlog

1

Page 67: 熵导论与最大熵模型

67/74

δ的求法:若 f#(x,y)不是常数:牛顿法

)(

)()(

)()()1(

ki

kik

ik

ig

g

Page 68: 熵导论与最大熵模型

68/74

最终解 上述求解过程中得到的权值 λ ,回代到下式

中,即得到最大熵模型的最优估计。

iii yxf

exZ

xyp),(1

)|(*

y

yxfi

ii

exZ),(

Page 69: 熵导论与最大熵模型

69/74

再次强调 熵是描述不确定度的 知识是不确定度的补集

不确定度越小,模型越准确。

直观的过程: 什么特征都不限定:熵最大 加一个特征:熵少一点

Condition Reduces Entropy (C.R.E.) 加的特征越多,熵越少

Page 70: 熵导论与最大熵模型

70/74

Page 71: 熵导论与最大熵模型

71/74

总结 MaxEnt 已经是比较成功的一个 NLP 模型,并获得广泛应用

从信息论获得启发( 1948- ):自然语言处理也是信息处理的一种。 词性标注也可以看作一种编码的过程 ? 不妨思考一下:我身边的哪些问题,可以看做编码过程呢?

别忘了对偶问题 换另一个角度思考问题

最大熵模型,涉及了很多前序的数学知识 事实上,机器学习本身就是多种手段的综合应用。

Page 72: 熵导论与最大熵模型

72/74

Last words on MaxEnt…

All Models are wrong. Some are useful.

Page 73: 熵导论与最大熵模型

73/74

参考文献 Elements of Information Theory (Cover & Thomas) Linear and Nonlinear Programming (Nash & Sofer) A maximum entropy approach to natural language

processing (Adam Berger) A Brief MaxEnt Tutorial (Adam Berger) Learning to parse natural language with maximum

entropy models (Adwait Ratnaparkhi) A simple Introduction to Maximum Entropy Models for

Natural Language Processing (Adwait Ratnaparkhi) 统计学习方法,李航著,清华大学出版社, 2012 年

Page 74: 熵导论与最大熵模型

74/74

感谢大家!

恳请大家批评指正!