逻辑斯蒂回归模型与最大熵模型都属于对数线性模型。
学习算法:改进的迭代尺度算法和拟牛顿法。
逻辑斯蒂回归模型
逻辑斯蒂分布
分布函数 F ( x ) = 1 1 + e − ( x − μ ) / γ F(x)=\frac{1}{1+e^{-(x-\mu)/\gamma}} F(x)=1+e−(x−μ)/γ1属于逻辑斯蒂函数,形状是一条S形曲线,曲线以 ( μ , 1 / 2 ) (\mu,1/2) (μ,1/2)为中心对称点。 μ \mu μ越小,曲线在中心附近增长越快。
二项逻辑斯蒂回归
二项逻辑斯蒂回归模型:
P
(
Y
=
1
∣
x
)
=
e
x
p
(
w
⋅
x
)
1
+
e
x
p
(
w
⋅
x
)
=
1
1
+
e
x
p
(
−
w
⋅
x
)
P(Y=1|x)=\frac{{\rm exp}(w \cdot x)}{1+{\rm exp}(w \cdot x)}=\frac{1}{1+{\rm exp}(-w\cdot x)}
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)=1+exp(−w⋅x)1,
P
(
Y
=
0
∣
x
)
=
1
1
+
e
x
p
(
w
⋅
x
)
P(Y=0|x)=\frac{1}{1+{\rm exp}(w \cdot x)}
P(Y=0∣x)=1+exp(w⋅x)1
一个事件的几率(odd)是指该事件发生的概率与该事件不发生的概率的比值。对逻辑斯蒂回归而言,对数几率为:
log
P
(
Y
=
1
∣
X
)
1
−
P
(
Y
=
1
∣
X
)
=
w
⋅
x
{\log\frac{P(Y=1|X)}{1-P(Y=1|X)}}=w\cdot x
log1−P(Y=1∣X)P(Y=1∣X)=w⋅x,也就是说在逻辑斯蒂回归模型中输出Y=1的对数几率是输出x的线性函数。在已知这个线性函数之后,我们又可以反推得到
P
(
Y
=
1
∣
x
)
P(Y=1|x)
P(Y=1∣x),这时,线性函数的值越接近正无穷,概率值就越接近1;线性函数的值越接近负无穷,概率值越接近0.
模型参数估计
参数估计采用极大似然估计,假设模型为伯努利二值模型,也就是
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),那么得出似然函数为
∏
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
log
(
π
(
x
i
)
)
+
(
1
−
y
i
)
log
(
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[yilog(π(xi))+(1−yi)log(1−π(xi))]对数似然函数求最大值得到w的估计值。求最大似然的最大值也可以转换为求-L的最小值,LR的损失函数就是负的对数似然函数。
这样,问题就变成了以对数似然函数为目标函数的最优化问题。逻辑斯蒂回归学习中通常采用的方法是梯度下降法及拟牛顿法。
假设w的极大似然估计为
w
^
\hat w
w^,那么学习到的逻辑斯蒂回归模型为:
P
(
Y
=
1
∣
x
)
=
e
x
p
(
w
^
⋅
x
)
1
+
e
x
p
(
w
^
⋅
x
)
=
1
1
+
e
x
p
(
−
w
^
⋅
x
)
P(Y=1|x)=\frac{{\rm exp}(\hat w \cdot x)}{1+{\rm exp}(\hat w \cdot x)}=\frac{1}{1+{\rm exp}(-\hat w\cdot x)}
P(Y=1∣x)=1+exp(w^⋅x)exp(w^⋅x)=1+exp(−w^⋅x)1,
P
(
Y
=
0
∣
x
)
=
1
1
+
e
x
p
(
w
^
⋅
x
)
P(Y=0|x)=\frac{1}{1+{\rm exp}(\hat w \cdot x)}
P(Y=0∣x)=1+exp(w^⋅x)1.
扩展:逻辑斯蒂回归的损失函数为
c
o
s
t
(
π
(
x
i
)
,
y
i
)
=
−
y
i
log
(
π
(
x
i
)
)
−
(
1
−
y
i
)
log
(
1
−
π
(
x
i
)
)
\rm cost(\pi( x_i),y_i)=-y_i\log (\pi(x_i))-(1-y_i)\log(1-\pi(x_i))
cost(π(xi),yi)=−yilog(π(xi))−(1−yi)log(1−π(xi)).从公式可以看出,当y=1时,
π
(
x
i
)
\pi(x_i)
π(xi)越接近1损失函数越小;y=0时,
π
(
x
i
)
\pi(x_i)
π(xi)越接近0损失函数越小。因此极大似然函数的最大化对应于损失函数最小化。
多项逻辑斯蒂回归模型
可以由二项逻辑斯蒂模型扩展出
最大熵模型
模型学习的最优化算法
逻辑斯蒂回归模型、最大熵模型学习归结为以似然函数为目标函数的最优化问题,通常通过迭代求解。常用方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快。
改进的迭代尺度法
拟牛顿法
牛顿法和拟牛顿法也是求解无约束最优化问题的常用方法,有收敛速度快的优点。牛顿法是迭代算法,每一步需要求解目标函数的海塞矩阵的逆矩阵,计算比较复杂。拟牛顿法通过正定矩阵近似海塞矩阵的逆矩阵或海塞矩阵,简化了这一计算过程。
牛顿法:先对需要最小化的函数f(x)在点
x
(
k
)
x^{(k)}
x(k)处做二阶泰勒展开:
f
(
x
)
=
f
(
x
(
k
)
)
+
g
k
T
(
x
−
x
(
k
)
)
+
1
2
(
x
−
x
(
k
)
)
T
H
(
x
(
k
)
)
(
x
−
x
(
k
)
)
f(x)=f(x^{(k)})+g_k^T(x-x^{(k)})+\frac{1}{2}(x-x^{(k)})^TH(x^{(k)})(x-x^{(k)})
f(x)=f(x(k))+gkT(x−x(k))+21(x−x(k))TH(x(k))(x−x(k))
这里,
g
k
g_k
gk是f(x)的梯度向量在点
x
(
k
)
x^{(k)}
x(k)的值,
H
(
x
(
k
)
)
H(x^{(k)})
H(x(k))是f(x)的海塞矩阵
H
(
x
)
=
[
∂
2
f
∂
x
i
∂
y
j
]
n
×
n
H(x)=[\frac{\partial^2f}{\partial x_i \partial y_j}]_{n\times n}
H(x)=[∂xi∂yj∂2f]n×n在点
x
(
k
)
x^{(k)}
x(k)的值。
函数
f
(
x
)
f(x)
f(x)有极值的必要条件是在极值点处一阶导数为0,即梯度向量为0.利用二阶泰勒展开的公式求导可得:
∇
f
(
x
)
=
g
k
+
H
k
(
x
−
x
(
k
)
)
\nabla f(x)=g_k+H_k(x-x^{(k)})
∇f(x)=gk+Hk(x−x(k))
令其导数为0,则有
g
k
+
H
k
(
x
(
k
+
1
)
−
x
(
k
)
)
=
0
g_k+H_k(x^{(k+1)}-x^{(k)})=0
gk+Hk(x(k+1)−x(k))=0因此有
x
(
k
+
1
)
=
x
(
k
)
−
H
k
−
1
g
k
x^{(k+1)}=x^{(k)}-H_k^{-1}g_k
x(k+1)=x(k)−Hk−1gk,用这个迭代式求极小值的算法就称为牛顿法。
牛顿法中计算海塞矩阵的逆矩阵比较复杂,因此考虑用一个n阶矩阵
G
k
=
G
(
x
(
k
)
)
G_k=G(x^{(k)})
Gk=G(x(k))来近似替代海塞矩阵的逆矩阵。
扩展总结:
1.假设函数的由来
在逻辑回归中,
p
(
y
∣
x
;
θ
)
p(y|x;\theta)
p(y∣x;θ)服从伯努利分布,也就是
p
(
y
=
1
∣
x
)
=
ϕ
,
p
(
y
=
0
∣
x
)
=
1
−
ϕ
p(y=1|x)=\phi,p(y=0|x)=1-\phi
p(y=1∣x)=ϕ,p(y=0∣x)=1−ϕ,因此
p
(
y
,
ϕ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
p(y,\phi)=\phi^y(1-\phi)^{1-y}
p(y,ϕ)=ϕy(1−ϕ)1−y,与广义线性模型中假设对比得到:
h
θ
(
x
)
=
1
1
+
e
−
w
⋅
x
h_\theta(x)=\frac{1}{1+e^{-w\cdot x}}
hθ(x)=1+e−w⋅x1
2.梯度下降法求解损失函数的推导 (这里的
π
(
x
i
)
\pi(x_i)
π(xi)=
h
θ
(
x
)
h_\theta(x)
hθ(x))
损失函数为:
L
(
w
)
=
−
∑
i
=
1
N
[
y
i
log
(
π
(
x
i
)
)
+
(
1
−
y
i
)
log
(
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[yilog(π(xi))+(1−yi)log(1−π(xi))]
对于单个点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)而言,损失函数对w求导有:
L
(
y
i
,
y
^
i
)
∂
w
=
−
y
i
⋅
1
π
(
x
i
)
⋅
∂
π
(
x
i
)
∂
w
+
(
1
−
y
i
)
1
1
−
π
(
x
i
)
⋅
∂
π
(
x
i
)
∂
w
=
(
−
y
i
⋅
1
π
(
x
i
)
+
(
1
−
y
i
)
1
1
−
π
(
x
i
)
)
⋅
∂
π
(
x
i
)
∂
w
=
h
θ
(
x
)
−
y
h
θ
(
x
)
(
1
−
h
θ
(
x
)
)
⋅
h
θ
(
x
)
(
1
−
h
θ
(
x
)
)
⋅
x
i
=
(
h
θ
(
x
i
)
−
y
i
)
x
i
\frac{L(y_i,\hat y_i)}{\partial w}=-y_i\cdot\frac{1}{\pi(x_i)}\cdot\frac{ \partial \pi(x_i)}{ \partial w}+(1-y_i)\frac{1}{1-\pi(x_i)}\cdot\frac{ \partial \pi(x_i)}{ \partial w}\\= (-y_i\cdot\frac{1}{\pi(x_i)}+(1-y_i)\frac{1}{1-\pi(x_i)})\cdot\frac{ \partial \pi(x_i)}{ \partial w}\\=\frac{h_\theta(x)-y}{h_\theta(x)(1-h_\theta(x))}\cdot h_\theta(x)(1-h_\theta(x))\cdot x_i\\=(h_\theta(x_i)-y_i)x_i
∂wL(yi,y^i)=−yi⋅π(xi)1⋅∂w∂π(xi)+(1−yi)1−π(xi)1⋅∂w∂π(xi)=(−yi⋅π(xi)1+(1−yi)1−π(xi)1)⋅∂w∂π(xi)=hθ(x)(1−hθ(x))hθ(x)−y⋅hθ(x)(1−hθ(x))⋅xi=(hθ(xi)−yi)xi