支持向量机
除了执行线性分类之外,SVM还可以使用所谓的内核技巧有效地执行非线性分类,将其输入隐式映射到高维特征空间。在机器学习中,支持向量机(SVM,也支持向量网络[1])是具有相关学习算法的监督学习模型,其分析用于分类和回归分析的数据。给定一组训练示例,每个示例标记为属于两个类别中的一个或另一个,SVM训练算法构建一个模型,将新示例分配给一个类别或另一个类别,使其成为非概率二元线性分类器(尽管方法比如Platt缩放 存在于概率分类设置中使用SVM)。SVM模型是将示例表示为空间中的点,映射使得单独类别的示例除以尽可能宽的明确间隙。然后将新的示例映射到同一空间,并根据它们落在哪个边缘预测属于一个类别。
当数据未标记时,监督学习是不可能的,并且需要无监督学习方法,其试图找到数据到组的自然聚类,然后将新数据映射到这些形成的组。由Hava Siegelmann和Vladimir Vapnik创建的支持向量聚类[2]算法应用支持向量机算法中开发的支持向量的统计,对未标记数据进行分类,是工业应用中使用最广泛的聚类算法之一。[ 引证需要 ]
动机[ 编辑]
H 1不分类。H 2确实如此,但只有很小的余地。H 3用最大余量分隔它们。
对数据进行分类是机器学习中的常见任务。假设一些给定的数据点各自属于两个类中的一个,目标是确定新 数据点将在哪个类中。对于支持向量机,数据点被视为{\ displaystyle p}- 维度向量(列表) {\ displaystyle p} 数字),我们想知道我们是否可以将这些点与a分开 {\ displaystyle(p-1)}- 维超平面。这称为线性分类器。有许多超平面可能会对数据进行分类。作为最佳超平面的一个合理选择是代表两个类之间的最大分离或余量的超平面。因此,我们选择超平面,使其与每侧最近数据点的距离最大化。如果存在这样的超平面,则它被称为最大边缘超平面,并且它定义的线性分类器被称为最大边缘分类器 ; 或等效地,最佳稳定性的感知器。[ 引证需要 ]
定义[ 编辑]
更正式地说,支持向量机在高维或无限维空间中构造超平面或超平面集,可用于分类,回归或其他任务,如异常值检测[3]。直观地,超平面实现了良好的分离,该超平面与任何类的最近的训练数据点具有最大距离(所谓的功能边界),因为通常边距越大,分类器的泛化误差越小[4]。 ]。
内核机器
尽管原始问题可以在有限维空间中陈述,但经常发生的是,要区分的集合在该空间中不是线性可分的。出于这个原因,有人建议[ 由谁?]原始的有限维空间被映射到更高维度的空间,可能在该空间中使分离更容易。为了保持计算负荷的合理性,SVM方案使用的映射被设计为确保对输入数据向量的点积可以根据原始空间中的变量容易地计算,通过根据核函数定义它们 {\ displaystyle k(x,y)}选择以适应问题。[5]高维空间中的超平面被定义为一组点,其中该点与该空间中的向量的点积是不变的[ 为什么?]。定义超平面的矢量可以选择为与参数的线性组合{\ displaystyle \ alpha _ {i}}特征向量的图像 {\ displaystyle x_ {i}}发生在数据库中[ 需要澄清 ]。有了这个超平面的选择,分数{\ displaystyle x}映射到超平面的要素空间中的关系由以下关系定义:{\ displaystyle \ textstyle \ sum _ {i} \ alpha _ {i} k(x_ {i},x)= \ mathrm {constant}。} 请注意,如果 {\ displaystyle k(x,y)} 变小了 {\ displaystyle y} 越来越远 {\ displaystyle x},总和中的每个项都衡量测试点的接近程度 {\ displaystyle x} 到相应的数据基点 {\ displaystyle x_ {i}}。以这种方式,上述内核的总和可用于测量每个测试点与源自要被区分的一个或另一个集合的数据点的相对接近度。注意点集的事实{\ displaystyle x} 因此,映射到任何超平面可能会非常复杂,从而允许在原始空间中根本不凸出的集合之间进行更复杂的区分。
应用[ 编辑]
SVM可用于解决各种现实问题:
- SVM在文本和超文本分类中很有用,因为它们的应用可以显着减少标准归纳和转换设置中对标记训练实例的需求。
- 还可以使用SVM执行图像的分类。实验结果表明,在仅仅三到四轮相关反馈之后,SVM实现了比传统查询细化方案更高的搜索精度。对于图像分割系统也是如此,包括那些使用Vapnik建议的使用特权方法的修改版SVM的系统。[6] [7]
- 可以使用SVM [8] [ 需要引证 ] 识别手写字符。
- SVM算法已广泛应用于生物学和其他科学。它们已被用于对蛋白质进行分类,其中高达90%的化合物被正确分类。已经提出基于SVM权重的置换测试作为用于解释SVM模型的机制。[9] [10]过去,支持向量机权重也被用于解释SVM模型。[11]支持向量机模型的Posthoc解释,以识别模型用于预测的特征是一个相对较新的研究领域,在生物科学中具有特殊意义。
历史[ 编辑]
最初的SVM算法是由Vladimir N. Vapnik和Alexey Ya发明的。Chervonenkis于1963年。1992年,Bernhard E. Boser,Isabelle M. Guyon和Vladimir N. Vapnik提出了一种通过将核心技巧应用于最大边缘超平面来创建非线性分类器的方法。[12]现行标准[ 根据谁?]化身(软间隔)中的溶液提出科琳娜科尔特斯在1993年和Vapnik等,发表在1995年[1]
线性SVM [ 编辑]
我们获得了一个训练数据集 {\ displaystyle n} 形式的要点
{\ displaystyle({\ vec {x}} _ {1},y_ {1}),\,\ ldots,\,({\ vec {x}} _ {n},y_ {n})}
在哪里 {\ displaystyle y_ {i}} 是1或-1,每个都表示该点所在的类 {\ displaystyle {\ vec {x}} _ {i}}所属。每{\ displaystyle {\ vec {x}} _ {i}} 是一个 {\ displaystyle p}- 三维真实矢量。我们希望找到划分点组的“最大边距超平面”{\ displaystyle {\ vec {x}} _ {i}} 为此 {\ displaystyle y_ {i} = 1} 来自哪一点 {\ displaystyle y_ {i} = - 1},这被定义为超平面和最近点之间的距离 {\ displaystyle {\ vec {x}} _ {i}} 来自任何一组都是最大化的。
任何超平面都可以写成一组点{\ displaystyle {\ vec {x}}} 满意的
{\ displaystyle {\ vec {w}} \ cdot {\ vec {x}} - b = 0,\,}
使用来自两个类的样本训练的SVM的最大边缘超平面和边距。边缘上的样本称为支持向量。
哪里 {\ displaystyle {\ vec {w}}}是超平面的(不一定是标准化的)法向量。这很像Hesse普通形式,除此之外{\ displaystyle {\ vec {w}}}不一定是单位矢量。参数{\ displaystyle {\ tfrac {b} {\ | {\ vec {w}} \ |}}} 确定超平面沿法线向量与原点的偏移量 {\ displaystyle {\ vec {w}}}。
硬边[ 编辑]
如果训练数据是线性可分的,我们可以选择两个并行的超平面来分隔两类数据,以便它们之间的距离尽可能大。由这两个超平面界定的区域称为“边缘”,最大边缘超平面是位于它们之间的超平面。使用标准化或标准化的数据集,可以通过以下等式描述这些超平面: