您的位置:首页 > 其它

线性判别函数

2015-08-26 18:19 218 查看
  线性判别,是想在特征空间内,找到一个超平面g(x)g(x),能够区分开数据。空间内的超平面表示为:

  g(x)=∑ni=1wi∗xi+w0=wt∗x+w0=0g(x)=\sum_{i=1}^{n}w_{i}*x_{i}+w_{0}=w^t*x+w_0=0。

线性判别函数

由超平面到分类问题

  假设特征空间内存在某一超平面为g(x)=wt∗x+w0=0g(x)=w^t*x+w_{0}=0,则空间内某一点x⇀\overset {\rightharpoonup}{x}到其的距离r=g(x)||w||r=\frac{g(x)}{||w||},其推理如下:

  x⇀=xp⇀+r⇀\overset {\rightharpoonup}{x}=\overset {\rightharpoonup}{x_p}+\overset {\rightharpoonup}{r}

  其中xp⇀\overset {\rightharpoonup}{x_p}是点xx在平面g(x)g(x)上的垂直投影点,r⇀\overset {\rightharpoonup}{r}表示x⇀\overset {\rightharpoonup}{x}在超平面上的正交投影(即点到平面的距离)。

  将x⇀\overset {\rightharpoonup}{x}带入g(x)g(x)得到:

  g(x⇀)=wt∗x⇀+w0g(\overset {\rightharpoonup}{x})=w^t*\overset {\rightharpoonup}{x}+w_{0}

  g(x⇀)=wt∗(xp⇀+r⇀)+w0g(\overset {\rightharpoonup}{x})=w^t*(\overset {\rightharpoonup}{x_p}+\overset {\rightharpoonup}{r})+w_0

  g(x⇀)=g(xp⇀)+wt∗r⇀g(\overset {\rightharpoonup}{x})=g(\overset {\rightharpoonup}{x_p})+w^t * \overset {\rightharpoonup}{r}

  xp⇀\overset {\rightharpoonup}{x_p}在平面上,所以g(xp⇀)=0g(\overset {\rightharpoonup}{x_p})=0

  故上式得:g(x)=wt∗r=<w,r>=||w||∗||r||∗cos(w,r)g(x)=w^t*r==||w||*||r||*cos(w,r)

  线性判别函数g(x)g(x)是特征空间中某点xx到超平面的距离的一种线性度量。

  超平面的性质:

  1. ww与超平面HH正交。证明提示,设两个点在超平面上,点在平面上则满足g(x)=0g(x)=0

  2. ||r||=g(x)||w||||r||=\frac{g(x)}{||w||}。证明如开始。

  3. 原点到超平面HH距离d=w0||w||d = \frac{w_0}{||w||}

  4. 若w0>0w_0>0,则超平面在原点正侧;否则反之。若w0=0w_0=0,则超平面通过原点。

  结论:

  1. 超平面的方向由ww确定。

  2. 超平面的位置由w0w_0确定。

  3. 超平面g(x)g(x)正比于点xx到超平面HH的代数距离(带正负号)。xx在超平面HH的正侧,g(x)>0g(x)>0;否则,反之。

  结论3可由x=xp+r∗w||w||x=x_{p}+r* \frac{w}{||w||}很容易看出。

  总而言之,线性判别函数g(x)=wt∗x+w0g(x)=w^t*x+w_0利用一个超平面HH将特征空间划分为两部分。在正侧的点xx满足g(x)>0g(x)>0,在负侧的点满足g(x)<0g(x)<0。

  思考如果能够找到一组参数ww,使得g(x;w)g(x;w)满足样本集的类别识别率,岂不是就找到了一个很好的分界超平面,实现分类。

  于是,问题就变成了在训练样本指导下,寻找一组参数ww,使得g(x;w)g(x;w)可以确定一个超平面,能够很好地区分类别。

如何寻找超平面

  那么问题来了,如何由已知的训练样本指导参数ww的寻找呢(如何确定超平面HH)?即如何评价参数ww的优劣。

  下面介绍几种评估参数选择是否合适的策略评价函数。

  1. 感知器准则函数

  
Jp(w)=∑x∈χ(−wt∗x′)J_p(w)=\sum_{x \in \chi}(-w^t*x')

  其中,ww是增广权向量,即增加了w0w_0。xx是增广特征向量,即增加了1,x′x'是规范化的样本表示。χ\chi表示被ww分错的样本集。

  规范化如下:

  x′={+x−x当x∈w1当x∈w2x'= \left\{\begin{matrix} +x & 当x \in w_1\\ -x & 当x \in w_2 \end{matrix}\right.

  规范化的作用,是为了消除类别标记的影响,只需要寻找尽可能使得所有样本wt∗x′>0w^t*x'>0的参数即可。

  由前面的分析可知,Jp(w)J_{p}(w)与错分样本到决策超平面的距离之和成正比。其思想就是把分错作为评价指标。最小化Jp(w)J_p(w)即得到最优参数ww,对错分类的不断修正。

  若利用梯度下降求解最优参数解

  其某个参数分量的梯度为∂Jp∂wi=∑x∈χ(−x′i)\frac{\partial J_p}{\partial w_i}=\sum_{x \in \chi}(-x'_i)。

  整体参数的梯度为∂Jp∂w=∑x∈χ(−x′)\frac{\partial J_p}{\partial w}=\sum_{x \in \chi}(-x')

  迭代公式为:

  w(k+1)=w(k)−η(k)∗∂Jp∂w=w(k)+η(k)∗∑x∈χx′w(k+1)=w(k)-\eta(k)*\frac{\partial J_p}{\partial w}=w(k) + \eta(k) * \sum_{x \in \chi}x'

  2. 最小平方误差方法MSE

  之前的感知器准则,是找参数ww使得wt∗x′>0w^t*x'>0,现在加强约束,使得wt∗x′=b>0w^t*x'=b>0,bb为任意取值的正常数向量,相当于解区域缩小了

  此处定义一个误差向量:e=wt∗x′−be=w^t*x'-b。

  则得误差平方和准则函数:

  Js(w)=||wt∗x′−b||2=∑mi=1(wt∗x′i−bi)2J_s(w)=||w^t*x'-b||^2=\sum_{i=1}^{m}(w^t*x'_i-b_i)^2

  梯度下降求解时,其参数的梯度为:

  ∂Js∂w=∑mi=12∗(wt∗x′i−bi)∗x′i\frac{\partial J_s}{\partial w}= \sum_{i=1}^{m}2*(w^t*x'_i-b_i)*x'_i

  也可以直接计算方程组,求解。

  wt∗x′=bw^t*x'=b

  wt∗x′∗(x′)t=b∗(x′)tw^t*x'*(x')^t=b*(x')^t

  wt=b∗(x′)t∗[x′∗(x′)t]−1w^t=b*(x')^t*[x'*(x')^t]^{-1}

  如果反着乘,是另一种形式。

  3. Fisher线性判别准则

  Fisher线性判别的思想将多维空间映射到一维上,使得类别相同的样本的映射点集中到一起,不同类别的样本的映射点相距很远。

  g(x)=w.t∗x+w0g(x)=w.^t*x+w_0

  稍微改写一下变成了y=wt∗xy=w^t*x,其中w和xw和x是增广的。可以看作是将xx经过wtw^t的变换,映射到了单维空间上。xx不需要规范化。

  两个向量的点乘<a,b>=||a||∗||b||∗cos(a,b)=||a||*||b||*cos(a,b),几何意义是aa在bb上的投影长度乘以||b||||b||或者是bb在aa上的投影乘以||a||||a||。

  则y=wt∗xy=w^t*x可以理解为xx在ww方向上的投影乘以||w||||w||。yy并不是单纯意义上的正负。

  如果能找到一组很好的ww,使得映射后的点yy在ww上的分布能够使得,同类的映射点靠得很近,不同类的映射点靠得很远,也就实现了分类的目的。

  



  从上图可以看到,不同的参数ww对应于不同的映射,映射点的分布也是不同的。能够实现分类目的的是上面右侧的ww。

  Fisher线性判别准则:映射点集,高内聚,低耦合。

  两类区分度:

  |m1∼−m2∼|=|1n1∑x∈D1(wt∗x)−1n2∑x∈D2(wt∗x)||\overset {\sim}{m_1}-\overset{\sim}{m_2}|=|\frac{1}{n_1}\sum_{x \in D_1}(w^t*x)-\frac{1}{n_2}\sum_{x \in D_2}(w^t*x)|

  类内方差:si∼2=∑y∈yi(y−mi∼)2\overset {\sim}{s_i}^2=\sum_{y \in y_i}(y-\overset {\sim}{m_i})^2

  准则函数:

  J(w)=|m1∼−m2∼|2s1∼2+s2∼2J(w)=\frac{|\overset {\sim}{m_1}-\overset{\sim}{m_2}|^2}{\overset {\sim}{s_1}^2+\overset {\sim}{s_2}^2}

  转换为ww的形式:J(w)=wt∗SB∗wwt∗SW∗wJ(w)=\frac{w^t*S_{B}*w}{w^t*S_{W}*w}

  其中,定义类内散布矩阵SiS_i和总类内散布矩阵SWS_W:

  Si=∑x∈Di(x−Xi−)S_i=\sum_{x \in D_i}(x-\overset {-}{X_i}); SW=S1+S2S_W=S_1+S_2

  定义总类间散布矩阵SBS_B:

  SB=(X1−−X2−)(X1−−X2−)tS_B=(\overset{-}{X_1}-\overset{-}{X_2})(\overset{-}{X_1}-\overset{-}{X_2})^t;其中Xi−\overset{-}{X_i}表示第ii类的样本均值。

  准则函数最大时的w=S−1W(X1−−X2−)w=S_{W}^{-1}(\overset{-}{X_1}-\overset{-}{X_2}),证明过程不作说明了。

  ww是超平面HH的法向量,之前的感知器准则是基于超平面HH判断分类对错,最小平方误差准则也是基于超平面判断分类误差,Fisher线性判别则是直接利用超平面HH的法向量ww。

多分类问题

  上面讨论的都是二分类问题,当多个类别时,怎么处理呢?下面提供几种多分类的处理方法。

  (1)若是将样本集分为当前类CiC_i和非当前类Cj,j≠iC_{j,j \neq i}。

  需要CC个ww;会有覆盖不到的特征空间。

  分类方法如下:

  
gi(x)=wti∗x{>0<0x∈Ci其他类别g_i(x)=w_{i}^t*x \begin{cases} >0 & x \in C_i \\ <0 & 其他类别 \end{cases}

  (2)若是每两个类,都找到wijw_{ij}来描述两类间的超平面。

  需要C(C−1)2\frac{C(C-1)}{2}个ww;将多类问题转换为2类问题。

  分类方法如下:

  gij(x)=wtij∗x{>0<0x∈Cix∈Cjg_{ij}(x) =w_{ij}^t*x\begin{cases}>0 & x \in C_i \\ <0 & x \in C_j \end{cases}

  其中i≠ji \neq j。

  (3)每类都有一个判别函数,存在CC个判别函数。

  分类方法如下:

  gi(x)=wtk∗x{最大小当x∈Ci当x∉Cig_i(x)=w_{k}^t*x \begin{cases}最大 & 当x \in C_i \\ 小 & 当 x \notin C_i \end{cases}

  k=1,2,3,...,Ck=1, 2, 3,...,C, CC个判别函数中,最大的那个判别函数对应的类别是样本的类别。

  那么这个地方,为什么最大的gi(x)g_i(x)表示了xx属于列别CiC_i呢??疑惑中…

适用条件与广义线性判别  

  适用条件:只有线性可分问题,才可以用线性判别。

  如何判断线性可分呢?

  低维度(小于3维),可以绘图看出。

  高维时,检查凸包(convex hull)是否相交。

  http://m.blog.csdn.net/blog/u013300875/44081067 一篇介绍凸包是否相交的博客。

  凸包不重叠(两凸包的边相交),则线性可分。否则,反之。

  思考:高维下,数据是不是基本都不会线性可分?直觉上是这样的哟~

  不能线性可分的怎么办?

  广义线性判别函数,是将非线性判别函数,转换为线性判别函数。

  如g(x)=w0+w1∗x1+w2∗x2+w3∗x1∗x2g(x)=w_0+w_1*x_1+w_2*x_2+w_3*x_1*x_2

  可以变换为线性形式:

  g(x)=w0+w1∗f1(x)+w2∗f2(x)+w3∗f3(x)g(x)=w_0+w_1*f_1(x)+w_2*f_2(x)+w_3*f_3(x)

  由xx空间映射到zz空间的代数表示如下:

  g(x)=xt∗A∗x=(a∗z)t∗A∗(a∗z)=zt∗(at∗A∗a)∗zg(x)=x^t*A*x=(a*z)^t*A*(a*z)=z^t*(a^t*A*a)*z

  则有新判别函数:wt∗z=g(z){>0<0x∈C1x∈C2w^t*z=g(z)\begin{cases} >0 & x \in C_1\\ <0 & x \in C_2\end{cases}

  联想二次函数f(x)=(x−a)(x−b)f(x)=(x-a)(x-b)求其大于0,小于0的xx范围。

  因为可以将非线性判别函数变为线性判别函数,则讨论线性判别函数不会失去一般意义。

  一种特殊的映射方法:增广

  g(x)=∑ni=1wixi+w0g(x)=\sum_{i=1}^nw_ix_i + w_0

  增广权向量:a=[w0w]a=\left[\begin{matrix} w_0 \\ w \end{matrix}\right] ;增广特征向量:z=[1x]z = \left[\begin{matrix} 1 \\ x \end{matrix}\right]

  g(x)空间x−>空间z,得g′(z)=at∗zg(x) 空间x->空间z,得g'(z)=a^t*z

  变换后,样本间距离保持不变,使得分类效果在两个空间内是一致的;由at∗za^t*z确定的超平面经过zz空间的原点;优化参数可以统一表示为一个符号。

  广义线性判别带来的维度灾难问题

  每个wiw_i都需要对应的zz空间的维度,维度很多时,会带来极大的问题。核方法解决。

解区域与解向量

  对线性可分问题,特征空间内,总是有许多个超平面可以区分类别。比如下图,反映了解存在的区域。

  




  红色和黑色点表示不同类别的样本;红色虚线表示可区分类别的超平面;灰色区域表示可用超平面的法向量(解区域)对应的区域范围。

  



  加入边沿裕量bb之后,解区域受到约束。

小结

  线性判别,就是在特征空间内找到超平面HH区分两类,或者是投影到超平面的法向量ww上,来分辨两类。多类问题是基于两类问题的;另外,非线性可以变换为线性;解是不固定的。其中的特征空间的变换就是线性代数中的空间变换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: