机器学习--支持向量机理论知识(三)

机器学习 | 支持向量机理论知识(三)

本周,我们继续进行支持向量机的学习。

上周说到,线性支持向量机优化问题的目标是使d最大化,即通过支持向量上的样本点求解d的最大化的问题。因为只关心支持向量机上的点,因此,求解d的最大化问题变成了\(||\omega||\)的最小化问题,进而\(||\omega||\)的最小化问题等效于: \[ min\frac{1}{2}||\omega||^2 \] 根据以上这些,以下我们给出支持向量机的基本数学模型。

支持向量机的基本数学模型

为了在进行最优化的过程中对目标函数求导时比较方便,将最终的目标函数和约束条件放在一起进行描述: \[ arg_{\omega,b}min\frac{1}{2}||\omega||^2\quad s.t.y_i(\omega^Tx_i+b)\ge1,i = 1,2,...,n \] 这里,n是样本点的总个数,缩写s.t.表示”Subject to”,是“服从某某条件”的意思。

公式描述的是一个典型的不等式约束条件下的二次型函数优化问题,可以使用拉格朗日乘子法求解。通过拉格朗日对偶变换到对偶变量 (dual variable) 的优化问题之后,可以找到一种更加有效的方法来进行求解,通常情况下这种方法比直接使用通用的二次规划优化包进行优化要高效得多。简单地来说,通过给每一个约束条件加上一个拉格朗日乘子法,可以将它们融和到目标函数里去。

最终可以得到关于对偶变量\(\alpha\)的优化问题: \[ max_\alpha \quad \sum^n_{i=1}\alpha_i - \frac{1}{2}\sum^n_{i,j=1}\alpha_i \alpha_jy_iy_jx_i^Tx_j\quad s.t.\alpha_i\ge0,i = 1,2,...,n \] 当且仅当支持向量对应的\(\alpha\)非0,其他的\(\alpha\)都为0。确定最优拉格朗日乘子\(\alpha_i\)后,计算最优权重向量: \[ W^* = \sum^n_{i = 1}\alpha_i^*y_ix_i \] 然后用一个正的支持向量\(X_s\),即可算出最优偏置: \[ b^* = 1-W^{*T}X_s,当y_s = 1 \] 即可求得最优超平面\(W·X+b = 0\)

下面给出一个例子:

给出一个二维数据集,包含8个训练实例。这个数据集表示两种植物细胞的相关信息,\(x_1\)表示归一化后的植物细胞的最大直径,\(x_2\)表示归一化后的植物细胞的细胞壁厚度,\(y\)表示具体的植物细胞类型。

解:使用二次规划的方法,可以得到每个训练实例的拉格朗日乘子,见表的最后一列。可以看出,只有前两个实例才具有非0的拉格朗日乘子,这些实例就对应着数据集的支持向量。

捕获

下面计算求解参数\(\omega\)\(b\)

\(\omega = (\omega_1,\omega_2)\),从而有 \[ \omega1 = \sum_i\alpha_iy_ix_{i1} = 65.5261*1*0.3858+65.5261*(-1)*0.4871 = -6.64 \]

\[ \omega2 = \sum_i\alpha_iy_ix_{i2} = 65.5261*1*0.4687+65.5261*(-1)*0.611 = -9.32 \]

偏置项\(b\)对每个支持向量进行计算: \[ b^{(1)} = 1-\omega·x_1 = 1-(-6.64)*0.3858-(-9.32)*0.4871 = 7.9300 \]

\[ b^{(2)} = 1-\omega·x_2 = 1-(-6.64)*0.4687-(-9.32)*0.611 = 7.9289 \]

取平均值得到\(b = 7.93\)

从而得到的决策边界为: \[ -6.64x_1-9.32x_2+7.93 = 0 \]

以上就是本周的内容,下周我将说明非线性支持向量机的相关内容,谢谢大家的观看!