定义 逻辑斯谛分布
设 X X X是连续随机变量, X X X服从逻辑斯谛分布是指 X X X有以下分布函数和密度函数:
F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) / γ (1) F(x)=P(X\leq x)=\frac{1}{1+e^{-(x-μ)/γ}} \tag1 F(x)=P(X≤x)=1+e−(x−μ)/γ1(1)
f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 (2) f(x)=F'(x)=\frac{e^{-(x-μ)/γ}}{γ(1+e^{-(x-μ)/γ})^2} \tag2 f(x)=F′(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ(2)
式子中的 μ μ μ为位置参数, γ > 0 γ>0 γ>0为形状参数。
逻辑斯谛分布的密度函数 f ( x ) f(x) f(x)和分布函数 F ( x ) F(x) F(x)的图形如下所示。分布函数属于逻辑斯谛函数,其图形是一条 S S S形曲线,该曲线以点 ( μ , 1 2 ) (μ,\frac 1 2) (μ,21)为中心对称,即满足
F ( − x + μ ) − 1 2 = − F ( x − μ ) + 1 2 F(-x+μ)-\frac12=-F(x-μ)+\frac12 F(−x+μ)−21=−F(x−μ)+21
曲线在中心附近增长速度较快,在两端增长速度较慢。形状参数 γ γ γ的值越小,曲线在中心附近增长的越快。
二项逻辑斯谛回归模型是一种分类模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)表示,形式为参数化的逻辑斯谛分布。这里,随机变量 X X X取值为实数,随机变量 Y Y Y取值为1或0,通过监督学习的方法来估计模型参数。
定义 逻辑斯谛回归模型
二项逻辑斯谛回归模型是如下的条件概率分布:
P ( Y = 1 ∣ x ) = e x p ( w ⋅ x + b ) 1 + e x p ( w ⋅ x + b ) (3) P(Y=1|x)=\frac{exp(w·x+b)}{1+exp(w·x+b)} \tag 3 P(Y=1∣x)=1+exp(w⋅x+b)exp(w⋅x+b)(3)
P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x + b ) (4) P(Y=0|x)=\frac{1}{1+exp(w·x+b)} \tag 4 P(Y=0∣x)=1+exp(w⋅x+b)1(4)
这里, x ∈ R n x\in R^n x∈Rn是输入, Y ∈ { 0 , 1 } Y\in \{0, 1\} Y∈{0,1}是输出, w ∈ R n w\in R^n w∈Rn 和 b ∈ R b\in R b∈R 是参数, w w w 称为权值向量, b b b 称为偏置, w ⋅ x w·x w⋅x 为 w w w 和 x x x的内积。
对于给定的输入实例 x x x,按照(3)(4)可以求得 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1∣x)和 P ( Y = 0 ∣ x ) P(Y=0|x) P(Y=0∣x)。逻辑斯谛回归比较两个条件概率值的大小,将实例 x x x分到概率值较大的那一类。
有时为了方便,将权值向量和输入向量加以扩充,仍记作 w , x w, x w,x,即 w = ( w ( 1 ) , w ( 2 ) , . . . , w ( n ) , b ) T , x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 ) T w=(w^{(1)}, w^{(2)}, ..., w^{(n)}, b)^T, x=(x^{(1)}, x^{(2)}, ..., x^{(n)}, 1)^T w=(w(1),w(2),...,w(n),b)T,x=(x(1),x(2),...,x(n),1)T。这时的逻辑斯谛回归模型如下:
P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) (5) P(Y=1|x)=\frac{exp(w·x)}{1+exp(w·x)} \tag 5 P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)(5)
P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x ) (6) P(Y=0|x)=\frac{1}{1+exp(w·x)} \tag 6 P(Y=0∣x)=1+exp(w⋅x)1(6)
一个事件的几率是指该事件发生的概率于该事件不发生的概率的比值。如果事件发生的概率是 p p p,那么该事件的几率是 p 1 − p \frac p{1-p} 1−pp ,该事件的对数几率(log odds)或logit函数是:
l o g i t ( p ) = l o g p 1 − p logit(p)=log\frac p{1-p} logit(p)=log1−pp
对于逻辑斯谛回归而言,由(5)(6)得:
l o g P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x log\frac {P(Y=1|x)}{1-P(Y=1|x)}=w·x log1−P(Y=1∣x)P(Y=1∣x)=w⋅x
也就是说,在逻辑斯谛回归模型中,输出 Y = 1 Y=1 Y=1的对数几率是输入 x x x的线性函数。或者说,输出 Y = 1 Y=1 Y=1的对数几率是由输入 x x x的线性函数表示的模型,即逻辑斯谛回归模型。
考虑对输入 x x x进行分类的线性函数 w ⋅ x w·x w⋅x,其值域为实数域,这里 x ∈ R n + 1 , w ∈ R n + 1 x\in R^{n+1}, w\in R^{n+1} x∈Rn+1,w∈Rn+1,通过逻辑斯谛回归模型(5)可以将线性函数 w ⋅ x w·x w⋅x转换为概率:
P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) P(Y=1|x)=\frac{exp(w·x)}{1+exp(w·x)} P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)
这时,线性函数 w ⋅ x w·x w⋅x的值越接近正无穷,概率值越接近1;线性函数的值越接近负无穷,概率值就越接近0,即逻辑斯谛回归模型。
逻辑斯谛回归模型学习时,对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中, x i ∈ R n , y i ∈ { 0 , 1 } x_i\in R^n,y_i\in \{0, 1\} xi∈Rn,yi∈{0,1},可以用极大似然估计法估计模型参数,从而得到逻辑斯谛回归模型。
设
P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x)=π(x), P(Y=0|x)=1-π(x) P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)
似然函数为
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^N\left[π(x_i) \right]^{y_i}\left[1-π(x_i) \right]^{1-y_i} i=1∏N[π(xi)]yi[1−π(xi)]1−yi
对数似然函数为
L ( w ) = ∑ i = 1 N [ y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) 1 − π ( x i ) + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x ) − l o g ( 1 + e x p ( w ⋅ x ) ) ] \;\;\;\;L(w)=\sum_{i=1}^N \left[y_ilogπ(x_i) +(1-y_i)log(1-π(x_i))\right] \\ \;\;\;\;\;\;\;\;\;\;=\sum_{i=1}^N \left[y_ilog\frac{π(x_i)}{1-π(x_i)} +log(1-π(x_i))\right] \\ \;\;\;=\sum_{i=1}^N \left[y_i(w·x)-log(1+exp(w·x))\right] L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]=i=1∑N[yi(w⋅x)−log(1+exp(w⋅x))]
对 L ( w ) L(w) L(w)求极大值,得到 w w w的估计值。
这样,问题就变成了以对数似然函数为目标函数的最优化问题。逻辑斯谛回归学习中常用的方法是梯度下降法和拟牛顿法。
假设 w w w的极大似然估计值是 w ^ \hat{w} w^,那么学到的逻辑斯谛回归模型为:
P ( Y = 1 ∣ x ) = e x p ( w ^ ⋅ x ) 1 + e x p ( w ^ ⋅ x ) P(Y=1|x)=\frac{exp(\hat{w}·x)}{1+exp(\hat{w}·x)} P(Y=1∣x)=1+exp(w^⋅x)exp(w^⋅x)
P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ^ ⋅ x ) P(Y=0|x)=\frac{1}{1+exp(\hat{w}·x)} P(Y=0∣x)=1+exp(w^⋅x)1
可以将二项分类模型推广到多项逻辑斯谛回归模型,用于多类分类。假设离散型随机变量 Y Y Y的取值集合是 { 1 , 2 , . . . , K } \{1, 2, ..., K\} {1,2,...,K},多项逻辑斯谛回归模型是:
P ( Y = k ∣ x ) = e x p ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 e x p ( w k ⋅ x ) , k = 1 , 2 , . . . , K − 1 (7) P(Y=k|x)=\frac{exp({w_k}·x)}{1+\sum\limits_{k=1}^{K-1}exp({w_k}·x)}, k=1, 2, ..., K-1 \tag 7 P(Y=k∣x)=1+k=1∑K−1exp(wk⋅x)exp(wk⋅x),k=1,2,...,K−1(7)
P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 e x p ( w k ⋅ x ) (8) P(Y=K|x)=\frac{1}{1+\sum\limits_{k=1}^{K-1}exp({w_k}·x)} \tag 8 P(Y=K∣x)=1+k=1∑K−1exp(wk⋅x)1(8)
这里 x ∈ R n + 1 , w k ∈ R n + 1 x\in R^{n+1}, w_k\in R^{n+1} x∈Rn+1,wk∈Rn+1,同样参数估计法也可以推广到多项逻辑斯谛回归。
最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
假设离散随机变量 X X X的概率分布是 P ( X ) P(X) P(X),则其熵是:
H ( P ) = − ∑ x P ( x ) l o g P ( x ) (9) H(P)=-\sum_xP(x)logP(x) \tag 9 H(P)=−x∑P(x)logP(x)(9)
熵满足下列不等式:
0 ≤ H ( P ) ≤ l o g ∣ X ∣ 0 \leq H(P) \leq log|X| 0≤H(P)≤log∣X∣
式子中的 ∣ X ∣ |X| ∣X∣是 X X X的取值个数,当且仅当 X X X的分布是均匀分布时,右边的等号成立,即 X X X服从均匀分布时,熵最大。
直观地,最大熵原理认为要选择的概率模型首先必须满足已有的约束条件。在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性,“等可能”不易操作,而熵是一个可以优化的数值指标。
最大熵原理是统计学习的一般原理,将其应用到分类得到最大熵模型。
假设分类模型是一个条件概率分布 P ( Y ∣ X ) , X ∈ X ⊆ R n P(Y|X), X\in \mathcal{X} \subseteq R^n P(Y∣X),X∈X⊆Rn表示输入, Y ∈ Y Y\in \mathcal{Y} Y∈Y表示输出, X , Y \mathcal{X},\mathcal{Y} X,Y分别是输入和输出的集合。这个模型表示的是对于给定的输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)输出 Y Y Y。
给定一个训练集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y n = N ) ) } T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_n=N))\} T={(x1,y1),(x2,y2),...,(xN,yn=N))}
学习的目标是用最大熵原理选择最好的分类模型。
首先考虑模型应该满足的条件。给定训练数据集,可以确定联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)的经验分布和边缘分布 P ( X ) P(X) P(X)的经验分布,分别以 P ~ ( X , Y ) \tilde{P}(X, Y) P~(X,Y)和 P ~ ( X ) \tilde{P}(X) P~(X)表示。这里,
P ~ ( X = x , Y = y ) = v ( X = x , Y = y ) N \tilde{P}(X=x, Y=y)=\frac {v(X=x, Y=y)}{N} P~(X=x,Y=y)=Nv(X=x,Y=y)
P ~ ( X = x ) = v ( X = x ) N \tilde{P}(X=x)=\frac {v(X=x)}{N} P~(X=x)=Nv(X=x)
其中, v ( X = x , Y = y ) v(X=x, Y=y) v(X=x,Y=y)表示训练数据中样本 ( x , y ) (x,y) (x,y)出现的频数, v ( X = x ) v(X=x) v(X=x)表示训练数据中输入 x x x出现的频数, N N N表示训练样本的容量。
用特征函数 f ( x , y ) f(x, y) f(x,y)描述输入 x x x和输出 y y y之间的某一个事实,其定义为:
f ( x , y ) = { 1 x 与 y 满 足 某 一 事 实 0 否 则 f(x, y)=\begin{cases} 1 & x与y满足某一事实 \\ 0 & 否则 \end{cases} f(x,y)={10x与y满足某一事实否则
特征函数 f ( x , y ) f(x, y) f(x,y)关于经验分布 P ~ ( X , Y ) \tilde{P}(X, Y) P~(X,Y)的期望值,用 E P ~ ( f ) E_{\tilde{P}}(f) EP~(f)表示。
E P ~ ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) E_{\tilde{P}}(f)=\sum_{x, y}\tilde{P}(x, y)f(x, y) EP~(f)=x,y∑P~(x,y)f(x,y)
特征函数 f ( x , y ) f(x, y) f(x,y)关于模型 P ( Y ∣ X ) P(Y|X) P(Y∣X)与经验分布 P ~ ( X ) \tilde{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_{x, y}\tilde{P}(x)P(y|x)f(x, y) EP(f)=x,y∑P~(x)P(y∣x)f(x,y)
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即:
E P ( f ) = E P ~ ( f ) (10) E_{{P}}(f)=E_{\tilde{P}}(f) \tag {10} EP(f)=EP~(f)(10)
或
∑ x , y P ~ ( x , y ) f ( x , y ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) (11) \sum_{x, y}\tilde{P}(x, y)f(x, y)=\sum_{x, y}\tilde{P}(x)P(y|x)f(x, y) \tag{11} x,y∑P~(x,y)f(x,y)=x,y∑P~(x)P(y∣x)f(x,y)(11)
将式(10)或(11)作为模型学习的约束条件。假如有 n n 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 n n个约束条件。
定义 最大熵模型
假设满足所有约束条件的模型集合为
C ≡ { P ∈ P ∣ E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , . . . , n } (12) \mathcal{C} \equiv \{P\in \mathcal{P}|E_P(f_i) = E_{\tilde P}(f_i), i=1, 2, ..., n\} \tag{12} C≡{P∈P∣EP(fi)=EP~(fi),i=1,2,...,n}(12)
定义在条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)上的条件熵为:
H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) (13) H(P)=-\sum_{x, y} \tilde{P}(x)P(y|x)logP(y|x) \tag{13} H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)(13)
则模型集合 C \mathcal{C} C中条件熵 H ( P ) H(P) H(P)最大的模型称为最大熵模型,式中的对数为自然对数。
最大熵模型的学习过程就是求解最大熵模型的过程,可以形式化为约束最优化问题。
对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y n = N ) ) } T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_n=N))\} T={(x1,y1),(x2,y2),...,(xN,yn=N))}以及特征函数 f i ( x , y ) , i = 1 , 2 , . . . , n f_i(x, y), i=1, 2, ..., n fi(x,y),i=1,2,...,n,最大熵模型的学习等价于约束最优化问题:
max P ∈ C H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) \max\limits_{\mathcal{P}\in \mathcal{C}}H(P)=-\sum_{x, y}\tilde{P}(x)P(y|x)logP(y|x) P∈CmaxH(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
s . t . E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , . . . , n s.t.\;\;\;\;E_{{P}}(f_i)=E_{\tilde{P}}(f_i), \;\;\;\;i=1, 2, ..., n s.t.EP(fi)=EP~(fi),i=1,2,...,n
∑ y P ( y ∣ x ) = 1 \sum_yP(y|x)=1 y∑P(y∣x)=1
按照最优化问题的习惯,将求最大值问题改写为等价的求最小值的问题:
min P ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) (14) \min\limits_{\mathcal{P}\in \mathcal{C}}-H(P)=\sum_{x, y}\tilde{P}(x)P(y|x)logP(y|x) \tag{14} P∈Cmin−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x)(14)
s . t . E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , . . . , n (15) s.t.\;\;\;\;E_{{P}}(f_i)=E_{\tilde{P}}(f_i), \;\;\;\;i=1, 2, ..., n \tag{15} s.t.EP(fi)=EP~(fi),i=1,2,...,n(15)
∑ y P ( y ∣ x ) = 1 (16) \sum_yP(y|x)=1\tag{16} y∑P(y∣x)=1(16)
求解约束最优化问题(14)~(16)所得出的解,就是最大熵模型学习的解,这里一般引进拉格朗日乘子,然后用拉格朗日函数来求解。
对偶函数的极大化等价于最大熵模型的极大似然估计,最大熵模型的学习问题可以转换成具体求解对数似然函数极大化或对偶函数极大化的问题。
可以将最大熵模型写成更一般的形式:
P w ( y ∣ x ) = 1 Z w ( x ) e x p ( ∑ i = 1 n w i f i ( x , y ) ) (17) P_w(y|x)=\frac{1}{Z_w(x)}exp \left(\sum_{i=1}^n w_if_i(x, y)\right) \tag{17} Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))(17)
其中,
Z w ( x ) = ∑ y e x p ( ∑ i = 1 n w i f i ( x , y ) ) (18) {Z_w(x)}=\sum_yexp \left(\sum_{i=1}^n w_if_i(x, y)\right) \tag{18} Zw(x)=y∑exp(i=1∑nwifi(x,y))(18)
这里, x ∈ R n x\in R^n x∈Rn为输入, y ∈ { 1 , 2 , . . . , K } y\in \{1, 2, ..., K\} y∈{1,2,...,K}为输出, w ∈ R n w\in R^n w∈Rn为权值向量, f i ( x , y ) , i = 1 , 2 , . . . , n f_i(x, y), i=1, 2, ..., n fi(x,y),i=1,2,...,n为任意实值特征函数。
最大熵模型与逻辑斯谛回归模型有类似的形式,它们又称为对数线性模型。模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化的极大似然估计。
逻辑斯谛回归模型、最大熵模型学习归结为以似然函数为目标函数的最优化问题,通常通过迭代算法求解。从最优化的观点看,这时的目标函数具有很好的性质。它是光滑的凸函数,因此多种最优化方法都适用,保证能够找到全局最优解。常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快。
改进的迭代尺度法(IIS)是一种最大熵模型学习的最优化算法。
已知最大熵模型为:
P w ( y ∣ x ) = 1 Z w ( x ) e x p ( ∑ i = 1 n w i f i ( x , y ) ) (19) P_w(y|x)=\frac{1}{Z_w(x)}exp \left(\sum_{i=1}^n w_if_i(x, y)\right) \tag{19} Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))(19)
其中,
Z w ( x ) = ∑ y e x p ( ∑ i = 1 n w i f i ( x , y ) ) (20) {Z_w(x)}=\sum_yexp \left(\sum_{i=1}^n w_if_i(x, y)\right) \tag{20} Zw(x)=y∑exp(i=1∑nwifi(x,y))(20)
对数似然函数为:
L ( w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) l o g Z w ( x ) (21) L(w)=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n w_if_i(x, y)-\sum_x\tilde{P}(x)logZ_w(x) \tag{21} L(w)=x,y∑P~(x,y)i=1∑nwifi(x,y)−x∑P~(x)logZw(x)(21)
目标是通过极大似然估计学习模型参数,即求对数似然函数的极大值 w ^ \hat{w} w^。
IIS的想法是:假设最大熵模型当前的参数向量是 w = ( w 1 , w 2 , . . . , w n ) T w=(w_1,w_2, ..., w_n)^T w=(w1,w2,...,wn)T,我们希望找到一个新的参数向量 w + δ = ( w 1 + δ , w 2 + δ , . . . , w n + δ ) T w+\delta=(w_1+\delta,w_2+\delta, ..., w_n+\delta)^T w+δ=(w1+δ,w2+δ,...,wn+δ)T,使得模型的对数似然函数值增大。如果能有这样一种参数向量更新方法 : w → w + δ :w\rightarrow w+\delta :w→w+δ,那么就可以重复使用这一方法,直到找到对数似然函数的最大值。
对于给定的经验分布 P ~ ( x , y ) \tilde{P}(x,y) P~(x,y),模型参数从 w w w到 w + δ w+\delta w+δ,对数似然函数的改变量是:
L ( w + δ ) − L ( w ) = ∑ x , y P ~ ( x , y ) l o g P w + δ ( y ∣ x ) − ∑ x , y P ~ ( x , y ) l o g P w ( y ∣ x ) L(w+\delta)-L(w)=\sum_{x,y}\tilde{P}(x,y)logP_{w+\delta}(y|x)-\sum_{x,y}\tilde{P}(x,y)logP_{w}(y|x) L(w+δ)−L(w)=x,y∑P~(x,y)logPw+δ(y∣x)−x,y∑P~(x,y)logPw(y∣x)
化简得:
L ( w + δ ) − L ( w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) − ∑ x P ~ ( x ) l o g Z w + δ ( x ) Z w ( x ) L(w+\delta)-L(w)=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_if_i(x, y)-\sum_{x}\tilde{P}(x)log\frac{Z_{w+\delta}(x)}{Z_w(x)} L(w+δ)−L(w)=x,y∑P~(x,y)i=1∑nδifi(x,y)−x∑P~(x)logZw(x)Zw+δ(x)
利用不等式
− l o g α ≥ 1 − α , α > 0 -log\alpha \geq 1-\alpha,\;\;\;\alpha>0 −logα≥1−α,α>0
建立对数似然函数改变量的下界:
L ( w + δ ) − L ( w ) ≥ ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) e x p ∑ i = 1 n δ i f i ( x , y ) L(w+\delta)-L(w)\geq\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_if_i(x, y)+1-\sum_{x}\tilde{P}(x)\sum_yP_w(y|x)exp\sum_{i=1}^n\delta_if_i(x,y) L(w+δ)−L(w)≥x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)expi=1∑nδifi(x,y)
将右端记为:
A ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) e x p ∑ i = 1 n δ i f i ( x , y ) A(\delta|w)=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_if_i(x, y)+1-\sum_{x}\tilde{P}(x)\sum_yP_w(y|x)exp\sum_{i=1}^n\delta_if_i(x,y) A(δ∣w)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)expi=1∑nδifi(x,y)
于是有:
L ( w + δ ) − L ( w ) ≥ A ( δ ∣ w ) L(w+\delta)-L(w)\geq A(\delta|w) L(w+δ)−L(w)≥A(δ∣w)
即 A ( δ ∣ w ) A(\delta|w) A(δ∣w)是对数似然函数该变量的一个下界。
如果能找到适当的 δ \delta δ使下界 A ( δ ∣ w ) A(\delta|w) A(δ∣w)提高,那么对数似然函数也会提高。然而,函数 A ( δ ∣ w ) A(\delta|w) A(δ∣w)中的 δ \delta δ是一个向量,含有多个变量,不易同时优化。IIS试图一次只优化其中的一个变量,而固定其它变量。
为达到这一目的,IIS进一步降低下界 A ( δ ∣ w ) A(\delta|w) A(δ∣w)。具体地,IIS引进一个量 f # ( x , y ) f^\#(x,y) f#(x,y),
f # ( x , y ) = ∑ i f i ( x , y ) f^\#(x,y)=\sum_if_i(x,y) f#(x,y)=i∑fi(x,y)
因为 f i f_i fi是二值函数,故 f # ( x , y ) f^\#(x,y) f#(x,y)表示所有特征在 ( x , y ) (x,y) (x,y)出现的次数。这样, A ( δ ∣ w ) A(\delta|w) A(δ∣w)可以改写为:
A ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) e x p ( f # ( x , y ) ∑ i = 1 n δ i f i ( x , y ) f # ( x , y ) ) (22) A(\delta|w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_if_i(x, y)+1-\sum_{x}\tilde{P}(x)\sum_yP_w(y|x)exp\left(f^\#(x,y)\sum_{i=1}^n \frac{\delta_if_i(x,y)}{f^\#(x,y)}\right) \tag{22} A(δ∣w)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)exp(f#(x,y)i=1∑nf#(x,y)δifi(x,y))(22)
可以(根据Jensen不等式、指数函数的凸性等等)将上式改写为:
A ( δ ∣ w ) ≥ ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) ∑ i = 1 n ( f i ( x , y ) f # ( x , y ) ) e x p ( δ i , f # ( x , y ) ) (23) A(\delta|w) \geq \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_if_i(x, y)+1-\sum_{x}\tilde{P}(x)\sum_yP_w(y|x)\sum_{i=1}^n \left( \frac{f_i(x,y)}{f^\#(x,y)}\right) exp\left(\delta_i,f^\#(x, y)\right) \tag{23} A(δ∣w)≥x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)i=1∑n(f#(x,y)fi(x,y))exp(δi,f#(x,y))(23)
记该不等式右端为:
B ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) ∑ i = 1 n ( f i ( x , y ) f # ( x , y ) ) e x p ( δ i , f # ( x , y ) ) B(\delta|w) = \sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^n \delta_if_i(x, y)+1-\sum_{x}\tilde{P}(x)\sum_yP_w(y|x)\sum_{i=1}^n \left( \frac{f_i(x,y)}{f^\#(x,y)}\right) exp\left(\delta_i,f^\#(x, y)\right) B(δ∣w)=x,y∑P~(x,y)i=1∑nδifi(x,y)+1−x∑P~(x)y∑Pw(y∣x)i=1∑n(f#(x,y)fi(x,y))exp(δi,f#(x,y))
于是得到
L ( w + δ ) − L ( w ) ≥ B ( δ ∣ w ) L(w+\delta)-L(w)\geq B(\delta|w) L(w+δ)−L(w)≥B(δ∣w)
这里, B ( δ ∣ w ) B(\delta|w) B(δ∣w)是对数似然函数改变量的一个新的(相对不紧的)下界。
求 B ( δ ∣ w ) B(\delta|w) B(δ∣w)对 δ i \delta_i δi的偏导数:
∂ B ( δ ∣ w ) ∂ δ i = ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) f i ( x , y ) e x p ( δ i f # ( x , y ) ) (24) \frac{\partial B(\delta|w)}{\partial \delta_i} = \sum_{x,y}\tilde{P}(x)P_w(y|x)f_i(x,y)-\sum_x \tilde P(x)\sum_yP_w(y|x)f_i(x,y)exp(\delta_if^\#(x,y)) \tag{24} ∂δi∂B(δ∣w)=x,y∑P~(x)Pw(y∣x)fi(x,y)−x∑P~(x)y∑Pw(y∣x)fi(x,y)exp(δif#(x,y))(24)
在式(24)中,除了 δ i \delta_i δi外不含任何其它变量。令偏导数为0得到:
∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) e x p ( δ i f # ( x , y ) ) = E P ~ ( f i ) (25) \sum_{x,y}\tilde{P}(x)P_w(y|x)f_i(x,y)exp(\delta_if^\#(x,y))=E_{\tilde P}(f_i) \tag{25} x,y∑P~(x)Pw(y∣x)fi(x,y)exp(δif#(x,y))=EP~(fi)(25)
于是,依次对 δ i \delta_i δi求解方程(25)可以求出 δ \delta δ。
算法 改进的迭代尺度算法 IIS
输入:特征函数 f 1 , f 2 , . . . , f n f_1, f_2, ..., f_n f1,f2,...,fn;经验分布 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y),模型 P w ( y ∣ x ) P_w(y|x) Pw(y∣x)
输出:最优参数值 w i ∗ w_i^* wi∗;最优模型 P w ∗ P_{w^*} Pw∗
(1)对所有 i ∈ { 1 , 2 , . . , n } i\in \{1,2,..,n\} i∈{1,2,..,n},取初值 w i = 0 w_i=0 wi=0
(2)对每一 i ∈ { 1 , 2 , . . , n } i\in \{1,2,..,n\} i∈{1,2,..,n}:
(a)令 δ i \delta_i δi是方程
∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) e x p ( δ i f # ( x , y ) ) = E P ~ ( f i ) \sum_{x,y}\tilde{P}(x)P_w(y|x)f_i(x,y)exp(\delta_if^\#(x,y))=E_{\tilde P}(f_i) x,y∑P~(x)Pw(y∣x)fi(x,y)exp(δif#(x,y))=EP~(fi)
的解,这里,
f # ( x , y ) = ∑ i f i ( x , y ) f^\#(x,y)=\sum_if_i(x,y) f#(x,y)=i∑fi(x,y)
(b)更新 w i w_i wi值, w i ← w i + δ i w_i \leftarrow w_i+\delta_i wi←wi+δi
(3)如果不是所有的 w i w_i wi都收敛,重复步骤(2)
这一算法的关键一步是(a),即求解方程(25)的 δ i \delta_i δi。如果 f # ( x , y ) f^\#(x,y) f#(x,y)是常数,即对任何的 x , y x,y x,y,有 f # ( x , y ) = M f^\#(x,y)=M f#(x,y)=M,那么 δ 1 \delta_1 δ1可以显示地表示成
δ 1 = 1 M l o g E P ~ ( f i ) E P ( f i ) (26) \delta_1 = \frac{1}{M}log\frac{E_{\tilde P}(f_i)}{E_P(f_i)} \tag{26} δ1=M1logEP(fi)EP~(fi)(26)
如果 f # ( x , y ) f^\#(x,y) f#(x,y)不是常数,必须通过数值计算求 δ i \delta_i δi。简单有效的方法是牛顿法,以 g ( δ i ) = 0 g(\delta_i)=0 g(δi)=0表示方程(25),通过迭代求得 δ i ∗ \delta_i^* δi∗,使得 g ( δ i ∗ ) = 0 g(\delta_i^*)=0 g(δi∗)=0。迭代公式是:
δ i ( k + 1 ) = δ i ( k ) − g ( δ i k ) g ′ ( δ i k ) 27 ) (() \delta_i^{(k+1)} = \delta_i^{(k)} - \frac{g(\delta_i^k)}{g'(\delta_i^k)} \tag(27) δi(k+1)=δi(k)−g′(δik)g(δik)27)(()
只要选取适当的初值,由于方程(25)有单根,因此牛顿法恒收敛,而且收敛速度很快。
算法 最大熵模型学习的BFGS算法
输入:特征函数 f 1 , f 2 , . . . , f n f_1, f_2, ..., f_n f1,f2,...,fn;经验分布 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y),目标函数 f ( w ) f(w) f(w),梯度 g ( w ) = ∇ f ( w ) g(w)=\nabla f(w) g(w)=∇f(w),精度要求 ϵ \epsilon ϵ
输出:最优参数值 w i ∗ w_i^* wi∗;最优模型 P w ∗ ( y ∣ x ) P_{w^*}(y|x) Pw∗(y∣x)
(1)选定初始点 w ( 0 ) w^{(0)} w(0),取 B 0 B_0 B0为正定对称矩阵,置 k = 0 k=0 k=0
(2)计算 g k = g ( w k ) g_k = g(w^{{k}}) gk=g(wk)。若 ∣ ∣ g k ∣ ∣ < ϵ ||g_k||<\epsilon ∣∣gk∣∣<ϵ,则停止计算,得到 w ∗ = w ( k ) w^* = w^{(k)} w∗=w(k);否则转(3)
(3)由 B k p k = − g k B_kp_k = -g_k Bkpk=−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_{\lambda \geq0}f(w^{(k)}+\lambda p_k) f(w(k)+λkpk)=λ≥0minf(w(k)+λpk)
(5)置 w ( k + 1 ) = w ( k ) + λ k p k w^{(k+1)} = w^{(k)}+ \lambda _kp_k w(k+1)=w(k)+λkpk
(6)计算 g k = 1 = g ( w ( k + 1 ) ) g_{k=1} = g(w^{(k+1)}) gk=1=g(w(k+1)),若 ∣ ∣ g k + 1 ∣ ∣ < ϵ ||g_{k+1}||<\epsilon ∣∣gk+1∣∣<ϵ,则停止计算,得到 w ∗ = w ( k + 1 ) w^* = w^{(k+1)} w∗=w(k+1);否则,按照下式求出 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 B_{k+1} = B_k + \frac{y_ky_k^T}{y_k^T \delta_k}-\frac{B_k \delta_k \delta_k^T B_k}{\delta_k^T B_k \delta_k} Bk+1=Bk+ykTδkykykT−δkTBkδkBkδkδkTBk
其中,
y k = g k + 1 − g k δ k = w ( k + 1 ) − w ( k ) y_k = g_{k+1}-g_k\;\;\;\delta_k = w^{(k+1)} - w^{(k)} yk=gk+1−gkδk=w(k+1)−w(k)
(7)置 k = k + 1 k=k+1 k=k+1,转(3)
1、逻辑斯谛回归模型是由以下条件概率分布表示的分类模型,可以用于二分类或多分类问题:
P ( Y = k ∣ x ) = e x p ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 e x p ( w k ⋅ x ) , k = 1 , 2 , . . . , K − 1 P(Y=k|x)=\frac{exp({w_k}·x)}{1+\sum\limits_{k=1}^{K-1}exp({w_k}·x)}, k=1, 2, ..., K-1 P(Y=k∣x)=1+k=1∑K−1exp(wk⋅x)exp(wk⋅x),k=1,2,...,K−1
P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 e x p ( w k ⋅ x ) P(Y=K|x)=\frac{1}{1+\sum\limits_{k=1}^{K-1}exp({w_k}·x)} P(Y=K∣x)=1+k=1∑K−1exp(wk⋅x)1
这里 x x x为输入特征, w w w为特征的权值。
逻辑斯谛回归模型源自逻辑斯谛分布,其分布函数 F ( x ) F(x) F(x)是 S S S形函数。逻辑斯谛回归模型是由输入的线性函数表示的输出的对数几率模型。
2、最大熵模型是由以下条件概率分布模型表示的分类模型,也可以用于二分类或多分类。
P w ( y ∣ x ) = 1 Z w ( x ) e x p ( ∑ i = 1 n w i f i ( x , y ) ) P_w(y|x)=\frac{1}{Z_w(x)}exp \left(\sum_{i=1}^n w_if_i(x, y)\right) Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))
Z w ( x ) = ∑ y e x p ( ∑ i = 1 n w i f i ( x , y ) ) {Z_w(x)}=\sum_yexp \left(\sum_{i=1}^n w_if_i(x, y)\right) Zw(x)=y∑exp(i=1∑nwifi(x,y))
其中, Z w ( x ) Z_w(x) Zw(x)是规范化因子, f i f_i fi为特征函数, w i w_i wi为特征的权值。
3、最大熵模型可以由最大熵原理推导得出。最大熵原理是概率模型学习或估计的一个准则,认为在所有可能的概率模型(分布)的集合中,熵最大的模型是最好的模型。
最大熵原理应用到分类模型的学习中,有以下约束最优化问题:
min P ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) \min\limits_{\mathcal{P}\in \mathcal{C}}-H(P)=\sum_{x, y}\tilde{P}(x)P(y|x)logP(y|x) P∈Cmin−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x)
s . t . E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , . . . , n s.t.\;\;\;\;E_{{P}}(f_i)=E_{\tilde{P}}(f_i), \;\;\;\;i=1, 2, ..., n s.t.EP(fi)=EP~(fi),i=1,2,...,n
∑ y P ( y ∣ x ) = 1 \sum_yP(y|x)=1 y∑P(y∣x)=1
求解此最优化问题的对偶问题得到最大熵模型。
4、逻辑斯谛回归模型与最大熵模型都属于对数线性模型,它们的学习一般采用极大似然估计或正则化的极大似然估计。逻辑斯谛回归模型及最大熵模型学习可以形式化为无约束最优化问题,求解该最优化问题的算法有改进的迭代尺度法、梯度下降法、拟牛顿法。