支持向量机(一):对偶问题

支持向量机所要解决的问题

对于空间中的多个样本点\((x_{i},y_{i})\),我们想要找到一个超平面\(\omega^Tx+b=0\)来对它们进行分类,即找出一个超平面来将它们划分成两类,超平面的两侧分属于不同的类别,类似于下图,图中的直线即为我们需要找到的超平面,而图中的"\(+\)"和"\(-\)"即为不同的两个类别。
image
对于空间中的任意样本点\((x_{i},y_{i})\),其到超平面的距离\(d=\frac{|\omega^Tx_{i}+b|}{||\omega||}\),假设超平面能对样本点进行正确分类,设样本点类别分别为\(y_{i}=+1\)\(y_{i}=-1\),且当\(y_{i}=+1\)时,有\(\omega^Tx_{i}+b>0\),当\(y_{i}=-1\)时,有\(\omega^Tx_{i}+b<0\),将这两个式子整合,即\(y_{i}(\omega^Tx_{i}+b)>0\),同时,为了使分类结果更加准确,应该使样本点离超平面的距离越大越好,而不是只大于\(0\),因此可以限制\(|\omega^Tx_{i}+b|\ge1\),即样本点离超平面的距离至少为\(\frac{1}{||\omega||}\),此时即有\(y_{i}(\omega^Tx_{i}+b)\ge1\)若距离超平面最近的几个样本点\((x_{i},y_{i})\)使得\(\omega^Tx_{i}+b=1\)成立,则它们即为支持向量机。两个异类的支持向量机到超平面的距离之和称为“间隔”,间隔\(l=\frac{2}{||\omega||}\),为最大化间隔,即

\[\underset{\omega,b}{max}\frac{2}{||\omega||}\quad and \quad st. y_{i}(\omega^Tx_{i}+b)\ge1 \]

显然为最大化间隔,需要最大化\(\frac{1}{||\omega||}\),而这即等价于最小化\(\frac{1}{2}||\omega||^2\),因此,我们的任务即为

\[\underset{\omega,b}{min}\frac{1}{2}||\omega||^2\quad and \quad st. y_{i}(\omega^Tx_{i}+b)\ge1 \]


原问题的转换

我们要解决的问题为在\(y_{i}(\omega^Tx_{i}+b)\ge1\)的约束下,求\(\frac{1}{2}||\omega||^2\)的最小值。
该问题等价于在\(1-y_{i}(\omega^Tx_{i}+b)\le0\)的约束下,求\(\frac{1}{2}||\omega||^2\)的最小值,将这个问题记为原问题。令

\[J(\omega,b)=\begin{cases} \frac{1}{2}||\omega||^2& \text{ if } 1-y_{i}(\omega^Tx_{i}+b)\le0 \\ +\infty & \text{ } others \end{cases}\]

\(\underset{\omega,b}{min}J(\omega)\)等价于原来的问题,由于\(J(\omega)\)不连续,我们尝试将其改成一个连续的函数,以便求导,令

\[L(\omega,\lambda,b)=\frac{1}{2}||\omega||^2+\sum_{i=1}^{m}\lambda_{i}[1-y_{i}(\omega^Tx_{i}+b)] \]

其中\(\lambda_{i}\ge0\)\(m\)为样本点个数。
\(1-y_{i}(\omega^Tx_{i}+b)>0\),即\((\omega,b)\)不在可行域内,由于\(1-y_{i}(\omega^Tx_{i}+b)>0\)\(\lambda_{i}\ge0\),因此\(\underset{\lambda}{max}L(\omega,\lambda,b)=+\infty\),若\((\omega,b)\)在可行域内,由于\(1-y_{i}(\omega^Tx_{i}+b)\le0\)\(\lambda_{i}\ge0\),故\(\lambda_{i}[1-y_{i}(\omega^Tx_{i}+b)]\le0\),因此\(\underset{\lambda}{max}L(\omega,\lambda,b)=\frac{1}{2}||\omega||^2\),故\(\underset{\lambda}{max}L(\omega,\lambda,b)=J(\omega,b)\),又\(\underset{\omega,b}{min}J(\omega,b)\)等价于原问题,故\(\underset{\omega,b}{min}\underset{\lambda}{max}L(\omega,\lambda,b)\)等价于原问题。即对原问题的求解等价于对\(\underset{\omega,b}{min}\underset{\lambda}{max}L(\omega,\lambda,b)\)的求解。


对偶问题

现在我们要解决的问题已经转换为求解\(\underset{\omega,b}{min}\underset{\lambda}{max}L(\omega,\lambda,b)\),该问题已经是一个凸优化问题,当\(\lambda\)确定以后,该问题就变成了一个求\(L(\omega,b)\)的最小值问题,且\(L(\omega,b)\)为凸函数(其形式类似于\(L=\omega^2+C\omega+b\)\(C\)为常数),因此有唯一的最小值,可以使用二次规划中的方法来求其最优解。
在这里我们不使用上述方法,而是将其转换为对偶问题来求解。分别对\(\omega\)\(b\)求偏导并令其等于\(0\),可解得

\[\omega=\sum_{i=1}^{m}\lambda_{i}y_{i}x_{i} \]

\[\sum_{i=1}^{m}\lambda_{i}y_{i}=0 \]

即最优解满足以上两个条件,设最优解为\(w^{*}\)\(b^{*}\),则有\(\underset{\omega,b}{min}L(\omega,\lambda,b)=L(\omega^{*},\lambda,b^{*})\),将上面两个条件代入到\(L\)中,可得

\[\underset{\omega,b}{min}L(\omega,\lambda,b)=\sum_{i=1}^{m}\lambda_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\lambda_{i}\lambda_{j}y_{i}y_{j}x_{i}^Tx_{j} \]

再对其取\(max\),即得到原问题的对偶问题:

\[\underset{\lambda}{max}(\sum_{i=1}^{m}\lambda_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\lambda_{i}\lambda_{j}y_{i}y_{j}x_{i}^Tx_{j}) \]

\[st. \sum_{i=1}^{m}\lambda_{i}y_{i}=0 \]

\[\lambda_{i}\ge0 \quad i=1,2,...,m \]


为什么要去求对偶问题,而不是直接解决原问题

对于原问题,会有\(m\)个约束(\(m\)为样本个数):

\[y_{i}(\omega^Tx_{i}+b)\ge1 \]

而转化为对偶问题后,只有一个约束:

\[\sum_{i=1}^{m}\lambda_{i}y_{i}=0 \]

约束个数的减少对于降低求解问题的难度有很大帮助,同时一个约束更方便使用\(SMO\)算法来求解,这比使用二次规划的方法来求解原问题更快。同时,对偶问题的提出可以更方便地引入核函数的方法来对后续更复杂的问题的求解。

posted @ 2022-08-15 21:30  kris-phl  阅读(171)  评论(0)    收藏  举报