最大熵模型相关知识

Python实现最大熵模型 最大熵原理 首先介绍一下什么是熵 ,设X是一个取有限个值的离散随机变量 其概率分布如下 则随机变量X的熵可以表示为 并且我们知道熵越大,不确定性就越大 熵的具体讲解参考文章决策树模型详解(一)之如何进行特征选择 最大熵原理说的是,在满足已知的约束条件的情况下,所有可能的概率模型中,熵最大的模型就是最好的模型。 在什么情况下熵最大,事实上当一个随机变量符合均匀分布时,熵最大 通俗的解释一下 想象一下如下场景 你的朋友问 明天你要做什么 你回答说 我80%的可能性是在家睡觉 20%的可能性是写作业,那你的朋友 阅读详情

预备知识

熵

离散型变量X的概率分布是P(X)。它的熵 H ( X )    o r    H ( P ) {H(X) \; or \; H(P)} H(X)orH(P)越大,代表越均匀、越混乱、越不确定。熵的公式如下:
H ( P ) = − ∑ x ∈ X P ( x ) log ⁡ P ( x ) {H(P)} = {- \sum_{x \in X}P(x) \log P(x)} H(P)=−x∈X∑​P(x)logP(x)
当X服从均匀分布时,熵最大。

联合熵

熟悉了一个变量X的熵,很容易推广到多个个变量的联合熵,这里给出两个变量X和Y的联合熵表达式:
H ( X , Y ) = − ∑ i = 1 n p ( x i , y i ) l o g p ( x i , y i ) H(X,Y) = -\sum\limits_{i=1}^{n}p(x_i,y_i)logp(x_i,y_i) H(X,Y)=−i=1∑n​p(xi​,yi​)logp(xi​,yi​)

条件熵

有了联合熵,又可以得到条件熵的表达式H(Y|X),条件熵类似于条件概率,它度量了我们的Y在知道X以后剩下的不确定性。表达式如下:
H ( Y ∣ X ) = ∑ j = 1 n p ( x j ) H ( Y ∣ x j ) = − ∑ i = 1 n p ( x i , y i ) l o g p ( y i ∣ x i ) H(Y|X) = \sum\limits_{j=1}^{n}p(x_j)H(Y|x_j) = -\sum\limits_{i=1}^{n}p(x_i,y_i)logp(y_i|x_i) H(Y∣X)=j=1∑n​p(xj​)H(Y∣xj​)=−i=1∑n​p(xi​,yi​)logp(yi​∣xi​)

最大熵的原理

最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。

假如某个事件包含两个部分:确定的部分(约束条件)和不确定的部分。选择模型时需要:

  1. 要满足所有的约束条件,即满足已有的确定的事实

  2. 均分不确定的部分

举个例子:X有5个取值 A , B , C , D , E {A,B,C,D,E} A,B,C,D,E,取值概率分别为 P ( A ) , P ( B ) , P ( C ) , P ( D ) , P ( E ) P(A),P(B),P(C),P(D),P(E) P(A),P(B),P(C),P(D),P(E)。满足以下约束条件:
P ( A ) + P ( B ) + P ( C ) + P ( D ) + P ( E ) = 1 P(A)+ P(B)+ P(C)+ P(D)+ P(E) = 1 P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这个条件的模型有很多。但是如果再加一个约束条件:
P ( A ) + P ( B ) = 3 10 P(A) + P(B) = \frac{3}{10} P(A)+P(B)=103​
则,满足约束条件的情况下,不确定的部分的概率平分(条件熵最大):这样的模型是最好的模型:
P ( A ) = P ( B ) = 3 20 , P ( C ) = P ( D ) = P ( E ) = 7 30 P(A) = P(B) = \frac{3}{20}, \quad P(C)=P(D)=P(E) = \frac{7}{30} P(A)=P(B)=203​,P(C)=P(D)=P(E)=307​
**条件熵最大意味着:在给定了约束条件情况下,剩余事件的概率最均衡,因此模型最好。**于是可以得出,最大熵模型就是要:满足约束条件,并且使得“条件熵”最大。

最大熵模型

给定一个训练集 ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( m ) , y ( m ) ) {(x^{(1)},y^{(1)}), (x^{(2)},y^{(2)}), ... ,(x^{(m)},y^{(m)})} (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),其中x为n维特征向量,y为类别输出。我们的目标就是用最大熵模型选择一个最好的分类类型。

在给定训练集的情况下,我们可以得到总体联合分布 P ( X , Y ) P(X,Y) P(X,Y)的经验分布 P ~ ( X , Y ) \widetilde {P}(X,Y) P (X,Y)和边缘分布 P ( X ) P(X) P(X)的经验分布 P ~ ( X ) \widetilde {P}(X) P (X)。 P ~ ( X , Y ) \widetilde {P}(X,Y) P (X,Y)即为训练集中X,Y同时出现的次数除以样本总数m, P ~ ( X ) \widetilde {P}(X) P (X)即为训练集中X出现的次数除以样本总数m。

用特征函数 f ( x , y ) f(x,y) f(x,y)描述输入x和输出y之间的关系。定义为:
f ( x , y ) = { 1 x 与 y 满 足 某 个 关 系 0 否 则 f(x,y)= \begin{cases} 1& {x与y满足某个关系}\\ 0& {否则} \end{cases} f(x,y)={10​x与y满足某个关系否则​
同一个训练样本可以有多个约束特征函数。

一、约束条件

特征函数 f ( x , y ) f(x,y) f(x,y)关于经验分布 P ~ ( X , Y ) \widetilde {P}(X,Y) P (X,Y)的期望值,表示为:
E P ~ ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) E_{ \widetilde {P}}(f) = \sum\limits_{x,y} \widetilde {P}(x,y)f(x,y) EP ​(f)=x,y∑​P (x,y)f(x,y)
由于特征函数是个二值函数,因此期望 E P ~ ( f ) E_{ \widetilde {P}}(f) EP ​(f)可以理解为:所有满足x与y某个关系 f f f的样本对经验分布 P ~ ( X , Y ) \widetilde {P}(X,Y) P (X,Y)的计数并求和。

特征函数 f ( x , y ) f(x,y) f(x,y)关于条件分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)和经验分布 P ~ ( X ) \widetilde {P}(X) P (X)的期望值,用 E P ( f ) E_{P}(f) EP​(f)表示为:
E P ( f ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) E_{P}(f) = \sum\limits_{x,y} \widetilde {P}(x)P(y|x)f(x,y) EP​(f)=x,y∑​P (x)P(y∣x)f(x,y)
如果抽取到的样本具有足够的代表性,那么我们可以认为:
P ~ ( x , y ) = P ~ ( x ) P ( y ∣ x ) \widetilde {P}(x,y) = \widetilde {P}(x)P(y|x) P (x,y)=P (x)P(y∣x)
进而可以假设上面的两个期望值相等:
E P ~ ( f ) = E P ( f ) E_{ \widetilde {P}}(f) = E_{P}(f) EP ​(f)=EP​(f)
上式就是最大熵模型学习的约束条件,假如我们有N个特征函数 f i ( x , y ) ( i = 1 , 2... , N ) f_i(x,y) (i=1,2...,N) fi​(x,y)(i=1,2...,N)就有N个约束条件。可以理解为我们如果训练集里有m个样本,就有和这m个样本对应的N个约束条件。于是有约束条件如下:
E P ~ ( f i ) = E P ( f i ) ( i = 1 , 2 , . . . N ) E_{ \widetilde {P}}(f_i) = E_{P}(f_i) (i=1,2,...N) EP ​(fi​)=EP​(fi​)(i=1,2,...N)

二、条件熵最大

最大熵模型假设分类模型是一个条件概率分布P(Y|X),X为特征,Y为输出。条件熵衡量了条件概率分布的均匀性,给定某个约束条件的情况下,当不确定事件的概率都相同的时候条件熵最大。于是条件熵是最大熵原理提出的基础,最大的是条件熵。

定义在条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)上的条件熵为:
H ( P ) = − ∑ x , y P ( x , y ) l o g P ( y ∣ x ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) \begin{aligned} H(P) &= -\sum\limits_{x,y}P(x,y)logP(y|x)\\ &= -\sum\limits_{x,y} \widetilde {P}(x)P(y|x)logP(y|x) \end{aligned} H(P)​=−x,y∑​P(x,y)logP(y∣x)=−x,y∑​P (x)P(y∣x)logP(y∣x)​
我们的目标是得到使 H ( P ) H(P) H(P)最大的时候对应的 P ( y ∣ x ) P(y|x) P(y∣x),这里可以对 H ( P ) H(P) H(P)加了个负号求极小值,这样做的目的是为了使 − H ( P ) −H(P) −H(P)为凸函数,方便使用凸优化的方法来求极值。

最大熵模型的推导

最大熵模型的学习可以形式化为约束最优化问题:
min ⁡ P ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) \min \limits_{P\in \mathcal {C}}-H(P)=\sum\limits_{x,y}\widetilde P(x)P(y|x)\log P(y|x) P∈Cmin​−H(P)=x,y∑​P (x)P(y∣x)logP(y∣x)
约束条件为:
s . t . ∑ y P ( y ∣ x ) = 1 E P ( f i ) − E P ~ ( f i ) = 0 , i = 1 , 2 , … , n s.t. \sum \limits_y P(y|x)=1\\ E_P(f_i)-E_{\widetilde P}(f_i)=0, i =1,2,\dots,n s.t.y∑​P(y∣x)=1EP​(fi​)−EP ​(fi​)=0,i=1,2,…,n
上面的问题可以用拉格朗日函数将其转化为无约束优化函数,此时损失函数对应的拉格朗日函数 L ( P , w ) L(P,w) L(P,w)定义为:
L ( P , w ) = − H ( P ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 M w i ( E P ~ ( f i ) − E P ( f i ) ) L(P,w) = -H(P) + w_0(1 - \sum\limits_yP(y|x)) + \sum\limits_{i=1}^{M}w_i(E_{ \widetilde {P}}(f_i) - E_{P}(f_i)) L(P,w)=−H(P)+w0​(1−y∑​P(y∣x))+i=1∑M​wi​(EP ​(fi​)−EP​(fi​))
其中 w i ( i = 1 , 2 , . . . m ) w_i(i=1,2,...m) wi​(i=1,2,...m)为拉格朗日乘子。我们的拉格朗日函数 L ( P , w ) L(P,w) L(P,w),即为凸优化的原始问题: min ⁡ P ∈ C max ⁡ w L ( P , w ) \min \limits_{P \in C} \max \limits_{w} L(P, w) P∈Cmin​wmax​L(P,w),对偶问题为:
max ⁡ w min ⁡ P ∈ C L ( P , w ) \max \limits_{w} \min \limits_{P \in C} L(P, w) wmax​P∈Cmin​L(P,w)

求极小

求解对偶问题的第一步就是求 min ⁡ P ∈ C L ( P , w ) \min \limits_{P \in C} L(P, w) P∈Cmin​L(P,w):
Ψ ( w ) = min ⁡ P ∈ C L ( P , w ) { \Psi (w)} = {\min \limits_{P \in C} L(P, w)} Ψ(w)=P∈Cmin​L(P,w)
上面的 Ψ ( w ) { \Psi (w)} Ψ(w)即为对偶函数。具体而言,要求 L ( P , w ) L(P, w) L(P,w)关于 P ( y ∣ x ) P(y \mid x) P(y∣x)的偏导数:
∂ L ( P , w ) ∂ P ( y ∣ x ) = ∑ x , y P ~ ( x ) ( l o g P ( y ∣ x ) + 1 ) − ∑ y w 0 − ∑ x , y ( P ~ ( x ) ∑ i = 1 M w i f i ( x , y ) ) = ∑ x , y P ~ ( x ) ( l o g P ( y ∣ x ) + 1 − w 0 − ∑ i = 1 M w i f i ( x , y ) ) \begin{aligned} \frac{\partial L(P, w)}{\partial P(y|x)} &= \sum\limits_{x,y} \widetilde {P}(x)(logP(y|x) +1) - \sum\limits_yw_0 - \sum\limits_{x,y}( \widetilde {P}(x)\sum\limits_{i=1}^{M}w_if_i(x,y)) \\ &= \sum\limits_{x,y} \widetilde {P}(x)(logP(y|x) +1- w_0 -\sum\limits_{i=1}^{M}w_if_i(x,y)) \end{aligned} ∂P(y∣x)∂L(P,w)​​=x,y∑​P (x)(logP(y∣x)+1)−y∑​w0​−x,y∑​(P (x)i=1∑M​wi​fi​(x,y))=x,y∑​P (x)(logP(y∣x)+1−w0​−i=1∑M​wi​fi​(x,y))​
令上式等于0,可以得到:
P ( y ∣ x ) = e x p ( ∑ i = 1 M w i f i ( x , y ) + w 0 − 1 ) = e x p ( ∑ i = 1 M w i f i ( x , y ) ) e x p ( 1 − w 0 ) P(y|x) = exp(\sum\limits_{i=1}^{M}w_if_i(x,y) +w_0 -1) = \frac{exp(\sum\limits_{i=1}^{M}w_if_i(x,y))}{exp(1-w_0)} P(y∣x)=exp(i=1∑M​wi​fi​(x,y)+w0​−1)=exp(1−w0​)exp(i=1∑M​wi​fi​(x,y))​
又因为对 P ( y ∣ x ) P(y|x) P(y∣x)而言,有 ∑ y P ( y ∣ x ) = 1 \sum\limits{_y}P(y|x)=1 ∑y​P(y∣x)=1,则可以把上面式子的分母替换为归一化因子 Z w Z_w Zw​,于是得到了最大熵模型:
P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ∑ i = 1 M w i f i ( x , y ) Z w ( x ) = ∑ y exp ⁡ ∑ i = 1 M w i f i ( x , y ) (1) P_w(y|x)=\frac{1}{Z_w(x)}\exp{\sum\limits_{i=1}^{M}w_if_i(x,y)}\\ Z_w(x)=\sum_y\exp{\sum_{i=1}^{M}w_if_i(x,y)} \tag 1 Pw​(y∣x)=Zw​(x)1​expi=1∑M​wi​fi​(x,y)Zw​(x)=y∑​expi=1∑M​wi​fi​(x,y)(1)
式子中 P w ( y ∣ x ) P_w(y|x) Pw​(y∣x)的角标w意味着是关于w的表达式。从而可以把对偶函数 ψ ( w ) \psi(w) ψ(w)里面的所有的 P ( y ∣ x ) P(y|x) P(y∣x)替换成用w表示的形式,这样对偶函数 ψ ( w ) \psi(w) ψ(w)就是全部用w表示了:
Ψ ( w ) = min ⁡ P ∈ C L ( P , w ) = L ( P w , w ) { \Psi (w)} = {\min \limits_{P \in C} L(P, w) = L(P_w, w)} Ψ(w)=P∈Cmin​L(P,w)=L(Pw​,w)
具体的,将 P w ( y ∣ x ) P_w(y|x) Pw​(y∣x)结果带入 ψ ( w ) \psi(w) ψ(w) 得:
ψ ( w ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 M w i ( E P ~ ( f i ) − E P ( f i ) ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) + ∑ i = 1 M w i ( ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 M w i f i ( x , y ) + ∑ x , y P ~ ( x ) P ( y ∣ x ) ( log ⁡ P ( y ∣ x ) − ∑ i = 1 M w i f i ( x , y ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 M w i f i ( x , y ) + ∑ x , y P ~ ( x ) P ( y ∣ x ) ( ∑ i = 1 M w i f i ( x , y ) − log ⁡ Z ( x ) − ∑ i = 1 M w i f i ( x , y ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 M w i f i ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ Z ( x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ ( Z w ( x ) ) ∑ y P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ ( Z w ( x ) ) \begin{aligned}\psi(w)&=\sum\limits_{x,y}\widetilde P(x)P(y|x)\log P(y|x)+w_0(1 - \sum\limits_yP(y|x)) + \sum\limits_{i=1}^{M}w_i(E_{\widetilde{P}}(f_i) - E_{P}(f_i))\\&= \sum\limits_{x,y}\widetilde P(x)P(y|x)\log P(y|x)+ \sum\limits_{i=1}^{M}w_i( \sum\limits_{x,y}\widetilde{P}(x,y)f_i(x,y) - \sum\limits_{x,y}\widetilde{P}(x)P(y|x)f_i(x,y) )\\&= \sum\limits_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^{M}w_if_i(x,y)+\sum\limits_{x,y}\widetilde P(x)P(y|x)\left(\log P(y|x)-\sum\limits_{i=1}^{M}w_if_i(x,y)\right)\\&= \sum\limits_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^{M}w_if_i(x,y)+\sum\limits_{x,y}\widetilde P(x)P(y|x)\left(\sum\limits_{i=1}^{M}w_if_i(x,y)-\log Z(x)-\sum\limits_{i=1}^{M}w_if_i(x,y)\right)\\&=\sum\limits_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^{M}w_if_i(x,y)-\sum\limits_{x,y}\widetilde P(x)P(y|x)\log Z(x)\\&=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))}\sum_{y}P(y|x)\\&=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))}\end{aligned} ψ(w)​=x,y∑​P (x)P(y∣x)logP(y∣x)+w0​(1−y∑​P(y∣x))+i=1∑M​wi​(EP ​(fi​)−EP​(fi​))=x,y∑​P (x)P(y∣x)logP(y∣x)+i=1∑M​wi​(x,y∑​P (x,y)fi​(x,y)−x,y∑​P (x)P(y∣x)fi​(x,y))=x,y∑​P (x,y)i=1∑M​wi​fi​(x,y)+x,y∑​P (x)P(y∣x)(logP(y∣x)−i=1∑M​wi​fi​(x,y))=x,y∑​P (x,y)i=1∑M​wi​fi​(x,y)+x,y∑​P (x)P(y∣x)(i=1∑M​wi​fi​(x,y)−logZ(x)−i=1∑M​wi​fi​(x,y))=x,y∑​P (x,y)i=1∑M​wi​fi​(x,y)−x,y∑​P (x)P(y∣x)logZ(x)=x,y∑​P (x,y)i=1∑n​wi​fi​(x,y)−x∑​P (x)log(Zw​(x))y∑​P(y∣x)=x,y∑​P (x,y)i=1∑n​wi​fi​(x,y)−x∑​P (x)log(Zw​(x))​
最后一步用到 ∑ y P ( y ∣ x ) = 1 \sum \limits_y P(y|x) =1 y∑​P(y∣x)=1 。

从极大似然估计角度理解

实际上,对偶函数 ψ ( w ) \psi(w) ψ(w)的极大化等价于最大熵模型的极大似然估计。

已知经验概率分布 P ~ ( X , Y ) \widetilde P(X,Y) P (X,Y),条件概率P(Y|X)的对数似然函数为:
L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) l o g ( y ∣ x ) L_{\widetilde P}(P_w) = \sum_{x,y} \widetilde P(x,y)log(y|x) LP ​(Pw​)=x,y∑​P (x,y)log(y∣x)
将上面求得的 P w ( y ∣ x ) P_w(y|x) Pw​(y∣x)代入得到:
L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x , y P ~ ( x , y ) log ⁡ ( Z w ( x ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ ( Z w ( x ) ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ ( Z w ( x ) ) ∑ y P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ ( Z w ( x ) ) \begin{aligned} L_{\widetilde {P}}(P_w)&=\sum \limits_{x,y}\widetilde {P}(x,y)\log{P}(y|x)\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x,y}\widetilde{P}(x,y)\log{(Z_w(x))}\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x,y}\widetilde{P}(x)P(y|x)\log{(Z_w(x))}\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))}\sum_{y}P(y|x)\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))} \end{aligned} LP ​(Pw​)​=x,y∑​P (x,y)logP(y∣x)=x,y∑​P (x,y)i=1∑n​wi​fi​(x,y)−x,y∑​P (x,y)log(Zw​(x))=x,y∑​P (x,y)i=1∑n​wi​fi​(x,y)−x,y∑​P (x)P(y∣x)log(Zw​(x))=x,y∑​P (x,y)i=1∑n​wi​fi​(x,y)−x∑​P (x)log(Zw​(x))y∑​P(y∣x)=x,y∑​P (x,y)i=1∑n​wi​fi​(x,y)−x∑​P (x)log(Zw​(x))​
最后一步的推导用到了 ∑ y P ( y ∣ x ) = 1 \sum\limits_yP(y|x)=1 y∑​P(y∣x)=1。

拟牛顿法最大熵模型参数学习

上一节我们完成了求极小的过程,现在我们来完成求极大的过程。

对于最大熵模型而言,
P w ( y ∣ x ) = exp ⁡ ∑ i = 1 M w i f i ( x , y ) ∑ y exp ⁡ ∑ i = 1 M w i f i ( x , y ) P_w(y|x)=\frac{\exp{\sum\limits_{i=1}^{M}w_if_i(x,y)}}{\sum_y\exp{\sum_{i=1}^{M}w_if_i(x,y)}} Pw​(y∣x)=∑y​exp∑i=1M​wi​fi​(x,y)expi=1∑M​wi​fi​(x,y)​
第二步骤要求:
max ⁡ w Ψ ( w ) \max\limits_{w} \Psi (w) wmax​Ψ(w)
目标函数 L P ~ ( P w ) L_{\widetilde {P}}(P_w) LP ​(Pw​)转换成求极小后式子为:
min ⁡ w ∈ R n f ( w ) = min ⁡ w ∈ R n − ψ ( w ) = ∑ x P ~ ( x ) log ⁡ ( ∑ y exp ⁡ ∑ i = 1 M w i f i ( x , y ) ) − ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) \min\limits_{w \in R^n} f(w) =\min\limits_{w \in R^n} -\psi(w) = \sum \limits_{x}\widetilde{P}(x)\log{(\sum_y\exp{\sum_{i=1}^{M}w_if_i(x,y)})} - \sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) w∈Rnmin​f(w)=w∈Rnmin​−ψ(w)=x∑​P (x)log(y∑​expi=1∑M​wi​fi​(x,y))−x,y∑​P (x,y)i=1∑n​wi​fi​(x,y)
梯度为:
g ( w ) = ( ∂ f ( w ) ∂ w 1 , ∂ f ( w ) ∂ w 2 , . . . , ∂ f ( w ) ∂ w n ) g(w) = \left( \frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},...,\frac{\partial f(w)}{\partial w_n}\right) g(w)=(∂w1​∂f(w)​,∂w2​∂f(w)​,...,∂wn​∂f(w)​)
其中:
∂ f ( w ) ∂ w i = ∑ x , y P ~ ( x ) p w ( y ∣ x ) f i ( x , y ) − E P ~ ( f i )    , i = 1 , 2 , . . . , m \frac{\partial f(w)}{\partial w_i} = \sum_{x,y} \widetilde P(x) p_w(y|x)f_i(x, y)-E_{\widetilde P}(f_i)\;, \quad i=1,2,...,m ∂wi​∂f(w)​=x,y∑​P (x)pw​(y∣x)fi​(x,y)−EP ​(fi​),i=1,2,...,m
相应的拟牛顿法BFGS算法如下:

输入:特征函数 f i , f 2 , ⋯   , f n f_i,f_2,\cdots,f_n fi​,f2​,⋯,fn​;经验分布 P ~ ( X , Y ) \widetilde{P}(X,Y) P (X,Y),目标函数 f ( w ) f(w) f(w),梯度 $g(w) $,精度要求 ϵ \epsilon ϵ;

输出:最优参数 w ^ \hat w w^ ; 最优模型 P w ( y ∣ x ) P_w(y|x) Pw​(y∣x) 。

(1)选定初始点 w ( 0 ) w^{(0)} w(0) 取 B 0 \mathbf B_0 B0​ 为正定对称矩阵, k = 0 k=0 k=0。

(2)计算 g k = g ( w ( k ) ) g_k=g(w^{(k)}) gk​=g(w(k)) 。若 g k = 0 g_k=0 gk​=0 则停止计算,否则转(3)。

(3)由 B k p k = − g k B_kp_k=-g_k Bk​pk​=−gk​ 求出 p k p_k pk​

(4)一维搜索:求 λ k \lambda_k λk​ 使得:
f ( w ( k ) + λ k p k ) = min ⁡ λ ≥ 0 f ( w ( k ) + λ p k ) f(w^{(k)}+\lambda_kp_k)= \min\limits_{\lambda \geq 0}f(w^{(k)}+\lambda p_k) f(w(k)+λk​pk​)=λ≥0min​f(w(k)+λpk​)
(5)置 w ( k + 1 ) = w ( k ) + λ k p k w^{(k+1)} = w^{(k)} + \lambda_k p_k w(k+1)=w(k)+λk​pk​

(6)计算 g k + 1 = g ( w ( k + 1 ) ) g_{k+1} = g(w^{(k+1)}) gk+1​=g(w(k+1)) ,若 g k + 1 = 0 g_{k+1} = 0 gk+1​=0 ,则停止计算,否则,按下式更新 B k + 1 B_{k+1} Bk+1​:
B k + 1 = B k + y k y k T y k T δ k − B k δ k δ k T B k δ k T B k δ k \mathbf B_{k+1} = \mathbf B_{k}+\frac{y_ky_k^T}{y_k^T\delta_k}-\frac{\mathbf B_k\delta_k \delta_k^T\mathbf B_k}{\delta_k^T\mathbf B_k\delta_k} Bk+1​=Bk​+ykT​δk​yk​ykT​​−δkT​Bk​δk​Bk​δk​δkT​Bk​​
其中:
y k = g k + 1 − g k , δ k = w ( k + 1 ) − w k y_k = g_{k+1} - g_k, \qquad\delta_k=w^{(k+1)} - w^{k} yk​=gk+1​−gk​,δk​=w(k+1)−wk
(7)置 k = k + 1 k=k+1 k=k+1 , 转(3)

参考文章:

《统计学习方法 第二版》

最大熵模型

详解机器学习中的熵、条件熵、相对熵和交叉熵

最大熵模型原理小结

最大熵(max entropy)模型原理小结 1. 认识各种“熵” 2. 最大熵模型 2.1 最大熵原理     最大熵原理是概率模型学习的一个准则。最大熵原理认为:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型时最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为:在满足约束条件的模型集合中选取熵最大的模型。 2.2 模型的定义     将最大熵原理应用到分类,就得到最大熵模型。学习的目标就是用最大熵原理选择最好的模型。     最大熵模型是指“条件熵”最大的模型。     给定训练样本集(假设含有N个样本)T= 阅读详情

相关推荐

(附)最大熵模型介绍 + (信息论)熵的知识点

联合熵和条件熵 熵:对不确定性的一种度量,不确定性越大熵值越大!(均匀分布是最不确定的分布) 联合熵:两个随机变量X,Y进行或运算! 条件熵:在Y确定的前提下,X发生带来的熵!(类似于条件概率,联合概率减去边缘概率而已) 利用联合熵对条件熵的推导: 相对熵(交叉熵,K-L距离) 相对熵:衡量两个随机变量之间的距离 交叉熵:对相对熵的形式进行变形 互信息(信...

taka_is_beauty的博客 1455

最大熵原则与最大熵模型

最大熵准则熵最大熵准则 首先看熵的定义 熵 熵是信息论中的概念,首先需要定义一个事件X=xX=xX=x的信息量,要求满足以下两个条件: 越不可能发生的事情,信息越大 几个独立事件同时发生的信息量=每一个事件的信息量之和 个满足以上两个条件的且最为简单的函数就是对数函数了,s.t. I(x)=−logP(x)I(x) = -logP(x)I(x)=−logP(x) Proof: P(x)P(x)P(x)越大,I(x)=−logP(x)I(x) = -logP(x)I(x)=−logP(x)越小 I(x1,

muyuu的博客 3676

正交试验实战指南:从PICT工具到混合水平表应用

本文详细介绍了正交试验法在测试设计中的实战应用,从基础概念到PICT工具的高级使用技巧。通过混合水平表设计和工程化实践案例,帮助测试工程师高效解决参数组合爆炸问题,提升测试覆盖率与效率。特别适合兼容性测试和复杂系统验证场景。

weixin_29230865的博客 259

最大熵模型原理小结

  最大熵模型可以用于分类问题,是针对条件概率P(y|x)进行建模的判别式模型。其主要思想可以用一句话概括:在现有已知信息的约束以及没有更多已知信息的情况下,使条件概率P(Y|X)的分布更加均匀,这样获得的模型经验风险更小,鲁棒性更强。   使P(Y|X)分布更加均匀,从信息熵的角度来看,就是使条件熵H(Y|X)更大(最大熵),那么根据条件熵公式: H(P)=−∑x,yP(x,y)log⁡P(y∣x)H(P)=-\sum_{x, y} P(x,y) \log P(y \mid x)H(P)=−x,y∑​P(

qq_43183860的博客 1009

使用海康机器人的SDK进行DWS开发时如何筛选不同类型的相机

使用MVIDCodeReader、MvCodeReaderSDK、MvVolMeasureSDK联合开发时,通常会做一些设备枚举列表,但是不同类型的设备需要枚举在不同的列表中,便于软件使用者配置参数,例如: 如何保证枚举出来的设备是可以选择的对应的设备。我们通常枚举出来的是这样的: 解决办法 在联合开发中,我们发现,只有MvVolMeasureSDK的枚举设备接口EnumStereoCamEx可以正确的只枚举出网络内的体积设备,其余的MVIDCodeReader、MvCodeReaderS

qq_29123967的博客 2731

别再手动填数据了!Vivado里用.coe文件给ROM IP核预装数据的保姆级教程

本文详细介绍了在Vivado中使用.coe文件为ROM IP核预装数据的全流程教程,包括文件格式规范、数据转换技巧和Vivado配置指南。通过自动化数据加载,开发者可以显著提升FPGA开发效率,避免手动输入错误,适用于查找表、波形存储等多种应用场景。

weixin_33377602的博客 337

深入浅出最大熵模型

最大熵模型 目录 1.什么是最大熵模型 2.相关数学知识 3.最大熵模型的定义 4.最大熵模型的学习 5.最优化算法 6.参考资料 详细解释请点击如下链接 最大熵详解 ...

javaisnotgood的博客 237

机器人视觉仿真软件:PCL (Point Cloud Library)_(8).点云分割技术

点云分割技术在机器人视觉处理中起着至关重要的作用,通过不同的分割方法可以有效地将点云数据中的不同物体或区域分离出来。PCL提供了丰富的分割算法,包括基于平面的分割、基于聚类的分割、基于模型的分割和基于条件的分割等。每种方法都有其适用的场景和优缺点,选择合适的方法可以显著提高点云处理的效率和准确性。希望本节的内容能够帮助读者更好地理解和应用点云分割技术。

kkchenjj的博客 819

理解最大熵模型

目录 1.什么是最大熵模型 2.相关数学知识 3.最大熵模型的定义 4.最大熵模型的学习 5.最优化算法 6.参考资料 1.什么是最大熵原理 例子1:假设随机变量X有5个取值{A,B,C,D,E},要估计各个值的概率P(A),P(B),…,P(E). 这些概率值满足条件P(A)+P(B)+P(C)+P(D)+P(E)=1 但是满足这个条件的概率分布有无数个。如果没有其他信息,一个...

一颗小甜心的博客 543

AI Agent Harness实时监控大屏搭建实战

本文将以目前主流的AI Agent管控框架Harness为基础,结合React、ECharts、WebSocket技术,手把手带你搭建一套完整的实时监控大屏,覆盖全局概览、状态分布、工具调用统计、异常告警、实时日志等核心功能,不需要复杂的底层开发,复制代码就能快速跑通。本文我们从需求出发,先梳理了AI Agent的核心监控指标,然后搭建了监控大屏的静态布局,逐个实现了各个图表,对接了Harness的实时数据源,最后加了交互和告警功能,完整走了一遍监控大屏从设计到落地的全流程。

大数据洞察的博客 172

如何为 Claude Code 配置代理与网络环境

那么大概率不是软件问题,而是。因为 Claude Code 是运行在终端里的,不是浏览器。

sg_knight的专栏 3479

最大熵模型

zgwhugr0216的专栏 756

基于Simulink的异步电机参数在线辨识与自适应控制仿真

本文基于Simulink平台,详细介绍了异步电机参数在线辨识与自适应控制系统的仿真实现。针对异步电机运行中参数时变问题,采用模型参考自适应系统(MRAS)实时辨识转子电阻和互感,并结合自适应PI控制策略动态调整控制器参数。通过搭建完整的矢量控制(FOC)仿真模型,验证了系统在稳态辨识、参数摄动和动态响应等工况下的性能:参数辨识误差<1.2%,转速跟踪误差<20rpm,动态响应时间<10ms。文章还提供了详细的Simulink建模步骤、核心代码实现及性能分析,为高级电机控制系统的设计与优化提

amy_mhd的博客 72

最大熵和信息熵讲解较好的文章推荐

最大熵模型:https://www.cnblogs.com/ooon/p/5677098.html 信息熵相关概念:http://www.cnblogs.com/ooon/p/5707889.html

qq_41853758的博客 1196

【云原生技术】SonarQube 生态中PMD插件和P3C插件详细介绍

4. 在项目中如何选择 / 组合 1. 小团队、对《阿里规约》认同度高 → 直接启用 **P3C**,配合 SonarJava 基本够用。 2. 追求全面 Bug/安全检测 + 额外编码规范 → **SonarJava + PMD**(必要时加 P3C 少量规则)。 3. 大型多团队,希望“一本规约”统一风格 → **P3C 为主**,再补充 SonarJava/PMD 的 Bug 与安全规则。 4. 通过 Quality Gate 控制:将 **Blocker/Critical** Bug

weixin_46453070的博客 1364

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

机器学习(十二)——最大熵模型

笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。 我的公众号为:livandata

livan1234的博客 1188

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最大熵学习笔记(零)目录和引言

生活中我们经常听到人们说“不要把鸡蛋放到一个篮子里”,这样可以降低风险。深究一下,这是为什么呢?其实,这里边包含了所谓的最大熵原理(The Maximum Entropy Principle)。本文为一则读书笔记,将对最大熵原理以及由此导出的最大熵模型进行介绍,重点给出其中所涉及数学公式的理解和详细推导。 相关链接 最大熵学习笔记(零)目录和引言 最大熵学习笔记(一)预备知

Just for fun的专栏 355

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

一文彻底搞懂大模型 - 统计语言模型

统计语言模型通过概率分布的形式来描述任意语句(字符串)s属于某种语言集合的可能性。给定一个句子W(由多个单词w1, w2, w3,...组成),统计语言模型的目标是计算该句子在文本中出现的概率P(W),即P(W) = P(w1, w2, w3,..., wn)。这一概率的计算通常基于统计学方法,如最大熵模型、N-gram模型等。

2401_85327249的博客 1288

【第一章 机器学习模型】

(1)监督学习:通过已有的一部分数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出。例如:分类,回归。(2)非监督学习:给定一组未标记的数据,通过算法自动学习数据的内在结构和分布,从而发现数据中的隐藏模式或特征的过程。例如 聚类(Clustering):将数据划分为若干个组或簇,使得同一簇内的数据点相似度高,而不同簇之间的数据点相似度低。常见的聚类算法包括K-Means、层次聚类(Hierarchical Clustering)等。

benbenbai的博客 815

统计学习方法笔记(六)

统计学习方法笔记(六):logistic回归于最大熵模型

kongshaohao的博客 224

《统计学习方法》笔记二

逻辑回归与最大墒逻辑回归logistic分布logistic回归模型 逻辑回归中输出是输出的线性函数 多项logistic回归最大墒模型最大墒模型的最优化函数拉格朗日转化 最大化过程的等价于最大熵模型的极大似然估计最优化算法*最优化算法待理解*SVM距离 当||W|| = 1 时,函数间隔等于几何间隔 间隔最大化约束最优化问题 支持向量对偶问题 线性可分支持向量机软间隔

TheOneAc1的博客 352

中国最大的python社区-python 求最大

广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!最大堆是指最大的元素在堆顶的堆。 python自带的heapq模块实现的是最小堆,没有提供最大堆的实现。 虽然有些文章通过把元素取反再放入堆,出堆时再取反,把问题转换为最小堆问题也能间接实现最大堆,但是这样的实现只适合数值型的元素,不适合自定义类型。 下面给出实现代码:# -*- c...

weixin_37988176的博客 230

分类算法

http://blog.163.com/zhoulili1987619@126/blog/static/353082012013113083417956/ http://blog.163.com/zhoulili1987619@126/blog/static/353082012013113083417956/ http://blog.youkuaiyun.com/v_j

Allen_白的专栏 733

machine learning 资料整理

wiki:http://en.wikipedia.org/wiki/Machine_learning NG 公开课资料:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=MachineLearning&doc=exercises/ex2/ex2.html Andrew Nghttp://...

weixin_30535565的博客 130

ML面试1000题系列(31-40)

本文总结ML面试常见的问题集 转载来源:https://blog.youkuaiyun.com/v_july_v/article/details/78121924 31、下列哪个不属于CRF模型对于HMM和MEMM模型的优势(B) A. 特征灵活 B. 速度快 C. 可容纳较多上下文信息 D. 全局最优首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标...

weixin_30847271的博客 190

机器学习简单概述

机器学习是人工智能的一个分支,侧重于通过数据训练模型,使计算机能够根据数据进行预测、分类、回归等任务。它通过算法从历史数据中学习规律,然后在新数据上进行推断。机器学习包括多种算法,如线性回归、决策树、支持向量机(SVM)、K最近邻(KNN)等。

张张张三丰 641
上一篇: 支持向量机器—SMO算法
下一篇: 逻辑斯蒂回归原理(二分类、多分类)
VariableX
博客等级 码龄7年 142粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值