线性分类模型(一)——线性判别函数

本文首发于我的个人博客Suixin’s Blog

线性分类模型主要有四种不同的方法,线性判别函数、生成式模型、判别式模型以及贝叶斯观点下的Logistic回归。我们直接考虑对原始输入空间 x \pmb{x} xxx进行分类,当然也适用于对输入变量进行一个固定的变换 ϕ ( x ) \phi(\pmb{x}) ϕ(xxx)
判别函数是一个以向量 x \pmb{x} xxx为输入,把它直接分配到 K K K个类别中的某一个类别( C k C_k Ck)的函数。

二分类

线性判别函数为
y ( x ) = w ⊤ x + w 0 y(\pmb{x})=\pmb{w}^\top\pmb{x}+w_0 y(xxx)=wwwxxx+w0
如果 y ( x ) ⩾ 0 y(\pmb{x})\geqslant0 y(xxx)0,则它被分到 C 1 C_1 C1中,否则被分到 C 2 C_2 C2中。

多分类

造成困难的方法

one-versus-the-rest方法使用 K − 1 K-1 K1个分类器,每个分类器是一个二分类问题,分开属于 C k C_k Ck和不属于的部分。但是可能会产生输入空间无法分类的区域,如图所示。

one-versus-one方法使用 K ( K − 1 ) 2 \frac{K(K-1)}{2} 2K(K1)个分类器,每个数据点的类别根据这些判别函数中的大多数输出类别确定。但是这也可能会产生输入空间无法分类的区域,如图所示。

正确的方法

引入一个 K K K类判别函数可以避免上述问题。该函数由 K K K个线性函数构成:
y k ( x ) = w k ⊤ x + w k 0 y_k(\pmb{x})=\pmb{w}_k^\top\pmb{x}+w_{k0} yk(xxx)=wwwkxxx+wk0
对于一个数据点 x \pmb{x} xxx,如果 y k ( x ) y_k(\pmb{x}) yk(xxx)最大,就把它分到 C k C_k Ck中。于是类别 C k C_k Ck C j C_j Cj之间的决策面为 y k ( x ) = y j ( x ) y_k(\pmb{x})=y_j(\pmb{x}) yk(xxx)=yj(xxx)。这样的决策区域总是单连通的,并且是凸的。
对于二分类问题也可以构造基于两个线性函数 y 1 ( x ) y_1(\pmb{x}) y1(xxx) y 2 ( x ) y_2(\pmb{x}) y2(xxx)的判别函数,只是前述方法更简单且是等价的。

分类的最小平方法(Least Squares)求解参数矩阵

对于一个一般的 K K K分类问题,每个类别 C k C_k Ck有一个线性模型
y k ( x ) = w k ⊤ x + w k 0 y_k(\pmb{x})=\pmb{w}_k^\top\pmb{x}+w_{k0} yk(xxx)=wwwkxxx+wk0
使用矩阵记号
y ( x ) = W ~ ⊤ x ~ \pmb{y}(\pmb{x})=\tilde{W}^\top\tilde{\pmb{x}} yyy(xxx)=W~xxx~
其中, W ⊤ = ( w ~ 1 , w ~ 2 , ⋯   , w ~ K ) ⊤ W^\top=(\tilde{\pmb{w}}_1,\tilde{\pmb{w}}_2,\cdots,\tilde{\pmb{w}}_K)^\top W=(www~1,www~2,,www~K)每行为 w ~ k ⊤ \tilde{\pmb{w}}_k^\top www~k w ~ k = ( w k 0 , w k ⊤ ) ⊤ \tilde{\pmb{w}}_k=(w_{k0},\pmb{w}_k^\top)^\top www~k=(wk0,wwwk)为列向量, x ~ = ( 1 , x ⊤ ) ⊤ \tilde{\pmb{x}}=(1,\pmb{x}^\top)^\top xxx~=(1,xxx)为列向量。
一个新的输入 x \pmb{x} xxx将被分到 y k ( x ) = w ~ k ⊤ x ~ y_k(\pmb{x})=\tilde{\pmb{w}}_k^\top\tilde{\pmb{x}} yk(xxx)=www~kxxx~最大的类别中。
对于训练集 { x n , t n } \{\pmb{x}_n,\pmb{t}_n\} {xxxn,tttn},其中 n = 1 , 2 , ⋯   , N n=1,2,\cdots,N n=1,2,,N,平方和误差函数为
E D ( W ~ ) = 1 2 T r { ( X ~ W ~ − T ) ⊤ ( X ~ W ~ − T ) } E_D(\tilde{W})=\frac{1}{2}Tr\{(\tilde{X}\tilde{W}-T)^\top(\tilde{X}\tilde{W}-T)\} ED(W~)=21Tr{(X~W~T)(X~W~T)}
其中, X ~ = ( x ~ 1 ⊤ , x ~ 2 ⊤ , ⋯   , x ~ N ⊤ ) ⊤ \tilde{X}=(\tilde{\pmb{x}}_1^\top,\tilde{\pmb{x}}_2^\top,\cdots,\tilde{\pmb{x}}_N^\top)^\top X~=(xxx~1,xxx~2,,xxx~N) T = ( t ~ 1 ⊤ , t ~ 2 ⊤ , ⋯   , t ~ N ⊤ ) ⊤ T=(\tilde{\pmb{t}}_1^\top,\tilde{\pmb{t}}_2^\top,\cdots,\tilde{\pmb{t}}_N^\top)^\top T=(ttt~1,ttt~2,,ttt~N)采用‘1-of-K’表示方式。求导可得参数矩阵最优解为
W ~ = ( X ~ ⊤ X ~ ) − 1 X ~ ⊤ T = X ~ † T \tilde{W}=(\tilde{X}^\top\tilde{X})^{-1}\tilde{X}^\top T=\tilde{X}^\dagger T W~=(X~X~)1X~T=X~T
即可得判别函数为
y ( x ) = W ~ ⊤ x ~ = T ⊤ ( X ~ † ) ⊤ x ~ \pmb{y}(\pmb{x})=\tilde{W}^\top\tilde{\pmb{x}}=T^\top(\tilde{X}^\dagger)^\top\tilde{\pmb{x}} yyy(xxx)=W~xxx~=T(X~)xxx~
然而,最小平方解对于离群点缺少鲁棒性,且通常不会给出较好的结果,这与高斯条件分布假设有关。

Fisher线性判别函数

针对二分类问题,我们将数据投影到一维,通过调整权向量,使类别之间分开最大。投影式为
y = w ⊤ x y=\pmb{w}^\top\pmb{x} y=wwwxxx
当得到最佳的投影之后,只需设置一个恰当的阈值即可将样本分类。
投影之后的类别均值差为
m 2 − m 1 = w ⊤ ( m 2 − m 1 ) m_2-m_1=\pmb{w}^\top(\pmb{m}_2-\pmb{m}_1) m2m1=www(mmm2mmm1)
其中, m 1 \pmb{m}_1 mmm1 m 2 \pmb{m}_2 mmm2为原始数据的类别均值向量,此处限制 w \pmb{w} www为单位长度,即 ∑ i w i 2 = 1 \sum_iw_i^2=1 iwi2=1
Fisher思想:最大化一个函数,使得类均值的投影分开较大,类内的方差较小。
Fisher准则根据类间方差和类内方差的比值定义:
J ( w ) = ( m 2 − m 1 ) 2 s 1 2 + s 2 2 J(\pmb{w})=\frac{(m_2-m_1)^2}{s_1^2+s_2^2} J(www)=s12+s22(m2m1)2
其中,投影后的一维类内方差为 s k 2 = ∑ n ∈ C k ( y n − m k ) 2 s_k^2=\sum_{n\in C_k}(y_n-m_k)^2 sk2=nCk(ynmk)2 y n = w ⊤ x n y_n=\pmb{w}^\top\pmb{x}_n yn=wwwxxxn
化简可得
J ( w ) = w ⊤ S B w w ⊤ S W w J(\pmb{w})=\frac{\pmb{w}^\top S_B\pmb{w}}{\pmb{w}^\top S_W\pmb{w}} J(www)=wwwSWwwwwwwSBwww
其中, S B S_B SB S W S_W SW分别为类间协方差阵和类内协方差阵
S B = ( m 2 − m 1 ) ( m 2 − m 1 ) ⊤ S W = ∑ n ∈ C 1 ( x n − m 1 ) ( x n − m 1 ) ⊤ + ∑ n ∈ C 2 ( x n − m 2 ) ( x n − m 2 ) ⊤ S_B=(\pmb{m}_2-\pmb{m}_1)(\pmb{m}_2-\pmb{m}_1)^\top \\ S_W=\sum_{n\in C_1}(\pmb{x}_n-\pmb{m}_1)(\pmb{x}_n-\pmb{m}_1)^\top+\sum_{n\in C_2}(\pmb{x}_n-\pmb{m}_2)(\pmb{x}_n-\pmb{m}_2)^\top SB=(mmm2mmm1)(mmm2mmm1)SW=nC1(xxxnmmm1)(xxxnmmm1)+nC2(xxxnmmm2)(xxxnmmm2)
J ( w ) J(\pmb{w}) J(www)求导可得
( w ⊤ S B w ) S W w = ( w ⊤ S W w ) S B w w ∝ S W − 1 ( m 2 − m 1 ) (\pmb{w}^\top S_B\pmb{w})S_W\pmb{w}=(\pmb{w}^\top S_W\pmb{w})S_B\pmb{w}\\ \pmb{w}\propto S_W^{-1}(\pmb{m}_2-\pmb{m}_1) (wwwSBwww)SWwww=(wwwSWwww)SBwwwwwwSW1(mmm2mmm1)
若类内协方差阵是各向同性的,则 S W S_W SW正比于单位矩阵, w \pmb{w} www正比于原始数据的类均值差。
对于多分类问题,也有对应的Fisher判别函数。

感知器算法

对输入向量先进行一个固定的非线性变换再构造一个线性模型,为
y ( x ) = f ( w ⊤ ϕ ( x ) ) y(\pmb{x})=f(\pmb{w}^\top\phi(\pmb{x})) y(xxx)=f(wwwϕ(xxx))
其中, f ( ⋅ ) f(·) f()为一个阶梯函数
f ( a ) = { 1 , a ⩾ 0 − 1 , a &lt; 0 f(a)= \begin{cases} 1, &amp; a\geqslant0 \\ -1, &amp; a&lt;0 \end{cases} f(a)={1,1,a0a<0
此处我们使用 t = + 1 t=+1 t=+1表示 C 1 C_1 C1 t = − 1 t=-1 t=1表示 C 2 C_2 C2
我们需要找到合适的权向量 w \pmb{w} www使得对所有的数据点有 w ⊤ ϕ ( x n ) t n &gt; 0 \pmb{w}^\top\phi(\pmb{x}_n)\pmb{t}_n&gt;0 wwwϕ(xxxn)tttn>0
感知器准则:对于误分类的数据 x n \pmb{x}_n xxxn赋予误差,则误差函数为
E P ( w ) = − ∑ n ∈ M w ⊤ ϕ n t n E_P(\pmb{w})=-\sum_{n\in \mathscr{M}}\pmb{w}^\top\phi_n\pmb{t}_n EP(www)=nMwwwϕntttn
其中, M \mathscr{M} M表示所有误分类数据的集合。对该误差函数使用随机梯度下降(SGD)
w ( τ + 1 ) = w ( τ ) − η ∇ E P ( w ) = w ( τ ) + η ϕ n t n \pmb{w}^{(\tau+1)}=\pmb{w}^{(\tau)}-\eta\nabla E_P(\pmb{w})=\pmb{w}^{(\tau)}+\eta\phi_n\pmb{t}_n www(τ+1)=www(τ)ηEP(www)=www(τ)+ηϕntttn
由于 f ( ⋅ ) f(·) f()的设置,不失一般性可设 η = 1 \eta=1 η=1则实际上SGD变为了:如果该数据点分类正确,则权向量保持不变;如果分类错误,对于类别 C 1 C_1 C1,把向量 ϕ ( x n ) \phi(\pmb{x}_n) ϕ(xxxn)加到当前的权向量上得到新的权向量,对于类别 C 2 C_2 C2,则从当前的权向量中减掉 ϕ ( x n ) \phi(\pmb{x}_n) ϕ(xxxn)得到新的权向量。
:感知器学习规则并不保证在每个阶段都会减小整体误差。但由感知器收敛定理,如果训练数据线性可分,那么感知器算法可以保证在有限步骤内找到精确解。对于线性不可分数据,则永远不会收敛。

参考

“Pattern Recognition and Machine Learning”

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值