机器学习基础补习07---最大熵模型

本次目标
(1)理解并掌握熵Entropy的定义
理解“Huffman”编码是所有编码中总编码长度最短的“熵含义
(2)理解联合熵H(X,Y)、相对熵D(X||Y)、条件熵H(X|Y)、互信息I(X,Y)的定义和含义,并了解如下公式:
a. H ( X ∣ Y ) = H ( X , Y ) − H ( Y ) = H ( X ) − I ( X , Y ) H(X|Y)=H(X,Y)-H(Y)=H(X)-I(X,Y) HXY=HXYHY=HXIXY
b. H ( Y ∣ X ) = H ( X , Y ) − H ( X ) = H ( Y ) − I ( X , Y ) H(Y|X)=H(X,Y)-H(X)=H(Y)-I(X,Y) HYX=HXYHX=HYIXY
c. H ( X , Y ) = H ( X ) − H ( X ∣ Y ) = H ( X ) + H ( Y ) − H ( X , Y ) ≥ 0 H(X,Y)=H(X)-H(X|Y)=H(X)+H(Y)-H(X,Y)≥0 HX,Y=HXHXY=HX+HYHXY0
(3)掌握最大熵模型Maxent
(4)了解最大熵模型在自然语言处理NLP中的应用
(5)与前序知识的联系:最大熵模型和极大似然估计MLE的关系
(6)副产品:了解数据分析、函数作图的一般步骤

预备定理: N → ∞ ⇒ l n N ! → N ( l n N − 1 ) N\to∞\Rightarrow lnN!\to N(lnN-1) NlnN!NlnN1
机器学习基础补习07---最大熵模型_第1张图片
再来看一个例子
骰子
(1)普通的一个骰子的某一次投掷,出现点5的概率是多大?
a.等概率:各点的概率都是1/6
b.对于“一无所知”的骰子,假定所有点数等概率出现是“最安全”的做法
(2)对给定的某个骰子,经过N次投掷后发现,点数的均值为5.5,请问:再投一次出现点5的概率有多大?
解:
这是带约束的优化问题
(1)令6个面朝上的概率为 ( p 1 , p 2 , . . . , p 6 ) (p_1,p_2,...,p_6) (p1,p2,...,p6),用向量 p p p表示
(2)目标函数: H ( p ^ ) = − ∑ i = 1 6 p i l n p i H(\hat{p})=-\sum_{i=1}^6p_ilnp_i H(p^)=i=16pilnpi
(3)约束条件: ∑ i = 1 6 p i = 1 , ∑ i = 1 6 i ⋅ p i = 5.5 \sum_{i=1}^6p_i=1,\sum_{i=1}^6i\cdot p_i=5.5 i=16pi=1i=16ipi=5.5
(4)Lagrange函数:
在这里插入图片描述
(5)求解:
机器学习基础补习07---最大熵模型_第2张图片
预测结果:
机器学习基础补习07---最大熵模型_第3张图片
可以发现,抛掷一次骰子,出现6的概率其实是最大的
下面渐渐引出熵的概念
从小学数学开始
假设有5个硬币:1,2,3,4,5,其中一个是假的,且比真币轻。有一架没有砝码的天平,天平每次能比较两堆硬币,得出的结果可能是以下三种之一:
a.左边比右边轻;b.右边比左边轻;c.两边同样重
问:至少要几次称量才能确保找到假币?
答案
一种可能的称量方法如下图所示:
答案:2次
机器学习基础补习07---最大熵模型_第4张图片
但是,为什么称两次就可以呢?
理论下界
a.令 x x x表示假硬币的序号: x ∈ X { 1 , 2 , 3 , 4 , 5 } x∈X\lbrace1,2,3,4,5\rbrace xX{1,2,3,4,5}
b.令 y i y_i yi表示第i次使用天平得到的结果: y ∈ Y { 1 , 2 , 3 } y∈Y\lbrace1,2,3\rbrace yY{1,2,3}
1表示“左轻”,2表示“平衡”,3表示“右轻”
c.用天平称n次,获得的结果是: y 1 y 2 . . . y n y_1y_2...y_n y1y2...yn;
y 1 y 2 . . . y n y_1y_2...y_n y1y2...yn的所有可能组合数目是 3 n 3^n 3n
d.根据题意,要求通过 y 1 y 2 . . . y n y_1y_2...y_n y1y2...yn确定 x 0 x_0 x0。即影射 m a p ( y 1 y 2 . . . y n ) = x map(y_1y_2...y_n)=x map(y1y2...yn)=x
e.从而: y 1 y 2 . . . y n y_1y_2...y_n y1y2...yn的变化数目大于等于x的变化数目
f.则 3 n ≥ 5 3^n≥5 3n5,一般意义上: ∣ Y ∣ n ≥ ∣ X ∣ |Y|^n≥|X| YnX
进一步分析
机器学习基础补习07---最大熵模型_第5张图片
a.用 y 1 y 2 . . . y n y_1y_2...y_n y1y2...yn表达x,即设计编码x: y 1 y 2 . . . y n y_1y_2...y_n y1y2...yn
b.X的“总不确定度”是: H ( X ) = l o g ∣ X ∣ = l o g 5 H(X)=log|X|=log5 H(X)=logX=log5
c.Y的“表达能力”是: H ( Y ) = l o g ∣ Y ∣ = l o g 3 H(Y)=log|Y|=log3 H(Y)=logY=log3
d.至少要多少个Y才能准确表达X?
机器学习基础补习07---最大熵模型_第6张图片
所以至少要称量2次才能找到假币

题目的变种
(1)假设有5个硬币:1,2,3,4,5,其中一个是假的,比其他的硬币轻。已知第1,2个硬币是假币的概率都是三分之一;第3,4,5个是假硬币的概率都是九分之一
(2)有一架没有砝码的天平,假设使用天平n次能够找到假币,问n的期望值至少是多少?
解:直接用上面的结论做推广:
(1)
机器学习基础补习07---最大熵模型_第7张图片
(2)思考:我们一直用的 l o g 2 p log_2p log2p到底是什么东西呢

定义信息量
(1)原则:
a.某事件发生的概率小,则该事件的信息量大
b.如果两个事件X和Y独立,即 p ( x y ) = p ( x ) p ( y ) p(xy)=p(x)p(y) p(xy)=p(x)p(y),假定X和Y的信息量分别为h(X)和h(Y),则二者同时发生的信息量应该为 h ( X Y ) = h ( X ) + h ( Y ) h(XY)=h(X)+h(Y) h(XY)=h(X)+h(Y)
(2)定义事件X发生的信息量: h ( x ) = − l o g 2 x h(x)=-log_2x h(x)=log2x
(3)思考:事件X的信息量的期望如何计算呢?


对随机事件的信息量求期望,得熵的定义:
机器学习基础补习07---最大熵模型_第8张图片
a.注:经典熵的定义,底数是2,单位是bit
b.本例中,为分析方便使用底数e
c.若底数是e,单位是nat(奈特)

研究函数 f ( x ) = x l n x f(x)=xlnx f(x)=xlnx
a. f ( x ) = x l n x , x ∈ [ 0 , 1 ] f(x)=xlnx,x∈[0,1] f(x)=xlnx,x[0,1]
b. f ′ ( x ) = l n x + 1 f^{'}(x)=lnx+1 f(x)=lnx+1
c. f ′ ′ ( x ) = 1 / x > 0 ( 凸 函 数 ) f^{''}(x)=1/x>0(凸函数) f(x)=1/x>0
d.当 f ′ ( x ) = 0 时 , x = 1 / e f^{'}(x)=0时,x=1/e f(x)=0x=1/e,取极小值
e.由于:
在这里插入图片描述
定义 f ( 0 ) = 0 f(0)=0 f(0)=0

对熵的理解: 0 ≤ H ( X ) ≤ l o g ∣ X ∣ 0≤H(X)≤log|X| 0HXlogX
(1)熵是随机变量不确定性的度量,不确定性越大,熵值越大;若随机变量退化成定值,熵为0
a.该不确定性度量的本质即为信息量的期望
b.均匀分布是“最不确定”的分布
(2)熵其实定义了一个函数(概率分布函数)到一个值(信息熵)的映射
a. P ( x ) → H P(x)\to H P(x)H(函数 → \to 数值)
b.泛函:“变分推导”章节

再来看一下几种典型分布的熵
两点分布的熵
两点分布的熵:
在这里插入图片描述
机器学习基础补习07---最大熵模型_第9张图片
当概率等于0.5时,熵最大,表示最不确定的情况

继续思考:散点分布呢?
在这里插入图片描述
机器学习基础补习07---最大熵模型_第10张图片
组合数的关系
(1)把N件物品分成k组,使得每组物品的个数分别为 n 1 , n 2 , . . . , n k , ( n = n 1 + n 2 + . . . + n k ) n_1,n_2,...,n_k,(n=n_1+n_2+...+n_k) n1,n2,...,nkn=n1+n2+...+nk,则不同的分组方法有:
机器学习基础补习07---最大熵模型_第11张图片
记:机器学习基础补习07---最大熵模型_第12张图片
求:
机器学习基础补习07---最大熵模型_第13张图片
公式推导 N → ∞ ⇒ l n N ! → N ( l n N − 1 ) N\to∞\Rightarrow lnN!\to N(lnN-1) NlnN!NlnN1
机器学习基础补习07---最大熵模型_第14张图片
思考:根据函数形式判断概率分布
(1)正态分布的概率密度函数
机器学习基础补习07---最大熵模型_第15张图片

(2)对数正态分布
在这里插入图片描述
该分布的对数是关于随机变量x的二次函数
根据计算过程的可逆性,若某对数分布能够写成随机变量二次形式,则该分布必然是正态分布

举例
(1)Gamma分布的意义
机器学习基础补习07---最大熵模型_第16张图片
(2)对数形式
在这里插入图片描述
若某对数分布能够写成随机变量一次项和对数项的和,则该分布必然是Gamma分布
(3)注:
a.Gamma函数:
机器学习基础补习07---最大熵模型_第17张图片
b.Gamma分布的期望为: E ( X ) = α β E(X)=\frac{α}{\beta} E(X)=βα

最大熵的理解 0 ≤ H ( X ) ≤ l o g ∣ X ∣ 0≤H(X)≤log|X| 0HXlogX
(1)熵是随机变量不确定性的度量,不确定性越大,熵值越大
a.若随机变量退化成定值,熵最小,为0
b.若随机分布为均匀分布熵最大
(2)以上是无条件的最大熵分布,若有条件呢?
最大熵模型
(3)思考:只给定期望方差的前提下,最大熵的分布形式是什么?

思考过程
(1)建立目标函数
机器学习基础补习07---最大熵模型_第18张图片
(2)使用方差公式化简约束条件
机器学习基础补习07---最大熵模型_第19张图片
(3)显然,此问题为带约束的极值问题
Lagrange乘子法

建立Lagrange函数,求驻点
机器学习基础补习07---最大熵模型_第20张图片
P ( x ) P(x) P(x)的对数是关于随机变量x的二次形式,所以该分布p(x)必然是正态分布!

联合熵和条件熵
(1)两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示
(2)H(X,Y)-H(Y)
a.(X,Y)发生所包含的熵,减去Y单独发生包含的熵:在Y发生的前提下,X发生“新”带来的熵
b.该式子定义为Y发生前提下,X的熵:
条件熵H(X|Y)

推导条件熵的定义式
机器学习基础补习07---最大熵模型_第21张图片
根据条件熵的定义式,可以得到:
机器学习基础补习07---最大熵模型_第22张图片
相对熵
(1)相对熵,又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度等
(2)设p(x),q(x)是X中取值的两个概率分布,则p对q的相对熵是:
机器学习基础补习07---最大熵模型_第23张图片
(3)说明:
a.相对熵可以度量两个随机变量的“距离”
b.一般的,D(p||q)≠D(q||p)
c.D(p||q)≥0、D(q||p)≥0;凸函数中的Jensen不等式

思考
(1)假定已知随机变量P,求相对简单的随机变量Q,使得Q尽量接近P
a.方法:使用P和Q的K-L距离
b.难点:K-L距离是非对称的,两个随机变量应该谁在前谁在后呢?
(2)假定使用KL(Q||P),为了让距离最小,则要求在P为0的地方,Q尽量为0,会得到比较“窄”的分布曲线;
(3)假定使用KL(P||Q),为了让距离最小,则要求在P不为0的地方,Q也尽量不为0.会得到比较“宽”的分布曲线

两个KL散度的区别
绿色曲线是真实分布p的等高线;红色曲线是使用近似 p ( z 1 , z 2 ) = p ( z 1 ) p ( z 2 ) p(z_1,z_2)=p(z_1)p(z_2) p(z1,z2)=p(z1)p(z2)得到的等高线
a.左: K L ( p ∣ ∣ q ) : z e r o a v o i d i n g KL(p||q):zero avoiding KL(pq):zeroavoiding
b.右: K L ( q ∣ ∣ p ) : z e r o f o r c i n g KL(q||p):zero forcing KL(qp):zeroforcing
机器学习基础补习07---最大熵模型_第24张图片
互信息
(1)两个随机变量X,Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵
(2) I ( X , Y ) = D ( P ( X , Y ) ∣ ∣ P ( X ) P ( Y ) I(X,Y)=D(P(X,Y)||P(X)P(Y) I(X,Y)=D(P(X,Y)P(X)P(Y)
机器学习基础补习07---最大熵模型_第25张图片
计算条件熵的定义式: H ( X ) − I ( X , Y ) H(X)-I(X,Y) H(X)I(X,Y)
机器学习基础补习07---最大熵模型_第26张图片

整理得到的等式
(1) H ( X ∣ Y ) = H ( X , Y ) − H ( Y ) H(X|Y)=H(X,Y)-H(Y) HXY=HXYHY条件熵定义
(2) H ( X , Y ) = H ( X ) − I ( X , Y ) H(X,Y)=H(X)-I(X,Y) HX,Y=H(X)I(X,Y)根据信息定义展开得到
(3)对偶式
H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) HYX=HXYHX
H ( Y ∣ X ) = H ( Y ) − I ( X , Y ) H(Y|X)=H(Y)-I(X,Y) H(YX)=HYIXY
(4) I ( X , Y ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X,Y)=H(X)+H(Y)-H(X,Y) IX,Y=HX+HYHXY
有些文献将该式作为互信息的定义式
(5)试证明: H ( X ∣ Y ) ≤ H ( X ) , H ( Y ∣ X ) ≤ H ( Y ) H(X|Y)≤H(X),H(Y|X)≤H(Y) HXYHXHYXHY
强大的维恩图帮助记忆
机器学习基础补习07---最大熵模型_第27张图片
最大熵模型的原则
a.承认已知事物(知识)
b.对未知事物不做任何假设,没有任何偏见

引入新知识
(1)若已知:“学习”被标为定语的可能性很小,只有0.05, p ( y 4 ) = 0.05 p(y_4)=0.05 p(y4)=0.05
(2)仍然坚持无偏原则:
p ( x 1 ) = p ( x 2 ) = 0.5 p(x_1)=p(x_2)=0.5 p(x1)=p(x2)=0.5
p ( y 1 ) = p ( y 2 ) = p ( y 3 ) = 0.95 / 3 p(y_1)=p(y_2)=p(y_3)=0.95/3 p(y1)=p(y2)=p(y3)=0.95/3

再次引入新知识
(1)当“学习”被标作动词的时候,它被标作谓语的概率为0.95
p ( y 2 ∣ x 1 ) = 0.95 p(y_2|x_1)=0.95 p(y2x1)=0.95
(2)除此之外,仍然坚持无偏原则, 尽量使概率平均分布
(3)问:怎么样能尽量无偏分布?

最大熵模型Maximum Entropy
(1)概率平均分布等价于熵最大
(2)问题转化为:计算X和Y的分布,使H(Y|X)达到最大值,并且满足条件
机器学习基础补习07---最大熵模型_第28张图片
特征函数
(1)关于某个特征(x,y)的样本
a.y:这个特征中需要确定的信息
b.x:这个特征中的上下文信息
(2)特征函数:对于一个特征 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),定义特征函数:
机器学习基础补习07---最大熵模型_第29张图片
(3)对于一个特征 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),在样本中的期望值是:
机器学习基础补习07---最大熵模型_第30张图片
p ‾ \overline{p} p是(x,y)在样本中出现的概率

条件Constraints
(1)对每一个特征(x,y),模型所建立的条件概率分布要与训练样本表现出来的分布相同
(2)假设样本的分布(已知):
机器学习基础补习07---最大熵模型_第31张图片
特征f在模型中的期望值:
机器学习基础补习07---最大熵模型_第32张图片

最大熵模型总结
(1)定义条件熵:
机器学习基础补习07---最大熵模型_第33张图片
(2)模型目的:
机器学习基础补习07---最大熵模型_第34张图片

(3)定义特征函数:
在这里插入图片描述
(4)约束条件:
机器学习基础补习07---最大熵模型_第35张图片
ok,这篇文章暂且到这里吧

你可能感兴趣的:(机器学习基础补习,机器学习,python,算法,最大熵模型)