前言
在《统计学习方法》第二版的第6章,作者将逻辑斯谛回归与最大熵这两个模型放在一起讲,初看令人困惑。但是看到后面才明白,这是作者为了介绍以似然函数为目标函数的最优化问题的解法。
当一个最优化问题以似然函数作为其目标函数的时候,作者提到三种常用的优化方法,改进的迭代尺度法、梯度下降法以及牛顿法或者拟牛顿法。
作为例子,作者演示了如何将 逻辑斯谛回归问题和最大熵模型 转化为以似然函数为目标函数的最优化问题,并利用上面提到的三种优化方法进行求解。
本文将主要聚焦于 逻辑斯谛回归与最大熵模型 转化为 以似然函数为目标函数的最优化问题的推导过程。
1. 逻辑斯谛回归
1.1 逻辑斯谛分布
假设随机变量
X
X
X 满足
(1) 分布函数为
P
(
X
≤
x
)
=
1
1
+
e
−
x
−
μ
λ
P(X\le x)=\frac{1}{1+e^{-\frac{x-\mu}{\lambda}}}
P(X≤x)=1+e−λx−μ1
(2) 密度函数为 f ( x ) = e − x − μ λ λ ( 1 + e − x − μ λ ) 2 f(x)=\frac{e^{-\frac{x-\mu}{\lambda}}}{\lambda\left(1+e^{-\frac{x-\mu}{\lambda}}\right)^2} f(x)=λ(1+e−λx−μ)2e−λx−μ
则称随机变量 X X X 服从一个参数为 ( μ , λ ) (\mu, \lambda) (μ,λ) 的逻辑斯谛分布。
1.2 逻辑斯谛回归模型
设
x
∈
R
n
x\in \mathbb{R}^n
x∈Rn 为输入,
y
∈
{
0
,
1
}
y\in\{0, 1\}
y∈{0,1} 为输出,现在若分类模型
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X) 具有如下形式:
P
(
Y
=
1
∣
X
=
x
)
=
e
w
⋅
x
+
b
1
+
e
w
⋅
x
+
b
P(Y=1|X=x)=\frac{e^{w\cdot x+b}}{1+e^{w\cdot x+b}}
P(Y=1∣X=x)=1+ew⋅x+bew⋅x+b
P ( Y = 0 ∣ X = x ) = 1 1 + e w ⋅ x + b P(Y=0|X=x)=\frac{1}{1+e^{w\cdot x+b}} P(Y=0∣X=x)=1+ew⋅x+b1
则称 P ( Y ∣ X ) P(Y|X) P(Y∣X) 为逻辑斯谛回归模型。这里, w w w 为权值, b b b 为偏置。
从形式上可以看出,当令 μ = 0 , λ = 1 \mu=0, \lambda=1 μ=0,λ=1时,逻辑斯谛分布就是逻辑斯谛回归模型。
我们当一件事情的发生概率为
p
p
p,则这件事的几率定义为
p
1
−
p
\frac{p}{1-p}
1−pp。可以看到,
Y
=
1
Y=1
Y=1 的对数几率为
l
o
g
P
(
Y
=
1
∣
X
=
x
)
1
−
P
(
Y
=
1
∣
X
=
x
)
=
w
⋅
x
+
b
log\frac{P(Y=1|X=x)}{1-P(Y=1|X=x)}=w\cdot x+b
log1−P(Y=1∣X=x)P(Y=1∣X=x)=w⋅x+b
也就是说,输出 Y = 1 Y=1 Y=1 的对数几率为输入 x x x 的线性函数。
1.3 逻辑斯谛回归的似然函数
已知数据 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)},其中, y i ∈ { 0 , 1 } y_i\in\{0, 1\} yi∈{0,1}。
记
P
(
Y
=
1
∣
X
=
x
)
=
p
(
x
)
P(Y=1|X=x)=p(x)
P(Y=1∣X=x)=p(x),则
P
(
Y
=
0
∣
X
=
x
)
=
1
−
p
(
x
)
P(Y=0|X=x)=1-p(x)
P(Y=0∣X=x)=1−p(x)。因此,似然函数可以写为
L
(
w
,
b
)
=
l
o
g
(
Π
i
=
1
N
p
(
x
i
)
y
i
(
1
−
p
(
x
i
)
)
1
−
y
i
)
=
∑
i
=
1
N
(
y
i
l
o
g
p
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
x
i
)
)
)
=
∑
i
=
1
N
(
y
i
(
w
⋅
x
i
+
b
)
−
l
o
g
(
1
+
e
w
⋅
x
i
+
b
)
)
\begin{array}{lll} L(w, b)&=&log\left(\Pi_{i=1}^Np(x_i)^{y_i}(1-p(x_i))^{1-y_i} \right)\\ &=& \sum_{i=1}^N\left(y_ilogp(x_i)+(1-y_i)log(1-p(x_i)) \right)\\ &=&\sum_{i=1}^N\left(y_i(w\cdot x_i+b)-log(1+e^{w\cdot x_i+b})\right) \end{array}
L(w,b)===log(Πi=1Np(xi)yi(1−p(xi))1−yi)∑i=1N(yilogp(xi)+(1−yi)log(1−p(xi)))∑i=1N(yi(w⋅xi+b)−log(1+ew⋅xi+b))
这里,最优的
(
w
∗
,
b
∗
)
(w^*, b^*)
(w∗,b∗) 满足
(
w
∗
,
b
∗
)
=
arg max
w
,
b
L
(
w
,
b
)
(w^*, b^*)=\argmax_{w, b}L(w, b)
(w∗,b∗)=w,bargmaxL(w,b)
2. 最大熵模型
2.1 熵、条件熵
熵是用来衡量随机变量不确定性程度的量。
熵的定义。设随机变量
X
X
X 满足
P
(
X
=
x
i
)
=
p
i
P(X=x_i)=p_i
P(X=xi)=pi,则随机变量
X
X
X 的熵
H
(
X
)
H(X)
H(X) 为
H
(
X
)
=
−
∑
i
=
1
N
p
i
⋅
l
o
g
(
p
i
)
H(X)=-\sum_{i=1}^Np_i\cdot log(p_i)
H(X)=−i=1∑Npi⋅log(pi)
其中, N N N 为随机变量所有可能取值的个数。
条件熵的定义。设
P
(
X
,
Y
)
P(X, Y)
P(X,Y) 为随机变量
X
X
X 和
Y
Y
Y 的联合概率,
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X) 为条件概率,则条件概率
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X) 的熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X) 为
H
(
Y
∣
X
)
=
∑
i
=
1
N
P
(
X
=
x
i
)
H
(
Y
∣
X
=
x
i
)
=
∑
i
=
1
N
P
(
X
=
x
i
)
∑
j
=
1
M
P
(
Y
=
y
j
∣
X
=
x
i
)
l
o
g
P
(
Y
=
y
j
∣
X
=
x
i
)
=
∑
i
=
1
N
∑
j
=
1
M
P
(
X
=
x
i
)
P
(
Y
=
y
i
∣
X
=
x
i
)
l
o
g
P
(
Y
=
y
j
∣
X
=
x
i
)
=
∑
x
,
y
P
(
X
=
x
)
P
(
Y
=
y
∣
X
=
x
)
l
o
g
P
(
Y
=
y
∣
X
=
x
)
\begin{array}{lll} H(Y|X)&=&\sum_{i=1}^NP(X=x_i)H(Y|X=x_i)\\ &=&\sum_{i=1}^NP(X=x_i)\sum_{j=1}^MP(Y=y_j|X=x_i)logP(Y=y_j|X=x_i)\\ &=&\sum_{i=1}^N\sum_{j=1}^MP(X=x_i)P(Y=y_i|X=x_i)logP(Y=y_j|X=x_i)\\ &=&\sum_{x, y}P(X=x)P(Y=y|X=x)logP(Y=y|X=x) \end{array}
H(Y∣X)====∑i=1NP(X=xi)H(Y∣X=xi)∑i=1NP(X=xi)∑j=1MP(Y=yj∣X=xi)logP(Y=yj∣X=xi)∑i=1N∑j=1MP(X=xi)P(Y=yi∣X=xi)logP(Y=yj∣X=xi)∑x,yP(X=x)P(Y=y∣X=x)logP(Y=y∣X=x)
其中, N N N 和 M M M 分别为 X X X 和 Y Y Y 所有可能取值的个数。
2.2 最大熵原理及一个例子
对于一个随机变量
X
X
X,它的取值为
{
x
1
,
x
2
,
.
.
.
,
x
N
}
\{x_1, x_2, ..., x_N\}
{x1,x2,...,xN},如果不知道其他信息,则我们通过最大熵原理来估计
P
(
X
=
x
i
)
=
p
i
P(X=x_i)=p_i
P(X=xi)=pi 的值,是指
(
p
1
,
p
2
,
.
.
.
,
p
N
)
=
arg max
H
(
X
)
(p_1, p_2, ..., p_N)=\argmax H(X)
(p1,p2,...,pN)=argmaxH(X)
我们选择使得熵最大的数值作为我们估计的概率。
这样,我们有优化问题
max
H
(
X
)
=
−
∑
i
=
1
N
p
i
l
o
g
(
p
i
)
s
.
t
.
∑
i
=
1
N
p
i
=
1
p
i
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
\begin{array}{cll} &\max& H(X)=-\sum_{i=1}^Np_ilog(p_i)\\ &s.t.& \sum_{i=1}^Np_i=1\\ &&p_i\ge 0, i=1, 2, ..., N \end{array}
maxs.t.H(X)=−∑i=1Npilog(pi)∑i=1Npi=1pi≥0,i=1,2,...,N
由
∑
i
=
1
N
p
i
=
1
\sum_{i=1}^Np_i=1
∑i=1Npi=1 可知,
p
N
=
1
−
∑
i
=
1
N
−
1
p
i
p_N=1-\sum_{i=1}^{N-1}p_i
pN=1−∑i=1N−1pi,将
p
N
p_N
pN 代入
H
(
X
)
H(X)
H(X),我们有
H
(
X
)
=
−
∑
i
=
1
N
−
1
p
i
l
o
g
(
p
i
)
−
(
1
−
∑
i
=
1
N
−
1
p
i
)
l
o
g
(
1
−
∑
i
=
1
N
−
1
p
i
)
H(X)=-\sum_{i=1}^{N-1}p_ilog(p_i)-(1-\sum_{i=1}^{N-1}p_i)log(1-\sum_{i=1}^{N-1}p_i)
H(X)=−i=1∑N−1pilog(pi)−(1−i=1∑N−1pi)log(1−i=1∑N−1pi)
为了求最大值,我们对
p
i
,
i
=
1
,
2
,
.
.
.
,
N
−
1
p_i, i=1, 2, ..., N-1
pi,i=1,2,...,N−1 分别求导,有
∂
H
(
X
)
∂
p
i
=
l
o
g
(
1
−
∑
i
=
1
N
−
1
p
i
)
−
l
o
g
(
p
i
)
\frac{\partial H(X)}{\partial p_i}=log(1-\sum_{i=1}^{N-1}p_i)-log(p_i)
∂pi∂H(X)=log(1−i=1∑N−1pi)−log(pi)
令
∂
H
(
X
)
∂
p
i
=
0
\frac{\partial H(X)}{\partial p_i}=0
∂pi∂H(X)=0,得
p
i
=
1
−
∑
i
=
1
N
−
1
p
i
p_i=1-\sum_{i=1}^{N-1}p_i
pi=1−∑i=1N−1pi,考虑到
1
−
∑
i
=
1
N
−
1
p
i
=
p
N
1-\sum_{i=1}^{N-1}p_i=p_N
1−∑i=1N−1pi=pN,因此,对于任意的
i
=
1
,
2
,
.
.
.
,
N
−
1
i=1, 2, ..., N-1
i=1,2,...,N−1,我们恒有
p
i
=
p
N
p_i=p_N
pi=pN
由于 ∑ i = 1 N p i = 1 \sum_{i=1}^{N}p_i=1 ∑i=1Npi=1, 因此,对于任何 i = 1 , 2 , . . . , N i=1, 2, ..., N i=1,2,...,N,我们有 p i = 1 N p_i=\frac{1}{N} pi=N1
2.3 最大熵问题
现在,我们有随机变量 X X X 和 Y Y Y,以及由它们生成的数据 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)},现在,根据最大熵原理,我们应该怎样获得 条件概率,也就是分类模型 P ( Y ∣ X ) P(Y|X) P(Y∣X)?
- 经验分布:根据数据集 T T T,我们可以获得 联合分布 P ( X , Y ) P(X, Y) P(X,Y) 和边缘分布 P ( X ) P(X) P(X) 的经验分布,即 P ~ ( X = x , Y = y ) = ν ( X = x , Y = y ) N \widetilde{P}(X=x, Y=y)=\frac{\nu(X=x, Y=y)}{N} P (X=x,Y=y)=Nν(X=x,Y=y) P ~ ( X = x ) = ν ( X = x ) N \widetilde{P}(X=x)=\frac{\nu(X=x)}{N} P (X=x)=Nν(X=x)
其中, ν ( X = x , Y = y ) \nu(X=x, Y=y) ν(X=x,Y=y) 为样本 ( x , y ) (x, y) (x,y) 在数据集 T T T 中的个数,当 ( x , y ) ∉ T (x, y)\notin T (x,y)∈/T时, ν ( X = x , Y = y ) = 0 \nu(X=x, Y=y)=0 ν(X=x,Y=y)=0。
- 特征函数
f
(
x
,
y
)
f(x, y)
f(x,y):这里可以理解为关于随机变量
X
X
X 和
Y
Y
Y 的约束条件,形式化为一个二值函数,具体为
f ( x , y ) = { 1 , x 与 y 满 足 某 一 约 束 0 , x 与 y 不 满 足 该 约 束 f(x, y)=\left\{ \begin{array}{lll} 1, && x与y满足某一约束\\ 0, && x与y不满足该约束 \end{array}\right. f(x,y)={1,0,x与y满足某一约束x与y不满足该约束
这样约束可以为 ( x , y ) ∈ T (x, y)\in T (x,y)∈T,或者 ( x , y ) = ( x i , y i ) (x, y)=(x_i, y_i) (x,y)=(xi,yi)等等。
- 特征函数
f
(
x
,
y
)
f(x, y)
f(x,y) 关于分布的两个经验期望值:
E P ~ ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) E_{\widetilde{P}}(f)=\sum_{x, y}\widetilde{P}(x, y)f(x, y) EP (f)=x,y∑P (x,y)f(x,y)
E P ( f ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) E_{P}(f)=\sum_{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 ) P ( y ∣ x ) = P ~ ( x , y ) \widetilde{P}(x)P(y|x)=\widetilde{P}(x, y) P (x)P(y∣x)=P (x,y)
这样, P ( y ∣ x ) P(y|x) P(y∣x) 就可以被定义出来。当然,实际上式并不成立。
我们可以给出很多的特征函数
f
i
(
x
,
y
)
,
i
=
1
,
2
,
.
.
.
,
n
f_i(x, y), i=1, 2, ..., n
fi(x,y),i=1,2,...,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
)
P(Y|X)
P(Y∣X),我们需要给出条件熵,也就是
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
H(P)=-\sum_{x, y}\widetilde{P}(x)P(y|x)logP(y|x)
H(P)=−x,y∑P
(x)P(y∣x)logP(y∣x)
下面,我们将给出最大熵问题。
max
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
s
.
t
.
E
P
~
(
f
i
)
=
E
P
(
f
i
)
,
i
=
1
,
2
,
.
.
.
,
n
∑
y
P
(
y
∣
x
)
=
1
\begin{array}{lll} &\max& H(P)=-\sum_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)\\ &s.t.& E_{\widetilde{P}}(f_i)=E_{P}(f_i), i=1, 2, ..., n\\ && \sum_{y}P(y|x)=1 \end{array}
maxs.t.H(P)=−∑x,yP
(x)P(y∣x)logP(y∣x)EP
(fi)=EP(fi),i=1,2,...,n∑yP(y∣x)=1
通过拉格朗日方法,我们可以将有约束的原始问题转为为无约束的对偶问题。根据库恩塔克定理,只要 H ( P ) H(P) H(P) 是凹函数,原始问题与对偶问题等价。而要判断 H ( P ) H(P) H(P) 是凹函数,我们需要判断 H ( P ) H(P) H(P) 的Hessian矩阵是否为负定的。
我们假设
X
X
X 的取值为
{
x
1
,
x
2
,
.
.
.
,
x
N
}
\{x_1, x_2, ..., x_N\}
{x1,x2,...,xN},
Y
Y
Y 的取值为
{
y
1
,
y
2
,
.
.
.
,
y
M
}
\{y_1, y_2, ..., y_M\}
{y1,y2,...,yM}。进一步,我们记
P
(
Y
=
y
j
∣
X
=
x
i
)
=
p
j
i
P(Y=y_j|X=x_i)=p_{ji}
P(Y=yj∣X=xi)=pji。因此,
H
(
P
)
H(P)
H(P) 作为
(
p
11
,
p
21
,
.
.
.
,
p
M
−
1
,
1
,
p
12
,
p
22
,
.
.
.
,
p
M
−
1
,
2
,
.
.
.
,
p
1
N
,
p
2
N
,
.
.
.
,
p
M
−
1
,
N
)
(p_{11}, p_{21}, ..., p_{M-1,1}, p_{12}, p_{22}, ..., p_{M-1,2}, ..., p_{1N}, p_{2N}, ..., p_{M-1,N})
(p11,p21,...,pM−1,1,p12,p22,...,pM−1,2,...,p1N,p2N,...,pM−1,N) 的函数,可以重写为
H
(
P
)
=
−
∑
i
=
1
N
∑
j
=
1
M
P
~
(
x
i
)
p
j
i
l
o
g
(
p
j
i
)
=
−
∑
i
=
1
N
P
~
(
x
i
)
∑
j
=
1
M
p
j
i
l
o
g
(
p
j
i
)
=
−
∑
i
=
1
N
P
~
(
x
i
)
(
∑
j
M
−
1
p
j
i
l
o
g
(
p
j
i
)
+
(
1
−
∑
j
M
−
1
p
j
i
)
l
o
g
(
1
−
∑
j
M
−
1
p
j
i
)
)
\begin{array}{lll} H(P)&=&-\sum_{i=1}^N\sum_{j=1}^M\widetilde{P}(x_i)p_{ji}log(p_{ji})\\ &=&-\sum_{i=1}^N\widetilde{P}(x_i)\sum_{j=1}^Mp_{ji}log(p_{ji})\\ &=&-\sum_{i=1}^N\widetilde{P}(x_i)\left(\sum_j^{M-1}p_{ji}log(p_{ji})+(1-\sum_j^{M-1}p_{ji})log(1-\sum_j^{M-1}p_{ji})\right) \end{array}
H(P)===−∑i=1N∑j=1MP
(xi)pjilog(pji)−∑i=1NP
(xi)∑j=1Mpjilog(pji)−∑i=1NP
(xi)(∑jM−1pjilog(pji)+(1−∑jM−1pji)log(1−∑jM−1pji))
第三个等式成立是因为 ∑ j = 1 M p j i = 1 \sum_{j=1}^Mp_{ji}=1 ∑j=1Mpji=1。
可以直接求导,得到
∂
2
H
(
P
)
∂
p
j
i
∂
p
l
k
=
{
−
1
p
j
i
−
1
p
M
i
i
f
(
i
,
j
)
=
(
k
,
l
)
−
1
p
M
i
i
f
(
i
,
j
)
≠
(
k
,
l
)
\frac{\partial^2H(P)}{\partial p_{ji}\partial p_{lk}}=\left\{ \begin{array}{lll} -\frac{1}{p_{ji}}-\frac{1}{p_{Mi}} &if & (i, j) =(k,l)\\ -\frac{1}{p_{Mi}} &if& (i, j) \not=(k,l) \end{array}\right.
∂pji∂plk∂2H(P)={−pji1−pMi1−pMi1ifif(i,j)=(k,l)(i,j)=(k,l)
可以证明 H ( P ) H(P) H(P)的Hessian矩阵是负定的,从而也就说明了原始问题与对偶问题的等价性。
为了写着方便,我们将原始问题重新写成
min − H ( P ) = ∑ i = 1 N ∑ j = 1 M P ~ ( x i ) p j i l o g ( p j i ) s . t . E P ~ ( f i ) = E P ( f i ) , i = 1 , 2 , . . . , n ∑ j = 1 M p j i = 1 \begin{array}{lll} &\min& -H(P)=\sum_{i=1}^{N}\sum_{j=1}^M\widetilde{P}(x_i)p_{ji}log(p_{ji})\\ &s.t.& E_{\widetilde{P}}(f_i)=E_{P}(f_i), i=1, 2, ..., n\\ && \sum_{j=1}^Mp_{ji}=1 \end{array} mins.t.−H(P)=∑i=1N∑j=1MP (xi)pjilog(pji)EP (fi)=EP(fi),i=1,2,...,n∑j=1Mpji=1
根据拉格朗日方法,我们写出拉格朗日函数
L
(
p
j
i
,
w
)
=
−
H
(
P
)
+
w
0
(
1
−
∑
j
=
1
M
p
j
i
)
+
∑
k
=
1
n
w
k
(
E
P
~
(
f
k
)
−
E
P
(
f
k
)
)
=
∑
i
=
1
N
∑
j
=
1
M
P
~
(
x
i
)
p
j
i
l
o
g
(
p
j
i
)
+
w
0
(
1
−
∑
j
=
1
M
p
j
i
)
+
∑
k
=
1
n
w
k
(
∑
i
,
j
f
k
(
x
i
,
y
j
)
(
P
~
(
x
i
,
y
j
)
−
P
~
(
x
i
)
p
j
i
)
)
\begin{array}{lll} L(p_{ji}, w)&=&-H(P)+w_0(1-\sum_{j=1}^Mp_{ji})+\sum_{k=1}^nw_k\left(E_{\widetilde{P}}(f_k)-E_{P}(f_k)\right)\\ &=&\sum_{i=1}^{N}\sum_{j=1}^M\widetilde{P}(x_i)p_{ji}log(p_{ji})+w_0(1-\sum_{j=1}^Mp_{ji})+\sum_{k=1}^nw_k\left(\sum_{i,j}f_k(x_i, y_j)(\widetilde{P}(x_i, y_j)-\widetilde{P}(x_i)p_{ji})\right) \end{array}
L(pji,w)==−H(P)+w0(1−∑j=1Mpji)+∑k=1nwk(EP
(fk)−EP(fk))∑i=1N∑j=1MP
(xi)pjilog(pji)+w0(1−∑j=1Mpji)+∑k=1nwk(∑i,jfk(xi,yj)(P
(xi,yj)−P
(xi)pji))
则原问题为
min
P
∈
P
max
w
L
(
p
j
i
,
w
)
\min_{P\in\mathcal{P}}\max_{w}L(p_{ji}, w)
P∈PminwmaxL(pji,w)
而对偶问题为
max
w
min
P
∈
P
L
(
p
j
i
,
w
)
\max_{w}\min_{P\in\mathcal{P}}L(p_{ji}, w)
wmaxP∈PminL(pji,w)
我们可以先对对偶问题进行求解。给定
w
w
w,计算
min
P
∈
P
L
(
p
j
i
,
w
)
\min_{P\in\mathcal{P}}L(p_{ji}, w)
minP∈PL(pji,w)。我们对
L
(
p
j
i
,
w
)
L(p_{ji}, w)
L(pji,w) 关于
p
j
i
p_{ji}
pji 求导,有
∂
L
(
p
j
i
,
w
)
∂
p
j
i
=
P
~
(
x
i
)
(
1
+
l
o
g
(
p
j
i
)
)
−
w
0
−
P
~
(
x
i
)
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
\begin{array}{lll} \frac{\partial L(p_{ji}, w)}{\partial p_{ji}}&=&\widetilde{P}(x_i)(1+log(p_{ji}))-w_0-\widetilde{P}(x_i)\sum_{k=1}^nw_kf_k(x_i, y_j) \end{array}
∂pji∂L(pji,w)=P
(xi)(1+log(pji))−w0−P
(xi)∑k=1nwkfk(xi,yj)
令
∂
L
(
p
j
i
,
w
)
∂
p
j
i
=
0
\frac{\partial L(p_{ji}, w)}{\partial p_{ji}}=0
∂pji∂L(pji,w)=0,有
p
j
i
=
e
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
e
1
−
w
0
P
~
(
x
i
)
p_{ji}=\frac{e^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}{e^{1-\frac{w_0}{\widetilde{P}(x_i)}}}
pji=e1−P
(xi)w0e∑k=1nwkfk(xi,yj)
由于 ∑ j = 1 M p j i = 1 \sum_{j=1}^Mp_{ji}=1 ∑j=1Mpji=1,所以 e 1 − w 0 P ~ ( x i ) = ∑ j = 1 M e ∑ k = 1 n w k f k ( x i , y j ) e^{1-\frac{w_0}{\widetilde{P}(x_i)}}=\sum_{j=1}^Me^{\sum_{k=1}^nw_kf_k(x_i, y_j)} e1−P (xi)w0=j=1∑Me∑k=1nwkfk(xi,yj)
因此,我们有
p
j
i
(
w
)
=
e
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
∑
j
=
1
M
e
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
p_{ji}(w)=\frac{e^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}{\sum_{j=1}^Me^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}
pji(w)=∑j=1Me∑k=1nwkfk(xi,yj)e∑k=1nwkfk(xi,yj)
之后,我们将
p
j
i
(
w
)
p_{ji}(w)
pji(w) 代入对偶问题,继续关于
w
w
w 做优化,即,
max
w
L
(
p
j
i
(
w
)
,
w
)
\max_{w}L(p_{ji}(w), w)
wmaxL(pji(w),w)
只要将 w w w 求出来,对偶问题便得到解决,等价于原始问题解决,也就意味着最大熵模型已经学习完毕。
2.4 对偶函数的极大化与最大熵模型的似然估计
我们将 p j i p_{ji} pji 重写为 p j i ( w ) = e ∑ k = 1 n w k f k ( x i , y j ) Z w ( x i ) p_{ji}(w)=\frac{e^{\sum_{k=1}^nw_kf_k(x_i, y_j)}}{Z_w(x_i)} pji(w)=Zw(xi)e∑k=1nwkfk(xi,yj)
其中, Z w ( x i ) = ∑ j = 1 M e ∑ k = 1 n w k f k ( x i , y j ) Z_w(x_i)=\sum_{j=1}^Me^{\sum_{k=1}^nw_kf_k(x_i, y_j)} Zw(xi)=∑j=1Me∑k=1nwkfk(xi,yj)。
这样,对偶函数为
L
(
p
j
i
(
w
)
,
w
)
=
∑
i
,
j
P
~
(
x
i
)
p
j
i
(
w
)
l
o
g
(
p
j
i
(
w
)
)
+
∑
k
=
1
n
w
k
∑
i
,
j
(
f
k
(
x
i
,
y
j
)
(
P
~
(
x
i
,
y
j
)
−
P
~
(
x
i
)
p
j
i
(
w
)
)
)
=
∑
i
,
j
P
~
(
x
i
,
y
j
)
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
+
∑
i
,
j
P
~
(
x
i
)
p
j
i
(
w
)
(
l
o
g
(
p
j
i
(
w
)
)
−
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
)
=
∑
i
,
j
P
~
(
x
i
,
y
j
)
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
−
∑
i
,
j
P
~
(
x
i
)
p
j
i
(
w
)
l
o
g
Z
w
(
x
i
)
=
∑
i
,
j
P
~
(
x
i
,
y
j
)
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
−
∑
i
P
~
(
x
i
)
l
o
g
Z
w
(
x
i
)
\begin{array}{lll} L(p_{ji}(w), w)&=&\sum_{i,j}\widetilde{P}(x_i)p_{ji}(w)log(p_{ji}(w))+\sum_{k=1}^nw_k\sum_{i,j}\left(f_k(x_i, y_j)(\widetilde{P}(x_i, y_j)-\widetilde{P}(x_i)p_{ji}(w))\right)\\ &=&\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)+\sum_{i, j}\widetilde{P}(x_i)p_{ji}(w)\left(log(p_{ji}(w))-\sum_{k=1}^nw_kf_k(x_i, y_j)\right)\\ &=&\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)-\sum_{i, j}\widetilde{P}(x_i)p_{ji}(w)logZ_w(x_i)\\ &=&\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)-\sum_{i}\widetilde{P}(x_i)logZ_w(x_i) \end{array}
L(pji(w),w)====∑i,jP
(xi)pji(w)log(pji(w))+∑k=1nwk∑i,j(fk(xi,yj)(P
(xi,yj)−P
(xi)pji(w)))∑i,jP
(xi,yj)∑k=1nwkfk(xi,yj)+∑i,jP
(xi)pji(w)(log(pji(w))−∑k=1nwkfk(xi,yj))∑i,jP
(xi,yj)∑k=1nwkfk(xi,yj)−∑i,jP
(xi)pji(w)logZw(xi)∑i,jP
(xi,yj)∑k=1nwkfk(xi,yj)−∑iP
(xi)logZw(xi)
与此同时,对于最大熵模型
P
(
Y
=
y
j
∣
X
=
x
i
)
=
p
j
i
P(Y=y_j|X=x_i)=p_{ji}
P(Y=yj∣X=xi)=pji,我们可以写出似然函数
L
(
p
j
i
)
=
l
o
g
Π
i
,
j
p
j
i
∣
T
∣
⋅
P
~
(
X
=
x
i
,
Y
=
y
i
)
=
∣
T
∣
⋅
∑
i
,
j
P
~
(
x
i
,
y
j
)
l
o
g
(
p
j
i
(
w
)
)
=
∣
T
∣
⋅
(
∑
i
,
j
P
~
(
x
i
,
y
j
)
∑
k
=
1
n
w
k
f
k
(
x
i
,
y
j
)
−
∑
i
P
~
(
x
i
)
l
o
g
Z
w
(
x
i
)
)
\begin{array}{lll} L(p_{ji})&=&log\Pi_{i, j}p_{ji}^{|T|\cdot\widetilde{P}(X=x_i, Y=y_i)}\\ &=&|T|\cdot\sum_{i, j}\widetilde{P}(x_i, y_j)log(p_{ji}(w))\\ &=&|T|\cdot\left(\sum_{i, j}\widetilde{P}(x_i, y_j)\sum_{k=1}^nw_kf_k(x_i, y_j)-\sum_{i}\widetilde{P}(x_i)logZ_w(x_i)\right) \end{array}
L(pji)===logΠi,jpji∣T∣⋅P
(X=xi,Y=yi)∣T∣⋅∑i,jP
(xi,yj)log(pji(w))∣T∣⋅(∑i,jP
(xi,yj)∑k=1nwkfk(xi,yj)−∑iP
(xi)logZw(xi))
观察 L ( p j i ) L(p_{ji}) L(pji) 和 L ( p j i ( w ) , w ) L(p_{ji}(w), w) L(pji(w),w),发现它们只有常数因子不同,因此,对于它们的优化而言是等价的。因此,最大熵模型的极大似然估计与对偶问题的最优化是等价的。
实际上,观察 L ( p j i ) L(p_{ji}) L(pji) 的形式,与逻辑斯谛回归的似然函数是非常类似的。对于这种类似的目标函数,作者提出可以用 迭代尺度法、梯度下降法和牛顿法或者拟牛顿法予以解决。
后面如果允许,将依次介绍这三种方法,以及他们在这两个模型上应用。