概念
E.n. Logistic Regression,经典的机器学习分类算法之一,与线性回归同属于广义线性模型 (generalized linear model)。逻辑回归的作用域在于整个实数集。经由参数
W
W
W 和
b
b
b (统称为
θ
\theta
θ ) 线性变换后得出的实数,由特定函数投射到
[
0
,
1
]
[0,1]
[0,1] 的值域范围内:
z
i
=
f
(
X
i
;
θ
)
=
f
(
W
T
X
i
+
b
)
z_i=f(X_i;\theta)=f(W^TX_i+b)
zi=f(Xi;θ)=f(WTXi+b)
二分类
在二分类中,
f
f
f 即为 Sigmoid 函数,求出的
z
z
z 可以理解为样本属于正案例的概率,
(
1
−
z
)
(1-z)
(1−z) 即为样本属于负案例的概率,这里我们将判断分类的阈值设为
0.5
0.5
0.5,
z
i
=
1
1
+
e
−
(
W
T
X
i
+
b
)
z_i=\frac{1}{1+e^{-(W^TX_i+b)}}
zi=1+e−(WTXi+b)1
y i ^ = { 0 , z i < 0.5 1 , z i ≥ 0.5 \hat{y_i}=\begin{cases}0,& z_i<0.5\\1, & z_i\ge0.5 \end{cases} yi^={0,1,zi<0.5zi≥0.5
我们希望最大化全部样本预测正确的综合概率,似然函数
l
(
X
;
θ
)
=
∏
X
i
∈
X
z
i
y
i
(
1
−
z
i
)
1
−
y
i
l(X;\theta)=\prod_{X_i\in X} z_i^{y_i}(1-z_i)^{1-y_i}
l(X;θ)=Xi∈X∏ziyi(1−zi)1−yi
使用极大似然法求解最优参数
θ
∗
\theta^*
θ∗,
θ
∗
=
arg
max
θ
l
(
X
;
θ
)
=
arg
min
θ
−
log
l
(
X
;
θ
)
\theta^* =\arg\max_\theta l(X;\theta)=\arg\min_\theta-\log l(X;\theta)
θ∗=argθmaxl(X;θ)=argθmin−logl(X;θ)
由此,最大化似然函数的问题转变为最小化损失函数
L
(
X
;
θ
)
=
−
∑
i
(
y
i
log
z
i
+
(
1
−
y
i
)
log
(
1
−
z
i
)
)
L(X;\theta)=-\sum_i\big(y_i\log z_i +(1-y_i)\log (1-z_i)\big)
L(X;θ)=−i∑(yilogzi+(1−yi)log(1−zi))
这也就是我们常见的交叉熵损失函数。经过简化,损失函数成为
L
(
X
;
θ
)
=
−
∑
i
(
y
i
z
i
+
log
(
1
+
e
z
i
)
)
L(X;\theta)=-\sum_i\big(y_iz_i+\log (1+e^{z_i})\big)
L(X;θ)=−i∑(yizi+log(1+ezi))
若样本标签从当前的
{
0
,
1
}
\{0,1\}
{0,1} 改为
{
−
1
,
1
}
\{-1,1\}
{−1,1},则重写后的上述公式为
L
(
X
;
θ
)
=
−
∑
i
log
(
1
+
e
−
z
i
y
i
)
L(X;\theta)=-\sum_i\log\big(1+e^{-z_iy_i}\big)
L(X;θ)=−i∑log(1+e−ziyi)
也就是我们熟悉的 Logistic Loss。模型训练过程中,使用梯度下降法或牛顿法逐步拟合参数。
Algorithm LogisticRegression( D D D, η \eta η):
Input: Sample data D = { ( X i , y i ) } D=\{(X_i,y_i)\} D={(Xi,yi)}, learning rate η \eta η.
Output: Prediction result y ^ \hat{y} y^.
initialize W W W and b b b;
while not converged do
z ← σ ( W T X + b ) z\leftarrow \sigma(W^TX+b) z←σ(WTX+b)
L ← − y log z − ( 1 − y ) log ( 1 − z ) L\leftarrow -y\log z-(1-y)\log(1-z) L←−ylogz−(1−y)log(1−z)
W ← W − η ⋅ ∂ L ∂ W W\leftarrow W-\eta\cdot \frac{\partial L}{\partial W} W←W−η⋅∂W∂L
b ← b − η ⋅ ∂ L ∂ b b\leftarrow b-\eta\cdot \frac{\partial L}{\partial b} b←b−η⋅∂b∂L
return I ( σ ( W T X + b ) ≥ 0.5 ) \mathbb{I}\big(\sigma(W^TX+b)\ge0.5\big) I(σ(WTX+b)≥0.5)
多分类
多分类的思路与二分类不大,针对每一种分类单独训练一套参数,标签为 “属于该分类” 和 “不属于该分类”。各个分类下的模型最后求出来的
z
z
z 值通过 Softmax 函数归一化处理后的值即为分属于该分类的概率。
s
o
f
t
m
a
x
(
z
k
)
=
e
z
k
∑
k
=
1
K
e
z
k
softmax(z_k)=\frac{e^{z_k}}{\sum_{k=1}^Ke^{z_k}}
softmax(zk)=∑k=1Kezkezk