0 前言
很久以前推了一遍公式,但是在后面看到RNN预测语言模型使用softmax的时候仍然是一脸懵,所以现在重头整理了一下,发现有不一样的理解。
1. 概况
这个模型主要是应用于多分类的问题,传说二分类的利器——logistics模型其实是最大熵模型的一种特殊情况。在这里为了直观,首先给出logistics模型和最大熵模型的使用方法。
1.1 数据集的形式
数据集 T = { ( x 1 , y 1 ) , . . . , ( x n , y N ) } T=\{(\boldsymbol{x_1},y_1),...,(\boldsymbol{x_n},y_N)\} T={(x1,y1),...,(xn,yN)}, x i \boldsymbol{x_i} xi是一个 m m m维的向量,代表样本空间中的第 i i i个值。
1.2 logistics模型
1.2.1 二分类的logistics模型
首先,logistics模型在分类任务中,主要应用于二分类,假设离散型变量
Y
Y
Y分类编号为{1, 0},则这个模型长这个B样:
P
(
y
i
=
1
∣
x
i
)
=
exp
(
w
⋅
x
i
)
1
+
exp
(
w
⋅
x
i
)
P
(
y
i
=
−
1
∣
x
i
)
=
1
1
+
exp
(
w
⋅
x
i
)
(1.1)
\begin{aligned} P(y_i=1|\boldsymbol{x_i})=\frac{\exp(\boldsymbol{w}·\boldsymbol{x_i})} {1+\exp(\boldsymbol{w}·\boldsymbol{x_i})}\\ P(y_i=-1|\boldsymbol{x_i})=\frac{1} {1+\exp(\boldsymbol{w}·\boldsymbol{x_i})}\\ \tag{1.1} \end{aligned}
P(yi=1∣xi)=1+exp(w⋅xi)exp(w⋅xi)P(yi=−1∣xi)=1+exp(w⋅xi)1(1.1)
1.2.2 多分类的logistics模型
假设离散型变量
Y
Y
Y分类编号为{1, 2,… ,K},设
Y
i
=
k
Y_i=k
Yi=k代表第
i
i
i个样本的分类结果为
k
k
k,那么:
P
(
Y
i
=
k
∣
x
i
)
=
exp
(
w
k
⋅
x
i
)
1
+
∑
k
=
1
K
−
1
exp
(
w
k
⋅
x
i
)
,
k
=
1
,
2
,
3...
,
K
−
1
P
(
Y
i
=
K
∣
x
i
)
=
1
1
+
∑
k
=
1
K
−
1
exp
(
w
k
⋅
x
i
)
(1.2)
\begin{aligned} P(Y_i=k|\boldsymbol{x_i})=&\frac{\exp(\boldsymbol{w_k}·\boldsymbol{x_i})}{1+\sum_{k=1}^{K-1}\exp(\boldsymbol{w_k}·\boldsymbol{x_i})},\ k=1,2,3...,K-1\\ P(Y_i=K|\boldsymbol{x_i})=&\frac{1}{1+\sum_{k=1}^{K-1}\exp(\boldsymbol{w_k}·\boldsymbol{x_i})} \tag{1.2} \end{aligned}
P(Yi=k∣xi)=P(Yi=K∣xi)=1+∑k=1K−1exp(wk⋅xi)exp(wk⋅xi), k=1,2,3...,K−11+∑k=1K−1exp(wk⋅xi)1(1.2)
上式中:
- Y i Y_i Yi代表第 i i i个样本的标签值;
- x i \boldsymbol{x_i} xi代表第 i i i个样本的特征值,是一个 m m m维的向量;
- k k k代表第 k k k个类别;
-
w
k
\boldsymbol{w_k}
wk代表第
k
k
k个类别对应的参数,是一个
m
m
m维的向量;
表示第 i i i个样本属于第 k k k类的概率。
1.3 softmax模型
P
(
y
i
=
k
∣
x
i
)
=
exp
(
w
k
⋅
x
i
)
∑
k
=
1
K
exp
(
w
k
⋅
x
i
)
,
k
=
1
,
2
,
3...
,
K
;
(1.3)
\begin{aligned} P(y_i=k|\boldsymbol{x_i})=\frac{\exp(\boldsymbol{w_k}·\boldsymbol{x_i})} {\sum_{k=1}^{K}\exp(\boldsymbol{w_k}·\boldsymbol{x_i})}, k=1,2,3...,K; \tag{1.3} \end{aligned}
P(yi=k∣xi)=∑k=1Kexp(wk⋅xi)exp(wk⋅xi),k=1,2,3...,K;(1.3)
上式中:
- Y i Y_i Yi代表第 i i i个样本的标签值;
- x i \boldsymbol{x_i} xi代表第 i i i个样本的特征值,是一个 m m m维的向量;
- k k k代表第 k k k个类别;
- w k \boldsymbol{w_k} wk代表第 k k k个类别对应的参数,是一个 m m m维的向量;
表示第 i i i个样本属于第 k k k类的概率。
1.4 最大熵模型
最大熵模型主要应用于二分类或者多分类首先这个模型长这个B样:
P
(
y
=
k
∣
x
)
=
exp
(
w
i
⋅
f
i
(
x
,
y
)
)
∑
y
exp
(
∑
i
=
1
n
w
i
⋅
f
i
(
x
,
y
)
)
,
i
=
1
,
2
,
3...
,
n
(1.4)
\begin{aligned} P(y=k|\boldsymbol{x})=\frac{\exp({w_i}·f_i(\boldsymbol{x},y))} {\sum_y \exp(\sum_{i=1}^{n}{w_i}·f_i(\boldsymbol{x},y))}, i=1,2,3...,n \tag{1.4} \end{aligned}
P(y=k∣x)=∑yexp(∑i=1nwi⋅fi(x,y))exp(wi⋅fi(x,y)),i=1,2,3...,n(1.4)
在上式中:
-
f
(
x
)
f(x)
f(x)是一个特征函数:
“如果 x , y x,y x,y满足某种条件”,这句话一开始让我摸不着头脑,后来才明白,可以把它看成, x , y x,y x,y这种组合若出现在样本空间中,则为1,否则为0。它们的个数为 n n n个(样本的个数)。
举个栗子:当体温小于38,血压小于100,血糖小于30时,总是得小病。这就是一个综合后的先验知识。
我们可以据此定义一个特征函数:f(x,y) = 1 当且仅当 x ={体温小于38,血压小于100,血糖小于30},y=小病
- w i w_i wi是特征的权值。
2. 最大熵模型的推导
想要弄清楚最大熵模型、logistics模型以及softmax模型之间的关系,我们需要先看看他们各自的原理。首先从最大熵模型入手。
2.1 最大熵原理
学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常通过约束条件来确定概率模型的集合。
首先要明确两个问题:
- 熵最大有什么意义吗?
我们之前提过信息熵表示不确定程度,所以熵最大,也就是系统的不确定程度最大,系统中没有任何个人的主观假设。 - 最大熵是什么?
当你要猜一个概率分布时,如果你对这个分布一无所知,那就猜熵最大的均匀分布,如果你对这个分布知道一些情况,那么,就猜满足这些情况的熵最大的分布。
下面两个网址是描述的比较清楚的:
- 图解最大熵原理(The Maximum Entropy Principle)
- 决策树-脚注:为什么在等概率的情况下,熵能达到最大值?
2.2 理论推导
2.2.1 数据准备
数据集 T = { ( x 1 , y 1 ) , . . . , ( x n , y N ) } T=\{(\boldsymbol{x_1},y_1),...,(\boldsymbol{x_n},y_N)\} T={(x1,y1),...,(xn,yN)}, x i \boldsymbol{x_i} xi是一个 m m m维的向量,代表样本空间中的第 i i i个值,类标签为 y = { 1 , 2 , . . , k } y=\{1, 2,..,k\} y={1,2,..,k}。
那么,根据样本空间中的 n n n条数据,可以计算 x x x的概率分布以及 x , y \boldsymbol{x},y x,y的联合概率分布,分别记为 P ~ ( x ) \widetilde{P}(\boldsymbol{x}) P (x)和 P ~ ( x , y ) \widetilde{P}(\boldsymbol{x},y) P (x,y)(因为是根据样本数据求出来的,并不能代表真实世界中的分布,所以上面加了波浪线)。
2.2.2 理论依据
2.2.2.1 目标
因为熵最大的模型是最好的模型,我们的任务就是找到这样一个最好的模型。但是,俗话说,最适合自己的才是最好的,所以,找最大熵就变成了找在给定样本空间条件下的最大熵模型——条件熵,根据条件熵的定义,条件熵为:(为什么请看这里:《决策树【python实现】》— 条件熵)
H
(
P
)
=
−
∑
x
,
y
P
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
H(P) = -\sum_{x,y} P(x,y)logP(y|x)
H(P)=−x,y∑P(x,y)logP(y∣x)
根据贝叶斯公式,又可以写成
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
(2.1)
H(P) = -\sum_{x,y} \widetilde{P}(x)P(y|x)logP(y|x) \tag{2.1}
H(P)=−x,y∑P
(x)P(y∣x)logP(y∣x)(2.1)
这个时候,我们只要找到最大的 P ( y ∣ x ) P(y|x) P(y∣x)就好了。
2.2.2.1 条件
公式(2.1)中条件概率的意义是:根据特征 x \boldsymbol{x} x计算出属于 y y y的概率能够最大化, y y y的编号为 k k k。也就是说,我们的目标是求 P ( y i = k ∣ x i ) P(y_i=k|\boldsymbol{x_i}) P(yi=k∣xi),简写为 P ( y ∣ x ) P(y|\boldsymbol{x}) P(y∣x)。
但是,仅仅一个样本上表现出良好的性能还不够,要在整个空间上都表现良好。根据我们手上的筹码:样本数据,再借助之前提到的特征函数,我们可以很好的量化这个评价指标,于是有就有了下面两个期望的计算公式:
- 特征函数
f
(
x
,
y
)
f(\boldsymbol{x},y)
f(x,y)关于
P
~
(
x
,
y
)
\widetilde{P}(\boldsymbol{x},y)
P
(x,y)的期望值为:
E P ~ ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) (2.2) E_{\widetilde{P}}(f)=\sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x},y)f(\boldsymbol{x},y) \tag{2.2} EP (f)=x,y∑P (x,y)f(x,y)(2.2) - 由于我们的目标是求
P
(
y
∣
x
)
P(y|\boldsymbol{x})
P(y∣x),那么,借助贝叶斯公式,我们可以得出第二个期望的计算公式:
E P ( f ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) (2.3) E_{P}(f)=\sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})f(\boldsymbol{x},y) \tag{2.3} EP(f)=x,y∑P (x)P(y∣x)f(x,y)(2.3)
如果,在样本空间中,这俩公式能相等的话,就十分完美了,于是有:
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
(2.4)
\sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x},y)f(\boldsymbol{x},y)=\sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})f(\boldsymbol{x},y) \tag{2.4}
x,y∑P
(x,y)f(x,y)=x,y∑P
(x)P(y∣x)f(x,y)(2.4)
根据 f ( x , y ) f(\boldsymbol{x},y) f(x,y)的定义可知,有多少种特征和类标签前的组合,就有多少个**约束条件。那么,把样本空间中的所有约束条件都算上,
那么,也就是说,我们要在这个空间中找一个没有任何主观假设的模型,即条件概率的最大熵。
2.3 具体化最大熵模型目标函数
说实话,上面的式子,很抽象,需要转化一下。
2.3.1 把求max的问题转化成求min的问题。
max
p
∈
C
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
\underset{p \in C}{\max}\ H(P) = -\sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})logP(y|\boldsymbol{x})
p∈Cmax H(P)=−x,y∑P
(x)P(y∣x)logP(y∣x)
等价于求
min
p
∈
C
−
H
(
P
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
(2.5)
\underset{p \in C}{\min}\ -H(P) = \sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})logP(y|\boldsymbol{x})\tag{2.5}
p∈Cmin −H(P)=x,y∑P
(x)P(y∣x)logP(y∣x)(2.5)
引入拉格朗日算子
w
1
,
w
2
,
.
.
.
,
w
n
w_1,w_2,...,w_n
w1,w2,...,wn,可得到方程:
L
(
P
,
w
)
=
−
H
(
P
)
+
w
0
(
1
−
∑
y
P
(
y
∣
x
)
)
+
∑
i
=
1
n
[
w
i
(
E
P
(
f
i
(
x
,
y
)
)
−
E
P
~
(
f
i
(
x
,
y
)
)
)
]
(2.6)
\begin{aligned} L(P, w) &= -H(P) + w_0(1-\sum_{y}P(y|\boldsymbol{x})) + \sum_{i=1}^{n}[w_i (E_P(f_i(\boldsymbol{x},y))-E_{ \widetilde{P}}(f_i(\boldsymbol{x},y)))] \tag{2.6}\\ \end{aligned}
L(P,w)=−H(P)+w0(1−y∑P(y∣x))+i=1∑n[wi(EP(fi(x,y))−EP
(fi(x,y)))](2.6)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
+
w
0
[
1
−
∑
y
P
(
y
∣
x
)
]
+
∑
i
=
1
n
{
w
i
[
∑
x
,
y
P
(
x
,
y
)
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
i
(
x
,
y
)
]
}
(2.7)
\begin{aligned} &= \sum_{\boldsymbol{x},y} \widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})logP(y|\boldsymbol{x})+ \\&w_0[1-\sum_{y}P(y|\boldsymbol{x})]+ \\&\sum_{i=1}^{n} \{ w_i [\sum_{\boldsymbol{x},y }P(\boldsymbol{x},y)f_i(\boldsymbol{x},y) - \sum_{\boldsymbol{x},y }\widetilde{P}(\boldsymbol{x})P(y|\boldsymbol{x})f_i(\boldsymbol{x},y)] \}\tag{2.7} \end{aligned}
=x,y∑P
(x)P(y∣x)logP(y∣x)+w0[1−y∑P(y∣x)]+i=1∑n{wi[x,y∑P(x,y)fi(x,y)−x,y∑P
(x)P(y∣x)fi(x,y)]}(2.7)
2.3.2 转化为对偶问题
由最优化问题可知,我们的目标是求:
min
p
∈
C
max
w
L
(
P
,
w
)
(2.8-1)
\begin{aligned} \underset{p \in C}{\min}\ \underset{w}{\max}\ L(P,w)\tag{2.8-1} \end{aligned}
p∈Cmin wmax L(P,w)(2.8-1)
可转化为:
max
w
min
p
∈
C
L
(
P
,
w
)
(2.8-2)
\begin{aligned} \underset{w}{\max}\ \underset{p \in C}{\min}\ L(P,w)\tag{2.8-2} \end{aligned}
wmax p∈Cmin L(P,w)(2.8-2)
基本思想是:先把 min p ∈ C L ( P , w ) \underset{p \in C}{\min}\ L(P,w) p∈Cmin L(P,w)的解用 w w w表示出来,然后再求 w w w的解即可。
2.3.2.1 第一步
先求 min p ∈ C L ( P , w ) \underset{p \in C}{\min}\ L(P,w) p∈Cmin L(P,w):
当
L
(
P
,
w
)
L(P,w)
L(P,w)满足约束条件时,令
ψ
(
w
)
=
min
p
∈
C
L
(
P
,
w
)
=
L
(
P
w
,
w
)
(2.9)
\psi(w) = \underset{p \in C}{\min}\ L(P,w) = L(P_w,w) \tag{2.9}
ψ(w)=p∈Cmin L(P,w)=L(Pw,w)(2.9)
设
ψ
(
w
)
\psi(w)
ψ(w)的解为
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x),求
L
(
P
,
w
)
L(P,w)
L(P,w)对
P
(
y
∣
x
)
P(y|x)
P(y∣x)的偏导数,并令其为0:
∂
L
(
P
,
w
)
∂
p
(
y
∣
x
)
=
∑
x
,
y
{
P
~
(
x
)
l
o
g
P
(
y
∣
x
)
+
P
~
(
x
)
}
−
∑
y
w
0
+
∑
i
=
1
n
{
w
i
[
0
−
∑
x
,
y
P
~
(
x
)
f
i
(
x
,
y
)
]
}
\begin{aligned} \frac{\partial {L(P, w)}}{\partial{p(y|x)}} &= \sum_{x,y} \{ \widetilde{P}(x)logP(y|x) + \widetilde{P}(x)\} - \sum_{y}w_0 + \sum_{i=1}^{n} \{ w_i [0 - \sum_{x,y }\widetilde{P}(x)f_i(x,y) ] \} \\ \end{aligned}
∂p(y∣x)∂L(P,w)=x,y∑{P
(x)logP(y∣x)+P
(x)}−y∑w0+i=1∑n{wi[0−x,y∑P
(x)fi(x,y)]}
因为:
∑
x
P
~
(
x
)
=
1
\sum_{x}\widetilde{P}(x)=1
∑xP
(x)=1,所以有:
∑
x
,
y
P
~
(
x
)
w
0
=
∑
y
w
0
\sum_{x,y}\widetilde{P}(x)w_0 = \sum_{y}w_0
x,y∑P
(x)w0=y∑w0
所以有:
∂
L
(
P
,
w
)
∂
p
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
)
−
∑
x
,
y
P
~
(
x
)
w
0
−
∑
i
=
1
n
{
w
i
∑
x
,
y
P
~
(
x
)
f
i
(
x
,
y
)
}
=
∑
x
,
y
P
~
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
)
−
∑
x
,
y
P
~
(
x
)
w
0
−
∑
i
=
1
n
{
w
i
∑
x
,
y
P
~
(
x
)
f
i
(
x
,
y
)
}
=
∑
x
,
y
P
~
(
x
)
{
(
l
o
g
P
(
y
∣
x
)
+
1
)
−
w
0
−
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
}
(2.10)
\begin{aligned} \frac{\partial {L(P, w)}}{\partial{p(y|x)}} &= \sum_{x,y}\widetilde{P}(x) ( logP(y|x) + 1) - \sum_{x,y}\widetilde{P}(x)w_0 - \sum_{i=1}^{n} \{ w_i \sum_{x,y }\widetilde{P}(x)f_i(x,y) \} \\ &= \sum_{x,y}\widetilde{P}(x) ( logP(y|x) + 1) - \sum_{x,y}\widetilde{P}(x)w_0 - \sum_{i=1}^{n} \{ w_i \sum_{x,y }\widetilde{P}(x)f_i(x,y) \} \\ &= \sum_{x,y}\widetilde{P}(x) \{( logP(y|x) + 1) - w_0 - \sum_{i=1}^{n} w_i f_i(x,y) \}\tag{2.10} \end{aligned}
∂p(y∣x)∂L(P,w)=x,y∑P
(x)(logP(y∣x)+1)−x,y∑P
(x)w0−i=1∑n{wix,y∑P
(x)fi(x,y)}=x,y∑P
(x)(logP(y∣x)+1)−x,y∑P
(x)w0−i=1∑n{wix,y∑P
(x)fi(x,y)}=x,y∑P
(x){(logP(y∣x)+1)−w0−i=1∑nwifi(x,y)}(2.10)
令式(2.10)为
0
0
0,则有:
0
=
∑
x
,
y
P
~
(
x
)
{
(
l
o
g
P
(
y
∣
x
)
+
1
)
−
w
0
−
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
}
p
(
y
∣
x
)
=
exp
(
w
0
+
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
1
)
p
(
y
∣
x
)
=
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
exp
(
1
−
w
0
)
(2.11)
\begin{aligned} 0 =& \sum_{x,y}\widetilde{P}(x) \{( logP(y|x) + 1) - w_0 - \sum_{i=1}^{n} w_i f_i(x,y)\} \\ p(y|x) =& \exp ( w_0 + \sum_{i=1}^{n} w_i f_i(x,y)-1 ) \\ p(y|x) =& \frac{\exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\exp(1-w_0)} \tag{2.11} \end{aligned}
0=p(y∣x)=p(y∣x)=x,y∑P
(x){(logP(y∣x)+1)−w0−i=1∑nwifi(x,y)}exp(w0+i=1∑nwifi(x,y)−1)exp(1−w0)exp(∑i=1nwifi(x,y))(2.11)
又因
∑
y
p
(
y
∣
x
)
=
1
\sum_{y}p(y|x)=1
∑yp(y∣x)=1,代入公式(2.11),则有:
1
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
exp
(
1
−
w
0
)
exp
(
1
−
w
0
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
(2.12)
\begin{aligned} 1 =& \sum_{y} \frac{\exp(\sum_{i=1}^{n} w_i f_i(x,y))} {\exp (1-w_0) } \\ \exp(1-w_0) =& \sum_{y} \exp (\sum_{i=1}^{n} w_i f_i(x,y)) \tag{2.12} \end{aligned}
1=exp(1−w0)=y∑exp(1−w0)exp(∑i=1nwifi(x,y))y∑exp(i=1∑nwifi(x,y))(2.12)
令(2.12)为
Z
w
(
x
)
Z_w(x)
Zw(x),代入(2.11),结果记为
p
w
(
y
∣
x
)
p_w(y|x)
pw(y∣x),则有
p
w
(
y
∣
x
)
=
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
(2.13)
\begin{aligned} p_w(y|x) =& \frac{\exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} \exp (\sum_{i=1}^{n} w_i f_i(x,y))} \tag{2.13} \end{aligned}
pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))(2.13)
因此,优化目标
ψ
(
x
)
\psi(x)
ψ(x)的解为公式(2.13),其中
Z
w
(
x
)
Z_w(x)
Zw(x)被称为规范化因子。
2.3.2.2 第二步
再使(2.13)极大化,求
w
w
w。
即求
max
w
ψ
(
w
)
(2.14)
\begin{aligned} \underset{w}{\max}\ \psi(w) \tag{2.14} \end{aligned}
wmax ψ(w)(2.14)
由于(2.13)式并没有一个显式的解析解,因此需要借助于数值的方法。由于是一个光滑的凸函数,所以可以求解的方法很多。可以使用的方法有:
- 通用迭代尺度法(GIS: Generalized Iterative Scaling)。
- 改进的迭代尺度法(IIS: Improved Iterative Scaling)。
- 梯度下降算法
- 拟牛顿法(牛顿法)
其中,前两个方法是专门为最大熵模型而设计的,后两种方法为通用的算法。
其实到这里,最大熵模型的理论推导就算结束了。
2.4 最大熵模型的似然估计
在公式(2.14)中,因为
p
w
(
y
∣
x
)
p_w(y|x)
pw(y∣x)是在
∑
y
p
(
y
∣
x
)
=
1
\sum_y p(y|x)=1
∑yp(y∣x)=1的条件下得出,故而有:
L
(
P
w
,
w
)
=
−
H
(
P
w
)
+
∑
i
=
1
n
[
w
i
(
E
P
~
(
f
i
(
x
,
y
)
)
−
E
P
w
(
f
i
(
x
,
y
)
)
)
]
=
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
l
o
g
P
w
(
y
∣
x
)
+
∑
i
=
1
n
w
i
(
E
P
~
(
f
i
(
x
,
y
)
)
−
∑
x
,
y
P
~
(
x
)
⋅
P
w
(
y
∣
x
)
⋅
f
i
(
x
,
y
)
)
=
∑
i
=
1
n
w
i
⋅
E
P
~
(
f
i
(
x
,
y
)
)
+
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
⋅
(
l
o
g
P
w
(
y
∣
x
)
−
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
(2.15)
\begin{aligned} L(P_w, w) &= -H(P_w) + \sum_{i=1}^{n} [w_i (E_{\widetilde{P}} (f_i(x,y)) - E_{P_w}(f_i(x,y)))] \\ &=\sum_{x,y} \widetilde{P}(x) P_w(y|x) log P_w(y|x) + \sum_{i=1}^{n} w_i (E_{\widetilde{P}} (f_i(x,y)) - \sum_{x,y}\widetilde{P}(x)·P_w(y|x)·f_i(x,y)) \\ &= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) + \sum_{x,y} \widetilde{P}(x) P_w(y|x)·(log P_w(y|x) - \sum_{i=1}^{n} w_if_i(x,y)) \tag{2.15} \end{aligned}
L(Pw,w)=−H(Pw)+i=1∑n[wi(EP
(fi(x,y))−EPw(fi(x,y)))]=x,y∑P
(x)Pw(y∣x)logPw(y∣x)+i=1∑nwi(EP
(fi(x,y))−x,y∑P
(x)⋅Pw(y∣x)⋅fi(x,y))=i=1∑nwi⋅EP
(fi(x,y))+x,y∑P
(x)Pw(y∣x)⋅(logPw(y∣x)−i=1∑nwifi(x,y))(2.15)
将
P
w
(
y
∣
x
)
=
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
∑
y
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
(2.13)
\begin{aligned} P_w(y|x) =& \frac{exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} exp (\sum_{i=1}^{n} w_i f_i(x,y))}\tag{2.13} \end{aligned}
Pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))(2.13)
代入公式(2.15),得
L
(
P
w
,
w
)
=
∑
i
=
1
n
w
i
⋅
E
P
~
(
f
i
(
x
,
y
)
)
+
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
⋅
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
l
o
g
P
w
(
x
)
−
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
=
∑
i
=
1
n
w
i
⋅
E
P
~
(
f
i
(
x
,
y
)
)
−
l
o
g
Z
w
(
x
)
⋅
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
=
∑
i
=
1
n
w
i
⋅
E
P
~
(
f
i
(
x
,
y
)
)
−
l
o
g
Z
w
(
x
)
⋅
(
∑
x
∑
y
P
~
(
x
)
P
w
(
y
∣
x
)
)
=
∑
i
=
1
n
w
i
⋅
E
P
~
(
f
i
(
x
,
y
)
)
−
l
o
g
Z
w
(
x
)
⋅
(
∑
x
P
~
(
x
)
)
=
∑
i
=
1
n
w
i
⋅
∑
x
,
y
P
~
(
x
,
y
)
f
i
(
x
,
y
)
−
l
o
g
Z
w
(
x
)
⋅
(
∑
x
P
~
(
x
)
)
(2.17)
\begin{aligned} L(P_w, w) &= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) + \sum_{x,y} \widetilde{P}(x) P_w(y|x)·(\sum_{i=1}^{n} w_i f_i(x,y)-logP_w(x) - \sum_{i=1}^{n} w_if_i(x,y)) \\ &= \sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) · \sum_{x,y} \widetilde{P}(x) P_w(y|x)\\ &=\sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) ·( \sum_{x}\sum_{y} \widetilde{P}(x) P_w(y|x)) \\ &=\sum_{i=1}^{n}w_i ·E_{\widetilde{P}}(f_i(x,y)) - logZ_w(x) ·( \sum_{x}\widetilde{P}(x))\\ &=\sum_{i=1}^{n}w_i ·\sum_{x,y} \widetilde{P}(x,y)f_i(x,y) - logZ_w(x) ·( \sum_{x}\widetilde{P}(x))\tag{2.17} \end{aligned}
L(Pw,w)=i=1∑nwi⋅EP
(fi(x,y))+x,y∑P
(x)Pw(y∣x)⋅(i=1∑nwifi(x,y)−logPw(x)−i=1∑nwifi(x,y))=i=1∑nwi⋅EP
(fi(x,y))−logZw(x)⋅x,y∑P
(x)Pw(y∣x)=i=1∑nwi⋅EP
(fi(x,y))−logZw(x)⋅(x∑y∑P
(x)Pw(y∣x))=i=1∑nwi⋅EP
(fi(x,y))−logZw(x)⋅(x∑P
(x))=i=1∑nwi⋅x,y∑P
(x,y)fi(x,y)−logZw(x)⋅(x∑P
(x))(2.17)
又因为最大熵模型的似然估计有:
L
P
~
(
P
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
,
y
)
⋅
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
l
o
g
Z
w
(
x
)
)
=
∑
x
,
y
P
~
(
x
,
y
)
⋅
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
l
o
g
Z
w
(
x
)
⋅
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
(2.18)
\begin{aligned} L_{\widetilde{P}}(P_w) &= \sum_{x,y} \widetilde{P}(x,y)logP(y|x) \\ &=\sum_{x,y} \widetilde{P}(x,y)·(\sum_{i=1}^{n}w_i f_i(x,y)-logZ_w(x)) \\ &= \sum_{x,y} \widetilde{P}(x,y)·\sum_{i=1}^{n}w_i f_i(x,y) - logZ_w(x) · \sum_{x,y} \widetilde{P}(x) P_w(y|x) \tag{2.18} \end{aligned}
LP
(Pw)=x,y∑P
(x,y)logP(y∣x)=x,y∑P
(x,y)⋅(i=1∑nwifi(x,y)−logZw(x))=x,y∑P
(x,y)⋅i=1∑nwifi(x,y)−logZw(x)⋅x,y∑P
(x)Pw(y∣x)(2.18)
所以公式(3.1)=(2.16)。故而,对偶函数的极大化 = 最大熵模型的似然估计。
3. 三个模型的关系
最大熵模型
p w ( y ∣ x ) = exp ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) \begin{aligned} p_w(y|x) =& \frac{\exp (\sum_{i=1}^{n} w_i f_i(x,y))} {\sum_{y} \exp (\sum_{i=1}^{n} w_i f_i(x,y))} \end{aligned} pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))
logistic 模型
当特征函数为:
f
i
(
x
)
=
{
x
i
y
=
1
0
y
=
0
f_i(x)= \left\{\begin{matrix} x_i & y=1\\ 0 & y=0 \end{matrix}\right.
fi(x)={xi0y=1y=0
当我们分类的数目为
{
0
,
1
}
\{0, 1\}
{0,1}时:
p
w
(
y
i
=
0
∣
x
i
)
=
1
1
+
exp
(
w
x
i
)
\begin{aligned} p_w(y_i=0|x_i) =& \frac{1} {1+\exp (\boldsymbol{w x_i})} \end{aligned}
pw(yi=0∣xi)=1+exp(wxi)1
p
w
(
y
i
=
1
∣
x
i
)
=
exp
(
w
x
i
)
1
+
exp
(
w
x
i
)
\begin{aligned} p_w(y_i=1|x_i) =& \frac{\exp (\boldsymbol{w x_i})} {1+\exp (\boldsymbol{w x_i})} \end{aligned}
pw(yi=1∣xi)=1+exp(wxi)exp(wxi)
softmax 模型
当特征函数为:
f
i
(
x
)
=
x
i
f_i(x)=x_i
fi(x)=xi
p
w
(
y
i
=
k
∣
x
i
)
=
exp
(
w
k
x
i
)
∑
k
=
1
K
exp
(
w
k
x
i
)
\begin{aligned} p_w(y_i=k|x_i) =& \frac{\exp (\boldsymbol{w_k x_i})} {\sum_{k=1}^{K} \exp (\boldsymbol{w_k x_i})} \end{aligned}
pw(yi=k∣xi)=∑k=1Kexp(wkxi)exp(wkxi)
4. logistic 模型
4.1 使用背景
主要是分类问题,即 x ∈ R x \in R x∈R是样本的特征,而 y ∈ { 0 , 1 } y \in \{0, 1\} y∈{0,1}是类别的标号,那么样本属于某个类别的概率可以用 x x x来直接表示。通俗的来说,就是线性模型外面穿了一层马夹。
4.2 logistics模型构建
Logistics模型的基本思想也是线性回归,其公式为:
P
(
y
i
=
1
∣
x
i
)
=
exp
(
w
⋅
x
i
)
1
+
exp
(
w
⋅
x
i
)
(4.1)
\begin{aligned} P(y_i=1|\boldsymbol{x_i})=\frac{\exp(w·\boldsymbol{x_i})} {1+\exp(w·\boldsymbol{x_i})} \tag{4.1} \end{aligned}
P(yi=1∣xi)=1+exp(w⋅xi)exp(w⋅xi)(4.1)
公式(4.1)被称为sigmoid函数,
同样的,由公式(4.1)可以推导出:
P
(
y
i
=
1
∣
x
i
)
1
−
P
(
y
i
=
1
∣
x
i
)
=
e
w
⋅
x
i
(4.2)
\begin{aligned} \frac{P(y_i=1|\boldsymbol{x_i})}{1-P(y_i=1|\boldsymbol{x_i})}=e^{w·\boldsymbol{x_i}} \tag{4.2} \end{aligned}
1−P(yi=1∣xi)P(yi=1∣xi)=ew⋅xi(4.2)
称公式(1.2)为几率,表示某种事情发生的可能性与不可能发生的可能性之比。,取自然对数则有:
ln
(
P
(
y
i
=
1
∣
x
i
)
1
−
P
(
y
i
=
1
∣
x
i
)
)
=
w
⋅
x
i
(4.3)
\ln(\frac{P(y_i=1|\boldsymbol{x_i})}{1-P(y_i=1|\boldsymbol{x_i})})=w·\boldsymbol{x_i} \tag{4.3}
ln(1−P(yi=1∣xi)P(yi=1∣xi))=w⋅xi(4.3)
其中,
ln
(
P
(
y
i
=
1
∣
x
i
)
1
−
P
(
y
i
=
1
∣
x
i
)
)
\ln(\frac{P(y_i=1|\boldsymbol{x_i})}{1-P(y_i=1|\boldsymbol{x_i})})
ln(1−P(yi=1∣xi)P(yi=1∣xi))称为
P
(
y
∣
x
)
P(y|\boldsymbol{x})
P(y∣x)的 logit 函数。该模型称为 logistics模型,其中
w
w
w反映了当
x
x
x增加一个单位时,样本属于
y
=
1
y=1
y=1类的几率在对数尺度上增加的幅度。
4.3 极大似然估计参数
设
P
(
y
i
=
1
∣
x
i
)
=
π
(
x
i
)
,
P
(
y
i
=
0
∣
x
i
)
=
1
−
π
(
x
i
)
P(y_i=1|\boldsymbol{x_i})=\pi(\boldsymbol{x_i}),P(y_i=0|\boldsymbol{x_i})=1-\pi(\boldsymbol{x_i})
P(yi=1∣xi)=π(xi),P(yi=0∣xi)=1−π(xi),则每个样本
(
x
i
,
y
i
)
(\boldsymbol{x_i}, y_i)
(xi,yi)出现的概率为:
P
(
x
i
,
y
i
)
=
π
(
x
i
)
y
i
(
1
−
π
(
x
i
)
)
1
−
y
i
P(\boldsymbol{x_i}, y_i)=\pi(\boldsymbol{x_i})^{y_i}(1-\pi(\boldsymbol{x_i}))^{1-y_i}
P(xi,yi)=π(xi)yi(1−π(xi))1−yi
似然函数为:
L
(
w
)
=
∏
i
=
1
N
[
π
(
x
i
)
]
y
i
[
1
−
π
(
x
i
)
]
1
−
y
i
log
L
(
w
)
=
∑
i
=
1
N
[
y
i
(
w
⋅
x
i
)
−
log
(
1
+
exp
(
w
⋅
x
i
)
)
]
(4.4)
\begin{aligned} L(w) =&\prod_{i=1}^{N}[\pi(\boldsymbol{x_i})]^{y_i}[1-\pi(\boldsymbol{x_i})]^{1-y_i} \\ \log L(w) =&\sum_{i=1}^{N}[y_i({w}·\boldsymbol{x_i}) - \log(1+\exp({w}·\boldsymbol{x_i}))] \tag{4.4} \end{aligned}
L(w)=logL(w)=i=1∏N[π(xi)]yi[1−π(xi)]1−yii=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))](4.4)
目标是找到
w
w
w使得
L
(
w
)
L(w)
L(w)达到最大值,让公式(1.4)对
w
w
w求导得:
∂
log
L
(
w
)
∂
w
=
∑
i
=
1
N
[
y
i
x
i
−
1
1
+
exp
(
w
⋅
x
i
)
exp
(
w
⋅
x
i
)
⋅
x
i
]
∂
log
L
(
w
)
∂
w
=
∑
i
=
1
N
x
i
[
y
i
−
P
(
y
i
∣
x
i
)
]
(4.5)
\begin{aligned} \frac{\partial{\log L(w)}}{\partial{w}} =&\sum_{i=1}^{N}[y_i\boldsymbol{x_i} - \frac{1}{1+\exp({w}·\boldsymbol{x_i})}\exp({w}·\boldsymbol{x_i})·\boldsymbol{x_i}]\\ \frac{\partial{\log L(w)}}{\partial{w}} =&\sum_{i=1}^{N}\boldsymbol{x_i}[y_i - P(y_i|\boldsymbol{x_i})]\\ \tag{4.5} \end{aligned}
∂w∂logL(w)=∂w∂logL(w)=i=1∑N[yixi−1+exp(w⋅xi)1exp(w⋅xi)⋅xi]i=1∑Nxi[yi−P(yi∣xi)](4.5)
令(1.5)为0,求出 w w w即可,但该方程组无法求解析解,一般使用梯度上升迭代求得。
5. softmax 模型
当特征函数为:
f
i
(
x
)
=
x
i
f_i(x)=x_i
fi(x)=xi
p
w
(
y
i
=
k
∣
x
i
)
=
exp
(
w
k
x
i
)
∑
k
=
1
K
exp
(
w
k
x
i
)
\begin{aligned} p_w(y_i=k|x_i) =& \frac{\exp (\boldsymbol{w_k x_i})} {\sum_{k=1}^{K} \exp (\boldsymbol{w_k x_i})} \end{aligned}
pw(yi=k∣xi)=∑k=1Kexp(wkxi)exp(wkxi)
一个多分类问题,C = 4。线性分类器模型最后输出层包含了四个输出值,分别是:
V
=
[
−
3
2
−
1
0
]
V=\left[ \begin{matrix} -3 \\ 2 \\ -1 \\ 0 \end{matrix} \right]
V=⎣⎢⎢⎡−32−10⎦⎥⎥⎤
经过Softmax处理后,数值转化为相对概率:
S
=
[
0.0057
0.8390
0.0418
0.1135
]
S=\left[ \begin{matrix} 0.0057 \\ 0.8390 \\ 0.0418 \\ 0.1135 \end{matrix} \right]
S=⎣⎢⎢⎡0.00570.83900.04180.1135⎦⎥⎥⎤
很明显,Softmax 的输出表征了不同类别之间的相对概率。我们可以清晰地看出,S1 = 0.8390,对应的概率最大,则更清晰地可以判断预测为第1类的可能性更大。Softmax 将连续数值转化成相对概率,更有利于我们理解。
5.1 一个直观的例子
softmax函数最明显的特点在于:它把每个神经元的输入占当前层所有神经元输入之和的比值,当作该神经元的输出。这使得输出更容易被解释:神经元的输出值越大,则该神经元对应的类别是真实类别的可能性更高。
另外,softmax不仅把神经元输出构造成概率分布,而且还起到了归一化的作用,适用于很多需要进行归一化处理的分类问题。
5.2 softmax相关求导
以下内容来自:softmax的log似然代价函数(公式求导)