导出SVM双形式方程

时间:2016-06-14 20:06:59

标签: machine-learning svm

enter image description here

对于svm的上述拉格朗日函数,我可以得到如下的偏导数: enter image description here

但是,我无法理解如何将它们插入拉格朗日来获得双重形式? W可以替换但是b去哪了?

enter image description here

有人可以解释一下并详细说明吗?

1 个答案:

答案 0 :(得分:2)

你的拉格朗日式是

L(w, b, a) = 1/2 ||w||^2 + SUM_i a_i (1 - y_i(<w, x_i> + b))

你解决了,为了达到极值,你需要:

w = SUM_i a_i y_i x_i  
SUM_i a_i y_i = 0

我们先插入w

L(w, b, a) = 1/2 <SUM_i a_i y_i x_i, SUM_j a_i y_i x_i> 
               + SUM_i a_i (1 - y_i(<SUM_j a_j y_j x_j , x_i> + b))
           = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
               + SUM_i a_i
               - SUM_i (a_i y_i( SUM_j a_j y_j <x_j, x_i> + b))
           = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
               + SUM_i a_i
               - SUM_i (a_i y_i SUM_j ( a_j y_j <x_j, x_i> ) + a_i y_i b)
           = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
               + SUM_i a_i
               - SUM_i a_i y_i SUM_j ( a_j y_j <x_j, x_i> )
               - SUM_i a_i y_i b
           = 1/2 SUM_i,j a_i a_j y_i y_j <x_i, x_j> 
               + SUM_i a_i
               - SUM_i a_i a_j y_i y_j <x_j, x_i>
               - SUM_i a_i y_i b
           =   + SUM_i a_i
            -1/2 SUM_i a_i a_j y_i y_j <x_j, x_i>
               - b (SUM_i a_i y_i)

现在我们插入SUM_i a_i y_i = 0给我们

L(w, b, a) = SUM_i a_i - 1/2 SUM_i a_i a_j y_i y_j <x_j, x_i>

因此,从程序员的角度来看 ,您在优化过程中并不关心b,因为您可以在不知情的情况下找到最佳a!在您拥有对a进行优化的代码后,您现在可以使用原始等式等恢复b