logistic回归与最大熵模型
logistic模型
logistic分布
设
X
X
X是连续随机变量,
X
X
X服从logistic分布是指
X
X
X具有下列分布函数和密度函数:
F
(
x
)
=
P
(
X
≤
x
)
=
1
1
+
e
−
x
−
μ
γ
F(x)=P(X \leq x)=\frac{1}{1+e^{-\frac{x-\mu}{\gamma}}}
F(x)=P(X≤x)=1+e−γx−μ1
f
(
x
)
=
F
′
(
x
)
=
e
−
x
−
μ
γ
γ
(
1
+
e
−
x
−
μ
γ
)
2
f(x)=F^\prime(x)=\frac{e^{-\frac{x-\mu}{\gamma}}}{\gamma (1+e^{-\frac{x-\mu}{\gamma}})^2}
f(x)=F′(x)=γ(1+e−γx−μ)2e−γx−μ式子中
μ
\mu
μ为位置参数,
γ
≥
0
\gamma \geq 0
γ≥0为形状参数。图形如下:
形状参数
γ
\gamma
γ的值越小,曲线在中心附近增长的越快,即越陡峭。
二项logistic回归模型
二项logistic模型是一种分类模型,有条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)表示,形式为参数化的logistic分布。这里,随机变量
X
X
X取值为实数,随机变量
Y
Y
Y取值1或0。我们通过监督学习的方法来估计模型参数。
二项logistic回归模型是如下的条件概率分布:
P
(
Y
=
1
∣
x
)
=
e
x
p
(
w
⋅
x
+
b
)
1
+
e
x
p
(
w
⋅
x
+
b
)
P(Y=1|x)=\frac{exp(w·x+b)}{1+exp(w·x+b)}
P(Y=1∣x)=1+exp(w⋅x+b)exp(w⋅x+b)
P
(
Y
=
0
∣
x
)
=
1
1
+
e
x
p
(
w
⋅
x
+
b
)
P(Y=0|x)=\frac{1}{1+exp(w·x+b)}
P(Y=0∣x)=1+exp(w⋅x+b)1几率的定义:是指事件发生概率与该事件不发生的概率的比值。即
p
1
−
p
\frac{p}{1-p}
1−pp对logistic回归而言
P
(
Y
=
1
∣
x
)
1
−
P
(
Y
=
1
∣
x
)
=
w
⋅
x
\frac{P(Y=1|x)}{1-P(Y=1|x)}=w·x
1−P(Y=1∣x)P(Y=1∣x)=w⋅x这里将偏置项
b
b
b去掉,从这个角度来看logistic模型其实就是或者说,输出Y=1的对数几率是由输入x的线性函数表示的模型。
参数估计
设 P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x)=\pi (x),P(Y=0|x)=1-\pi (x) P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)其中 π ( x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) \pi(x)=\frac{exp(w·x)}{1+exp(w·x)} π(x)=1+exp(w⋅x)exp(w⋅x)其似然函数为 ∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^N [\pi(x_i)]^{y_i}[1-\pi(x_i)]^{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 ) ) L(w)=\sum_{i=1}^N[y_i]log\pi(x_i)+(1-y_i)log(1-\pi(x_i)) L(w)=i=1∑N[yi]logπ(xi)+(1−yi)log(1−π(xi))化简得: L ( w ) = ∑ i = 1 N [ y i ( w ⋅ x i ) − l o g ( 1 + e x p ( w ⋅ x i ) ) ] L(w)=\sum_{i=1}^N[y_i(w·x_i)-log(1+exp(w·x_i))] L(w)=i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))]对 L ( w ) L(w) L(w)求极大值,得到 w w w的估计值。
多项式的logistic回归
假设离散型随机变量 Y Y Y的取值集合是 { 1 , 2 , . . . , K } \lbrace 1,2,...,K\rbrace {1,2,...,K},那么多项式logistic回归模型是 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_{k=1}^{K-1}exp(w_k·x)},k=1,2,...,K-1 P(Y=k∣x)=1+∑k=1K−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_{k=1}^{K-1}exp(w_k·x)} P(Y=K∣x)=1+∑k=1K−1exp(wk⋅x)1这样就将其推广到了多项式的情况。
最大熵模型
最大熵模型由最大熵原理推导实现。
最大熵原理
最大熵原理认为,学习概率时,在所有可能的概率模型中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。在满足约束的条件(保证精度)下有很多模型,原则上来说这些模型都是可取的,但是从泛化角度来说这些模型中熵值最大的那个也就是说最不确定的那个是最好的模型,因为这样能够尽可能的包含未知数据的信息。
最大熵模型定义
最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。
给定一个训练数据集
T
=
{
(
x
i
,
y
i
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\lbrace (x_i,y_i),(x_2,y_2),...,(x_N,y_N) \rbrace
T={(xi,yi),(x2,y2),...,(xN,yN)}学习的目标是用最大熵原理选择最好的分类模型。
给定一个训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T=\lbrace (x_1,y_1),(x_2,y_2),...,(x_N,y_N) \rbrace
T={(x1,y1),(x2,y2),...,(xN,yN)}学习的目标是用最大熵原理选择最好的分类模型。
首先考虑模型应该满足的条件。给定训练数据集,可以确定联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的经验分布和边缘分布
P
(
X
)
P(X)
P(X)的经验分布,分别以
P
~
(
X
,
Y
)
\widetilde{P}(X,Y)
P
(X,Y)和
P
~
(
X
)
\widetilde{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)出现的频次,
ν
(
X
=
x
)
\nu(X=x)
ν(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, & \text {x与y满足某一事实} \\ 0, & \text{否则} \end{cases}
f(x,y)={1,0,x与y满足某一事实否则它是一个二值函数,当
x
x
x和
y
y
y满足这个事实时取值为1,否则取值为0。特征函数
f
(
X
,
Y
)
f(X,Y)
f(X,Y)关于经验分布
P
~
(
X
,
Y
)
\widetilde{P}(X,Y)
P
(X,Y)的期望值,用
E
P
~
(
f
)
E_{\widetilde{P}}(f)
EP
(f)表示。
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)特征函数
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_{x,y} \widetilde{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
)
E_P(f)=E_{\widetilde{P}}(f)
EP(f)=EP
(f)我们将上式作为最大熵模型的约束条件。定义在条件概率分布
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)
最大熵模型的学习
最大熵模型的学习等价与约束优化问题: min P ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) \min_{P \in C} \quad -H(P)=\sum_{x,y}\widetilde{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 ) − E P ~ ( f ) = 0 , i = 1 , 2 , . . . , n s.t. \quad E_P(f)-E_{\widetilde{P}}(f)=0, \quad i=1,2,...,n s.t.EP(f)−EP (f)=0,i=1,2,...,n 1 − ∑ y P ( y ∣ x ) = 0 1-\sum_yP(y|x)=0 1−y∑P(y∣x)=0上式中可以通过构造拉格朗日函数 L ( P , w ) L(P,w) L(P,w)求解,由于拉格朗日函数是一个凸函数因此其对偶问题与原问题是同解的,最优化问题为 min P ∈ C max w L ( P , w ) \min_{P \in C} \max_wL(P,w) P∈CminwmaxL(P,w)其对偶问题为: max w min P ∈ C L ( P , w ) \max_w \min_{P \in C}L(P,w) wmaxP∈CminL(P,w)通过解对偶问题的内层可以求得 P w ( y ∣ x ) P_w(y|x) Pw(y∣x)如下 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(\sum_{i=1}^nw_if_i(x,y)) 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(\sum_{i=1}^nw_if_i(x,y)) Zw(x)=y∑exp(i=1∑nwifi(x,y))上式为最大熵模型更一般的形式。上式得到了 P w ( x , y ) P_w(x,y) Pw(x,y)与 w w w的关系然后带入到拉格朗日函数中在极大化最后求得 w w w。
模型学习的最优化算法
logistic回归模型与最大熵模型学习归纳为以似然函数为目标函数的最优化问题,通常通过迭代算法求解。它是光滑的凸函数,因此多种最优化的方法都适用,保证能找到全局最优解。常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法与拟牛顿法一般收敛速度更快。
改进的迭代尺度法
算法如下:
输入:特征函数
f
1
.
f
2
,
.
.
.
,
f
n
f_1.f_2,...,f_n
f1.f2,...,fn;经验分布
P
^
(
X
,
Y
)
\hat{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∗
- 对所有 i ∈ { 1 , 2 , . . . , n } i \in \lbrace 1,2,...,n \rbrace i∈{1,2,...,n},取初值 w i = 0 w_i=0 wi=0
- 对每一个
i
∈
{
1
,
2
,
.
.
.
,
n
}
i \in \lbrace 1,2,...,n \rbrace
i∈{1,2,...,n}:
(1).令 δ i \delta_i δi是方程 ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) e x p ( δ i f # ( x , y ) ) = E P ~ ( f i ) \sum_{x,y}\widetilde{P}(x)P(y|x)f_i(x,y)exp(\delta_i f^{\#}(x,y))=E_{\widetilde{P}}(f_i) x,y∑P (x)P(y∣x)fi(x,y)exp(δif#(x,y))=EP (fi)的解,其中 f # ( x , y ) = ∑ i = 1 n f i ( x , y ) f^{\#}(x,y)=\sum_{i=1}^nf_i(x,y) f#(x,y)=i=1∑nfi(x,y)
(2).更新 w i w_i wi值: w i ← w i + δ i w_i\leftarrow w_i+\delta_i wi←wi+δi - 如果不是所有 w i w_i wi都收敛,重复2。
拟牛顿法
已知对于最大熵模型
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
)
)
P_w(y|x)=\frac{exp(\sum_{i=1}^nw_if_i(x,y))}{\sum_yexp(\sum_{i=1}^nw_if_i(x,y))}
Pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))其目标函数:
min
w
∈
R
n
f
(
w
)
=
∑
x
P
~
(
x
)
l
o
g
∑
y
e
x
p
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
−
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
\min_{w \in R^n} \quad f(w)=\sum_x \widetilde{P}(x)log\sum_yexp(\sum_{i=1}^nw_if_i(x,y))-\sum_{x,y}\widetilde{P}(x,y)\sum_{i=1}^nw_if_i(x,y)
w∈Rnminf(w)=x∑P
(x)logy∑exp(i=1∑nwifi(x,y))−x,y∑P
(x,y)i=1∑nwifi(x,y)梯度为
g
(
w
)
=
(
∂
f
(
w
)
∂
w
1
,
∂
f
(
w
)
∂
w
2
,
.
.
.
,
∂
f
(
w
)
∂
w
n
)
T
g(w)=(\frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},...,\frac{\partial f(w)}{\partial w_n})^T
g(w)=(∂w1∂f(w),∂w2∂f(w),...,∂wn∂f(w))T其中
∂
f
(
w
)
∂
w
i
=
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
f
i
(
x
,
y
)
−
E
P
~
(
f
i
)
,
i
=
1
,
2
,
.
.
.
,
n
\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,...,n
∂wi∂f(w)=x,y∑P
(x)Pw(y∣x)fi(x,y)−EP
(fi),i=1,2,...,n算法如下:
输入:特征函数
f
1
,
f
2
,
.
.
.
,
f
n
f_1,f_2,...,f_n
f1,f2,...,fn;经验分布
P
~
(
X
,
Y
)
\widetilde{P}(X,Y)
P
(X,Y),目标函数
f
(
w
)
f(w)
f(w),梯度
g
(
w
)
=
Δ
f
(
w
)
g(w)=\Delta f(w)
g(w)=Δf(w),精度要求
ϵ
\epsilon
ϵ。
输出:最优参数值
w
∗
w^*
w∗;最优模型
P
w
∗
(
Y
∣
X
)
P_w^*(Y|X)
Pw∗(Y∣X)。
- 选定初始点 w ( 0 ) w^{(0)} w(0),取 B 0 B_0 B0为正定对称矩阵,置k=0
- 计算 g k = g ( w ( k ) ) g_k=g(w^{(k)}) gk=g(w(k))。若 ∣ ∣ g k ∣ ∣ < ϵ ||g_k||<\epsilon ∣∣gk∣∣<ϵ,则停止计算,得 w ∗ = w ( k ) w^*=w^{(k)} w∗=w(k);否则转3
- 由 B k p k = − g k B_kp_k=-g_k Bkpk=−gk求得 p k p_k pk
- 一维搜索:求 λ 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 \geqslant 0}f(w^{(k)}+\lambda p_k) f(w(k)+λkpk)=λ⩾0minf(w(k)+λpk)
- 置 w ( k − 1 ) = w ( k ) + λ k p K w^{(k-1)}=w^{(k)}+\lambda_kp_K w(k−1)=w(k)+λkpK
- 计算 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}|| \leq \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^TB_k}{\delta_k^TB_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\quad ,\delta_k=w^{(k+1)}-w^{(k)} yk=gk+1−gk,δk=w(k+1)−w(k)
- 置 k = k + 1 k=k+1 k=k+1,转3。