• 支持向量机(Support Vector Machine):对偶


    前言

    学SVM看到对偶问题的时候很难受,因为看不懂,数学知识真的太重要了。后来在B站看到某up主的精彩推导,故总结如下。

    SVM基本型

    由之前最大化间隔的计算可得SVM的基本型为:

                             $underset{mathbf{w},b}{min}      frac{1}{2}left | mathbf{w} ight |^{2}$

                           $s.t. y_{i}(mathbf{w}^{T}mathbf{x}_{i})+bgeqslant 1, i=1,2,cdots ,m.$

     

    对偶问题

    SVM的基本型是一个带约束优化问题,试想如果我们可以构造一个函数,使得该函数在可行解区域内与原目标函数完全一致,而在可行解区域外的数值非常大,甚至是无穷大,那么这个没有约束条件的新目标函数的优化问题就与原来有约束条件的原始目标函数的优化问题是等价的问题。这就是使用拉格朗日方程的目的,它将约束条件放到目标函数中,从而将有约束优化问题转换为无约束优化问题。

     

    所以,利用对偶来求解原问题需要两个步骤:

    1. 将有约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数

    2. 使用拉格朗日对偶性,将不易求解的优化问题转化为易求解的优化

    首先根据拉格朗日乘子法,对上式的每条约束添加拉格朗日乘子$lambda _{i} geqslant 0$,于是该问题的拉格朗日函数可写为:

    $L(mathbf{w},b,lambda ) = frac{1}{2}left | mathbf{w} ight |^{2}+sum_{i=1}^{m}lambda _{i}(1-y_{i}(mathbf{w}^{T}mathbf{x}_{i}+b))$       $mathbf{lambda }=(lambda _{1};lambda _{2};cdots ;lambda _{m})$

     

    由此得到了重要的第一步,将带约束的原问题转化为了无约束的原问题,即:

    $underset{mathbf{w},b}{min}      frac{1}{2}left | mathbf{w} ight |^{2}$                                                           ------------------->       $ underset{mathbf{w},b}{min} underset{mathbf{lambda }}{max} L(mathbf{w},b,mathbf{lambda})$ 

    $s.t. y_{i}(mathbf{w}^{T}mathbf{x}_{i})+bgeqslant 1, i=1,2,cdots ,m.$                       ------------------->                       $s.t. lambda _{i}geqslant 0$

    为什么这两种是等价的呢?从逻辑上可以简单分析:

    接下来第二步转化就是将无约束的原问题转化为对偶问题,即:

    $ underset{mathbf{w},b}{min} underset{mathbf{lambda }}{max} L(mathbf{w},b,mathbf{lambda})$                     ------------------->               $ underset{mathbf{lambda }}{max} underset{mathbf{w},b}{min} L(mathbf{w},b,mathbf{lambda})$ 

    $s.t. lambda _{i}geqslant 0$                                                 ------------------->               $s.t. lambda _{i}geqslant 0$

    易知$ underset{mathbf{w},b}{min} underset{mathbf{lambda }}{max} L(mathbf{w},b,mathbf{lambda}) geqslant   underset{mathbf{lambda }}{max} underset{mathbf{w},b}{min} L(mathbf{w},b,mathbf{lambda})$ ,而我们现在需要的是两者相等,相等时需要满足以下两个条件:

    1. 满足这个优化问题是凸优化问题。

    2. 满足KKT条件。

     (KKT条件我不懂,所以略。。)

    综上,这一系列的步骤就是SVM基本型(带约束的原问题)——>不带约束的原问题——>对偶问题。

    对于这个对偶问题,我们首先固定$lambda$,求解$w,b$,由于$w,b$不受约束,所以这是无约束的优化问题,直接求导即可。这里需要说明的一点就是因为这是凸函数,二阶导数必然大于0,所以令偏导为零的点就是最小值点。计算过程如下所示:

    消去$mathbf{w},b$后得到对偶问题:

                  $underset{mathbf{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}mathbf{x}_{i}^{T}mathbf{x}_{j}$

                  $s.t.  sum_{1}^{m}lambda _{i}y_{i}=0$

                       $ lambda _{i}geqslant 0$                                  $i=1,2,...,m$

  • 相关阅读:
    MongoDB Query 的几个方法
    jQuery日期和时间插件(jqueryuitimepickeraddon.js)中文破解版使用
    entity framework使用技巧
    SQL Server TSQL高级查询
    Visual Studio 2012资源管理器里单击打开改为双击打开文件
    ASP.NET MVC 3发布报错(ASP.NET MVC 3在没有安装环境的服务器上运行)的解决方案
    排序算法时间测试比较
    读书笔记之:C++ STL 开发技术导引3
    如何判断整数x的二进制中含有多少个1
    面试题:2012民生银行总行笔试题
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/10486608.html
Copyright © 2020-2023  润新知