线性模型回顾
我们回顾一下之前的三种线性模型,它们的共同点是都要对输入的数据x做一个加权的分数s。
下图表示了这三种不同的线性模型的表示方式、误差函数和求解最小的Ein的方法。
这里可以看出,PLA算法这种线性分类模型,在求解Ein的时候是很困难的,相对而言,线性回归和logistic回归都有各自求解Ein的方法,那么我们能不能用这两种回归的计算方法来帮助求解线性分类问题的Ein呢?
误差函数的比较
接下来,我们将这三个方法的误差函数进行一下变形,把y和s凑在一起,方便我们后面的分析。这里ys表示分类的正确性分数(correctness score),这个值是正的说明是同号的,并且这个值越大越好。
我们可以将误差函数画出来,将cross-entropy的误差函数乘以一个常数,我们可以得到他们之间的关系,故均方误差和交叉熵误差都可以做线性分类的误差函数的上限。
我们可以得到这三个误差函数的大小关系,这就表示我们可以用线性回归和logistic回归来求解线性分类的参数,这两种方法的优点是方便对误差函数求解优化问题,缺点是它们在特定的区域都存在过于松垮的上限。
多元分类
一对多法(One-Versus-ALL,OVA)
如果对于多元分类的问题,我们该如何用二元分类的方法进行扩展呢?
如下图所示的例子,我们可以选一个类别,比如正方形作为正例,其他的数据都作为负例,这样我们可以将该类和其他类有效的分开。这样我们就可以将区域进行有效的划分,如图,可以划分成9个区域,但是我们同时发现,在画叉的区域并不是划分为一个类别,有可能属于两个类别。中间的区域还会被所有分类器都判定为负例。
为了解决这个问题,我们可以尝试用logistic回归的方法,不是明确将数据实例硬性分开,而是给出一个软性的类别,即给出该区域实例所属类别的概率,这样某个实例具体的所属类别是其最大概率的类别。
下面给出这种一对多的方法的具体步骤:
这个方法的优点是快速有效,缺点是当类别数目很大时,所有的假设都会将数据归为负例,使得效果不理想。
一对一法(One-Versus-One,OVO)
还有一种用于多元分类的方法是一对一法。
我们可以选取一个类别与其它任意一个类别进行分类(故名一对一法),比如4个类别的情形,会产生6个线性分类器。
那么,当要预测某个数据实例的所属类别时,可以得到这6个分类器预测的类别,将这些类别进行投票,将投票数最多的类别作为最终输出的类别。
这个方法的优点是有效率,不同于一对多法(OVA),一对一法训练时是将任意两个类别的数据构建分类的,而一对多法是将所有数据用来构建一个分类器的。
缺点是要计算O(K^2)这么多的w,这就需要更多的存储空间、更长的预测时间和训练。
参考资料
机器学习基石课程,林轩田,台湾大学
转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)