式6.8(支持向量机目标函数)
L(w,b,α)=12∣∣w∣∣2+∑i=1mαi(1−yi(wTxi+b))L(\boldsymbol{w},b,\boldsymbol{\alpha}) = \frac{1}{2}||\boldsymbol{w}||^2+\sum_{i=1}^m\alpha_i(1-y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b))L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
这个公式是支持向量机(SVM)中的目标函数,也称为损失函数或正则化风险最小化问题。它用于在训练过程中找到最优的权重向量 w\boldsymbol{w}w 和偏置项 bbb。下面是公式中各个部分的解释:
- L(w,b,α)L(\boldsymbol{w}, b, \boldsymbol{\alpha})L(w,b,α):损失函数,用于衡量模型预测与实际标签之间的差异。
- 12∣∣w∣∣2\frac{1}{2}||\boldsymbol{w}||^221∣∣w∣∣2:正则化项,其中 ∣∣w∣∣2||\boldsymbol{w}||^2∣∣w∣∣2 是 w\boldsymbol{w}w 的欧几里得范数的平方,这有助于防止模型过拟合。
- ∑i=1mαi\sum_{i=1}^m\alpha_i∑i=1mαi:对所有样本的系数 αi\alpha_iαi 求和。
- 1−yi(wTxi+b)1 - y_i(\boldsymbol{w}^T\boldsymbol{x}_i + b)1−yi(wTxi+b):第 iii 个样本的误差,其中 yiy_iyi 是样本的真实标签,wTxi+b\boldsymbol{w}^T\boldsymbol{x}_i + bwTxi+b 是模型对样本 xi\boldsymbol{x}_ixi 的预测值。如果预测值与实际标签一致,误差为 0;如果不一致,误差为 1 或更高。
- αi\alpha_iαi:第 iii 个样本的拉格朗日乘子,用于在优化过程中平衡正则化和误差。
SVM 的目标是最小化这个损失函数,同时满足 0≤αi≤C0 \leq \alpha_i \leq C0≤αi≤C,其中 CCC 是一个正的参数,用于控制模型的复杂度和对误分类的容忍度。通过求解这个优化问题,可以得到最优的权重向量 w\boldsymbol{w}w 和偏置项 bbb,从而定义出决策边界。
优化问题通常通过拉格朗日乘子法和二次规划(Quadratic Programming, QP)来解决。求解完成后,只有一部分样本点(即支持向量)的 αi\alpha_iαi 会是非零的,这些点决定了决策边界的位置和形状。
式6.9(支持向量机:计算决策函数的权重向量ω\omegaω)
w=∑i=1mαiyixi\boldsymbol{w} = \sum_{i=1}^m\alpha_iy_i\boldsymbol{x}_iw=i=1∑mαiyixi
这个公式是机器学习中支持向量机(Support Vector Machine, SVM)算法的一个关键公式,用于计算决策函数的权重向量 w\boldsymbol{w}w。这里解释一下公式中的各个部分:
- w\boldsymbol{w}w:权重向量,用于确定决策边界的方向和位置。
- ∑\sum∑:表示求和,是对所有项进行累加。
- mmm:样本数量,即训练数据集中的点的数量。
- αi\alpha_iαi:第 iii 个样本的系数,通常由优化算法确定,反映了样本点在决策边界上的重要性。
- yiy_iyi:第 iii 个样本的标签,通常是 +1 或 -1,表示分类的两个类别。
- xi\boldsymbol{x}_ixi:第 iii 个样本的特征向量。
该公式的意思是,权重向量 w\boldsymbol{w}w 是所有支持向量(即那些有非零系数 αi\alpha_iαi 的点)的特征向量的加权和,其中权重由相应的 αi\alpha_iαi 和 yiy_iyi 确定。这个权重向量与偏置项 bbb 一起定义了决策函数,可以用来对新的数据点进行分类。在 SVM 中,决策函数通常表示为:
$f(x)=w⋅x+bf(\boldsymbol{x}) = \boldsymbol{w} \cdot \boldsymbol{x} + bf(x)=w⋅x+b$
其中 w⋅x\boldsymbol{w} \cdot \boldsymbol{x}w⋅x 是 w\boldsymbol{w}w 和特征向量 x\boldsymbol{x}x 的点积,bbb 是偏置项。
式6.10(支持向量机约束条件—KK条件)
0=∑i=1mαiyi0=\sum_{i=1}^m\alpha_iy_i0=i=1∑mαiyi
这个等式是支持向量机(SVM)中的一个约束条件,称为“间隔的一致性条件”或“KKT条件”(Karush-Kuhn-Tucker条件)。它确保了在优化过程中,所有样本的拉格朗日乘子 αi\alpha_iαi 与它们对应的标签 yiy_iyi 的乘积之和等于零。下面是这个条件的详细解释:
- αi\alpha_iαi:第 iii 个样本的拉格朗日乘子,它表示了样本在优化过程中的权重。
- yiy_iyi:第 iii 个样本的真实标签,通常是 +1 或 -1,表示两个不同的类别。
- mmm:样本的总数。
这个等式意味着:
- 对于二分类问题,正类和负类样本的权重(由 αi\alpha_iαi 表示)在优化过程中达到平衡,确保模型不会偏向于任何一方。
- 这个条件是SVM优化问题的一部分,与损失函数一起定义了SVM的求解目标。
- 这个等式也与SVM的对偶问题有关,它确保了原始问题的解与对偶问题的解是一致的。
在SVM的实际应用中,这个条件通常与其他约束条件一起使用,例如 0≤αi≤C0 \leq \alpha_i \leq C0≤αi≤C,其中 CCC 是一个正的参数,用于控制模型对误分类的容忍度和正则化强度。通过满足这些条件,SVM能够找到最佳的决策边界,以区分不同的类别。
名词解释----对偶问题
在数学优化和机器学习中,对偶问题是与原问题相对应的另一个优化问题。在原问题中,我们寻找最优解以最小化或最大化某个目标函数,同时满足一定的约束条件。对偶问题则是从原问题的拉格朗日函数出发,通过交换最小化和最大化的操作来构建的。
原问题与对偶问题的关系
-
原问题(Primal Problem):
- 目标是最小化(或最大化)某个目标函数。
- 有一系列的约束条件。
-
对偶问题(Dual Problem):
- 目标是最大化(或最小化)原问题的拉格朗日函数对拉格朗日乘子的线性组合。
- 约束条件通常是原问题的对偶,即原问题的拉格朗日函数中的非线性部分。
支持向量机(SVM)中的对偶问题
以SVM为例,其原始问题是求解一个线性分类器,目标是找到一个决策边界,使得两类数据点之间的间隔最大化。原始问题可以表述为:
minw,b12∣∣w∣∣2s.t.yi(wTxi+b)≥1,∀i=1,…,m \begin{aligned} \min_{\boldsymbol{w}, b} & \quad \frac{1}{2} ||\boldsymbol{w}||^2 \\ \text{s.t.} & \quad y_i(\boldsymbol{w}^T\boldsymbol{x}_i + b) \geq 1, \quad \forall i = 1, \ldots, m \end{aligned} w,bmins.t.21∣∣w∣∣2yi(wTxi+b)≥1,∀i=1,…,m
这个原始问题可以通过拉格朗日乘子法转化为对偶问题:
maxα∑i=1mαi−12∑i,j=1mαiαjyiyjxiTxjs.t.∑i=1mαiyi=0,αi≥0,∀i=1,…,m \begin{aligned} \max_{\boldsymbol{\alpha}} & \quad \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i,j=1}^m \alpha_i \alpha_j y_i y_j \boldsymbol{x}_i^T \boldsymbol{x}_j \\ \text{s.t.} & \quad \sum_{i=1}^m \alpha_i y_i = 0, \\ & \quad \alpha_i \geq 0, \quad \forall i = 1, \ldots, m \end{aligned} αmaxs.t.i=1∑mαi−21i,j=1∑mαiαjyiyjxiTxji=1∑mαiyi=0,αi≥0,∀i=1,…,m
对偶问题的重要性
- 求解效率:对偶问题在某些情况下比原始问题更容易求解,尤其是在大规模优化问题中。
- 理论性质:对偶问题提供了对原问题解的性质的深入理解,例如,原问题的最优解和对偶问题的最优解之间的关系。
- 算法实现:在机器学习中,对偶问题常常通过算法(如梯度下降、坐标下降等)来求解,这些算法可以有效地处理大规模数据集。
对偶问题在优化理论中扮演着重要的角色,并且在机器学习、经济学、工程学等领域有着广泛的应用。
式6.11(支持向量机对偶问题的表现形式)
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj s.t. ∑i=1mαiyi=0αi≥0i=1,2,…,m\begin{aligned}
\max_{\boldsymbol{\alpha}} & \sum_{i=1}^m\alpha_i - \frac{1}{2}\sum_{i = 1}^m\sum_{j=1}^m\alpha_i \alpha_j y_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j \\
\text { s.t. } & \sum_{i=1}^m \alpha_i y_i =0 \\
& \alpha_i \geq 0 \quad i=1,2,\dots ,m
\end{aligned}αmax s.t. i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxji=1∑mαiyi=0αi≥0i=1,2,…,m
这个公式是支持向量机(SVM)的对偶问题(dual problem)的表述形式。SVM是一种用于分类和回归的监督学习模型,它通过找到数据点之间的最优边界(称为最大间隔分割)来区分不同的类别。下面是公式各部分的解释:
-
目标函数:
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj \max_{\boldsymbol{\alpha}} \sum_{i=1}^m\alpha_i - \frac{1}{2}\sum_{i = 1}^m\sum_{j=1}^m\alpha_i \alpha_j y_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
这个表达式是SVM对偶问题的目标函数,它是一个凸二次规划问题。目标是最大化目标函数,其中:
- 第一项 ∑i=1mαi\sum_{i=1}^m\alpha_i∑i=1mαi 是所有样本的拉格朗日乘子 αi\alpha_iαi 的和。
- 第二项 −12∑i=1m∑j=1mαiαjyiyjxiTxj-\frac{1}{2}\sum_{i = 1}^m\sum_{j=1}^m\alpha_i \alpha_j y_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j−21∑i=1m∑j=1mαiαjyiyjxiTxj 是正则化项,用于避免过拟合,其中 xiTxj\boldsymbol{x}_i^T\boldsymbol{x}_jxiTxj 是样本 xi\boldsymbol{x}_ixi 和 xj\boldsymbol{x}_jxj 的内积。
-
约束条件:
-
第一个约束条件是:
∑i=1mαiyi=0 \sum_{i=1}^m \alpha_i y_i =0 i=1∑mαiyi=0
这个条件确保了对偶问题中的间隔一致性,即正样本和负样本的权重乘以它们的标签后求和等于零。 -
第二个约束条件是:
αi≥0for i=1,2,…,m \alpha_i \geq 0 \quad \text{for } i=1,2,\dots ,m αi≥0for i=1,2,…,m
这个条件确保了所有样本的拉格朗日乘子 αi\alpha_iαi 都是非负的。
-
通过对偶问题求解,我们可以得到最优的拉格朗日乘子 αi\alpha_iαi。只有那些对应的 αi\alpha_iαi 非零的样本点(即支持向量)会影响最终的决策边界。这些支持向量是距离决策边界最近的点,它们决定了SVM模型的性能。
求解对偶问题通常比求解原始问题(涉及 w\boldsymbol{w}w 和 bbb 的优化问题)更高效,特别是对于大规模数据集。求解完成后,可以使用这些最优的 αi\alpha_iαi 来构造决策函数,从而对新样本进行分类。
名词解释–拉格朗日乘子法
拉格朗日乘子法(Lagrange Multiplier Method)是一种在数学优化中用于求解带有等式约束的非线性问题的方法。这种方法通过引入拉格朗日乘子(Lagrange multipliers)来将约束问题转化为无约束问题,从而简化问题的求解过程。
基本原理
假设我们有一个优化问题,目标是最小化或最大化一个函数 f(x1,x2,...,xn)f(x_1, x_2, ..., x_n)f(x1,x2,...,xn),同时满足一个或多个等式约束 gi(x1,x2,...,xn)=0g_i(x_1, x_2, ..., x_n) = 0gi(x1,x2,...,xn)=0,其中 i=1,2,...,mi = 1, 2, ..., mi=1,2,...,m。
-
构造拉格朗日函数:首先构造拉格朗日函数 LLL,它是目标函数和约束函数的线性组合,形式如下:
L(x1,x2,...,xn,λ1,...,λm)=f(x1,x2,...,xn)+∑i=1mλigi(x1,x2,...,xn) L(x_1, x_2, ..., x_n, \lambda_1, ..., \lambda_m) = f(x_1, x_2, ..., x_n) + \sum_{i=1}^m \lambda_i g_i(x_1, x_2, ..., x_n) L(x1,x2,...,xn,λ1,...,λm)=f(x1,x2,...,xn)+i=1∑mλigi(x1,x2,...,xn)
其中,λi\lambda_iλi 是拉格朗日乘子,对应于第 iii 个约束。 -
求解无约束问题:接下来,我们对 LLL 分别对 x1,x2,...,xnx_1, x_2, ..., x_nx1,x2,...,xn 和 λ1,...,λm\lambda_1, ..., \lambda_mλ1,...,λm 求偏导数,并将它们设为零,得到一系列方程:
∂L∂xj=0,j=1,2,...,n \frac{\partial L}{\partial x_j} = 0, \quad j = 1, 2, ..., n ∂xj∂L=0,j=1,2,...,n
∂L∂λi=0,i=1,2,...,m \frac{\partial L}{\partial \lambda_i} = 0, \quad i = 1, 2, ..., m ∂λi∂L=0,i=1,2,...,m -
求解方程组:求解上述方程组,可以得到原始变量 x1,x2,...,xnx_1, x_2, ..., x_nx1,x2,...,xn 和拉格朗日乘子 λ1,...,λm\lambda_1, ..., \lambda_mλ1,...,λm 的值。
-
验证解的有效性:得到的解需要满足所有原始约束条件,并且需要检查是否满足KKT条件(如果问题是非凸的)。
应用
拉格朗日乘子法在多个领域有广泛应用,包括但不限于:
- 经济学:在最优化问题中,拉格朗日乘子可以解释为资源的边际价值。
- 物理学:在受约束的动力学问题中,拉格朗日乘子可以用于求解物体的运动。
- 工程学:在设计和优化问题中,用于考虑约束条件。
- 机器学习:在支持向量机(SVM)等算法中,用于求解带约束的优化问题。
注意事项
- 拉格朗日乘子法适用于等式约束问题。如果存在不等式约束,可能需要使用KKT条件。
- 得到的解可能是局部最优解,不一定是全局最优解。
- 在实际应用中,可能需要数值方法来求解得到的方程组。
名词解释–KK条件和KKT条件
KK条件和KKT条件是数学优化中的两个概念,它们都与拉格朗日乘子法有关,但应用的上下文和条件的内容有所不同。
KKT条件(Karush-Kuhn-Tucker Conditions)
KKT条件是一组充分条件,用于确定一个点是否是凸优化问题的局部最优解。对于一般的非线性规划问题,KKT条件包括以下几个部分:
- 原问题的可行性:解必须满足所有等式和不等式的约束。
- 对偶问题的可行性:对偶问题的解(如果有的话)也必须满足所有约束。
- 互补松弛性:对于每个不等式约束,要么约束是满足的(即不等式是严格的),要么对应的拉格朗日乘子是零。
- 梯度为零:原问题的拉格朗日函数对所有变量(包括原始变量和拉格朗日乘子)的梯度之和必须为零。
KK条件(Karush Conditions)
KK条件是KKT条件的一个特例,它适用于当优化问题中的约束都是等式约束时。KK条件包括:
- 原问题的可行性:解必须满足所有的等式约束。
- 梯度为零:原问题的拉格朗日函数对所有原始变量的梯度必须为零。
区别和联系
- 适用性:KKT条件适用于包含不等式和等式约束的优化问题,而KK条件仅适用于只有等式约束的优化问题。
- 互补松弛性:KKT条件包括互补松弛性,这是KK条件所没有的。互补松弛性确保了不等式约束的拉格朗日乘子只在约束边界上非零。
- 对偶可行性:KKT条件考虑了对偶问题的可行性,而KK条件则没有这一要求。
在实际应用中,特别是在机器学习和经济学等领域,KKT条件被广泛用于确定最优解的存在性和唯一性,以及在算法实现中作为停止准则。而KK条件由于其适用范围的限制,使用较少。
式6.13(支持向量机的KKT条件)
{αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0\left\{\begin{array}{l}\alpha_{i} \geqslant 0 \\ y_{i} f\left(\boldsymbol{x}_{i}\right)-1 \geqslant 0 \\ \alpha_{i}\left(y_{i} f\left(\boldsymbol{x}_{i}\right)-1\right)=0\end{array}\right.⎩⎨⎧αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0
这个公式组是支持向量机(SVM)中的Karush-Kuhn-Tucker (KKT) 条件,它们是优化问题的解必须满足的条件。KKT条件是拉格朗日乘子法中用于解决约束优化问题的一组条件。下面是这些条件的解释:
-
αi⩾0\alpha_{i} \geqslant 0αi⩾0:这个条件说明拉格朗日乘子 αi\alpha_iαi 必须是非负的。在SVM中,αi\alpha_iαi 用于衡量每个样本点对最终决策边界的贡献程度,非负的条件确保了优化的目标是正确的。
-
yif(xi)−1⩾0y_{i} f(\boldsymbol{x}_{i})-1 \geqslant 0yif(xi)−1⩾0:这个条件是间隔的约束条件。yiy_{i}yi 是样本的真实标签,f(xi)f(\boldsymbol{x}_{i})f(xi) 是模型对第 iii 个样本的预测函数,111 是间隔的宽度。这个条件确保了每个样本点 xi\boldsymbol{x}_{i}xi 都位于间隔边界之内或其上,即正确分类的同时保持一定的间隔。
-
αi(yif(xi)−1)=0\alpha_{i}(y_{i} f(\boldsymbol{x}_{i})-1)=0αi(yif(xi)−1)=0:这个条件称为互补松弛条件(complementary slackness condition),它是KKT条件中的一个重要部分。它表明如果一个样本点 xi\boldsymbol{x}_{i}xi 正确分类并且不在间隔边界上,即 yif(xi)>1y_{i} f(\boldsymbol{x}_{i}) > 1yif(xi)>1,那么对应的拉格朗日乘子 αi\alpha_iαi 必须为零;反之,如果 αi>0\alpha_i > 0αi>0,则样本点必须位于间隔边界上,即 yif(xi)=1y_{i} f(\boldsymbol{x}_{i}) = 1yif(xi)=1。这意味着只有支持向量(即位于间隔边界上的点)的 αi\alpha_iαi 会是非零的。
这些条件共同确保了SVM模型在训练过程中能够找到最佳的决策边界,并且只有支持向量会影响最终的模型参数。在实际应用中,这些条件是SVM求解过程中不可或缺的一部分,它们帮助我们识别出哪些样本点是重要的,并且如何调整模型以获得最佳的分类效果。