相关问题
-
SVM的基本想法就是求解能正确划分训练样本并且其几何间隔最大化的超平面。
-
引入对偶算法求解支持向量机的参数:
- 对偶问题往往更加容易求解;
- 可以自然的引用核函数(拉格朗日表达式里面有内积,而核函数也是通过内积进行映射的);
- 基于KKT条件的互补松弛条件,训练样本集中只有支持向量所对应的拉格朗日乘子不为0,而支持向量占比较小,降低了模型在后续问题的计算量。
-
使用核函数:将输入特征(线性不可分)映射到高维特征空间,可以在高维空间上让进行线性分类。如高斯核函数,其中包含指数函数,可以利用泰勒级数将其展开至无限维,从而实现将输入特征映射到无穷维。
-
SMO算法思想:它选择凸二次规划的两个变量,其它的变量保持不变,然后根据这两个变量构建一个二次规划问题,这个二次规划关于这两个变量解会更加的接近原始二次规划的解,通过这样的子问题划分可以大大增加整个算法的计算速度。关于这两个变量,其中一个是严重违反KKT条件的一个变量,另一个变量是根据自由约束确定。
-
关于最大化几何间隔的目标函数中,将函数间隔直接设置为1的理由:
Andrew Ng在CS229中解释为:
为 w w w和 b b b添加了隐含的放缩限制,即使 w w w为 2 ∗ w 2*w 2∗w, b b b为 2 ∗ b 2*b 2∗b,最后的预测值只依据于正负,所以不影响结果。
在寻找几何间隔最大值的过程中,因为寻找最大几何间隔和寻找令几何间隔达到最大的超平面是一回事,所以当给出一个超平面,无论它的几何间隔是多少,只要是正值(因为是在正负样本区域中间,所以肯定是正值),我都可以令这个超平面的 ∣ ∣ w ∣ ∣ = 1 / γ ⇒ γ ^ = 1 ||w||=1/\gamma\Rightarrow \hat{\gamma}=1 ∣∣w∣∣=1/γ⇒γ^=1。
或者说给出一个超平面,然后规定它的 γ ^ = 1 \hat{\gamma}=1 γ^=1,那么如果它的 γ = 0.1 \gamma=0.1 γ=0.1,那么 ∣ ∣ w ∣ ∣ = 10 ||w||=10 ∣∣w∣∣=10;如果 γ = 1 \gamma=1 γ=1,那么 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1,也就是说, γ \gamma γ越大,||w||越小。既然如此,那么原先寻找 γ \gamma γ的最大值就变成了寻找 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣的最小值,即 max γ \max\gamma maxγ等价于 max 1 ∣ ∣ w ∣ ∣ \max\frac{1}{||w||} max∣∣w∣∣1。
推导过程注意点
- h(x) = wTx + b,向量w为超平面的法向量(其中 w 1 x 1 + w 2 y 1 + b = 0 , w 1 x 2 + w 2 y 2 = 0 = > w 1 ( x 1 − x 2 ) + w 2 ( y 1 − y 2 ) = 0 w_1x_1 + w_2y_1 + b = 0, w_1x_2 + w_2y_2 = 0 => w_1(x_1 - x_2) + w_2(y_1- y_2) = 0 w1x1+w2y1+b=0,w1x2+w2y2=0=>w1(x1−x2)+w2(y1−y2)=0,所以 w为超平面的法向量 );
- 最大化样本集的几何间隔,同时使得所有样本的几何间隔都大于这个间隔,由于w和b可随意缩放,这里假设 ∣ ∣ w ∣ ∣ = 1 ||w|| = 1 ∣∣w∣∣=1使得样本集的几何间隔等于函数间隔;
- 在凸集上寻找凸函数的全局最值的过程称为凸优化,即目标函数(objective function)是凸函数,可行集(feasible set)为凸集, ∣ ∣ w ∣ ∣ = 1 ||w|| = 1 ∣∣w∣∣=1的条件会导致可行集为非凸集;
- 将 ∣ ∣ w ∣ ∣ = 1 ||w|| = 1 ∣∣w∣∣=1的条件去掉,并替换限制条件中的几何间隔为函数间隔,因为这个限制条件原本是为了保证数据集的几何间隔等于函数间隔;
- 由于目标函数仍然不是凸函数(双曲线),而函数间隔通过缩放 w w w、 b b b可以是任何值。将数据集的函数间隔设置为1,这个约束可以成立是因为无论函数间隔等于多少,都可以让 w w w、 b b b同时除以函数间隔使得函数间隔等于1,这是一个隐含的缩放条件。