线性分类
从线性回归到线性分类,通过激活函数或者降维来实现。
线性回归函数
f
(
w
,
b
)
=
w
T
x
+
b
f(w,b)=w^Tx+b
f(w,b)=wTx+b经过激活函数作用
y
=
f
(
w
T
x
+
b
)
y=f(w^Tx+b)
y=f(wTx+b)作用后变成硬分类问题
y
ϵ
{
0
,
1
}
y\epsilon \left \{0,1 \right \}
yϵ{0,1}或者变成软分类问题
y
ϵ
[
0
,
1
]
,
y\epsilon [0,1],
yϵ[0,1],函数
f
f
f就称为激活函数,
f
−
1
f^{-1}
f−1称为
l
i
n
k
f
u
n
c
t
i
o
n
,
link function,
linkfunction,
硬分类代表模型:感知机,线性判别分析
软分类代表模型:高斯判别分析(生成式模型),逻辑回归(判别式模型)
硬输出-感知机
样本集:
{
(
x
i
,
y
i
)
}
i
=
1
N
\left \{ (x_i,y_i)\right \}_{i=1} ^N
{(xi,yi)}i=1N
感知机思想:错误驱动。给定一个初始的分类平面
w
T
x
,
w^Tx,
wTx,再一步步移动这个平面使得被错误分类的点越来越少。被错误分类的集合用D表示
模型:
f
(
x
)
=
s
i
g
n
(
w
T
x
)
,
x
ϵ
R
P
,
w
ϵ
R
P
,
f(x)=sign(w^Tx),x\epsilon R^P,w\epsilon R^P,
f(x)=sign(wTx),xϵRP,wϵRP,其中当
w
T
x
≥
0
,
s
i
g
n
(
w
T
x
)
=
1
;
w
T
x
<
0
,
s
i
g
n
(
w
T
x
)
=
0
w^Tx \geq 0,sign(w^Tx)=1;w^Tx < 0,sign(w^Tx)=0
wTx≥0,sign(wTx)=1;wTx<0,sign(wTx)=0
策略定义为被错误分类的点的个数
策略:
l
o
s
s
f
u
n
c
t
i
o
n
:
L
(
w
)
=
∑
i
=
1
N
I
{
y
i
w
T
x
i
<
0
}
,
loss function:L(w)=\sum_{i=1} ^N I\left \{ y_iw^Tx_i<0 \right \},
lossfunction:L(w)=∑i=1NI{yiwTxi<0},也就是当
y
i
w
T
x
i
<
0
y_iw^Tx_i<0
yiwTxi<0时样本是被错误分类的。
通俗点理解就是
w
T
x
i
>
0
,
y
i
=
1
→
y
i
w
T
x
i
>
0
,
w^Tx_i>0,y_i=1\rightarrow y_iw^Tx_i>0,
wTxi>0,yi=1→yiwTxi>0,分类正确,反之分类错误。然而
L
(
w
)
L(w)
L(w)是不可导的,那么这个
l
o
s
s
f
u
n
c
t
i
o
n
loss function
lossfunction就需要进行改进。虽然
L
(
w
)
L(w)
L(w)是不可导的,但是
y
i
w
T
x
i
y_iw^Tx_i
yiwTxi是可导的。
因此改进之后的
l
o
s
s
f
u
n
t
i
o
n
loss funtion
lossfuntion是这样:
L
(
w
)
=
∑
x
i
ϵ
D
−
y
i
w
T
x
i
,
L(w)=\sum_{x_i\epsilon D}-y_iw^Tx_i,
L(w)=∑xiϵD−yiwTxi,
对
w
w
w求偏导:
▽
w
L
=
−
y
i
x
i
\bigtriangledown _wL=-y_ix_i
▽wL=−yixi
接下来算法只需用随机梯度下降法就能求出来了。
算法:SGD
w
(
t
+
1
)
←
w
t
+
λ
▽
w
L
w^{(t+1)}\leftarrow w^{t}+\lambda \bigtriangledown _wL
w(t+1)←wt+λ▽wL
当然,上述的感知机算法都是基于数据线性可分为前提
硬输出-线性判别分析
样本集:
{
(
x
i
,
y
i
)
}
i
=
1
N
,
x
i
ϵ
R
p
,
y
i
ϵ
{
c
1
=
1
,
c
2
=
−
1
}
\left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ c_1=1,c_2=-1 \right \}
{(xi,yi)}i=1N,xiϵRp,yiϵ{c1=1,c2=−1}
x
c
1
=
{
x
i
∣
y
i
=
+
1
}
,
x
c
2
=
{
x
i
∣
y
i
=
−
1
}
x_{c_1}=\left \{x_i|y_i=+1 \right \},x_{c_2}=\left \{x_i|y_i=-1 \right \}
xc1={xi∣yi=+1},xc2={xi∣yi=−1}
令集合
x
c
1
=
N
1
,
x
c
2
=
N
2
,
x_{c_1}=N_1,x_{c_2}=N_2,
xc1=N1,xc2=N2,所以
N
1
+
N
2
=
N
N_1+N_2=N
N1+N2=N
思想:类内小,类间大
如图所示:
同类的数据间隔尽量小(类内方差尽量小),而不同类数据星星和圈圈之间的距离尽量大(类间大)。
我们投影的方向是
w
,
w,
w,也就是超平面对应的法向量。
点到平面的投影的线为
z
,
z
i
=
w
T
x
i
z,z_i=w^Tx_i
z,zi=wTxi
所以不同类的均值可以表示出来:
那么类间的距离就可以用
(
z
ˉ
1
−
z
ˉ
2
)
2
(\bar z_1-\bar z_2)^2
(zˉ1−zˉ2)2表示;
类内的距离就用
S
1
+
S
2
S_1+S_2
S1+S2表示。
那么为了达到我们的目的,也就是类内小,类间大,目标函数可以定义如下:
令:
化简我们的
J
(
w
)
J(w)
J(w)表达式,可得:
这里的
S
b
S_b
Sb就是类间方差,
S
w
S_w
Sw是类内方差。
对w求偏导,令
∂
J
(
w
)
∂
w
=
0
,
\frac{\partial J(w)}{\partial w}=0,
∂w∂J(w)=0,求得:
由于我们只关心
w
w
w的方向而不管其大小,那么
w
∝
S
w
−
1
(
x
ˉ
c
1
−
x
ˉ
c
2
)
w \propto S_w^{-1}(\bar x_{c_1}-\bar x_{c_2})
w∝Sw−1(xˉc1−xˉc2);如果
S
w
−
1
S_w^{-1}
Sw−1是个对角矩阵或者单位矩阵,那么
w
∝
(
x
ˉ
c
1
−
x
ˉ
c
2
)
w \propto (\bar x_{c_1}-\bar x_{c_2})
w∝(xˉc1−xˉc2)
软输出-判别式:逻辑回归
样本集: { ( x i , y i ) } i = 1 N , x i ϵ R p , y i ϵ { 0 , 1 } \left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ 0,1 \right \} {(xi,yi)}i=1N,xiϵRp,yiϵ{0,1}
引入sigmoid function:
其函数图像如下:
代入有:
接下来用极大似然估计求解
w
^
=
a
r
g
m
a
x
w
l
o
g
P
(
Y
∣
X
)
\hat{w}=\underset w {argmax}logP(Y|X)
w^=wargmaxlogP(Y∣X)就可以了。
软输出-生成式:高斯判别分析
样本集: { ( x i , y i ) } i = 1 N , x i ϵ R p , y i ϵ { 0 , 1 } \left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ 0,1 \right \} {(xi,yi)}i=1N,xiϵRp,yiϵ{0,1}
我们知道对于概率判别模型,我们可以直接求y值进行分类;而概率生成模型则是通过比较y=0和y=1的大小进行判断,根据贝叶斯公式 P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ) P(y|x)=\frac{P(x|y)P(y)}{P(x)} P(y∣x)=P(x)P(x∣y)P(y)我们知道,概率生成模型和分母项 P ( x ) P(x) P(x)无关,所以可以对联合概率建模 P ( y ∣ x ) ∝ P ( x ∣ y ) P ( y ) , P(y|x)\propto P(x|y)P(y), P(y∣x)∝P(x∣y)P(y),也就是后验=似然*先验。
模型: y ^ = a r g m a x y ϵ { 0 , 1 } P ( y ∣ x ) = a r g m a x y P ( y ) P ( x ∣ y ) \hat y=\underset{y\epsilon\left \{0,1\right\}}{argmax}P(y|x)=\underset y {argmax}P(y)P(x|y) y^=yϵ{0,1}argmaxP(y∣x)=yargmaxP(y)P(x∣y)
那么y是服从伯努利分布 P ( y ) = ϕ y ( 1 − ϕ ) 1 − y P(y)=\phi^y(1-\phi)^{1-y} P(y)=ϕy(1−ϕ)1−y,
x服从于高斯分布,
x
∣
y
=
1
∼
N
(
μ
1
,
ε
)
y
x|y=1 \sim N(\mu_1,\varepsilon )^y
x∣y=1∼N(μ1,ε)y,
{
x
i
∣
y
i
=
1
,
i
=
1
,
.
.
.
,
N
}
\left \{x_i|y_i=1,i=1,...,N\right \}
{xi∣yi=1,i=1,...,N},此集合作为
c
1
c_1
c1,集合内元素的总个数为
N
1
N_1
N1,对应的方差为
S
1
S_1
S1。
x
∣
y
=
0
∼
N
(
μ
2
,
ε
)
y
x|y=0 \sim N(\mu_2,\varepsilon )^y
x∣y=0∼N(μ2,ε)y,
{
x
i
∣
y
i
=
0
,
i
=
1
,
.
.
.
,
N
}
\left \{x_i|y_i=0,i=1,...,N\right \}
{xi∣yi=0,i=1,...,N},集合作为
c
2
c_2
c2,集合内元素的总个数为
N
2
N_2
N2,对应的方差为
S
2
S_2
S2。
P ( x i ∣ y i ) = N ( μ 1 , ε ) y ∗ N ( μ 2 , ε ) 1 − y P(x_i|y_i)=N(\mu_1,\varepsilon )^y*N(\mu_2,\varepsilon )^{1-y} P(xi∣yi)=N(μ1,ε)y∗N(μ2,ε)1−y
对数似然就能写成如下公式:
求得
ϕ
^
=
N
1
N
,
\hat \phi=\frac{N_1}{N},
ϕ^=NN1,
ε ^ = 1 N ( N 1 S ! + N 2 S 2 ) \hat\varepsilon=\frac{1}{N}(N_1S_!+N_2S_2) ε^=N1(N1S!+N2S2)
μ ^ 1 = ∑ i = 1 N y i x i N 1 \hat\mu_1=\frac{\sum{i=1}{N}y_ix_i}{N_1} μ^1=N1∑i=1Nyixi
μ ^ 2 = ∑ i = 1 N y i x i N 2 \hat\mu_2=\frac{\sum{i=1}{N}y_ix_i}{N_2} μ^2=N2∑i=1Nyixi
软输出-生成式:朴素贝叶斯
样本集: { ( x i , y i ) } i = 1 N , x i ϵ R p , y i ϵ { 0 , 1 } \left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ 0,1 \right \} {(xi,yi)}i=1N,xiϵRp,yiϵ{0,1}
思想:朴素贝叶斯假设,也叫条件独立性假设。
朴素贝叶斯是最简单的概率图(有向图)模型。
条件独立性假设如图所示:
也就是给定y的情况下,x1和x2相互独立。
做这个假设的目的就是为了简化运算,考虑高维情况。
朴素贝叶斯的目的也是给定x和y,判断其属于0还是1。
模型:
对于P(y),如果是二分类问题,其属于伯努利分布;如果是多分类问题,其属于categrial分布。
对于P(x|y),假定其遵循条件独立性假设。如果x是离散的,其属于categorical分布;如果x是连续的,其属于高斯分布。
求解可以直接用极大似然估计求解出来,在此就不做过多介绍了。