在机器学习或者是模式识别其中有一种重要的分类器叫做:SVM 。这个被广泛的应用于各个领域。可是其计算的复杂度以及训练的速度是制约其在实时的计算机应用的主要原因。因此也非常非常多的算法被提出来。如SMO,Kernel的方法。

可是这里要提到的 Regularized
least-squares classification
 是一个和他有着相同的效果的分类器。比較而言计算却比較的简单(We see that a Regularized Least-Squares Classification problem can be solved by solving a single system of linear

equations.)。接下来将对其进行介绍。

首先我们知道终于要求得的结果是: f(x)= <W, x> +b

策略函数:

我们还是要来看一下他的策略:结构风险最小化Function。

通过使用kernel的方法将x 投影到希尔伯特空间(仅仅须要隐式的表示)得到的结果是:

( 这里的alpha就是以下的c啦!)

带入到目标函数以及简化,我们得到终于要求的函数 f*(x):

这就是终于要求的结果。后面额的核函数我们能够採用一些经常使用的核函数处理掉(比方说:高斯核(Gaussian Kernel)等)。

那怎样来解决ci勒?

怎样解c:

大家都知道在SVM其中採用的是合页损失函数(hinge loss Function)。可是非常显然这里是平方损失函数:

同一时候我们对于上面的f*(x)带入到最開始的策略函数其中:

于是我们再来通过求导。令导数等于0。解出这个方程:

有没有发现异常的简单啊!

这里要注意的是: K 是一个n*n的方阵,对于训练来讲,没两个样本(投影到高维空间后)都要做内积才可以得到K。

但事实上作者也说了,能够通过一个线性的问题来解决并不意味着它的时间复杂度和空间复杂度就小了:训练一个Kernel的时间还是须要非常长的。同一时候也须要较大的空间来存储下这种核:K。

可是仍旧是能够通过一些的方法来明显的提高它的性能的。

结果的比較:

文章中提到:It took 10,045 seconds (on a Pentium IV running at 1.5 GhZ) to train 20 one-vs-all SVMs, and only 1,309 seconds to train the equivalent RLSC classifiers. At test time, both SVM and RLSC yield
a linear hyperplane, so testing times are equivalent. 足见速度能够达到SVM的速度的9倍左右,而精度却能够达到相当的程度。

我们再来看一个測试的比較。下表表示的是两种算法在两个数据集上面的错误率:

最上面的数据代表训练的样本数,以下书错误率。能够看得出来RLS的方法还是非常好的。

Regularized least-squares classification(正则化最小二乘法分类器)取代SVM的更多相关文章

  1. paper 130:MatLab分类器大全(svm,knn,随机森林等)

    train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出).1.逻辑回归(多项式 ...

  2. MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)

    train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出). 1.逻辑回归(多项 ...

  3. cs231n线性分类器作业 svm代码 softmax

    CS231n之线性分类器 斯坦福CS231n项目实战(二):线性支持向量机SVM CS231n 2016 通关 第三章-SVM与Softmax cs231n:assignment1——Q3: Impl ...

  4. 斯坦福机器学习视频笔记 Week3 逻辑回归与正则化 Logistic Regression and Regularization

    我们将讨论逻辑回归. 逻辑回归是一种将数据分类为离散结果的方法. 例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件. 在本模块中,我们介绍分类的概念,逻辑回归的损失函数(cost fun ...

  5. Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)

    Logistic Regression 一.内容概要 Classification and Representation Classification Hypothesis Representatio ...

  6. 为什么用linear regression可以做classification

    输出空间 错误衡量方式 能不能直接用linear regression for classification 当成一个分类器回传回去 heuristic(启发式的:试探) 错误衡量 complexit ...

  7. cs231n笔记 (一) 线性分类器

    Liner classifier 线性分类器用作图像分类主要有两部分组成:一个是假设函数, 它是原始图像数据到类别的映射.另一个是损失函数,该方法可转化为一个最优化问题,在最优化过程中,将通过更新假设 ...

  8. Multi-label && Multi-label classification

    Multi-label classification with Keras In today’s blog post you learned how to perform multi-label cl ...

  9. 线性SVM与Softmax分类器

    1 引入 上一篇介绍了图像分类问题.图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像.我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想是通 ...

随机推荐

  1. js-DOM-css的className相关

    1.在非标准的浏览器,IE8及以下的浏览器不支持className的操作,包括getElementByClassName,addClassName,removeClassName;  2.getEle ...

  2. Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)

    摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作,暂时全部 ...

  3. 循环链表的C风格实现(单向)

    头文件: #ifndef _CIRCLELIST_H_ #define _CIRCLELIST_H_ typedef void CircleList; // typedef struct _tag_C ...

  4. 17,时间模块 time,random模块

    表示时间的三种方式 在python中,通常有着三种方式来表示时间:时间戳,元祖,格式化的时间字符串: 1,时间戳(timestamp):通常来说时间戳表示的是从1970年1月1日00:00:00开始按 ...

  5. python的re模块常用方法

    正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身.一个正则表达式模式中的字母和数字匹配同样的字符串. 多数字母和数字前加一个反斜杠时会拥有不同的含义. 标点符号只 ...

  6. ubuntu 转换图片格式的方法(sam2p, imagemagick)

    (1) 终端:sudo apt-get install sam2p sam2p [原图片名.格式] [目标图片名.格式] 即可在同一目录下生成目标图片格式 (2) 终端: sudo apt-get i ...

  7. 【JavaScript 1—基础知识点】:宏观概述

    导读:JavaScript是一门新的(也可以说是旧的或者半新语言),里面有很多的知识点都能和已有的知识产生共鸣.但是,虽然简单,相同点也有很多,也有不同点.我脑袋也不好使,所以对于我来说,还是有必要再 ...

  8. tomcat的管理(manager)报错403

    管理tomcat的时候遇到了以下问题: 1.刚开始需要用户名密码,不知道用户名和密码是什么,但是输入什么都不正确. 解决办法: 自己在tomcat-users.xml中按格式添加用户 conf文件夹里 ...

  9. redis2.3.7安装时出现undefined reference to `clock_gettime'

    (转自:http://blog.csdn.net/qq_28779503/article/details/54844988) undefined reference to `clock_gettime ...

  10. [BZOJ2118] 墨墨的等式(最短路)

    传送门 好神啊.. 需要用非负数个a1,a2,a3...an来凑出B 可以知道,如果一个数x能被凑出来,那么x+a1,x+a2.......x+an也都能被凑出来 那么我们只需要选择a1~an中任意一 ...