支持向量机教程:什么是机器学习中的支持向量机(SVM)

2021年11月8日21:20:22 发表评论 1,159 次浏览

什么是支持向量机(SVM)本教程解释了 ML 中的支持向量机和相关概念,如超平面、支持向量和 SVM 的应用:

在上一教程中,我们了解了遗传算法及其在机器学习中的作用,这篇文章主要介绍支持向量机工作原理。

我们在之前的教程中研究了机器学习中的一些有监督和无监督算法。反向传播是一种有监督的学习算法,而 Kohenen 是一种无监督的学习算法。

在这个支持向量机教程中,我们将学习支持向量机。SVM 是强大的数学监督机器学习算法,广泛用于训练数据集的分类。

如何理解支持向量机?你会学到什么:

  • 什么是支持向量机 (SVM)
  • 什么是超平面
  • 什么是分类和回归算法
  • 什么是支持向量
  • 支持向量机如何工作
  • 如何优化超平面的位置
  • 支持向量机的应用
  • 结论

什么是支持向量机 (SVM)?

SVM 算法是分类技术下的监督学习算法。它是一种二元分类技术,它使用训练数据集来预测 n 维空间中的最佳超平面。

该超平面用于对新数据集进行分类。作为二元分类器,超平面的训练数据集将训练数据集分为两类。

SVM 算法用于对二维平面和多维超平面中的数据进行分类。多维超平面使用“内核”对多维数据进行分类。

总是希望在分类的数据点之间有最大的区别。这意味着它们应该具有最大距离,或者超平面应该在数据点之间具有最大边距。

什么是超平面

超平面是划分平面的边界。它是将数据点分为 2 个不同类别的决策边界。由于 SVM 用于对数据进行多维分类,因此如果有 2 个输入,则超平面可以是直线,如果有 2 个以上输入,则超平面可以是 2D 平面。

SVM 算法也可用于回归分析,但主要用于分类。让我们看看有关每种方法的更多详细信息。

什么是分类和回归算法

分类算法是一种分析训练数据以预测结果的算法。结果是目标类,例如,白天或黑夜、是或否、长或短。分类算法的一个例子是在超市购买面包的顾客是否也会购买黄油。目标类别将是“是”或“否”。

回归算法找出自变量之间的关系并预测结果。线性回归找出输入和输出之间的线性关系。例如: “a”作为输入,“b”作为输出,线性函数将是 b = k*a+ c。

什么是支持向量

支持向量机工作原理:支持向量是帮助我们优化超平面的数据点。这些向量最靠近超平面并且最难分类。决策超平面的位置取决于支持向量。如果移除这些支持向量,那么它也会改变超平面的位置。

支持向量机 (SVM) 使用输入数据点或称为支持向量的特征来最大化决策边界,即超平面周围的空间。SVM 的输入和输出类似于神经网络。SVM 和 NN 之间只有一个区别,如下所述。

输入: SVM 网络可以包含 n 个输入,比如 x 1 , x 2 , …….., x i , ...., x n。

输出:目标输出 t。

权重:像神经网络权重 w 1 , w 2 , ……, w n与每个输入相关联,其线性组合预测输出 y。

SVM 和神经网络的区别

消除神经网络中的突触权重以计算网络的输出 y,而在 SVM 中减少或消除非零权重以计算最佳决策边界。

随着权重的消除,它将把输入数据集减少到一些有助于决定可分离超平面的重要输入特征。

支持向量机教程:支持向量机如何工作

众所周知,支持向量机的目标是最大化分类数据点之间的边际。这将为分类新的未训练数据集带来更优化的结果。因此,可以通过在边距最大的位置设置超平面来实现。

让我们看一个线性分离数据点的例子:

步骤 1:如何理解支持向量机?从不同的可能性中找出正确的超平面:为了确定最佳超平面,找出所有可能划分数据的平面,然后从中选择最能对输入数据集进行分类的平面。在下图中,存在三种超平面可能性。超平面 3 更好地划分了数据点。

支持向量机教程:什么是机器学习中的支持向量机(SVM)

步骤 2:选择最近数据点之间具有最大边距的超平面:边距定义为超平面与最近数据点之间的距离。因此,最好有一个最大的余量。当 2 个或 2 个以上的超平面对数据进行均等分类时,找出边距。

支持向量机教程:什么是机器学习中的支持向量机(SVM)

选择具有最大边距的超平面。在下图中,超平面 2.1、2.2 和 2.3 划分了数据点,但超平面 2.2 具有最大余量。

第 3 步:当存在异常值时:异常值是与一组数据点不同的数据点。在 2 组数据点的情况下,可能存在异常值。SVM 会忽略数据中的此类异常值,然后找到最大边距的超平面。

支持向量机教程:什么是机器学习中的支持向量机(SVM)

第 4 步:对于非线性分离的数据点,SVM 使用内核技巧。它将通过引入新维度将非线性可分平面转换为可分窗格。内核技巧是复杂的数学方程,可以进行复杂的数据转换以优化超平面。

什么是支持向量机(SVM)?下图显示了非线性可分离数据点,然后将其转换为具有 z 平面的高维。划分两个数据集的超平面是一个圆。

支持向量机教程:什么是机器学习中的支持向量机(SVM)

支持向量机教程:如何优化超平面的位置

使用优化算法优化超平面的位置。

SVM 参数:内核

在非线性可分问题中构建优化的超平面是使用内核完成的。核是使用线性代数形式转换复杂问题的数学函数。

对于线性核,方程为:

F(x)= b + sum (a i *(x, x i ))

其中,

x 是新的输入数据

i是支持向量

b, a i是系数。这些系数是在算法的学习阶段估计的。

对于复杂的非线性可分问题,核技巧的作用是将非线性可分问题转化为可分问题。它转换复杂数据并找出将数据点划分为输出的方法。

核函数有多种类型,例如线性、多项式、sigmoid、径向偏置、非线性等等。

下面我们来看看上面一些Kernel函数的用途:

核函数计算空间的 2 个输入 x, y 的内积。

支持向量机教程:什么是机器学习中的支持向量机(SVM)

#1) Radial Bias Function:最常用的核函数,表示对于位于 x= [-1,1] 之间的所有值,函数的值为 1,否则为 0。对于某些截距,例如 x i,核的值对于|(x i – h),函数为1,对于以x i为中心的(x i + h)|,否则为0。

#2) Sigmoid 函数:作为使用 Sigmoid 的神经网络,SVM 的核函数是

支持向量机教程:什么是机器学习中的支持向量机(SVM)

#3) 双曲正切函数:当神经网络使用时,函数是

支持向量机教程:什么是机器学习中的支持向量机(SVM)

#4) Gaussian Kernel Function:高斯核函数状态

支持向量机教程:什么是机器学习中的支持向量机(SVM)
支持向量机教程:什么是机器学习中的支持向量机(SVM)

#5) 多项式函数: k (x i , x j ) = ( x i * x j +1 ) 2

如何理解支持向量机?支持向量机的应用

SVM 的实际应用包括:

#1) 将文章分类为不同的类别: SVM 区分书面文本并将其分为不同的类别,例如娱乐、健康、小说文章。它基于在训练 SVM 时计算的预设阈值。

如果超过阈值,则将其放入类别。如果不满足该值,则为分类定义新类别。

#2) 人脸识别:通过使用像素检测特征,给定图像被分类为人脸图像或非人脸图像。图像被识别为面部或非面部。

#3) 健康信息: SVM 用于根据患者的基因、生物模式的识别等对患者进行分类。

#4) 蛋白质同源性检测:在计算医学科学中,SVM 接受了蛋白质序列建模的训练。然后使用 SVM 检测蛋白质同源性。

支持向量机工作原理结论

什么是支持向量机(SVM)?在这个支持向量机教程中,我们了解了支持向量机。SVM 算法是一种监督学习算法,用于对二进制数据和线性可分数据进行分类。它通过具有最大边距的超平面对数据点进行分类。

非线性数据点也可以使用内核技巧通过支持向量机进行分类。SVM在现实生活中有很多应用,最常见的应用之一就是人脸识别和手写识别。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: