逻辑回归(Logistic Regression)推导证明
逻辑回归是一个线性模型,是机器学习的基础重要模型之一。
目标:实现分类
数据集(样本):
X
⊑
R
N
f
(
x
;
ω
,
b
)
=
ω
1
x
1
+
ω
2
x
2
+
.
.
.
+
ω
N
x
N
+
b
X\sqsubseteq\mathbb{R}^N\\f(\boldsymbol x;\omega,b)=\omega_1x_1+\omega_2x_2+...+\omega_Nx_N+b
X⊑RNf(x;ω,b)=ω1x1+ω2x2+...+ωNxN+b增广形式:
f
(
x
;
ω
)
=
ω
0
x
0
+
ω
1
x
1
+
ω
2
x
2
+
.
.
.
+
ω
N
x
N
(
x
0
=
1
)
f(\boldsymbol x;\omega)=\omega_0x_0+\omega_1x_1+\omega_2x_2+...+\omega_Nx_N\;\;\;(x_0=1)
f(x;ω)=ω0x0+ω1x1+ω2x2+...+ωNxN(x0=1)
解释一下,f这个函数是典型线性模型函数。其中
ω
=
[
ω
1
,
ω
2
,
.
.
.
ω
N
]
T
\omega={\lbrack\omega_{1,}\omega_2,...\omega_N\rbrack}^T
ω=[ω1,ω2,...ωN]T是N维的权重向量,b是偏置。当解决线性回归问题时,我们直接用
f
(
x
;
ω
)
f(x;\omega)
f(x;ω)即可预测输出目标。
但是在分类问题中,这样直接使用
f
(
x
;
ω
)
f(x;\omega)
f(x;ω) 不太好,有点不太对劲呢。所以我们引入一个非线性的决策函数
g
(
z
)
g(z)
g(z)来输出目标。
y
=
g
(
f
(
x
;
ω
)
)
y=g(f(\boldsymbol x;\omega))
y=g(f(x;ω))
这个g(z)一般也可以说是激活函数,有很多种选择。甚至都可以自定义的。比如,类似符号函数的定义:
g
(
z
)
=
{
+
1
i
f
z
>
0
−
1
i
f
z
<
0
g(z)=\left\{\begin{array}{l} +1\;\ if\;z>0\\-1\; \ if\;z<0\end{array}\right.
g(z)={+1 ifz>0−1 ifz<0
这里函数值的+1,-1就可以作为2分类问题的输出了。比如我要区分男女,1表示男,-1表示女。这个g(z)就可以用来作为输出的函数。
逻辑回归模型
(一) 目标函数
现在正经的来介绍一下逻辑回归模型。
现在用
y
∈
{
0
,
1
}
y\in\{0,1\}
y∈{0,1}表示二分类问题的分类情况。
现在引入了概率的思路:给一个n维变量x,计算它是1类的概率,如果大于0.5就说明他是1类反正为0类。
他是 1类的概率为:
P
(
y
=
1
∣
x
)
P(y=1\vert\boldsymbol x)
P(y=1∣x)
现在我们的工作就是把这个概率和线性模型看看怎么联系起来。
现在回头看看前面写的那一堆,就是在说这个事。选择一个激活函数,输出不是0就是1不久行了嘛,这个模型中选用的是sigmoid函数:
s
i
g
m
o
i
d
g
(
z
)
=
1
1
+
e
−
z
sigmoid\;g(z)=\frac1{1+e^{-z}}
sigmoidg(z)=1+e−z1
它的导数很有意思:
g
′
(
z
)
=
g
(
z
)
×
[
1
−
g
(
z
)
]
g'(z)=g(z)\times\left[1-g(z)\right]
g′(z)=g(z)×[1−g(z)]
sigmoid函数图像为:
那么我们把他表示为概率
P
(
y
=
1
∣
x
)
=
g
(
f
(
x
;
w
)
)
P(y=1\vert\boldsymbol x)=g(f(\boldsymbol x;w))
P(y=1∣x)=g(f(x;w))
这一步需要想清楚!!!
我们的目标函数就是这个,现在写规范一点就是:
h
(
x
)
=
g
(
f
(
x
;
ω
)
)
h(x)=g(f(\boldsymbol x;\omega))
h(x)=g(f(x;ω))
(二)损失函数
这里使用交叉熵作为损失函数
l
o
s
s
(
ω
)
=
−
1
N
∑
i
=
1
N
[
y
(
i
)
log
(
h
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
(
x
(
i
)
)
)
]
loss(\omega)=-\frac1N\sum_{i=1}^N\left[y^{(i)}\;\log(h(x^{(i)}))+(1-y^{(i)})\log(1-h(x^{(i)}))\right]
loss(ω)=−N1i=1∑N[y(i)log(h(x(i)))+(1−y(i))log(1−h(x(i)))]
求它的偏导数
∂
l
o
s
s
(
ω
)
∂
(
ω
)
=
−
1
N
∑
i
=
1
N
[
y
(
i
)
h
(
x
(
i
)
)
−
(
1
−
y
(
i
)
)
1
−
h
(
x
(
i
)
)
]
∂
h
(
x
(
i
)
;
ω
)
∂
(
ω
)
\frac{\partial loss(\omega)}{\partial(\omega)}=-\frac1N\sum_{i=1}^N\left[\;\frac{y^{(i)}}{h(x^{(i)})}-\frac{(1-y^{(i)})}{1-h(x^{(i)})}\right]\frac{\partial h(x^{(i)};\omega)}{\partial(\omega)}
∂(ω)∂loss(ω)=−N1i=1∑N[h(x(i))y(i)−1−h(x(i))(1−y(i))]∂(ω)∂h(x(i);ω)
⇒
−
1
N
∑
i
=
1
N
[
y
(
i
)
h
(
x
(
i
)
)
−
(
1
−
y
(
i
)
)
1
−
h
(
x
(
i
)
)
]
h
(
x
(
i
)
)
(
1
−
h
(
x
(
i
)
)
)
ω
T
x
∂
(
ω
)
\Rightarrow-\frac1N\sum_{i=1}^N\left[\;\frac{y^{(i)}}{h(x^{(i)})}-\frac{(1-y^{(i)})}{1-h(x^{(i)})}\right]h(x^{(i)})(1-h(x^{(i)}))\frac{\omega^Tx}{\partial(\omega)}
⇒−N1i=1∑N[h(x(i))y(i)−1−h(x(i))(1−y(i))]h(x(i))(1−h(x(i)))∂(ω)ωTx
⇒
−
1
N
∑
i
=
1
N
[
y
(
i
)
(
1
−
h
(
x
(
i
)
)
)
−
(
1
−
y
(
i
)
)
h
(
x
(
i
)
)
]
x
(
i
)
\Rightarrow-\frac1N\sum_{i=1}^N\left[\;y^{(i)}(1-h(x^{(i)}))-(1-y^{(i)})h(x^{(i)})\right]x^{(i)}
⇒−N1i=1∑N[y(i)(1−h(x(i)))−(1−y(i))h(x(i))]x(i)
⇒
−
1
N
∑
i
=
1
N
[
y
(
i
)
−
y
(
i
)
h
(
x
(
i
)
)
−
h
(
x
(
i
)
)
+
h
(
x
(
i
)
)
y
(
i
)
]
x
(
i
)
\Rightarrow-\frac1N\sum_{i=1}^N\left[\;y^{(i)}-\;y^{(i)}h(x^{(i)})-h(x^{(i)})+h(x^{(i)})y^{(i)}\right]x^{(i)}
⇒−N1i=1∑N[y(i)−y(i)h(x(i))−h(x(i))+h(x(i))y(i)]x(i)
⇒
−
1
N
∑
i
=
1
N
[
y
(
i
)
−
h
(
x
(
i
)
)
]
x
(
i
)
\Rightarrow-\frac1N\sum_{i=1}^N\left[\;y^{(i)}-h(x^{(i)})\right]x^{(i)}
⇒−N1i=1∑N[y(i)−h(x(i))]x(i)
综上:
∂
l
o
s
s
(
ω
)
∂
ω
=
−
1
N
∑
i
=
1
N
[
y
(
i
)
−
h
(
x
(
i
)
)
]
x
(
i
)
\frac{\partial loss(\omega)}{\partial\omega}=-\frac1N\sum_{i=1}^N\left[\;y^{(i)}-h(x^{(i)})\right]x^{(i)}
∂ω∂loss(ω)=−N1i=1∑N[y(i)−h(x(i))]x(i)
如果不是增广形式,就要带上个偏置b,同理
∂
l
o
s
s
(
w
;
b
)
∂
b
=
−
1
N
∑
i
=
1
N
[
y
(
i
)
−
h
(
x
(
i
)
)
]
\frac{\partial loss(w;b)}{\partial b}=-\frac1N\sum_{i=1}^N\left[\;y^{(i)}-h(x^{(i)})\right]
∂b∂loss(w;b)=−N1i=1∑N[y(i)−h(x(i))]
(三)优化算法
1.梯度下降法 GD
ω
t
+
1
=
ω
t
−
α
∂
l
o
s
s
(
ω
)
∂
ω
(
α
是
学
习
率
)
\omega_{t+1}=\omega_t-\alpha\frac{\partial loss(\omega)}{\partial\omega}\ (\alpha是学习率)
ωt+1=ωt−α∂ω∂loss(ω) (α是学习率)
ω
t
+
1
=
ω
t
+
α
1
N
∑
i
=
1
N
[
y
(
i
)
−
h
(
x
(
i
)
)
]
x
(
i
)
\omega_{t+1}=\omega_t+\alpha\frac1N\sum_{i=1}^N\left[\;y^{(i)}-h(x^{(i)})\right]x^{(i)}
ωt+1=ωt+αN1i=1∑N[y(i)−h(x(i))]x(i)
2.随机梯度下降法 SGD
ω
t
+
1
=
ω
t
−
α
∂
l
o
s
s
(
ω
)
∂
ω
\omega_{t+1}=\omega_t-\alpha\frac{\partial loss(\omega)}{\partial\omega}
ωt+1=ωt−α∂ω∂loss(ω)
只用当前点来更新
ω
t
+
1
=
ω
t
+
α
[
y
(
i
)
−
h
(
x
(
i
)
)
]
x
(
i
)
\omega_{t+1}=\omega_t+\alpha\left[\;y^{(i)}-h(x^{(i)})\right]x^{(i)}
ωt+1=ωt+α[y(i)−h(x(i))]x(i)
3.牛顿法
ω
t
+
1
=
ω
t
−
α
H
−
1
(
ω
)
∂
l
o
s
s
(
x
;
ω
)
∂
ω
\omega_{t+1}=\omega_t-\alpha H^{-1}(\omega)\frac{\partial loss(x;\omega)}{\partial\omega}
ωt+1=ωt−αH−1(ω)∂ω∂loss(x;ω)
H
−
1
H^{-1}
H−1是Hessian矩阵的逆
3.拟牛顿法
后续再更新拟牛顿ba