邱锡鹏《神经网络与深度学习》线性分类模型综述
线性模型的公式一般形式为:f(x;ω)=ω^T x+b;其中ω=[ω_1,⋯,ω_D]T为D维权重向量,b为偏置。在分类问题中,输出目标y是一些离散的标签,所以要引入其他函数来预测输出目标。
其中f(x;ω)为判别函数,决策函数g(·)。
例如:g(·)可以为符号函数:
当f(x;ω)=0时不预测。
模型一:二分类与多分类问题
二分类
二分类中,样本只有两种取值{-1,1},常用正例和负例来表示;二分类任务中,我们需要一个线性判别函数f(x;ω)=
ω
T
ω^T
ωT x+b.特征空间R^D中所有满足f(x;ω)=0的点组成一个分割超平面,称为决策边界或决策平面。将特征空间一分为二,每个区域对应一个类别。
其中决策边界与权重向量ω正交(因为f(x;ω)=0),特征空间中每个样本点到决策平面的有向距离为
γ也可以看作是点x在ω方向的投影。
在二分类问题中:在给定N个样本的训练集上,线性模型试图学习到参数
ω
∗
ω^*
ω∗,使得每个样本(
x
(
n
)
x^{(n)}
x(n),
y
(
n
)
y^{(n)}
y(n))尽量满足
联合上面两个式子,如果存在权重
ω
∗
ω^*
ω∗,对所有样本有
y
f
(
x
(
n
)
;
ω
∗
)
yf(x^{(n)};ω^*)
yf(x(n);ω∗)>0(当y=-1时满足
y
f
(
x
(
n
)
;
ω
∗
)
yf(x^{(n)};ω^*)
yf(x(n);ω∗)>0即
f
(
x
(
n
)
;
ω
∗
)
f(x^{(n)};ω^*)
f(x(n);ω∗)<0,当y=1时,
f
(
x
(
n
)
;
ω
∗
)
f(x^{(n)};ω^*)
f(x(n);ω∗)>0)则说明改训练集是线性可分的。
可以用0-1损失函数来度量模型的性能,但是在优化模型时,0-1模型就起不到应有的作用,因为其关于ω的导数为0。
可用logistic regression的损失函数对模型优化,具体可见:链接!!!中week3的笔记描述。
多分类
多分类问题指问题类别数K≥3的情况{1,2,…,K},常用的分类方式主要有以下三种:
(1)“一对其他”:
把K个多类问题分成K个两类问题,每一个两类问题是一个一对多的问题(判断我是不是第i类),因此有K个判别函数,K组权向量。
如图中所示,每一类别可用一个简单的直线判别结面将它与其他类别分开。
例如:
x
∈
ω
1
x∈ω_1
x∈ω1的模式,应同时满足:
d
1
(
x
)
>
0
,
d
2
(
x
)
<
0
,
d
3
(
x
)
<
0
d_1(x)>0,d_2(x)<0,d_3(x)<0
d1(x)>0,d2(x)<0,d3(x)<0
IR(不确定区域):对某一区域,
d
i
(
x
)
>
0
d_i(x)>0
di(x)>0的条件超过一个,或者全部小于0时,无法判别出该区域到底属于哪一类。
(2)“一对一方式”:
采用每对划分的方法,即
ω
i
、
ω
j
ω_i 、ω_j
ωi、ωj两分法,此时一个判别面只能分开两种类别,不能把它与其余所有类别分开。因此有
(
K
(
K
−
1
)
2
)
\left(\frac{K(K-1)}{2}\right)
(2K(K−1))个判别函数(K类两两组合,即
C
k
2
C_k^2
Ck2)其判别函数为:
d
i
j
(
x
)
=
W
i
j
T
X
(
重
要
性
质
:
d
i
j
=
−
d
i
j
,
相
当
于
决
策
边
界
有
方
向
)
d_{ij}(x)=W_{ij}^TX(重要性质:d_{ij}=-d_{ij},相当于决策边界有方向)
dij(x)=WijTX(重要性质:dij=−dij,相当于决策边界有方向)
若
d
i
j
(
x
)
>
0
d_{ij }(x)>0
dij(x)>0,对所有
j
≠
i
j≠i
j=i都成立,则
x
∈
ω
i
x∈ω_i
x∈ωi 类
如图所示,
d
12
=
0
d_{12}=0
d12=0仅能分开
ω
1
ω_1
ω1 和
ω
2
ω_2
ω2类,不能分开
ω
1
ω_1
ω1 和
ω
3
ω_3
ω3类
图中不确定区域为: 若所有
d
i
j
(
x
)
d_{ij }(x)
dij(x),找不到任意
∀
j
≠
ⅈ
,
d
i
j
(
x
)
>
0
∀j≠ⅈ,d_{ij }(x)>0
∀j=ⅈ,dij(x)>0的情况。(例如:在某一区域
d
12
>
0
d_{12}>0
d12>0但
d
13
<
0
d_{13}<0
d13<0这就不能判定该区域是否属于第一类。)
(3)“argmax方式”:
假若在“一对一方式”中的d_ij (x)可分解成:
d
i
j
(
x
)
=
d
ⅈ
(
x
)
−
d
j
(
x
)
=
(
ω
i
−
ω
j
)
T
x
d_{ij }(x)=d_ⅈ (x)-d_j (x)=(ω_i-ω_j )^T x
dij(x)=dⅈ(x)−dj(x)=(ωi−ωj)Tx
则
d
i
j
(
x
)
>
0
d_{ij} (x)>0
dij(x)>0相当于
d
ⅈ
(
x
)
>
d
j
(
x
)
d_ⅈ (x)>d_j (x)
dⅈ(x)>dj(x),即有K个类别则有K个判别函数,第i类就是
d
i
(
x
)
=
ω
i
T
x
,
i
=
1
,
2
,
…
,
K
d_i (x)=ω_i^T x,i=1,2,…,K
di(x)=ωiTx,i=1,2,…,K
若
d
i
(
x
)
>
d
j
(
x
)
d_i (x)>d_j (x)
di(x)>dj(x),对任意
i
≠
j
i≠j
i=j都成立,则
x
∈
ω
i
x∈ω_i
x∈ωi,也可写成
d
i
(
x
)
=
m
a
x
(
d
k
(
x
)
,
k
=
1
,
2
,
…
,
K
)
,
则
x
∈
ω
i
。
(
把
样
本
x
带
入
K
个
判
别
函
数
中
,
找
出
值
最
大
的
一
个
,
他
就
属
于
那
一
类
。
)
d_i (x)=max(d_k (x),k=1,2,…,K),则x∈ω_i。(把样本x带入K个判别函数中,找出值最大的一个,他就属于那一类。)
di(x)=max(dk(x),k=1,2,…,K),则x∈ωi。(把样本x带入K个判别函数中,找出值最大的一个,他就属于那一类。)
如图所示,它不存在不确定区域。
模型二:Logistic Regression
Logistic回归是一种常用的处理二分类问题的线性模型,模型目标即分别预测:p(y=├ 1┤|x)和
p
(
y
=
1
∣
x
)
p(y=1|x)
p(y=1∣x)各子概率的问题,因为类别数为2所以
p
(
y
=
0
∣
x
)
p(y=0|x)
p(y=0∣x)+
p
(
y
=
1
∣
x
)
p(y=1|x)
p(y=1∣x)=1,模型只要计算出其中一个的概率即可。
一般来说
p
(
y
=
1
∣
x
)
=
g
(
f
(
x
;
ω
)
)
p(y=1|x)=g(f(x;ω))
p(y=1∣x)=g(f(x;ω))其中g(·)通常称为激活函数,作用是把线性函数的值域从实数域压缩到了(0,1)区间。Logistic回归中一般用logistic函数,即:
p
(
y
=
1
∣
x
)
=
σ
(
ω
T
x
)
=
1
1
+
e
−
ω
T
x
p(y=1|x)=σ(ω^T x)=\frac{1}{1+e^{-\omega^Tx}}
p(y=1∣x)=σ(ωTx)=1+e−ωTx1这里的x和ω分别为D+1维的增广特征向量和增广特征权重(x中增加了偏置1,权重中增加了b)。
Logistic回归采用交叉熵作为损失函数,并使用梯度下降法对参数进行优化。其损失函数为:
其中N为样本个数,
y
(
n
)
y^{(n)}
y(n)为样本的真实值,
y
^
(
n
)
\hat{y}^{(n)}
y^(n)为logistic函数输出值。根据求导法则可得:
Logistic回归中参数训练方法为:
ω
t
+
1
=
ω
t
−
α
∂
J
(
θ
)
∂
ω
t
ω_{t+1}=ω_t-α\frac {∂J(θ)}{∂ω_t }
ωt+1=ωt−α∂ωt∂J(θ)
关于logistic函数的其他详情,可见链接!!!中week3的笔记描述。
模型三:Softmax回归
也称多项或多类的logistic回归。对于多类问题,类别标签
y
∈
1
,
2
,
…
,
C
y∈{1,2,…,C}
y∈1,2,…,C有C个取值,给定样本x。softmax回归预测样本属于第k类的概率为:
其中
ω
c
\boldsymbolω_c
ωc是第c类的权重向量。
则softmax回归的决策函数为:
即将样本x代入C个分类函数中,样本x属于取值最大即概率最大的那一类。(见上文二分类和多分类问题中,多分类的“argmax方式”。)
Softmax回归的也采用交叉熵作为损失函数。因此参数训练方法与logistic回归的参数训练方法非常相似,只是损失函数需要将C个类别的损失叠加在一起。
模型四:感知机
给定样本训练集:
{
x
(
n
)
,
y
(
n
)
}
n
=
1
N
\lbrace {x^{(n) },y^{(n)}}\rbrace_{n=1}^N
{x(n),y(n)}n=1N,其中
y
(
n
)
∈
{
−
1
,
1
}
y^{(n)}∈\lbrace -1,1\rbrace
y(n)∈{−1,1}。其线性分类函数为:
错误驱动的在线学习算法。先初始话权重向量
ω
=
0
ω=0
ω=0,然后每分错一个样本
(
x
,
y
)
(x,y)
(x,y)时,即
y
ω
T
x
<
0
yω^T x<0
yωTx<0,则
ω
t
+
1
=
ω
t
+
y
x
\boldsymbolω_{t+1}=\boldsymbolω_t+y\boldsymbol{x}
ωt+1=ωt+yx
其损失函数为:
L
(
ω
;
x
;
y
)
=
m
a
x
(
0
,
−
y
ω
T
x
)
L(\boldsymbolω;\boldsymbol{x};y)=max(0,-y\boldsymbolω^T \boldsymbol{x})
L(ω;x;y)=max(0,−yωTx)(对于每一个样本,当
y
ω
T
x
<
0
y\boldsymbolω^T \boldsymbol x<0
yωTx<0时,判断为错误,即
−
y
ω
T
x
=
1
-y\boldsymbolω^T \boldsymbol x=1
−yωTx=1,则
m
a
x
(
0
,
−
y
ω
T
x
)
=
1
max(0,-y\boldsymbolω^T \boldsymbol x)=1
max(0,−yωTx)=1;当
y
ω
T
x
>
0
y\boldsymbolω^T \boldsymbol x>0
yωTx>0时,判断为正确,即
−
y
ω
T
x
=
−
1
-y\boldsymbolω^T\boldsymbol x=-1
−yωTx=−1,则
m
a
x
(
0
,
−
y
ω
T
x
)
=
0
max(0,-y\boldsymbolω^T \boldsymbol x)=0
max(0,−yωTx)=0。)
其梯度下降为:
模型四:支持向量机
经典的二分类算法,可以找到一个大间隔的分割超平面使得分类更具有鲁棒性。给定二分类器数据集
D
=
{
(
x
(
n
)
,
y
(
n
)
)
}
n
=
1
N
D=\lbrace (x^{(n)},y^{(n)}) \rbrace_{n=1}^N
D={(x(n),y(n))}n=1N,其中
y
n
∈
{
+
1
,
−
1
}
y_n∈\lbrace +1,-1 \rbrace
yn∈{+1,−1},如果其线性可分,即存在一个超平面:
ω
T
x
+
b
=
0
ω^T x+b=0
ωTx+b=0
数据集D中每个样本x^((n) )到分割超平面距离为:
(由点到平面距离得到:
d
=
∣
A
x
0
+
B
x
0
+
C
x
0
+
D
∣
A
2
+
B
2
+
C
2
d=\frac{|Ax_0+Bx_0+Cx_0+D|}{\sqrt{A^2+B^2+C^2}}
d=A2+B2+C2∣Ax0+Bx0+Cx0+D∣当y为负值时
ω
T
x
(
n
)
+
b
\boldsymbolω^T \boldsymbol x^{(n)}+b
ωTx(n)+b也为负值,所以
γ
(
n
)
γ^{(n)}
γ(n)也为正。
定义SVM的间隔(Margin)γ为整个数据集D中所有样本到分割超平面的最短距离:
γ
=
m
i
n
γ
(
n
)
γ=minγ^{(n)}
γ=minγ(n)
SVM算法之所以鲁棒性好也是因为大间隔,而SVM训练的目标也是优化ω、b使得γ最大。(将数据集中
y
(
n
)
(
ω
T
x
(
n
)
+
b
)
=
1
y^{(n)} (\boldsymbolω^T \boldsymbol x^{(n)}+b)=1
y(n)(ωTx(n)+b)=1的点定义为支持向量)
单侧间隔为γ,则
m
a
r
g
i
n
=
2
×
m
i
n
γ
(
n
)
=
2
×
γ
margin=2×minγ^{(n)}=2×γ
margin=2×minγ(n)=2×γ,于是SVM的目标变为最大化margin使得鲁棒性更强。
所以参数学习推导过程如下:
针对
y
(
n
)
(
ω
T
x
(
n
)
+
b
)
y^{(n)} (\boldsymbolω^T \boldsymbol x^{(n)}+b)
y(n)(ωTx(n)+b),即存在a>0,使得
m
i
n
[
y
(
n
)
(
ω
T
x
(
n
)
+
b
)
]
=
a
min[y^{(n)} ( \boldsymbolω^T \boldsymbol x^{(n)}+b)]=a
min[y(n)(ωTx(n)+b)]=a,由支持向量定义来看,为简化问题可取a=1,又因为
y
n
∈
{
+
1
,
−
1
}
,
所
以
ω
T
x
(
n
)
+
b
>
0
y_n∈\lbrace +1,-1 \rbrace,所以 \boldsymbolω^T \boldsymbol x^{(n)}+b>0
yn∈{+1,−1},所以ωTx(n)+b>0即可。
参数学习即可为:
m
i
n
1
2
‖
ω
‖
2
,
s
.
t
.
y
(
n
)
(
ω
T
x
(
n
)
+
b
)
≥
1
,
n
=
1
,
2
,
…
,
m
min \frac{1}{2} ‖ω‖^2,s.t. y^{(n)} ( \boldsymbolω^T \boldsymbol x^{(n)}+b)≥1,n=1,2,…,m
min21‖ω‖2,s.t.y(n)(ωTx(n)+b)≥1,n=1,2,…,m
通过拉格朗日数乘法求解该公式,结果为:
对于拉格朗日数乘部分可参考链接!!!
支持向量机另外一个好处是可以使用核函数,即f(x)也可写为:
上式中没有使用其他核函数也可称为线性核函数。核函数中的高斯核函数衡量了x, z之间的相似度。即:
Trick:有时可容忍样本不是在严格的硬边界内可分,于是引入
ξ
n
ξ_n
ξn使得
y
(
n
)
(
ω
T
x
(
n
)
+
b
)
≥
1
−
ξ
n
y^{(n)} (\boldsymbolω^T \boldsymbol x^{(n) }+b)≥1-ξ_n
y(n)(ωTx(n)+b)≥1−ξn,每松弛一个
ξ
n
ξ_n
ξn,则代价函数就增大一个
ξ
n
ξ_n
ξn,所以新的优化问题为:
其中C用来平衡间隔和松弛变量。也可用经验风险Hinge函数来定义参数优化问题为:
其中
m
a
x
[
1
−
y
f
(
x
;
θ
)
]
+
max[1-yf(x;θ)]_+
max[1−yf(x;θ)]+找出最差的一个点,即距离硬边界的要求最远的点,用作最后的边界要求。