引言
前面几节介绍了线性分类中硬分类方法,如 感知机算法、线性判别分析。并介绍了对应算法中的 策略构建思路以及最优模型参数求解过程。本节将介绍软分类中的经典算法——逻辑回归。
回顾:软分类
在线性回归基本性质介绍与线性分类中介绍过,硬分类与软分类最显著的区别是激活函数是否为连续性函数:
- 硬分类的代表:感知机(Perceptron),它的模型表示如下:
f ( W , b ) = s i g n ( W T x ( i ) + b ) ( i = 1 , 2 , ⋯ , N ) f(\mathcal W,b) = sign(\mathcal W^{T}x^{(i)} + b)(i=1,2,\cdots,N) f(W,b)=sign(WTx(i)+b)(i=1,2,⋯,N)
其中 s i g n sign sign函数又称符号函数,它的定义表示如下:
s i g n ( a ) = { 1 a ≥ 0 − 1 a < 0 sign(a) = \begin{cases}1 \quad a \geq 0 \\ -1 \quad a < 0\end{cases} sign(a)={1a≥0−1a<0
从图像观察,它明显是一个分段函数,无法求导; - 软分类的激活函数是连续的,具有代表性的是
s
i
g
m
o
i
d
sigmoid
sigmoid激活函数:
s i g m o i d ( x ) = 1 1 + e − x sigmoid(x) = \frac{1}{1 + e^{-x}} sigmoid(x)=1+e−x1
s i g m o i d sigmoid sigmoid函数图像表示如下:
观察该图像: - 首先,该函数在定义域中连续可导;
- 该函数值域有界——值域取值范围 ( 0 , 1 ) (0,1) (0,1);
针对
s
i
g
m
o
i
d
sigmoid
sigmoid函数取值范围的特性,我们可以将该数值结果赋予实际意义:在二分类任务中,视为针对真实标签预测的概率结果
p
p
p。即:
{
P
(
y
p
r
e
d
(
i
)
=
1
)
=
p
P
(
y
p
r
e
d
(
i
)
=
−
1
)
=
1
−
p
\begin{cases}P(y_{pred}^{(i)} = 1) = p \\ P(y_{pred}^{(i)} = -1) = 1-p\end{cases}
{P(ypred(i)=1)=pP(ypred(i)=−1)=1−p
从其他角度观察,
s
i
g
m
o
i
d
sigmoid
sigmoid函数本身就是 指数族分布的一种表达形式,在最大熵原理与softmax激活函数的关系中介绍过,数据集
D
a
t
a
=
{
(
x
(
i
)
,
y
(
i
)
)
}
i
=
1
,
2
,
⋯
,
N
Data = \{(x^{(i)},y^{(i)})\}_{i=1,2,\cdots,N}
Data={(x(i),y(i))}i=1,2,⋯,N服从经验概率分布的条件下,给定样本
x
(
k
)
x^{(k)}
x(k),
y
(
k
)
y^{(k)}
y(k)的概率密度函数
p
(
y
(
k
)
∣
x
(
k
)
)
p(y^{(k)} \mid x^{(k)})
p(y(k)∣x(k))为如下表达时,熵达到最大:
p
(
y
(
k
)
∣
x
(
k
)
)
=
e
Λ
T
f
(
x
(
k
)
,
y
(
k
)
)
∑
y
k
=
S
Y
(
l
)
e
Λ
T
f
(
x
(
k
)
,
y
(
k
)
)
p(y^{(k)} \mid x^{(k)}) = \frac{e^{\Lambda^{T}}f(x^{(k)},y^{(k)})}{\sum_{y^{k}=\mathcal S_{\mathcal Y}^{(l)}}e^{\Lambda^{T}f(x^{(k)},y^{(k)})}}
p(y(k)∣x(k))=∑yk=SY(l)eΛTf(x(k),y(k))eΛTf(x(k),y(k))
其中
S
Y
(
l
)
\mathcal S_{\mathcal Y}^{(l)}
SY(l)表示通过经验概率分布统计得到的某个具体的标签分布;
f
(
x
)
f(x)
f(x)是关于数据集合的任意函数。经过化简,我们可以得到
S
o
f
t
m
a
x
Softmax
Softmax函数的表达形式:
S
o
f
t
m
a
x
(
z
i
)
=
e
z
i
∑
j
=
1
m
e
z
j
Softmax(z_i) = \frac{e^{z_i}}{\sum_{j=1}^m e^{z_{j}}}
Softmax(zi)=∑j=1mezjezi
其中
m
m
m可以理解为标签分布
s
Y
(
l
)
\mathcal s_{\mathcal Y}^{(l)}
sY(l)的数量。而
s
i
g
m
o
i
d
sigmoid
sigmoid函数可视为
S
o
f
t
m
a
x
Softmax
Softmax函数在二分类任务中的表达:
s
i
g
m
o
i
d
(
x
)
=
1
1
+
e
−
x
=
e
x
e
x
+
1
=
e
x
e
x
+
e
0
\begin{aligned}sigmoid(x) & = \frac{1}{1 + e^{-x}} \\ & = \frac{e^{x}}{e^{x} + 1} \\ & = \frac{e^{x}}{e^{x} + e^0} \end{aligned}
sigmoid(x)=1+e−x1=ex+1ex=ex+e0ex
相比于
S
o
f
t
m
a
x
Softmax
Softmax函数分母中包含的
m
m
m个元素,
s
i
g
m
o
i
d
sigmoid
sigmoid函数分母中只包含两项元素:
e
x
,
e
0
e^{x},e^{0}
ex,e0,并且
e
0
e^{0}
e0只是一个常数。可以将其理解成只有一种分类下的
S
o
f
t
m
a
x
Softmax
Softmax函数。
虽然说只是一种分类,但仍然包含两个概率结果:一个结果可以表示为‘属于该分类的概率’;另一个结果可以表示为‘不属于该分类的概率’。
逻辑回归策略思路构建
逻辑回归(logistic Regression)是一种基于软分类思想的概率判别模型,其核心思想是 直接判别后验概率
P
(
Y
p
r
e
d
=
−
1
∣
X
)
P(\mathcal Y_{pred} = -1 \mid \mathcal X)
P(Ypred=−1∣X)与
P
(
Y
p
r
e
d
=
1
∣
X
)
P(\mathcal Y_{pred} =1 \mid \mathcal X)
P(Ypred=1∣X)之间的大小关系。
因此,策略构建的核心是直接围绕后验概率
p
(
Y
∣
X
)
p(\mathcal Y \mid \mathcal X)
p(Y∣X)进行建模。
场景描述
数据集合
D
a
t
a
=
{
(
x
(
i
)
,
y
(
i
)
)
}
i
=
1
,
2
,
⋯
,
N
Data=\{(x^{(i)},y^{(i)})\}_{i=1,2,\cdots,N}
Data={(x(i),y(i))}i=1,2,⋯,N,任意样本
x
(
i
)
x^{(i)}
x(i)是
p
p
p维向量:
x
(
i
)
=
(
x
1
(
i
)
,
x
2
(
i
)
,
⋯
,
x
p
(
i
)
)
T
x^{(i)} = (x_1^{(i)},x_2^{(i)},\cdots,x_p^{(i)})^{T}
x(i)=(x1(i),x2(i),⋯,xp(i))T
由于
s
i
g
m
o
i
d
sigmoid
sigmoid函数的值域性质,因此样本的二分类标签分布表示如下:
y
(
i
)
∈
{
0
,
1
}
y^{(i)} \in \{0,1\}
y(i)∈{0,1}
推导过程
由于
s
i
g
m
o
i
d
sigmoid
sigmoid函数的值域在
(
0
,
1
)
(0,1)
(0,1)内连续,其朴素思想是将线性计算结果
W
T
x
(
i
)
\mathcal W^{T}x^{(i)}
WTx(i)经过
s
i
g
m
o
i
d
sigmoid
sigmoid函数映射得到一个关于预测标签分布的后验概率结果
P
(
y
(
i
)
∣
x
(
i
)
)
P(y^{(i)} \mid x^{(i)})
P(y(i)∣x(i))。因此,将基于不同分类的后验概率结果表示如下:
{
p
1
=
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
=
s
i
g
m
o
i
d
(
W
T
x
(
i
)
)
=
1
1
+
e
−
W
T
x
(
i
)
p
2
=
P
(
y
(
i
)
=
0
∣
x
(
i
)
)
=
1
−
s
i
g
m
o
i
d
(
W
T
x
(
i
)
)
=
e
−
W
T
x
(
i
)
1
+
e
−
W
T
x
(
i
)
\begin{cases}p_1 = P(y^{(i)} = 1 \mid x^{(i)}) = sigmoid(\mathcal W^{T}x^{(i)}) = \frac{1}{1 + e^{-\mathcal W^{T}x^{(i)}}} \\ p_2 = P(y^{(i)} = 0 \mid x^{(i)}) = 1 - sigmoid(\mathcal W^{T}x^{(i)}) = \frac{e^{-\mathcal W^{T}x^{(i)}}}{1 + e^{-\mathcal W^{T}x^{(i)}}}\end{cases}
⎩
⎨
⎧p1=P(y(i)=1∣x(i))=sigmoid(WTx(i))=1+e−WTx(i)1p2=P(y(i)=0∣x(i))=1−sigmoid(WTx(i))=1+e−WTx(i)e−WTx(i)
将上述两个概率合并,对后验概率结果
P
(
y
(
i
)
∣
x
(
i
)
)
P(y^{(i)} \mid x^{(i)})
P(y(i)∣x(i))进行表达:
该表达只是‘合并上述两个后验概率的’一个方式。
P
(
y
(
i
)
∣
x
(
i
)
)
=
p
1
y
(
i
)
p
2
(
1
−
y
(
i
)
)
P(y^{(i)} \mid x^{(i)}) = p_1^{y^{(i)}}p_2^{(1- y^{(i)})}
P(y(i)∣x(i))=p1y(i)p2(1−y(i))
- 当 y ( i ) = 1 y^{(i)} = 1 y(i)=1时, P ( y ( i ) ∣ x ( i ) ) = p 1 × p 2 0 = p 1 P(y^{(i)} \mid x^{(i)}) = p_1 \times {p_2}^0 = p_1 P(y(i)∣x(i))=p1×p20=p1;
- 当 y ( i ) = 0 y^{(i)} = 0 y(i)=0时, P ( y ( i ) ∣ x ( i ) ) = p 1 0 × p 2 = p 2 P(y^{(i)} \mid x^{(i)}) = {p_1}^0 \times p_2 = p_2 P(y(i)∣x(i))=p10×p2=p2;
由于各样本之间独立同分布,因此基于数据集合的后验概率
P
(
Y
∣
X
)
P(\mathcal Y \mid \mathcal X)
P(Y∣X)表达结果如下:
P
(
Y
∣
X
)
=
∏
i
=
1
N
P
(
y
(
i
)
∣
x
(
i
)
)
P(\mathcal Y \mid \mathcal X) = \prod_{i=1}^N P(y^{(i)} \mid x^{(i)})
P(Y∣X)=i=1∏NP(y(i)∣x(i))
至此,使用极大似然估计方法对模型最优参数进行求解:
为简化运算,依然对‘log似然函数求解最大值’。
W
^
=
arg
max
W
log
P
(
Y
∣
X
)
=
arg
max
W
log
∏
i
=
1
N
P
(
y
(
i
)
∣
x
(
i
)
)
=
arg
max
W
∑
i
=
1
N
log
P
(
y
(
i
)
∣
x
(
i
)
)
\begin{aligned}\hat {\mathcal W} & = \mathop{\arg\max}\limits_{\mathcal W} \log P(\mathcal Y \mid \mathcal X) \\ & = \mathop{\arg\max}\limits_{\mathcal W}\log \prod_{i=1}^N P(y^{(i)} \mid x^{(i)}) \\ & = \mathop{\arg\max}\limits_{\mathcal W} \sum_{i=1}^N \log P(y^{(i)} \mid x^{(i)}) \end{aligned}
W^=WargmaxlogP(Y∣X)=Wargmaxlogi=1∏NP(y(i)∣x(i))=Wargmaxi=1∑NlogP(y(i)∣x(i))
将上述表达式带入:
W
^
=
arg
max
W
∑
i
=
1
N
log
(
p
1
y
(
i
)
p
2
(
1
−
y
(
i
)
)
)
=
arg
max
W
∑
i
=
1
N
log
p
1
y
(
i
)
+
log
p
2
(
1
−
y
(
i
)
)
=
arg
max
W
∑
i
=
1
N
[
y
(
i
)
log
p
1
+
(
1
−
y
(
i
)
)
log
p
2
]
\begin{aligned}\hat {\mathcal W} & = \mathop{\arg\max}\limits_{\mathcal W} \sum_{i=1}^N \log \left(p_1^{y^{(i)}}p_2^{(1- y^{(i)})}\right) \\ & = \mathop{\arg\max}\limits_{\mathcal W} \sum_{i=1}^N \log p_1^{y^{(i)}} + \log p_2^{(1- y^{(i)})} \\ & = \mathop{\arg\max}\limits_{\mathcal W} \sum_{i=1}^N \left[y^{(i)} \log p_1 + (1 - y^{(i)})\log p_2 \right] \end{aligned}
W^=Wargmaxi=1∑Nlog(p1y(i)p2(1−y(i)))=Wargmaxi=1∑Nlogp1y(i)+logp2(1−y(i))=Wargmaxi=1∑N[y(i)logp1+(1−y(i))logp2]
令
p
1
=
1
1
+
e
−
W
T
x
(
i
)
=
ϕ
(
x
(
i
)
;
W
)
p_1 = \frac{1}{1 + e^{-\mathcal W^{T}x^{(i)}}} = \phi(x^{(i)};\mathcal W)
p1=1+e−WTx(i)1=ϕ(x(i);W),那么
p
2
=
1
−
1
1
+
e
−
W
T
x
(
i
)
=
1
−
ϕ
(
x
(
i
)
;
W
)
p_2 = 1 - \frac{1}{1 + e^{-\mathcal W^{T}x^{(i)}}} = 1 - \phi(x^{(i)};\mathcal W)
p2=1−1+e−WTx(i)1=1−ϕ(x(i);W)。将量结果带入上式:
W
^
=
arg
max
W
∑
i
=
1
N
y
(
i
)
log
ϕ
(
x
(
i
)
;
W
)
+
(
1
−
y
(
i
)
)
log
[
1
−
ϕ
(
x
(
i
)
;
W
)
]
\hat {\mathcal W} = \mathop{\arg\max}\limits_{\mathcal W} \sum_{i=1}^N y^{(i)} \log \phi(x^{(i)};\mathcal W) + (1 - y^{(i)}) \log \left[1 - \phi(x^{(i)};\mathcal W)\right]
W^=Wargmaxi=1∑Ny(i)logϕ(x(i);W)+(1−y(i))log[1−ϕ(x(i);W)]
提出一个负号,将上式转化为:
W
^
=
arg
min
W
{
−
∑
i
=
1
N
y
(
i
)
log
ϕ
(
x
(
i
)
;
W
)
+
(
1
−
y
(
i
)
)
log
[
1
−
ϕ
(
x
(
i
)
;
W
)
]
}
\hat {\mathcal W} = \mathop{\arg\min}\limits_{\mathcal W}\left\{-\sum_{i=1}^N y^{(i)}\log \phi(x^{(i)};\mathcal W) + (1 - y^{(i)}) \log \left[1 - \phi(x^{(i)};\mathcal W)\right] \right\}
W^=Wargmin{−i=1∑Ny(i)logϕ(x(i);W)+(1−y(i))log[1−ϕ(x(i);W)]}
观察大括号中的项,它就是基于二分类交叉熵的表达形式。因此可以得到如下结论:逻辑回归使用极大似然估计直接对后验概率分布
P
(
Y
∣
X
)
P(\mathcal Y \mid \mathcal X)
P(Y∣X)求解最优模型参数
W
^
\hat {\mathcal W}
W^ 等价于 交叉熵损失函数求解最优模型参数。
求解过程
基于上述结论继续对最优模型参数
W
^
\hat {\mathcal W}
W^进行求解:
将
ϕ
(
x
(
i
)
;
W
)
\phi(x^{(i)};\mathcal W)
ϕ(x(i);W)展开,带回上式:
W
^
=
arg
min
W
{
−
∑
i
=
1
N
y
(
i
)
log
[
1
1
+
e
−
W
T
x
(
i
)
]
+
(
1
−
y
(
i
)
)
log
[
e
−
W
T
x
(
i
)
1
+
e
−
W
T
x
(
i
)
]
}
\hat {\mathcal W} = \mathop{\arg\min}\limits_{\mathcal W}\left\{-\sum_{i=1}^N y^{(i)}\log \left[\frac{1}{1 + e^{-\mathcal W^{T}x^{(i)}}}\right] + (1 - y^{(i)}) \log \left[\frac{e^{-\mathcal W^{T}x^{(i)}}}{1 + e^{-\mathcal W^{T}x^{(i)}}}\right] \right\}
W^=Wargmin{−i=1∑Ny(i)log[1+e−WTx(i)1]+(1−y(i))log[1+e−WTx(i)e−WTx(i)]}
记
W
^
=
arg
min
W
J
(
W
)
\hat {\mathcal W} = \mathop{\arg\min}\limits_{\mathcal W} \mathcal J(\mathcal W)
W^=WargminJ(W),并关于
J
(
W
)
\mathcal J(\mathcal W)
J(W)对
W
\mathcal W
W进行求导:
∂
J
(
W
)
∂
W
=
∑
i
=
1
N
{
y
(
i
)
log
[
1
+
e
−
W
T
x
(
i
)
]
×
(
−
1
(
1
+
e
−
W
T
x
(
i
)
)
2
)
×
(
−
x
(
i
)
e
−
W
T
x
(
i
)
)
+
(
1
−
y
(
i
)
)
1
+
e
−
W
T
x
(
i
)
e
−
W
T
x
(
i
)
×
1
(
1
+
e
−
W
T
x
(
i
)
)
2
×
(
−
x
(
i
)
e
−
W
T
x
(
i
)
)
}
=
∑
i
=
1
N
y
(
i
)
log
[
1
+
e
−
W
T
x
(
i
)
]
x
(
i
)
[
e
−
W
T
x
(
i
)
]
2
+
(
y
(
i
)
−
1
)
x
(
i
)
e
−
W
T
x
(
i
)
(
1
+
e
−
W
T
x
(
i
)
)
e
−
W
T
x
(
i
)
(
1
+
e
−
W
T
x
(
i
)
)
2
\begin{aligned}\frac{\partial \mathcal J(\mathcal W)}{\partial \mathcal W} & = \sum_{i=1}^N \left\{y^{(i)} \log \left[1 + e^{-\mathcal W^{T}x^{(i)}}\right] \times \left(- \frac{1}{\left(1 + e^{-\mathcal W^{T}x^{(i)}}\right)^2}\right) \times \left(-x^{(i)}e^{-\mathcal W^{T}x^{(i)}}\right) + (1 - y^{(i)}) \frac{1 + e^{-\mathcal W^{T}x^{(i)}}}{ e^{-\mathcal W^{T}x^{(i)}}}\times \frac{1}{\left(1 + e^{-\mathcal W^{T}x^{(i)}}\right)^2} \times \left(-x^{(i)}e^{-\mathcal W^{T}x^{(i)}}\right)\right\} \\ & = \sum_{i=1}^N \frac{y^{(i)} \log \left[1 + e^{-\mathcal W^{T}x^{(i)}}\right]x^{(i)}\left[e^{-\mathcal W^{T}x^{(i)}}\right]^2 + (y^{(i)} - 1)x^{(i)}e^{-\mathcal W^{T}x^{(i)}}\left(1 + e^{-\mathcal W^{T}x^{(i)}}\right)}{e^{-\mathcal W^{T}x^{(i)}}(1 + e^{-\mathcal W^{T}x^{(i)}})^2} \end{aligned}
∂W∂J(W)=i=1∑N{y(i)log[1+e−WTx(i)]×(−(1+e−WTx(i))21)×(−x(i)e−WTx(i))+(1−y(i))e−WTx(i)1+e−WTx(i)×(1+e−WTx(i))21×(−x(i)e−WTx(i))}=i=1∑Ne−WTx(i)(1+e−WTx(i))2y(i)log[1+e−WTx(i)]x(i)[e−WTx(i)]2+(y(i)−1)x(i)e−WTx(i)(1+e−WTx(i))
令
∂
J
(
W
)
∂
W
≜
0
\frac{\partial \mathcal J(\mathcal W)}{\partial \mathcal W} \triangleq 0
∂W∂J(W)≜0,则 分子部分等于0。即:
∑
i
=
1
N
{
x
(
i
)
e
−
W
T
x
(
i
)
(
1
+
e
−
W
T
x
(
i
)
)
[
y
(
i
)
e
−
W
T
x
(
i
)
+
y
(
i
)
−
1
]
}
=
0
\sum_{i=1}^N \left\{x^{(i)}e^{-\mathcal W^{T}x^{(i)}}\left(1 + e^{-\mathcal W^{T}x^{(i)}}\right)\left[y^{(i)}e^{-\mathcal W^{T}x^{(i)}} + y^{(i)} - 1\right]\right\} = 0
i=1∑N{x(i)e−WTx(i)(1+e−WTx(i))[y(i)e−WTx(i)+y(i)−1]}=0
由于
e
−
W
T
x
(
i
)
,
(
1
+
e
−
W
T
x
(
i
)
)
e^{-\mathcal W^{T}x^{(i)}},\left(1 + e^{-\mathcal W^{T}x^{(i)}}\right)
e−WTx(i),(1+e−WTx(i))均大于0恒成立,因此有:
∑
i
=
1
N
{
x
(
i
)
[
y
(
i
)
e
−
W
T
x
(
i
)
+
y
(
i
)
−
1
]
}
=
0
\sum_{i=1}^N \left\{x^{(i)}\left[y^{(i)}e^{-\mathcal W^{T}x^{(i)}} + y^{(i)} - 1\right]\right\} = 0
i=1∑N{x(i)[y(i)e−WTx(i)+y(i)−1]}=0
最终求得:
W
^
T
=
∑
i
=
1
N
−
1
x
(
i
)
log
[
1
y
(
i
)
−
1
]
\hat {\mathcal W}^{T} = \sum_{i=1}^N -\frac{1}{x^{(i)}} \log \left[\frac{1}{y^{(i)}} - 1 \right]
W^T=i=1∑N−x(i)1log[y(i)1−1]
观察该式子,我们发现:它就是将样本
(
x
(
i
)
,
y
(
i
)
)
(x^{(i)},y^{(i)})
(x(i),y(i))带入
s
i
g
m
o
i
d
sigmoid
sigmoid激活函数后
W
\mathcal W
W的求解结果:
y
(
i
)
=
1
1
+
e
−
W
T
x
(
i
)
→
W
T
=
−
1
x
(
i
)
log
[
1
y
(
i
)
−
1
]
y^{(i)} = \frac{1}{1 + e^{-\mathcal W^{T}x^{(i)}}} \\ \to \mathcal W^{T} = -\frac{1}{x^{(i)}} \log \left[\frac{1}{y^{(i)}} - 1 \right]
y(i)=1+e−WTx(i)1→WT=−x(i)1log[y(i)1−1]
下一节将介绍:用于线性分类的概率生成模型——高斯判别分析(Gaussain Discriminant Analysis,GDA)。