机器学习算法 --- SVM (Support Vector Machine)

简介: 一、SVM的简介  SVM(Support Vector Machine,中文名:支持向量机),是一种非常常用的机器学习分类算法,也是在传统机器学习(在以神经网络为主的深度学习出现以前)中一种非常牛X的分类算法。

一、SVM的简介

  SVM(Support Vector Machine,中文名:支持向量机),是一种非常常用的机器学习分类算法,也是在传统机器学习(在以神经网络为主的深度学习出现以前)中一种非常牛X的分类算法。关于它的发展历史,直接引用Wikipedia中的,毕竟本文主要介绍它的推导过程,而不是历史发展。

  The original SVM algorithm was invented by Vladimir N. Vapnik and Alexey Ya. Chervonenkis in 1963. In 1992, Bernhard E. Boser, Isabelle M. Guyon and Vladimir N. Vapnik suggested a way to create nonlinear classifiers by applying the kernel trick to maximum-margin hyperplanes. The current standard[according to whom?] incarnation (soft margin) was proposed by Corinna Cortes and Vapnik in 1993 and published in 1995.

  接下来,就让我们回到过去,扮演它的发明者。(不要想太多,这个非常简单,只需基础的线性代数基础)

二、一个最简单的分类问题

  有如下几条直线,哪条是黑白两种点的最佳分割线?

  如果你看到了上面的那张图,你肯定会毫不犹豫的说是H3,因为H1明显没有满足要求,H2虽然分开了,但是给人的感觉没有那么好!如果现在在图中给你一个未知颜色的点,让你判断它是黑还是白,该如何判断?如果是我,我就会说如果这个未知点在H3左边的它就是黑色,如果他在H3的右边,他就是白色。

  如果到这儿你都完全理解,那么距离明白SVM就已经非常接近了。使用计算机程序寻找H3的过程,我们管它叫做训练;使用H3对未知点进行分类的过程,我们管它叫做预测。

  接下来,我们就需要知道计算机是如何找到H3这条线,和如何使用H3做出决策?(计算机不是人类,所以它不能靠感觉,而要编写计算机程序,则必须有一个严谨的算法过程。)

三、SVM推导

  首先,我们将上面寻找H3的问题转换一下,

  如上图,找到最佳的分割线,也就是让两条虚线之间的距离最大。

  首先我们假设这条分割线的法向量为,我们知道在直角坐标系中,任意一点都可以表示为一向量w · u则表示该向量在上投影的长度,对于任意一个正样本(设黑为+,白为-) 有w · u ≥ C,设b = C,则将其整理一下即可写为w · u - b ≥ 0, 如果已知w和b,使用此公式,我们便可对未知点进行预测(或者叫分类)。

  由上述,我们知道了决策过程,接下来,我们需要推导出训练过程,即怎样得到w和b?

  首先对于训练集,在训练集中对于任意一点xi 我们知道它的标签yi(如果为正例yi = 1,如果为负例yi = -1),然后对于正负例我们假设(假设当点刚好在边缘时等号成立), 不等式两边同乘以yi就可以得到

  两条虚线之间的宽度求法如下:

  即我们要做工作的是:

    

  即我们需要在的约束下(只需关注边界上的点),求。(这个问题,相信对于学过大学高等数学的人来说是非常简单的)

    使用拉格朗日乘数可以很容易的进行求解,

    设则:

    ,        

    将w回带到L中,

    

    化简得,

    

    注意上式的末尾,要使L取极值(画出决策边界),结果只与训练集中已知点向量的点积有关,与其它量无关。

    如果再将 带入到决策函数中,则

    if   

      result = +

    else

      result = -

  综上所述,可以发现,要求得最大间隔与对一个未知点的分类预测只与已知虚线点的点积有关。

  

四、核函数

   在上述中,最后的决策函数为,但这个决策函数对线性不可分的数据便无能为力了,比如:

  上图,不能简单的使用一条直线将其分开,但是,如果我们换个角度,

  对其多加一个维度Z,很容易便可将其用一条直线将其分开,如果我们再回到最开始的维度下,则其如下图所示,

  这也就告诉我们,在我们当前维度下线性不可分的数据,如果换个角度,则其就会线性可分。

  又由于决策函数为, 向量在二维z坐标系中,(这里的指的是向量在第一和第二维度上的值),假设在某个维度的点积,则其决策函数就可写为

,而.    (称K为核函数)

  通过上述两式就可画出最佳分割超平面,和对未知数据做出决策。

  常见的核函数有(摘自Wikipedia):

  注:大部分的机器学习任务使用这些核函数都可以得到解决。

 

目录
相关文章
|
1月前
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
101 6
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
3月前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
|
4月前
|
机器学习/深度学习 算法 网络安全
CCS 2024:如何严格衡量机器学习算法的隐私泄露? ETH有了新发现
在2024年CCS会议上,苏黎世联邦理工学院的研究人员提出,当前对机器学习隐私保护措施的评估可能存在严重误导。研究通过LiRA攻击评估了五种经验性隐私保护措施(HAMP、RelaxLoss、SELENA、DFKD和SSL),发现现有方法忽视最脆弱数据点、使用较弱攻击且未与实际差分隐私基线比较。结果表明这些措施在更强攻击下表现不佳,而强大的差分隐私基线则提供了更好的隐私-效用权衡。
123 14
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
解锁机器学习的新维度:元学习的算法与应用探秘
元学习作为一个重要的研究领域,正逐渐在多个应用领域展现其潜力。通过理解和应用元学习的基本算法,研究者可以更好地解决在样本不足或任务快速变化的情况下的学习问题。随着研究的深入,元学习有望在人工智能的未来发展中发挥更大的作用。
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
336 14
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
234 1
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
535 0

热门文章

最新文章