逻辑斯谛回归与最大熵模型
本小结主要介绍逻辑斯谛回归和最大熵模型的一些应用和数据预测方法等等。
1. 简介
逻辑斯谛回归是一个非常经典的二项分类模型,也可以扩展为多分类模型。逻辑斯谛回归模型是从生物种群中得到一个回归模型,它简述了生物种群在存在环境阻力的情况下种群数量变化。逻辑斯谛回归模型和最大熵模型都属于对数线性模型。本小结从机器学习的方法来介绍这两个回归模型。
2. 逻辑斯谛回归
2.1 从生物学角度出发的逻辑斯谛模型
逻辑斯蒂增长模型(Logistic growth model)逻辑斯蒂增长模型又称自我抑制性方程,是关于人口或种群增长的模型。它发现人口/种群增长会因为受到资源限制而达到某个极限。在马尔萨斯《人口原理》中表述,当仅仅考虑到出生率和死亡率的情况下,设
t
0
t_{0}
t0时刻的人口总数量为
p
(
t
0
)
=
p
0
p(t_{0})=p_{0}
p(t0)=p0,那么人口增长满足以下的微分方程:
d
p
d
t
=
k
p
\frac{dp}{dt}=kp
dtdp=kp
这样解这个方程得到
p
(
t
)
=
p
0
e
k
(
t
−
t
0
)
p(t)=p_{0}e^{k(t-t_{0})}
p(t)=p0ek(t−t0)
这是在没有环境阻力情况下的种群的增长模型。当遇到环境阻力的情况下时候,增长到一定的阶段,种群的数量会受到限制,此时并不满足上述种群的增长方程,所以在具有环境阻力条件下,将上述过程中的微分方程改为:
d
p
d
t
=
r
p
(
M
−
p
)
M
,
r
>
0
\frac{dp}{dt}=\frac{rp(M-p)}{M},r>0
dtdp=Mrp(M−p),r>0
其中
M
M
M表示环境中所能容纳种群中最大值。经过计算和推导,得到的种群数量随着时间
t
t
t变化的关系为:
p
(
t
)
=
M
p
0
p
0
+
(
M
−
p
0
)
e
−
r
(
t
−
t
0
)
p(t)=\frac{Mp_{0}}{p_{0}+(M-p_{0})e^{-r(t-t_{0})}}
p(t)=p0+(M−p0)e−r(t−t0)Mp0
上述方程所建立的种群变化的模型称为逻辑斯谛模型。事实上,种群的增长要受到多种因素的影响,这个模型并不能够很全面描述这写因素的影响。其中有一种改进的方式是将原来最基本的微分方程改进为
k
=
r
(
1
−
p
M
)
α
k=r(1-\frac{p}{M})^{\alpha}
k=r(1−Mp)α
那么微分方程可以描述为:
d
p
d
t
=
r
(
1
−
p
M
)
α
p
,
α
≥
0
\frac{dp}{dt}=r(1-\frac{p}{M})^{\alpha}p,\alpha\geq0
dtdp=r(1−Mp)αp,α≥0
很明显,当 α = 0 \alpha=0 α=0的时候为简单的指数增长模型;当 α = 1 \alpha=1 α=1的时候为逻辑斯谛模型。在其他的情况下可以描述一些更为复杂的模型。
2.2 逻辑斯谛分布
定义(逻辑斯谛分布) 设连续随机变量
X
X
X服从逻辑斯谛分布,这是指
X
X
X具有以下的分布函数的概率密度函数:
F
(
x
)
=
P
{
X
≤
x
}
=
1
1
+
e
−
(
x
−
μ
)
/
γ
F(x)=P\{X\leq x\}=\frac{1}{1+e^{-(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{'}(x)=\frac{e^{-(x-\mu/\gamma)}}{\gamma(1+e^{-(x-\mu/\gamma)})^{2}} f(x)=F′(x)=γ(1+e−(x−μ/γ))2e−(x−μ/γ)
式子中,
μ
\mu
μ为位置参数,
γ
>
0
\gamma>0
γ>0为形状参数。曲线以点
(
μ
,
1
2
)
(\mu,\frac{1}{2})
(μ,21)中心对称,等价于:
F
(
−
x
+
μ
)
−
1
2
=
−
F
(
x
−
μ
)
+
1
2
F(-x+\mu)-\frac{1}{2}=-F(x-\mu)+\frac{1}{2}
F(−x+μ)−21=−F(x−μ)+21
概率密度函数以及分布函数的曲线图像如下所示:
2.3 二项逻辑斯谛回归模型
二项逻辑斯谛回归是一种分类模型,由条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)来表示,形式为参数化的逻辑斯谛分布。随机变量
X
X
X是实数,随机变量
Y
Y
Y取值为
1
1
1或者
0
0
0。
定义(逻辑斯谛回归模型) 二项逻辑斯谛回归模型是通过以下的条件概率分布:
P ( Y = 1 ∣ x ) = e x p ( w ⋅ x + b ) 1 + e x p ( w ⋅ x + b ) P(Y=1|x)=\frac{exp(w\cdot{x}+b)}{1+exp(w\cdot{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\cdot{x}+b)} P(Y=0∣x)=1+exp(w⋅x+b)1
其中输入
x
∈
R
n
x\in{R^{n}}
x∈Rn,输出为
Y
∈
{
0
,
1
}
Y\in\{0,1\}
Y∈{0,1},
w
∈
R
n
,
b
∈
R
w\in{R^{n}},b\in{R}
w∈Rn,b∈R是参数,
w
w
w称作权重值向量,
b
b
b是偏置。对上面的公式进行对数变换操作之后得到:
log
P
(
Y
=
1
∣
x
)
1
−
P
(
Y
=
1
∣
x
)
=
w
⋅
x
+
b
\log\frac{P(Y=1|x)}{1-P(Y=1|x)}=w\cdot{x}+b
log1−P(Y=1∣x)P(Y=1∣x)=w⋅x+b
可见输出 Y = 1 Y=1 Y=1的对数几率是输入 x x x的线性函数。
2.4 模型参数估计
设输入的训练数据集为
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
k
∈
R
n
,
y
k
∈
{
0
,
1
}
x_{k}\in{R^{n}},y_{k}\in\{0,1\}
xk∈Rn,yk∈{0,1}。这里使用最大似然估计的方法估计模型的参数,从而得到逻辑斯蒂回归模型。
设
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)
那么似然函数为
∏ k = 1 N [ π ( x k ) ] y k [ 1 − π ( x k ) ] 1 − y k \prod_{k=1}^{N}[\pi(x_{k})]^{y_{k}}[1-\pi(x_{k})]^{1-y_{k}} k=1∏N[π(xk)]yk[1−π(xk)]1−yk
对数似然函数为
L
(
x
,
w
,
b
)
=
∑
k
=
1
N
[
y
k
log
π
(
x
k
)
+
(
1
−
y
k
)
log
(
1
−
π
(
x
k
)
)
]
=
∑
k
=
1
N
y
k
log
π
(
x
k
)
1
−
π
(
x
k
)
+
log
(
1
−
π
(
x
k
)
)
=
∑
k
=
1
N
[
y
k
(
w
⋅
x
k
)
+
b
−
log
(
1
+
e
x
p
(
w
⋅
x
k
+
b
)
)
]
L(x,w,b)=\sum_{k=1}^{N}[y_{k}\log\pi(x_{k})+(1-y_{k})\log(1-\pi(x_{k}))]\\ =\sum_{k=1}^{N}y_{k}\log\frac{\pi(x_{k})}{1-\pi(x_{k})}+\log(1-\pi(x_{k}))\\ =\sum_{k=1}^{N}[y_{k}(w\cdot{x_{k}})+b-\log(1+exp(w\cdot{x_{k}}+b))]
L(x,w,b)=k=1∑N[yklogπ(xk)+(1−yk)log(1−π(xk))]=k=1∑Nyklog1−π(xk)π(xk)+log(1−π(xk))=k=1∑N[yk(w⋅xk)+b−log(1+exp(w⋅xk+b))]
所以这样通过求解
L
(
x
,
w
,
b
)
L(x,w,b)
L(x,w,b)的极大值即可以得到
w
,
b
w,b
w,b的估计值。一般来说,对于逻辑斯蒂回归函数问题中,采用梯度下降算法和拟牛顿的方法来计算,在后面我们会推导这个求解过程。假设得到了求解值
w
^
,
b
^
\hat w,\hat b
w^,b^,那么最终得到的数据表达式为:
P
(
Y
=
1
∣
x
)
=
exp
(
w
^
⋅
x
+
b
)
1
+
exp
(
w
^
⋅
x
+
b
)
P(Y=1|x)=\frac{\exp(\hat w\cdot{x}+b)}{1+\exp(\hat w\cdot{x}+b)}
P(Y=1∣x)=1+exp(w^⋅x+b)exp(w^⋅x+b)
P ( Y = 0 ∣ x ) = 1 1 + exp ( w ^ ⋅ x + b ) P(Y=0|x)=\frac{1}{1+\exp(\hat w\cdot{x}+b)} P(Y=0∣x)=1+exp(w^⋅x+b)1
2.5 多项逻辑斯蒂回归
我们对上面二分类描述了逻辑斯蒂回归的一般形式,这样我们可以推广为多分类问题中的逻辑斯蒂回归方法,它用于多分类目标函数。
设输入的数据集为
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
,
(
x
N
,
y
N
)
∣
x
k
∈
R
n
,
y
k
∈
{
1
,
2
,
.
.
.
,
M
}
}
D=\{(x_{1},y_{1}),(x_{2},y_{2}),..,(x_{N},y_{N})|x_{k}\in{R^{n},y_{k}\in\{1,2,...,M\}}\}
D={(x1,y1),(x2,y2),..,(xN,yN)∣xk∈Rn,yk∈{1,2,...,M}},所以多项逻辑斯蒂回归模型为:
P
(
Y
=
m
∣
x
)
=
e
x
p
(
w
m
⋅
x
+
b
m
)
1
+
∑
j
=
1
M
−
1
e
x
p
(
w
j
⋅
x
+
b
j
)
P(Y=m|x)=\frac{exp(w_{m}\cdot{x}+b_{m})}{1+\sum\limits_{j=1}^{M-1}exp(w_{j}\cdot{x}+b_{j})}
P(Y=m∣x)=1+j=1∑M−1exp(wj⋅x+bj)exp(wm⋅x+bm)
P ( Y = M ∣ x ) = 1 1 + ∑ j = 1 M − 1 e x p ( w j ⋅ x + b j ) P(Y=M|x)=\frac{1}{1+\sum\limits_{j=1}^{M-1}exp(w_{j}\cdot{x}+b_{j})} P(Y=M∣x)=1+j=1∑M−1exp(wj⋅x+bj)1
同样函数的参数可以使用最大似然估计参数的值。我们这里介绍另外一种多分类逻辑回归的扩展,即使用线性预测器和额外的归一化因子并对某个结果概率的对数进行建模。设
ln
(
P
{
y
=
1
∣
x
k
}
)
=
w
1
⋅
x
k
+
b
1
−
ln
Z
\ln(P\{y=1|x_{k}\})=w_{1}\cdot{x_{k}}+b_{1}-\ln Z
ln(P{y=1∣xk})=w1⋅xk+b1−lnZ
ln ( P { y = 2 ∣ x k } ) = w 2 ⋅ x k + b 2 − ln Z \ln(P\{y=2|x_{k}\})=w_{2}\cdot{x_{k}}+b_{2}-\ln Z ln(P{y=2∣xk})=w2⋅xk+b2−lnZ
. . . ... ...
ln ( P { y = M ∣ x k } ) = w M ⋅ x k + b M − ln Z \ln(P\{y=M|x_{k}\})=w_{M}\cdot{x_{k}}+b_{M}-\ln Z ln(P{y=M∣xk})=wM⋅xk+bM−lnZ
这里的
ln
Z
\ln Z
lnZ是归一化项,使得所有的概率形成一个概率分布,从而使得这些概率之和等于1:
∑
j
=
1
M
P
{
y
=
j
∣
x
k
}
=
1
\sum\limits_{j=1}^{M}P\{y=j|x_{k}\}=1
j=1∑MP{y=j∣xk}=1
所以对于上面的
M
M
M个式子,可以得到
P
{
y
=
j
∣
x
k
}
=
1
Z
e
w
j
x
k
+
b
j
P\{y=j|x_{k}\}=\frac{1}{Z}e^{w_{j}x_{k}+b_{j}}
P{y=j∣xk}=Z1ewjxk+bj
所以得到
1
=
∑
j
=
1
M
P
{
y
=
j
∣
x
k
}
=
1
Z
∑
j
=
1
M
e
w
j
x
k
+
b
j
1=\sum\limits_{j=1}^{M}P\{y=j|x_{k}\}=\frac{1}{Z}\sum\limits_{j=1}^{M}e^{w_{j}x_{k}+b_{j}}
1=j=1∑MP{y=j∣xk}=Z1j=1∑Mewjxk+bj
所以求出 Z = ∑ j = 1 M e w j x k + b j Z=\sum\limits_{j=1}^{M}e^{w_{j}x_{k}+b_{j}} Z=j=1∑Mewjxk+bj
所以最后得到这样的一个表达式:
P
{
y
=
m
∣
x
k
}
=
e
w
m
x
k
+
b
m
∑
j
=
1
M
e
w
j
x
k
+
b
j
P\{y=m|x_{k}\}=\frac{e^{w_{m}x_{k}+b_{m}}}{\sum\limits_{j=1}^{M}e^{w_{j}x_{k}+b_{j}}}
P{y=m∣xk}=j=1∑Mewjxk+bjewmxk+bm
综合上述表达式,统一成函数,这个函数被称作softmax函数:
softmax
(
x
k
)
\text{softmax}(x_{k})
softmax(xk)
这就是多分类中的分类函数。
3. 最大熵模型
4. 参数求解方法
5. 实现过程
小结
参考文献
[1] 统计学习方法,李航
[2] MATLAB在数学建模中的应用,卓金武