一、逻辑回归
1、逻辑斯谛回归模型
我们可以用线性模型
z
=
w
T
x
+
b
z=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b
z=wTx+b 来做回归任务,如果我们用此线性模型来做分类任务,需要用一个单调可微函数
g
(
⋅
)
g(\cdot)
g(⋅)将分类任务的真实标签
y
y
y与线性回归模型的预测值联系起来:
(1)
y
=
g
−
1
(
w
T
x
+
b
)
y=g^{-1}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)\tag{1}
y=g−1(wTx+b)(1)
这里我们使用对数几率函数(logistic function):
(2)
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}} \tag{2}
y=1+e−z1(2)
它将
z
z
z值转化为一个接近0或1的值,结合(1)和(2)可以得到:
(3)
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y=\frac{1}{1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)}} \tag{3}
y=1+e−(wTx+b)1(3)
ln y 1 − y = w T x + b \ln \frac{y}{1-y}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b ln1−yy=wTx+b
将 y y y视为样本 x \boldsymbol{x} x是正例的可能性,则 1 − y 1-y 1−y是其反例的可能性,其比值 y 1 − y \frac y{1-y} 1−yy称为几率(odds),反映了 x \boldsymbol{x} x作为正例的相对可能性,取对数得到 l n y 1 − y \mathrm{ln}\frac y{1-y} ln1−yy,称为对数几率。这实际上使用线性回归模型的预测结果取逼近真实标签的对数几率。
上面提到
y
y
y视为样本
x
\boldsymbol{x}
x是正例的可能性,即
y
=
p
(
y
=
1
∣
x
)
y=p(y=1|\boldsymbol{x})
y=p(y=1∣x),显然有:
p
(
y
=
1
∣
x
)
=
e
w
T
x
+
b
1
+
e
w
T
x
+
b
p
(
y
=
0
∣
x
)
=
1
1
+
e
w
T
x
+
b
\begin{aligned} p(y&=1 | \boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} \\ p(y&=0 | \boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} \end{aligned}
p(yp(y=1∣x)=1+ewTx+bewTx+b=0∣x)=1+ewTx+b1
2、极大似然估计
我们的任务就是估计参数
w
\boldsymbol{w}
w和
b
b
b,可以使用极大似然估计。给定数据集
{
(
x
i
,
y
i
)
}
i
=
1
m
\left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m}
{(xi,yi)}i=1m,并设
θ
=
{
w
,
b
}
\boldsymbol{\theta}=\left\{\boldsymbol{w}, b\right\}
θ={w,b},
h
θ
(
x
)
=
e
w
T
x
+
b
1
+
e
w
T
x
+
b
h_{\theta}(\boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}
hθ(x)=1+ewTx+bewTx+b,那么:
p
(
y
=
1
∣
x
;
θ
)
=
h
θ
(
x
)
p
(
y
=
0
∣
x
;
θ
)
=
1
−
h
θ
(
x
)
\begin{array}{l}{p(y=1 | \boldsymbol{x} ; \boldsymbol{\theta})=h_{\theta}(\boldsymbol{x})} \\ {p(y=0 | \boldsymbol{x} ; \boldsymbol{\theta})=1-h_{\theta}(\boldsymbol{x})}\end{array}
p(y=1∣x;θ)=hθ(x)p(y=0∣x;θ)=1−hθ(x)
上式可以合写为:
(4)
p
(
y
∣
x
;
θ
)
=
(
h
θ
(
x
)
)
y
(
1
−
h
θ
(
x
)
)
1
−
y
p(y | \boldsymbol{x} ; \boldsymbol{\theta})=\left(h_{\theta}(\boldsymbol{x})\right)^{y}\left(1-h_{\theta}(\boldsymbol{x})\right)^{1-y} \tag{4}
p(y∣x;θ)=(hθ(x))y(1−hθ(x))1−y(4)
则可以写出似然函数:
L
(
θ
)
=
p
(
Y
∣
X
;
θ
)
=
∏
i
=
1
m
p
(
y
i
∣
x
i
;
θ
)
=
∏
i
=
1
m
(
h
θ
(
x
i
)
)
y
i
(
1
−
h
θ
(
x
i
)
)
1
−
y
i
\begin{aligned} L(\boldsymbol{\theta}) &=p(Y | \boldsymbol{X} ; \boldsymbol{\theta}) \\ &=\prod_{i=1}^{m} p\left(y_{i} | \boldsymbol{x}_{i} ; \boldsymbol{\theta}\right) \\ &=\prod_{i=1}^{m}\left(h_{\theta}\left(\boldsymbol{x}_{i}\right)\right)^{y_{i}}\left(1-h_{\theta}\left(\boldsymbol{x}_{i}\right)\right)^{1-y_{i}} \end{aligned}
L(θ)=p(Y∣X;θ)=i=1∏mp(yi∣xi;θ)=i=1∏m(hθ(xi))yi(1−hθ(xi))1−yi
取对数得到对数似然函数:
ℓ
(
θ
)
=
log
L
(
θ
)
=
∑
i
=
1
m
y
i
log
h
θ
(
x
i
)
+
(
1
−
y
i
)
log
(
1
−
h
θ
(
x
i
)
)
\begin{aligned} \ell(\boldsymbol{\theta}) &=\log L(\boldsymbol{\theta}) \\ &=\sum_{i=1}^{m} y_{i} \log h_{\theta}\left(\boldsymbol{x}_{i}\right)+\left(1-y_{i}\right) \log \left(1-h_{\theta}\left(\boldsymbol{x}_{i}\right)\right) \end{aligned}
ℓ(θ)=logL(θ)=i=1∑myiloghθ(xi)+(1−yi)log(1−hθ(xi))
每个样本属于真实标签的概率越大越好,因此要最大化对数似然函数:
θ
∗
=
arg
max
θ
ℓ
(
θ
)
{\boldsymbol{\theta}}^{\ast}=\underset{\theta}{\arg \max } \ell(\boldsymbol{\theta})
θ∗=θargmaxℓ(θ)
ℓ
(
θ
)
\ell(\boldsymbol{\theta})
ℓ(θ)是关于
θ
\boldsymbol{\theta}
θ的高阶连续可导凸函数,可以使用梯度下降法、牛顿法等得到其最优解。以梯度下降法为例,我们需要最小化
−
ℓ
(
θ
)
-\ell(\boldsymbol{\theta})
−ℓ(θ):
θ
∗
=
arg
min
θ
−
ℓ
(
θ
)
{\boldsymbol{\theta}}^{*}=\underset{\theta}{\arg \min } -\ell(\boldsymbol{\theta})
θ∗=θargmin−ℓ(θ)
对其求导得:
∂
∂
θ
ℓ
(
θ
)
=
(
−
y
1
h
θ
(
x
)
+
(
1
−
y
)
1
1
−
h
θ
(
x
)
)
∂
∂
θ
h
θ
(
x
)
=
(
−
y
1
h
θ
(
x
)
+
(
1
−
y
)
1
1
−
h
θ
(
x
)
)
h
θ
(
x
)
(
1
−
h
θ
(
x
)
)
∂
∂
θ
θ
T
x
=
(
−
y
(
1
−
h
θ
(
x
)
)
+
(
1
−
y
)
h
θ
(
x
)
)
x
=
(
h
θ
(
x
)
−
y
)
x
\begin{aligned} \frac{\partial}{\partial \boldsymbol{\theta}} \ell(\boldsymbol{\theta}) &=\left(-y \frac{1}{h_{\theta}\left(\boldsymbol{x}\right)}+(1-y) \frac{1}{1-h_{\theta}\left(\boldsymbol{x} \right)}\right) \frac{\partial}{\partial \boldsymbol{\theta}} h_{\theta}\left(\boldsymbol{x}\right) \\ &=\left(-y \frac{1}{h_{\theta}\left(\boldsymbol{x} \right)}+(1-y) \frac{1}{1-h_{\theta}\left(\boldsymbol{x} \right)}\right) h_{\theta}\left(\boldsymbol{x} \right) \left(1-h_{\theta}(\boldsymbol{x} ) \right) \frac{\partial}{\partial \boldsymbol{\theta}} \boldsymbol{\theta}^{\mathrm T} \boldsymbol{x} \\ &=\left(-y\left(1-h_{\theta}\left(\boldsymbol{x} \right)\right)+(1-y) h_{\theta}\left(\boldsymbol{x}\right)\right) \boldsymbol{x} \\ &=\left(h_{\theta}(\boldsymbol{x})-y\right) \boldsymbol{x} \end{aligned}
∂θ∂ℓ(θ)=(−yhθ(x)1+(1−y)1−hθ(x)1)∂θ∂hθ(x)=(−yhθ(x)1+(1−y)1−hθ(x)1)hθ(x)(1−hθ(x))∂θ∂θTx=(−y(1−hθ(x))+(1−y)hθ(x))x=(hθ(x)−y)x
再更新梯度:
θ
:
=
θ
−
α
(
h
θ
(
x
)
−
y
)
x
\boldsymbol{\theta} :=\boldsymbol{\theta}-\alpha\left(h_{\theta}\left(\boldsymbol{x}\right)-y\right) \boldsymbol{x}
θ:=θ−α(hθ(x)−y)x
参考资料
- 周志华《机器学习》
- 李航《统计学习方法》
- 吴恩达《机器学习》公开课