前面学习的基于贝叶斯理论的统计模式识别方法有着一定的局限性,比如在特征维数较高或者只有少量样本时, ( | )很难准确估计。因此我们试图通过直接根据样本来求一个分界面,利用分解面函数使得样本可以进行判别。首先给定某个判别函数类的形式,然后利用样本集确定判别函数中的未知参数。
和之前的方法主要区别就是:基于概率密度函数的分类器设计是 model-based method,基于样本的直接分类器设计是 data-driven method
1、线性判别函数
1.1基本概念
线性判别函数一般表达式:
每一类样本都对应着一个线性判别函数 ( ) , = 1, ⋯ , 。两类问题的线性分类器可采用下述决策规则 ( ) = 1( ) - 2( ),判别函数 ( ) = 0定义了一个决策面, 将归类于 1类的点与归类于 2的点分割开来。当 ( )为线性函数时, 该决策面为超平面:
( )可以看成是特征空间中某点 到超平面距离的一种代数度量。
1.2广义线性判别函数
对非线性判别函数 ( ),通过适当的变换转化为线性判别函数 ′( ) 。比如 = [ 1 2] , ( ) = + + 二次判别函数,若定义 = [ 1 , 2, 1^2, 2^2, 1 2 ], 则总可以找到 , 0使得 ′ ( ) = + 0 = ( ),这就是广义线性判别函数的一个例子。这个例子也告诉我们任何非线性函数都可以通过级数展开转化为多项式函数, 所以任何非线性判别函数都可以转化为广义线性判别函数。所产生的严重问题就是变换空间的维数灾难。
1.3Fisher线性判别
解决模式识别问题存在的维数问题的一个方法就是降维,Fisher判别思想就是将 维空间压缩为一维
将样本投影到一条任意直线上;寻找最好最易于分类的投影线,使得两类间的距离尽可能远,而每类自身尽可能紧凑。几何上看就是将 维空间的所有模式投影到一条过原点的一条直线上。转动直线,找到一条最好的投影方向。
寻找一个投影方向使得投影后的两类数据之间尽可能分开,两类数据内部尽可能聚集。
首先在样本空间定义均值向量:
然后用数学方法来描述两类数据之间尽可能分开,类内样本尽可能靠近的两个量就是:
Within-class scatter样本类内离散度矩阵:
Between-class scatter类间离散度矩阵:
然后我们将样本空间向低维投影得到,用来优化模型参数的( ℎ )准则函数是:
显然要寻找使分子尽可能大, 分母尽可能小, 即使 ( ) 尽可能大的 作投影方向。 用"Lagrange" 乘子法求解得:
具体过程,由于分子分母可以同时去掉一个尺度,因此将分母归一化为常数:
1.4感知准则函数
Fisher线性判别是把线性分类器的设计分为两步,一是确定最优的方向,二是在这个方向上确定分类阈值。 而感知器的设计旨在得到完整的线性判别函数 ( ) = + 0。
判定准则:若 ( ) > 0, 则 ∈ 1; 若 ( ) < 0, 则 ∈ 2。
感知器设计:
• 对于线性可分的一组样本 1, 2 … , ,若存在某个权向量 ∗,使得 ∗ . > 0, = 1, ⋯ , ,则 ∗是一个解向量;
• 所有解向量组成的区域称作解区
• 余量:引入余量 > 0,要求解向量满足 > ,则将来样本错分的可能性越小。
寻找解向量过程,如果样本 被错分,则有 . ≤ 0, 因此可定义如下的感知准则函数:
感知器准则的最小化可用梯度下降法进行迭代求解
其中 为调整的步长
实际使用中,如果一次将所有样本都进行修正的做法效率不是很高,而单样本修正法更常用:对于样本集{ },若 ( ) . ≤ , 则有 ( + ) = ( ) +
1.5最小平方误差判别
假设分类器的输出为 . , 期望输出为 ∈ {±1}, = 。通常情况有 > ,即方程个数大于未知数个数,属于超定方程组,无法获得准确解。定义方程组误差为 = - ,最小误差平方解为
基于梯度下降法进行求解,权重的更新如下:
若采用单样本更新,则有如下形式
1.6最优分类超平面/支持向量机
假设有训练样本集 ( 1, 1) ⋯ ( , ) , ∈ , ∈ {±1} 是线性可分的,即存在超平面 ( )= + = 0能将样本正确的分开。如果这个向量集合被超平面没有错误地分开,并且离超平面最近的向量与超平面之间的距离 (称作间隔 margin )是最大的,则我们说这个向量集合被这个最优超平面(或最大间隔超平面)分开。对分类面 ( ) = + = 0的权值 和 做任意尺度伸缩都不会影响分类决策, 为了使问题有唯一解,需要把权值的尺度确定下来。所有样本能够被正确分类,就是要求所有的样本满足
既然尺度可调整,上式可写成
其中满足 ( + ) = 1的样本( , )为支持向量。则两类支持向量 + = ±1到分界面的距离和为2/|| ||,于是可以得到支持向量机的分类思想:
支持向量机方法是,在能够正确实现二分类的基础上,使分类间隔最大,其等价优化问题为
求解过程,首先利用一个技巧:
我们将min问题转化成了极小极大问题,而且在w,b(上图中的x)满足约束的情况下,二者相等,也就是我们所要求的约束问题。
最优解在 ( , , )的鞍点上取得,对w和b分别求导,满足如下等式:
将上式代入拉格朗日泛函得到(对偶优化),上式变成只关于 的max问题:
这里转换为对偶问题的过程,其实有着更深的理论(因为我们的问题是线性分类过程,所以很简单就可以求解),简单的描述就是首先我们可以通过弱对偶性得到minmax问题的下界也就是maxmin问题,之后再判断强对偶性进行求解。
在获得对偶问题的最优解 ∗后,可以得到最优超平面的权向量
从而得到最优分界面
怎么求 ∗? 根据优化理论的KKT条件最优解需要满足,这个条件即可求解b
从上面的求解可以看出,最优分界面只依赖于支持向量, 与非支持向量无关。
2、非线性判别函数
2.1核支持向量机
若不存在一个能正确划分两类样本的超平面, 怎么办?也就是这时候的样本线性不可分程度很高。从广义线性分类器中的一个直观的方法,就是将样本从原始空间映射到一个更高维的特征空间, 使得样本在这个特征空间内线性可分。
假设样本 映射后的向量为 ( ), 划分超平面为 ( ) = ( ) + ,支持向量机的原优化问题为
同样的推到过程,其对偶问题为:
阈值 可以通过支持向量 ( ≠ 0)求得
和支持向量机的表达几乎是相同的。
这里我们的思想就是Mercer定理(一个充分非必要条件):只要一个对称函数所对应的核矩阵半正定, 则它就能作为核函数来使用。因此我们可以不显式地设计核映射, 而是设计核函数来解决核问题。
这也正是对偶问题求解过程给我们的好处,我们整个对偶问题都不需要完整求出 ( )的形式。
核支持向量机的基本思想:将输入空间映射到高维空间,然后实现最大间隔分类。映射函数是通过定义适当的内积函数来间接实现的。支持向量机决策过程是一种相似比较的过程,即输入样本与一系列模板进行相似性比较(内积函数),然后将相似性度量加权求和,并对求和值得大小来进行决策。
从支持向量机的思想中我们可以引出一个思想,这就是表示定理: 对于任意单调增函数
其解总可以写成
从这个定律出发可以得到很多的核方法,如: