本文首发与我的个人博客Suixin's Blog
线性分类模型主要有四种不同的方法,线性判别函数、生成式模型、判别式模型以及贝叶斯观点下的Logistic回归。我们直接考虑对原始输入空间进行分类,当然也适用于对输入变量进行一个固定的变换。
判别函数是一个以向量为输入,把它直接分配到个类别中的某一个类别()的函数。
二分类
线性判别函数为
如果,则它被分到中,否则被分到中。
多分类
造成困难的方法
‘one-versus-the-rest'方法使用个分类器,每个分类器是一个二分类问题,分开属于和不属于的部分。但是可能会产生输入空间无法分类的区域,如图所示。
‘one-versus-one'方法使用 image
正确的方法
引入一个类判别函数可以避免上述问题。该函数由个线性函数构成:
对于一个数据点,如果最大,就把它分到中。于是类别与之间的决策面为。这样的决策区域总是单连通的,并且是凸的。
对于二分类问题也可以构造基于两个线性函数和的判别函数,只是前述方法更简单且是等价的。
分类的最小平方法(Least Squares)求解参数矩阵
对于一个一般的分类问题,每个类别有一个线性模型
使用矩阵记号
其中,每行为,为列向量,为列向量。
一个新的输入将被分到最大的类别中。
对于训练集,其中,平方和误差函数为
其中,,采用‘1-of-K’表示方式。求导可得参数矩阵最优解为
即可得判别函数为
然而,最小平方解对于离群点缺少鲁棒性,且通常不会给出较好的结果,这与高斯条件分布假设有关。
Fisher线性判别函数
针对二分类问题,我们将数据投影到一维,通过调整权向量,使类别之间分开最大。投影式为
当得到最佳的投影之后,只需设置一个恰当的阈值即可将样本分类。
投影之后的类别均值差为
其中,和为原始数据的类别均值向量,此处限制为单位长度,即。
Fisher思想:最大化一个函数,使得类均值的投影分开较大,类内的方差较小。
Fisher准则根据类间方差和类内方差的比值定义:
其中,投影后的一维类内方差为,。
化简可得
其中,和分别为类间协方差阵和类内协方差阵
对求导可得
若类内协方差阵是各向同性的,则正比于单位矩阵,正比于原始数据的类均值差。
对于多分类问题,也有对应的Fisher判别函数。
感知器算法
对输入向量先进行一个固定的非线性变换再构造一个线性模型,为
其中,为一个阶梯函数
此处我们使用表示,表示。
我们需要找到合适的权向量使得对所有的数据点有。
感知器准则:对于误分类的数据赋予误差,则误差函数为
其中,表示所有误分类数据的集合。对该误差函数使用随机梯度下降(SGD)
由于的设置,不失一般性可设。则实际上SGD变为了:如果该数据点分类正确,则权向量保持不变;如果分类错误,对于类别,把向量加到当前的权向量上得到新的权向量,对于类别,则从当前的权向量中减掉得到新的权向量。
注:感知器学习规则并不保证在每个阶段都会减小整体误差。但由感知器收敛定理,如果训练数据线性可分,那么感知器算法可以保证在有限步骤内找到精确解。对于线性不可分数据,则永远不会收敛。
网友评论