22 机器学习 - 深入SVM(上)

简介: 22 机器学习 - 深入SVM(上)

1 从线性可分到线性不可分

1.1 从原始问题到对偶问题的求解

接着考虑之前得到的目标函数:

因为现在的目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题。这个问题可以用现成的QP (Quadratic Programming) 优化包进行求解。一言以蔽之:在一定的约束条件下,目标最优,损失最小。

此外,由于这个问题的特殊结构,还可以通过拉格朗日对偶性(Lagrange Duality)变换到对偶变量 (dual variable) 的优化问题,即通过求解与原问题等价的对偶问题(dual problem)得到原始问题的最优解,这就是线性可分条件下支持向量机的对偶算法,这样做的优点在于:一者对偶问题往往更容易求解;二者可以自然的引入核函数,进而推广到非线性分类问题。

然后令

1.2、KKT条件

1.3 对偶问题求解的3个步骤

提醒:有读者可能会问上述推导过程如何而来?说实话,其具体推导过程是比较复杂的,如下图所示:

最后,得到:

如 jerrylead所说:“倒数第4步”推导到“倒数第3步”使用了线性代数的转置运算,由于ai和yi都是实数,因此转置后与自身一样。“倒数第3步”推导到“倒数第2步”使用了(a+b+c+…)(a+b+c+…)=aa+ab+ac+ba+bb+bc+…的乘法运算法则。最后一步是上一步的顺序调整。

1.5 线性不可分的情况

2 核函数Kernel

2.1 特征空间的隐式映射:核函数

事实上,大部分时候数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在。在上文中,我们已经了解到了SVM处理线性可分的情况,那对于非线性的数据SVM咋处理呢?对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间,来解决在原始空间中线性不可分的问题。

更进一步,因为训练样例一般是不会独立出现的,它们总是以成对样例的内积形式出现,而用对偶形式表示学习器的优势在为在该表示中可调参数的个数不依赖输入属性的个数,通过使用恰当的核函数来替代内积,可以隐式得将非线性的训练数据映射到高维空间,而不增加可调参数的个数(当然,前提是核函数能够计算对应着两个输入特征向量的内积)。

具体来说,在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开。如图7-7所示,一堆数据在二维空间无法划分,从而映射到三维空间里划分:

而在我们遇到核函数之前,如果用原始的方法,那么在用线性学习器学习一个非线性关系,需要选择一个非线性特征集,并且将数据写成新的表达形式,这等价于应用一个固定的非线性映射,将数据映射到特征空间,在特征空间中使用线性学习器,因此,考虑的假设集是这种类型的函数:

这里ϕ:X->F是从输入空间到某个特征空间的映射,这意味着建立非线性学习器分为两步:

  1. 首先使用一个非线性映射将数据变换到一个特征空间F,
  2. 然后在特征空间使用线性学习器分类。

而由于对偶形式就是线性学习器的一个重要性质,这意味着假设可以表达为训练点的线性组合,因此决策规则可以用测试点和训练点的内积来表示:

如果有一种方式可以在特征空间中直接计算内积〈φ(xi · φ(x)〉,就像在原始输入点的函数中一样,就有可能将两个步骤融合到一起建立一个非线性的学习器,这样直接计算法的方法称为核函数方法:

核是一个函数K,对所有x,z(-X,满足,这里φ是从X到内积特征空间F的映射。

目录
相关文章
|
6天前
|
机器学习/深度学习 运维 算法
Machine Learning机器学习之向量机(Support Vector Machine,SVM)
Machine Learning机器学习之向量机(Support Vector Machine,SVM)
|
6天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
6天前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
6天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【2月更文挑战第20天】 在数据科学与人工智能的领域中,支持向量机(SVM)是一种强大的监督学习算法,它基于统计学习理论中的VC维理论和结构风险最小化原理。本文将深入探讨SVM的核心概念、工作原理以及实际应用案例。我们将透过算法的数学原理,揭示如何利用SVM进行有效的数据分类与回归分析,并讨论其在处理非线性问题时的优势。通过本文,读者将对SVM有更深层次的理解,并能够在实践中应用这一算法解决复杂的数据问题。
24 0
|
6天前
|
机器学习/深度学习 数据采集 算法
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
|
6天前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。
|
6天前
|
机器学习/深度学习 算法 Python
深入浅出Python机器学习:从零开始的SVM教程/厾罗
深入浅出Python机器学习:从零开始的SVM教程/厾罗
|
6天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第6天】在数据科学和人工智能的广阔天地中,支持向量机(SVM)以其强大的分类能力与理论深度成为机器学习领域中的一个闪亮的星。本文将深入探讨SVM的核心原理、关键特性以及实际应用案例,为读者提供一个清晰的视角来理解这一高级算法,并展示如何利用SVM解决实际问题。
73 7
|
6天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】支持向量机(SVM)在Python中的实践
【4月更文挑战第30天】SVM是一种高效的监督学习算法,适用于分类和回归,尤其擅长处理高维和非线性问题。通过寻找最大边际超平面来分隔数据,SVM具有高效性、鲁棒性、灵活性和稀疏性等特点。
|
6天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【4月更文挑战第28天】 在数据科学和人工智能的世界中,支持向量机(SVM)以其强大的分类能力而著称。本文将深入探讨SVM的数学原理、关键概念以及实际应用案例。我们将通过直观的解释和示例来揭示SVM如何找到最优决策边界,以及如何通过核技巧处理非线性可分问题。此外,我们还将讨论SVM在现实世界问题中的效能及其局限性。

热门文章

最新文章