周志华老师《机器学习》学习笔记
间隔与支持向量
在支持向量机(SVM)中,间隔是指分类超平面到离它最近的训练样本点的距离,间隔的大小可以反映分类器对未知样本的泛化能力,间隔越大,分类器对未知样本的泛化能力越强。支持向量则是离分类超平面最近的那些训练样本点,在SVM中起着决定性作用,因为它们决定了分类超平面的位置和方向。
划分超平面的选择原则是使得间隔最大化。在支持向量机中,通过最大化间隔来选择划分超平面,这意味着要找到一个能够将不同类别的训练样本分开的超平面,并且使得这个超平面到离它最近的训练样本点的距离(即间隔)最大化。这样做的目的是为了提高分类器的泛化能力,即对未知样本的分类准确性。
对偶问题
在支持向量机(Support Vector Machine, SVM)的原始问题中,我们要求解的是一个凸二次优化问题,目标是找到一个最大间隔超平面,使得训练数据点到超平面的距离最大化,同时满足所有数据点的分类准确性要求。然而,当数据集很大时,直接求解原始问题可能会变得非常耗时。为了避免这个问题,我们可以转而考虑其对偶问题。
支持向量机的对偶问题是通过拉格朗日对偶性(Lagrange duality)得到的。首先,我们定义拉格朗日乘子(Lagrange multipliers)来引入对原始问题中的约束条件。然后,通过求解对偶问题,我们可以得到与原始问题等价的解,但是在某些情况下,对偶问题的求解会更加高效。
具体来说,支持向量机的对偶问题可以表示为:
其中,n是训练样本的数量,是第 i个训练样本的特征向量,是对应的类别标签(1 或 -1),是拉格朗日乘子,C是一个正则化参数,是特征向量 和的内积。对偶问题的解包括了拉格朗日乘子值,通过这些值,我们可以计算出权重向量 w 和偏置b,从而得到最终的分类超平面。
对偶问题的一个重要性质是,只有一部分训练样本对应的拉格朗日乘子的值大于零,这些样本被称为支持向量,它们决定了最终分类超平面的位置和方向。这也是支持向量机名称的由来。
SMO算法
在支持向量机(Support Vector Machine, SVM)中,序列最小优化(Sequential Minimal Optimization, SMO)算法是一种用于求解支持向量机对偶问题的优化算法。SMO算法的主要作用是将大优化问题分解成多个小优化问题来求解,从而提高了求解效率。
SMO算法的核心思想是每次选择两个拉格朗日乘子进行优化,固定其他拉格朗日乘子,通过解析方法找到这两个乘子的最优解。具体来说,SMO算法的步骤如下:
1. 初始化拉格朗日乘子 和偏置 b,设置迭代次数和容错率阈值。
2. 在迭代过程中,选择两个乘子和。
3. 固定其他乘子,通过最优化方法求解选定的两个乘子的最优值。
4. 更新这两个乘子以及对应的偏置 b。
5. 如果所有乘子的更新量都小于容错率阈值,或者达到迭代次数限制,则停止迭代,否则继续迭代。
通过SMO算法,我们可以逐步优化拉格朗日乘子,最终得到支持向量机的最优解,即找到最大间隔超平面。由于SMO算法每次只选择两个乘子进行优化,因此在求解大规模问题时具有较高的效率和可扩展性。
核函数
在支持向量机(Support Vector Machine, SVM)中,核函数是一种用于处理非线性可分数据的技术。核函数的作用是将输入特征空间中的数据通过非线性映射映射到一个高维特征空间,从而使得原本在低维空间中不可分的数据在高维空间中变得线性可分。这样,支持向量机就可以在高维空间中找到一个线性超平面来进行分类。
Mercer定理的要求是核函数必须是对称的、连续的、非负定的。对称性保证了核函数的计算不依赖于输入的顺序,连续性保证了核函数在整个特征空间上有定义,非负定性则是保证了核函数生成的Gram矩阵是半正定的,从而保证了映射到高维特征空间后的数据可以被一个超平面完美分开。
核函数的原理是基于核技巧(kernel trick),它可以在不显式计算高维特征空间中的数据的情况下,直接计算数据在高维空间中的内积。核函数可以避免在高维空间中计算复杂度高昂的内积运算,从而提高了支持向量机的计算效率。
再生核希尔伯特空间(Reproducing Kernel Hilbert Space, RKHS)是函数空间的一种重要概念,在支持向量机(Support Vector Machine, SVM)等机器学习算法中发挥着关键作用。
RKHS 是希尔伯特空间的一种特殊形式,它具有一些特殊的性质。首先,RKHS 是一个带有内积结构的函数空间,它包含了所有能够由一个核函数表示的函数。这个核函数定义了一个从输入空间到 RKHS 中的映射,使得在 RKHS 中的内积等于在输入空间中的核函数值。也就是说,对于任意两个函数f和g,在 RKHS 中的内积可以表示为 ,其中 是核函数。
RKHS 的另一个重要性质是再生性(reproducing property),即对于任意的x,核函数满足,并且对于任意的,都有。这个性质可以理解为,RKHS 中的函数在输入空间中的某一点x 处的取值等于该x为中心的核函数的内积。
在支持向量机等算法中,RKHS 的概念是很重要的,因为核技巧(kernel trick)的核心思想就是利用核函数将输入空间映射到一个高维的 RKHS 中,从而实现对非线性问题的处理。通过在 RKHS 中进行内积计算,我们可以避免显式地计算高维空间中的特征向量,大大提高了算法的效率。
常用的核函数包括线性核函数、多项式核函数、高斯径向基函数(Gaussian Radial Basis Function, RBF)和sigmoid核函数等。不同的核函数适用于不同类型的数据,选择合适的核函数可以有效提高支持向量机的分类性能。
软间隔与正则化
在支持向量机(Support Vector Machine, SVM)中,软间隔(soft margin)和正则化(regularization)是用来处理数据中存在噪声或样本不完全线性可分的情况的技术。
-
软间隔(Soft Margin): 在支持向量机中,我们希望找到一个能够将不同类别的样本正确分开的超平面。在完全线性可分的情况下,可以找到一个严格分隔两类样本的超平面,这被称为硬间隔(hard margin)。然而,在现实数据中,很多情况下样本不是完全线性可分的,可能存在噪声或者样本点的分布有一定的重叠。为了处理这种情况,引入了软间隔的概念,即允许一些样本点被错分,但要尽量减少这种错误分类的数量和程度。软间隔的目标是在保持尽可能大的间隔同时,最小化错分样本的数量和错分程度。
-
正则化(Regularization): 正则化是一种用来防止模型过拟合的技术。在支持向量机中,正则化通过在优化问题的目标函数中引入一个正则化项,来限制模型的复杂度。正则化项通常是模型参数的范数,例如L1范数或 L2范数。正则化的作用是使得模型更加简单,防止模型在训练数据上过度拟合,提高模型的泛化能力。
支持向量回归
支持向量回归(Support Vector Regression, SVR)是一种使用支持向量机(SVM)框架解决回归问题的方法。与传统的回归方法不同,SVR旨在寻找一个函数,使其在给定的容忍度范围内尽可能拟合训练数据,同时保持函数的简单性,以防止过拟合。
SVR的基本思想是通过最小化间隔边界内的误差和保持间隔边界外的误差小于等于给定的容忍度来构建一个拟合函数。这种容忍度可以通过调整超参数来控制,允许在一定程度上忽略训练数据的噪声。SVR的优化目标是最小化以下损失函数:
其中,是模型的权重向量的范数,C是一个正则化参数,和分别是样本i的预测值与实际值之间的差的绝对值减去容忍度,即。通过调整C和容忍度的值,可以平衡模型的复杂度和对训练数据的拟合程度。
SVR的优点包括对异常值的鲁棒性和对高维数据的处理能力。然而,SVR的计算复杂度较高,因此在处理大规模数据集时可能不太适用。SVR的应用包括金融预测、生态学建模、医学图像处理等领域。
核方法
在支持向量机(Support Vector Machine, SVM)中,核方法(kernel method)是一种将输入数据映射到高维特征空间的技术,以便在该特征空间中找到一个线性可分的超平面来解决非线性问题。核方法的核心思想是利用核函数(kernel function)来隐式地表示高维特征空间中的内积,从而避免了显式地计算高维空间中的特征向量,大大提高了计算效率。
具体来说,假设我们有一个输入空间X和一个非线性分类问题,我们希望找到一个在高维特征空间H中的超平面来进行分类。核方法的思想是定义一个核函数,它能够计算输入空间X中两个样本和在特征空间\(H\)中的内积,即,其中是将输入数据映射到高维特征空间\(H\)的映射函数。
常用的核函数包括:
线性核函数(Linear Kernel):,它对应于将数据映射到原始输入空间。
多项式核函数(Polynomial Kernel):,其中\(d\)是多项式的次数,c是一个常数项。多项式核函数可以用来处理一些非线性问题。
高斯径向基函数核(Gaussian Radial Basis Function, RBF Kernel):,其中是一个常数。RBF核函数可以将样本映射到无限维的特征空间,适用于复杂的非线性问题。
核方法的优势在于能够处理复杂的非线性关系,而不需要显式地将数据映射到高维空间。它在支持向量机等机器学习算法中被广泛应用于分类和回归问题。核方法的一个重要性质是Mercer定理,它保证了合适的核函数存在并且可以有效地用于SVM等算法中。