本文介绍两种基本的分类方法,逻辑回归和softmax回归。
一、逻辑回归(Logistic Regression)
1. 基本概念
逻辑回归不是回归,而是二分类,又称对数几率回归。它是在线性回归的外面包裹一层Sigmoid函数,把线性回归压缩(映射)到(0,1)区间上。
回忆一下,线性回归表达式为
f
(
x
)
=
w
T
x
f(x)=w^Tx
f(x)=wTx。那么逻辑回归的表达式为
h
(
x
)
=
g
(
f
(
x
)
)
=
g
(
w
T
x
)
h(x)=g(f(x))=g(w^Tx)
h(x)=g(f(x))=g(wTx),其中,
g
g
g为sigmoid函数,表达形式见下图。
2.工作原理
以二维平面样本为例,线性回归是求一条直线,对应方程为:
y
=
w
1
x
+
w
0
y=w_1x+w_0
y=w1x+w0, 参数有二:
w
1
w_1
w1和
w
0
w_0
w0;逻辑回归方程为
h
(
x
)
=
g
(
f
(
x
)
)
=
g
(
w
1
x
1
+
w
2
x
2
+
w
0
)
h(x)=g(f(x))=g(w_1x_1+w_2x_2+w_0)
h(x)=g(f(x))=g(w1x1+w2x2+w0),参数有三:
w
1
、
w
2
w_1、w_2
w1、w2和
w
0
w_0
w0. 线性回归的目标值是一个值,逻辑回归的目标值是二分类布尔型,对或者错,为了方便计算,分别赋值为 1 和 0.
逻辑回归的目的就是求出一组
w
1
、
w
2
w_1、w_2
w1、w2和
w
0
w_0
w0,使得对于目标值为 1 的样本,
h
(
x
)
h(x)
h(x)的值尽量接近 1;对于目标值为 0 的样本,
h
(
x
)
h(x)
h(x)的值尽量接近 0 。
在实际应用中,基于已经求得的参数,和已知的样本值,得到一个
h
(
x
)
h(x)
h(x)值,
h
(
x
)
<
0.5
h(x)<0.5
h(x)<0.5,将其归类为类别“0”;
h
(
x
)
>
0.5
h(x)>0.5
h(x)>0.5,将其归类为类别 “1”。可以理解
h
(
x
)
h(x)
h(x)为概率值。
3.损失函数
想要求参数,需要损失函数,即如何构建函数,能表达出上表中的
h
(
x
)
和
y
h(x)和y
h(x)和y的差异,并且使得这种差异最小。显然,无法使用线性回归中的均方误差损失函数,因为
h
(
x
)
h(x)
h(x)是计算得出的实际值,
y
y
y是概率值,二者不是一个层级上的。此处用交叉熵损失函数(cross entropy loss),又称对数似然损失函数,求解时利用梯度下降法。
J
(
w
)
=
−
1
n
∑
i
=
1
n
[
y
i
log
(
h
w
(
x
i
)
)
+
(
1
−
y
i
)
log
(
1
−
h
w
(
x
i
)
)
]
J(w)=-{\frac{1}{n}}\sum_{i=1}^{n}\left[y^{i}\log(h_{w}(x^{i}))+(1-y^{i})\log(1-h_{w}(x^{i}))\right]
J(w)=−n1i=1∑n[yilog(hw(xi))+(1−yi)log(1−hw(xi))]
其中: w w w为参数, n n n为样本总量, i i i 为样本序号, h w ( x i ) h_{w}(x^{i}) hw(xi)为计算值, y i y^i yi为目标值。
这个算式的意思是, y i y^i yi只有 0 和 1 两个值,且每个样本 i i i 只有一个 y y y,中括号中的两项只有1项不为0。 对于 y = 1 y=1 y=1,前面项不为0,要求 h w ( x i ) h_{w}(x^{i}) hw(xi)尽量接近1,才能保证此项为0;对于 y = 0 y=0 y=0,后面项不为0,要求 h w ( x i ) h_{w}(x^{i}) hw(xi)尽量接近0,才能保证此项为0。注:当不接近1时, J ( w ) J(w) J(w)是大于0的。
4.参数求解
w i + 1 = w i − α ∂ J ( w ) ∂ w i = w i − α 1 m ∑ i = 1 m ( h w ( x i ) − y i ) x i \begin{aligned} w_{i+1}&=w_i-\alpha\frac{\partial J(w)}{\partial{w}_i}\\ \\ &=w_i-\alpha\frac{1}{m}\sum_{i=1}^m(h_w(x^i)-y^i)x^i \end{aligned} wi+1=wi−α∂wi∂J(w)=wi−αm1i=1∑m(hw(xi)−yi)xi
详细推导见邱锡鹏书
实际运用中损失函数会加入L2范数防止过拟合,具体见logistic回归分类与softmax回归
二、Softmax回归
1. 基本概念
逻辑回归是二分类,Softmax回归是多分类,y值不再局限于0和1。是第一类、第二类、第三类这种概念,转成方便计算的形式一般写成one-hot,[1,0,0],[0,1,0],[0,0,1]分别对应第1、2、3类的形式。
2. 工作原理
和逻辑回归一样,计算方式分为两步,第一步,计算
w
T
x
w^Tx
wTx,第二步包裹Softmax函数。
考虑1个简单的图像分类问题:图像有4个像素,分别记为
x
1
,
x
2
,
x
3
,
x
4
x_1,x_2,x_3,x_4
x1,x2,x3,x4,表示3种动物:狗、猫、鸡。
那么先进行第一步:
o
1
=
w
11
x
1
+
w
12
x
2
+
w
13
x
3
+
w
14
x
4
+
b
1
o
2
=
w
21
x
1
+
w
22
x
2
+
w
23
x
3
+
2
24
x
4
+
b
2
o
3
=
w
31
x
1
+
w
32
x
2
+
w
33
x
3
+
2
34
x
4
+
b
3
\begin{array} {c}o_1=w_{11}x_1+w_{12}x_2+w_{13}x_3+w_{14}x_4+b_1\\ o_2=w_{21}x_1+w_{22}x_2+w_{23}x_3+2_{24}x_4+b_2\\ o_3=w_{31}x_1+w_{32}x_2+w_{33}x_3+2_{34}x_4+b_3 \end{array}
o1=w11x1+w12x2+w13x3+w14x4+b1o2=w21x1+w22x2+w23x3+224x4+b2o3=w31x1+w32x2+w33x3+234x4+b3
第二步包裹Softmax:
y
1
^
,
y
2
^
,
y
3
^
=
S
o
f
t
m
a
x
(
o
1
,
o
2
,
o
3
)
\begin{array} {c}\hat{y_{1}},\hat{y_{2}},\hat{y_{3}}=Softmax\big(o_{1},o_{2},o_{3}\big)\\ \end{array}
y1^,y2^,y3^=Softmax(o1,o2,o3)
其中,
y
1
^
=
exp
(
o
1
)
∑
i
=
1
3
exp
(
o
i
)
,
y
2
^
=
exp
(
o
2
)
∑
i
=
1
3
exp
o
i
,
y
3
^
=
exp
(
o
3
)
∑
i
=
1
3
exp
o
i
\hat {y_1}=\dfrac{\exp(o_1)}{\sum_{i=1}^3\exp(o_i)},\hat{y_2}=\dfrac{\exp (o_2)}{\sum_{i=1}^3\exp o_i},\hat{y_3}=\dfrac{\exp (o_3)}{\sum_{i=1}^3\exp o_i}
y1^=∑i=13exp(oi)exp(o1),y2^=∑i=13expoiexp(o2),y3^=∑i=13expoiexp(o3)
y 1 ^ 、 y 2 ^ 、 y 3 ^ \hat {y_1}、\hat {y_2}、\hat {y_3} y1^、y2^、y3^分别是三种动物的概率,3类概率总和为 1。
写成矩阵计算的形式为:
系数矩阵为:
W
=
[
w
11
w
12
w
13
w
21
w
22
w
23
w
31
w
32
w
33
w
41
w
42
w
43
]
,
b
=
[
b
1
b
2
b
3
]
,
\mathbf{W}=\begin{bmatrix}w_{11}&w_{12}&w_{13}\\ w_{21}&w_{22}&w_{23}\\ w_{31}&w_{32}&w_{33}\\ w_{41}&w_{42}&w_{43}\end{bmatrix},\quad\mathbf{b}=\begin{bmatrix}b_1&b_2&b_3\end{bmatrix},
W=
w11w21w31w41w12w22w32w42w13w23w33w43
,b=[b1b2b3],
输入样本为:
x
(
i
)
=
[
x
1
(
i
)
x
2
(
i
)
x
3
(
i
)
x
4
(
i
)
]
,
\boldsymbol{x}^{(i)}=\begin{bmatrix}x^{(i)}_1&x^{(i)}_2&x^{(i)}_3&x^{(i)}_4\end{bmatrix},
x(i)=[x1(i)x2(i)x3(i)x4(i)],
上标
i
i
i 为样本序号。
输出为:
o
(
i
)
=
[
o
1
(
i
)
o
2
(
i
)
o
3
(
i
)
]
,
\boldsymbol{o}^{(i)}=\left[\begin{array}{ccc}o_1^{(i)}&o_2^{(i)}&o_3^{(i)}\\ \end{array}\right],
o(i)=[o1(i)o2(i)o3(i)],
概率为:
y
^
(
i
)
=
[
y
^
1
(
i
)
y
^
2
(
i
)
y
^
3
(
i
)
]
.
\hat{\boldsymbol{y}}^{(i)}=\begin{bmatrix}\hat{y}_1^{(i)}\quad\hat{y}_2^{(i)}\quad\hat{y}_3^{(i)}\end{bmatrix}.
y^(i)=[y^1(i)y^2(i)y^3(i)].
总体形式为:
o
(
i
)
=
x
(
i
)
W
+
b
,
y
^
(
i
)
=
softmax
(
o
(
i
)
)
.
\begin{array}{l}\boldsymbol{o}^{(i)}=\boldsymbol{x}^{(i)}\boldsymbol{W}+\boldsymbol{b},\\ \boldsymbol{\hat{y}}^{(i)}=\operatorname{softmax}(\boldsymbol{o}^{(i)}).\end{array}
o(i)=x(i)W+b,y^(i)=softmax(o(i)).
第一步可以表示成神经网络的形式:
3.损失函数
同逻辑回归一样,此处也是使用交叉熵损失函数。
对于一个样本:
H
=
−
∑
j
=
1
m
y
j
log
y
^
j
,
H=-\sum_{j=1}^m y_j\log\hat{y}_j,
H=−j=1∑myjlogy^j,
其中,
j
j
j 为分类数,本例中为狗猫鸡共3类。
对于多个样本,将所有样本的损失熵平均:
H
=
−
1
m
∑
i
=
1
n
∑
j
=
1
m
y
j
(
i
)
log
y
^
j
(
i
)
,
H=-\frac1 m \sum_{i=1}^n\sum_{j=1}^m y_j^{(i)}\log\hat{y}_j^{(i)},
H=−m1i=1∑nj=1∑myj(i)logy^j(i),
其中,
i
i
i为样本,
n
n
n为样本总量。
4.参数求解
同逻辑回归求解。
三、逻辑回归和Softmax回归的关系
逻辑回归是Softmax回归的二分类一般形式,详细推导见LR回归(逻辑回归)和softmax回归