• 支持向量机 数学推导 part3


    上一篇文末介绍了一个词,二元性(Duality),那么什么是二元性?

    二元性

    In mathematical optimization theory, duality means that optimization problems may be viewed from either of two perspectives, the primal problem or the dual problem (the duality principle). The solution to the dual problem provides a lower bound to the solution of the primal (minimization) problem. (Wikipedia)
    在数学优化理论中,二元性意味着优化问题可以从两个角度来看,即原始问题或对偶问题(二元性原理)。对偶问题的解决方案为原始(最小化)问题的解提供了下限。

    什么是下界(lower bound)?

    如果你有一个部分有序的集合 k,下界就是K中小于或等于S的元素。举个例子,
    考虑实数的一个子集S={2,4,8,12}

    • 因为1小于或者等于2, 4, 8, 12,所以1是S的下界。
    • 同样,-3也是S的下界。
    • 即时在集合S里面找一个数,2也是S的下界。

    同理我们能够想到上界或者上限。

    究竟什么是二元性(Duality)

    二元性的定义表示如果你有一个最小化的问题,你也可以把它看做一个最大化的问题。当你找到这个问题的最值,它会是最小值问题的一个下界。

    为什么要关注二元性?

    解决对偶问题(dual problem)比解决原始问题要简单。看图说话


    figure1

    从图中的上半部分,我们想找的全局的最小值就是P。对于下半部分,有最大值D。这幅图中可以很看到,D就是一个下界,因为它总是小于或者等于上面图形的任何一点。定义PD的值为二元差(Duality gap)。在这个例子中,PD>0, 我们说这是弱对偶性(weak duality holds)

    figure2

    在这幅图中,PD的值为0 (no duality gap),称之为强对偶(strong duality holds)

    带约束条件的优化问题

    优化问题

    优化问题可以写成如下标准格式:

    minimizexf(x)subjecttogi(x)=0,i=1,,phi(x)0,i=1,,m

    f称为目标方程,我们想要找到z使得f最小。p个函数gi是等式约束方程,m个函数hi是不等约束方程。
    我们找的结果必须满足约束条件。

    满足约束条件是什么意思?

    假如要你解下面的优化问题

    minimizexx2


    x*x

    显然x=0处取得最小值。

    等式约束

    在上面的问题上再加一个约束,如下

    minimizexx2subjecttox=1


    problem2

    这时候虽然在0处取得最小值,但是并不满足约束的条件,所以在这里,只有x=1是解。看这个例子,你可能会觉得等式约束是无用的。但是情况并非如此,因为大部分时间优化问题都在多个维度上执行。所以你可以最小化一个函数f(xy),当x只有一个等式约束。

    不等式约束

    把上面的等式约束改为不等式约束,如下

    minimizexx2subjecttox1

    同理,我们把图画出来,注意观察x轴的取值


    problem3

    x的取值范围为x0,对应x2的取值只在蓝线右边,我们可以得到在x=1处取得最小值。

    联合约束

    问题进一步复杂化,我们添加多个约束条件

    minimizexx2subjecttox>=1x<=2


    probelm4

    当涉及到多个约束条件是,这些条件必须是不排斥的。看下面的例子,

    minimizexx2subjecttox=1x<=0

    这样的约束条件是无解的。

    优化问题的解是什么?

    下面优化问题的解 x=inf{f(x)gi(x)=0,i=1,,p,hi(x)0,i=1,,m}

    minimizexf(x)subjecttogi(x)=0,i=1,,phi(x)0,i=1,,m

    最优解就是满足所有约束条件的f(x)下界(infimum)

    如何寻找带约束条件优化问题的解?


    Joseph-Louis Lagrange

    拉格朗日乘数法(Lagrange multipliers)

    在数学优化中,拉格朗日乘子法是一种寻找受限于等式约束的函数的局部最大值和最小值的策略。它只使用于等式约束的优化问题。但是它也适用于求一些简单的不等式约束优化问题。

    轮廓线(Contour lines)

    如图,3D 图形的中函数x+y的轮廓,


    Contour

    图中线上的每一个点返回同一个值,颜色越深,函数的值越小。再看下面两个例子,

    -x^2-y^2


    x^2+y^2

    梯度可以可视化为一个向量场,箭头指向函数值增大的方向。如下图


    vactor field

    在一个轮廓图中,我们容易画出梯度向量, 他们垂直于轮廓线,指向函数增大的方向,如下图


    vactor field2

    回到拉格朗日乘数法

    看下面的例子,

    minimizex,yf(x,y)=x2+y2subjecttogi(x,y)=x+y1=0

    把目标方程和约束方程用轮廓图表示出来


    objective function and constraint function

    如果我们把两张图在一张图上画出来,如下,蓝线表示约束方程。其中黑色箭头标识目标函数梯度,白色箭头表示约束方程的梯度。

    objective function & constraint function

    接下来,我们关心的是在什么地方满足g(x,y)=0,等价于x+y1=0,换一个表达方式y=1x.在轮廓图中画出来,如下,我们说这条线上的点就是可行集合(feasible set).

    feasible set

    那么拉格朗日发现了什么?他发现f(x,y)在约束条件g(x,y)=0下的最小值在两个函数梯度方向相同处取得。下图中画出了可行集和目标函数,其中白色箭头表示目标函数的梯度方向,黑色箭头表示约束函数的梯度方向。

    feasible set and vactor

    如何将上面结论用数学表达?

    拉格朗日说我们想要找最小值,我们需要找满足f(x,y)=λg(x,y)的点。
    λ是拉格朗日算子,它表示即使目标函数的梯度和约束函数的梯度相同,他们的长度不一定相同。

    如何寻找满足f(x,y)=λg(x,y)的点

    f(x,y)=λg(x,y)得到f(x,y)λg(x,y)=0

    构造拉格朗日函数

    L(x,y,λ)=f(x,y)λg(x,y)

    求拉格朗日函数的梯度
    L(x,y,λ)=f(x,y)λg(x,y)

    我们只需要求L(x,y,λ)=0就能找到两个梯度平行的点。这里说的是平行,梯度方向可以相反。

    使用拉格朗日乘数法解一个例子

    我们的问题:

    minimizex,yf(x,y)=x2+y2subjecttogi(x,y)=x+y1=0

    step1:按照上面的构造形式构造拉格朗日函数并求梯度
    step2:求梯度等于0的解
    L(x,y,λ)=0

    {Lx=0Ly=0Lλ=0

    {2xλ=02yλ=0xy+1=0

    解为x=12y=12λ=1

    下图验证了解的正确性,


    solution

    想看拉格朗日乘数法的更多应用,可以看这篇文章
    想要学习更深入学习SVM,这里有一份电子书


    才疏学浅,还未能创造知识,先做知识的搬运工!

    https://www.svm-tutorial.com/2016/09/duality-lagrange-multipliers/

  • 相关阅读:
    VMware中Ubuntu 14.04出现Unknown Display问题解决
    VMWare桥接、NAT和only-host三种模式
    Tomcat目录下文件详解
    Java socket2
    Java socket1
    网络基础知识
    java awt 乱码问题
    窗口Dialog
    windowsEvents
    鼠标适配器Adapter
  • 原文地址:https://www.cnblogs.com/siucaan/p/9623199.html
Copyright © 2020-2023  润新知