数据集分为两类。
分类决策边界: 如果在特征空间中,能够找到类别之间的界限,即可通过判断待识别的样本位于界限的哪一侧,确定样本属于哪一类,这条界限称为分类决策边界,用G(x)=0表示。G(x)称为判别函数,即分类决策规则。
判别函数:
如果是线性函数,称为线性判别函数,分类器称为线性分类器。
(1)如果特征空间是一维,则分类器的分类决策边界就是一个点
(2)如果特征空间是二维,则分类器的分类决策边界就是一个直线
(3)如果特征空间是三维,则分类器的分类决策边界就是一个平面
(4)如果特征空间是n维,则分类器的分类决策边界就是一个超平面
样本集的线性可分性:(线性分类器的使用条件)
(1)线性不可分:如果样本集各个类别样本的分布区域是相交的,那么样本集是线性不可分的。
(2)线性可分:如果样本集各个类别样本的分布区域互不相交,并且都是凸集,那么样本集是线性可分的。
(3)不可判断:如果样本集各个类别样本的分布区域互不相交,但是有的区域是凹集,无法直接判定样本集是否线性可分。这时需要找出凹集区域最小的凸集包括线,称为凸包,如果各个类别样本集的凸包都是不相交的,那么样本集是线性可分的。
广义线性判别: 当模式识别问题,从低维特征空间映射到高维特征空间时,就将非线性分类问题转换为线性分类的问题,这种方法称为广义线性化
(是不是在所有低维空间中,不可分等问题,都可以变成线性可分的问题呢?需要映射为多少维,才可以变成线性可分问题呢?这个问题对线性分类器来说一直是很大的困扰,也限制了线性分类器的应用范围,一直到SVM的出现,才给出有效的解决方案)
如果样本集中只包含两类样本,那么二分类问题的线性判别函数就可以形成一道线性的分类决策边界,把两个类别的样本分开。
由线性判别的性质可以发现,一个线性判别函数只能将特征空间划分成两个区域,因此对于二分类问题是可以直接解决的,但是需要分类的数量在3个或以上时,问题就变得复杂。
线性分类器需要解决多分类问题,那么就需要多个线性判别函数,用二分类问题的组合来确定多分类问题的分类决策规则,根据一定逻辑关系构成多分类的线性分类器。
(1)绝对可分线性判别函数:
绝对可分情况下的多分类线性判别函数形式比较简单,判别函数的意义也很明确,但是带来的不可识别区域很多,整体分类器性能差。
(2)两两可分线性判别函数:
两两可分情况下的多分类线性判别函数,不可识别区域比绝对可分的情况大大减小,整体分类器性能较高。缺点:对于k个类别的分类问题,需要很多个判别函数。
(3)最大值可分线性判别函数:
最大值可分情况下的多分类线性判别函数,不可识别区域消失,判别函数也与绝对可分情况一致。如何求取最大值可分判别函数需要很多求解工作量。
样本x到决策边界的距离r正比于判别函数G(x)的值,判别函数的符号,代表距离r的符号,表示该模式位于决策边界的正侧还是负侧,更一般的情况,w仅代表决策超平面的法向方向,其长度不会影响决策边界在特征空间中的位置——线性判别的集合意义 :线性判别函数的值,不仅具有正负判别的意义,而且能够表示样本距离分类决策边界的远近,一般情况下,希望各个类别的样本分布离分类决策边界远一些,这样可以避免由于数据采集误差,导致的分类错误)
训练目标: 给定包含两类样本的样本集,训练线性分类器,就是希望计算机能够依据样本集中的数据,自行找到分类决策边界。
线性判别函数: 分类决策边界即线性判别函数的解不是唯一的,而是位于一个区域内,称为解区域。
思路:求解线性分类器的过程就是按照某种准则找到解区域中一个最优解的过程。
(1)设定准则函数J(w,w0),使其值能够代表解的优劣程度。值越小,代表解越复合要求。
(2)通过寻找准则函数J(w,w0)的极小值,找到最优的解(w,w0)
寻找最优解的方法:批量梯度下降,随机梯度下降
有监督学习的思想是学习到的模型的输出与真实标签之间的误差,对模型参数的调整方向,就是减少上述误差从而使学习到的模型逼近真实模型。
随机梯度下降,每一次调整时不一定朝着整体代价函数值减少的方向前进,而是可能随机震荡,甚至最终不能确保收敛到极值点,但是会以很高的概率收敛于极值点,随机梯度法的计算量比批量梯度下降大大降低,加快了学习速度,可以边学习,边加入新的样本,实现在线学习。
梯度下降法学习速率:
(1)学习速度越大,求解速度越快,但求解路径越不光滑,求解精度越差,容易过冲、震荡
(2)学习速率越小,求解速度越慢,但求解路径越光滑,求解精度越高。
学习率设定方法: 求解精度和求解速度之间是存在矛盾的,为权衡精度与速度,感知机的学习速率有不同的设立方法:
(1)固定式:选择固定的非负数作为学习率步长,如果不合适可能调整的速度过快或过慢
(2)绝对修正:是指在单样本修正的算法中,可以计算出学习速率的最小值,以保证分类错误的样本在对参数进行一次修正后能够被正确分类
(3)部分修正:是在绝对修正的基础上,再取一个0-2之间的条件因子λ,使得绝对修正并不完全保证绝对修正,调节实际修正的步长
(4)变速学习:为在不同的阶段采用不同的学习速率,使参数修正即可在某些时候快速进行,又可以在某些时候取得较高的精度。算法在刚开始的时候收敛快,越接近最优解收敛的速度越慢,以提高精度
(5)优化学习:在每一步,通过求取代价函数对于不同学习速率可以取得的最小值,来确定最优的学习速度,使得每一步学习速率都是在当前情况下最优的学习速率。但是这种方法,递推次数增加,带来更大计算量。
概述: 最早出现的一种有效的线性分类算法,不仅首次解决了线性分类器的训练问题,而且作为最早的人工神经元模型,奠定了深度学习方法的理论基础。神经元模型是根据生理学的研究提出的模拟神经元功能的数学模型。
(感知机是线性分类模型,二分类)
原理: 1957年提出感知机模型,具有多路的输入和单路的输出,将所有输入信号加权求和后与一个阈值相比较,如果大于阈值则神经元输出为1,小于等于阈值则神经元输出为0
只能解决线性问题,无法解决线性不可分问题。(异或问题,典型的线性不可分问题,强烈质疑了感知机的合理性,并连同使用人工神经网实现人工智能的道路,完全封堵住,导致人工智能的研究进入寒冬)
感知机: 设定的目标(代价函数)是正确分类所有样本,那么线性分类器的解,就必然构成解区域,在解区域中的任意一个解都是正确的。因为我们采用0,1损失函数。(为什么感知机的解是不确定的因为求解的条件是不等式方程组)
如果使得线性分类器的学习能够在解区域中确定最优解?
线性分类器的训练就是要找到一个线性分类决策边界,能够将样本集中的样本正确分类。假设样本集中只有两个样本,那么线性分类器有无穷多个解。
线性分类器的松弛求解: 如果我们要求样本不仅仅被正确分类,即判别函数值大于0,而是给定一个大于0的数值b,希望每个样本的判别函数值 ,不仅仅大于0而且是等于b,那么线性求解问题中的不等于约束,就变为了等式约束
在样本数l和空间特征维度n相等的时候存在线性分类器训练的确定解,这种方法称为线性分类器的松弛求解。
如果样本集中的样本数量l大于问题所在特征空间的维度n,我们使用松弛变量所构成的等式约束条件,就称为超定的方程组(无解),只能在不完全满足条件的解里面尽可能找到最好的解,在超定等式的约束下,线性分类器的求解,依旧是最优化问题,其损失函数不再用简单的0,1函数来解决,而是采用能够评价解的优劣的连续损失函数来定义。
LMSE: 把给定的松弛变量b看作是样本到最终线性分类决策边界距离的期望值,优化的目标是距离的误差最小,代价函数为所有样本到分类决策边界的距离误差的平方和,既最小均方误差LMSE
对于线性可分的二分类问题,其分类决策边界为n维特征空间的超平面H,一般情况下会有无穷个解,当我们确定一个解所对应的参数W,超平面的斜率和朝向都是确定的,可以在一定范围内平移超平面H,只要不达到或者越过两类中距离H最近的样本分类决策边界都可以正确实现线性分类,所以任何求解得到的参数W都会带来一系列平行的分类决策边界H,其可平移的范围具有一定的宽度,称为分类间隔。
其中分类间隔越大越好,分类间隔越大,两类样本做分类决策时的余量越大,由于样本采集所带来的特征误差造成的分类错误越少。在所有能够做出正确分类的W中,求取分类间隔最大的W*就是对线性分类器优化求解的好的指标——支持向量机的出发点。分类间隔是由距离分类决策边界最近的少量样本来决定的,这些样本称为支持向量。
作用:支持向量机解决求取最大分类间隔的分类决策边界
目标:
r代表样本点到决策边界的距离;d代表支持向量机的分类间隔,其中Xs为支持向量;求取最大的分类间隔d就是求取如何设置w(分类决策边界)使d得到最大值,我们可以固定G使其=1,求取长度最短的w
SVM性能优越,使他提出以来得到广泛的应用,优点:
(1)不需要大量样本,因为最终的解仅仅由少数的支持向量来决定,
(2)拥有很强泛化能力
例如果给定一个有类别标注的训练集,训练分类器的过程就是寻找到一条分类决策边界能够把训练集中的样本正确分类。
经验风险最小化: 保证训练集样本尽可能正确分类。有可能带来过拟合现象训练之后的分类器错误分类样本的比例称为经验风险,通常我们追求的目标是经验风险最小化。
结构风险最小化: 不仅考虑了训练集样本的分类正确率,而且考虑了对未知样本的识别的泛化能力,与分类器函数的VC维有关在训练好的分类器在面对未知样本时分类错误的概率,称为结构风险,SVM希望的是结构风险最小化。(分类器函数如果已经确定,样本数越大,置信风险越小,结构风险也越小,如果样本数量小,那么结构风险就受置信风险的很大影响,置信风险的大小受分类器本身具有的VC维,VC维h越大,置信风险越大,结构风险越大,分类器泛化能力越差。)
VC维:
函数所具有的分类能力,值是这类函数能够打散的两分类样本集中最大样本的数量。线性分类器的VC维为3,二次函数的VC维至少为4,分类器函数形式的阶次越低,其VC维越小,在样本集样本数量有限的情况下,训练后的分类器结构风险越小,泛化能力越强。支持向量机是阶次最小的线性函数,因此支持向量机在不需要大量样本的情况下也能取得泛化能力较强的分类器训练结果的主要原因。支持向量机是运用结构风险最小化准则的结果
总之,实现结构风险最小化:1)加大训练集 的规模,但是带来计算量的增加;2)选择VC维较低的分类器的形式,以降低置信风险,再通过分类器参数的优化再降低经验风险(支持向量机的思路,深度学习采用的是经验风险最小化)
回顾: 前面讲到的是样本集是线性可分的,能够用一个线性分类决策边界把不同类样本分开,因此是线性支持向量机。
线性不可分支持向量机: 在实际应用中,线性可分的问题是少数的,并且很难预先判别一个样本是否具有线性可分性。如果支持向量机只能处理线性可分的模式识别问题,那么其应用范围必然受到极大限制。支持向量机应用范围非常广,非常成功,能够处理线性不可分地方模式识别问题。
支持向量机面临的线性不可分问题分为两种情况:1)异常点干扰;2)问题本身线性不可分;
如果模式识别问题本身是线性可分的,但是由于数据采集过程中各种噪声干扰,和采样误差造成的异常点,异常点会带来最优解求解的偏差,甚至有可能造成线性可分的问题,变成线性不可分的问题,从而导致无法用支持向量机求解。这种情况该如何处理呢?
线性支持向量机是求解具有最大间隔的最优判别函数,转化为求解具有最短权向量(W)的二次规划问题,其约束条件为所有样本都在分类间隔区域之外,既判别函数的绝对值大于等于1。如果异常点是噪声干扰下的数据,不能完全以异常点为基准来求解最优权向量(W),异常点到分类决策边界的距离是小于间隔的,所以为了把异常点考虑进去,又不希望他们影响到合理的最优权向量(W)的求解,就可以在约束条件中,减去整数克赛,使判别函数的绝对值允许小于1,克赛称为松弛变量,克赛的值也是优化的目标。(希望克赛越少越好,越小越好,最理想的情况是,绝大数支持向量外侧的样本,包括支持向量,对应的松弛变量都为0,只有少数在支持向量内部的异常点,有一个尽可能小的松弛变量),所有松弛变量的和值也作为优化目标的分项,记在原来的最短权向量(W)的二次优化目标基础上,加上C倍的克赛和(惩罚项),使整个两项的和取得最小值。C越大松弛变量的存在,对整体优化过程的影响越大,说明对异常点的容忍程度低
采用松弛变量和惩罚因子的支持向量机,任然是线性分类器,只是经验风险不为0,不保证对所有样本正确分类,来减少模式采样误差,对分类器训练的影响,得到性能更好,泛化能力更强的分类器,这种分类器叫做软间隔支持向量机。
异常点导致的线性不可分问题,可在线性支持向量机的基础上,增加松弛变量项,允许异常点样本在分类间隔区域内,甚至被错分,以提高分类器性能,在优化时可以通过惩罚因子控制对异常点样本的容忍度,这样得到的分类器依旧是线性分类器,称为软间隔线性分类器
例二维空间中的异或问题,本质上是无法用线性分类器实现线性分类。
解决方法:将低维空间中的非线性分类问题,转化为高维空间中的线性分类问题。
广义线性化:y(i)为映射到高维空间中的样本,G为映射到高维空间后的判别函数,求解问题变为线性问题,这样支持向量机就可以解决低维空间中的非线性问题了。
问题:怎么知道如何映射到多少维的高维空间,非线性分类问题才能转换为线性分类问题,如何找到合适的映射函数;将问题转换为高维空间后会带来巨大的计算量问题,甚至会因为维数灾难,造成问题无法解决?
非线性支持向量机:我们可以发现无论在高维空间的线性支持向量机求解过程中,还是在最终得到的线性判别函数中,除了类别标签以外并没有用到原始空间中样本xi映射到高维空间中的项y(i),我们用到的只是高维空间中两个向量的內积。换句话说如果我们能够不经过原始特征空间到高维特征空间的映射过程,就能够计算出两个低维空间的向量在高维空间中的內积,就可以实现非线性支持向量机的求解的目标——实现方式为核函数,其输入是低维空间中的两个向量,输出为两个向量经过同一个映射到另一个空间以后的內积,换句话来说,使用核函数可以在低维空间中直接计算某一些高维空间中的向量內积,而无非进行向量从低维空间到高维空间的映射。
核函数: 当形为K(X(i),X(j))的标量函数,对样本集中所有样本间的函数值构成的矩阵是半正定的,那么这个函数为核函数。核函数数量非常多并且有不同的形式。
线性支持向量机求解: 需要用到样本集与样本集之间的內积——核函数计算,最后得到的高维空间中的线性判别函数用同样的核函数处理就得到低维空间中的判别函数,此时的判别函数就不是线性的,因为绝大多核函数都是非线性的,因此高维空间中线性支持向量机的判别函数,还原为低维空间变为一个非线性判别函数。
核函数方法配合软间隔方法能够为大多数问题找到解,因此支持向量机获得很大成功,并且这种成功延续到面临深度学习的挑战中。