zoukankan      html  css  js  c++  java
  • A-08 拉格朗日对偶性


    更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html

    拉格朗日对偶性

    在约束最优化问题中,拉格朗日对偶性(Lagrange duality)可以将原始问题转换为对偶问题,然后通过求解对偶问题的解得到原始问题的解。

    一、原始问题

    1.1 约束最优化问题

    假设f(x),ci(x),hj(x)是定义在Rn上的连续可微函数,则约束最优化问题的原始问题为

    (1)minxRnf(x)(2)s.t.ci(x)0,i=1,2,,k(3)hj(x)=0,j=1,2,,l

    如果不考虑约束条件,约束问题就是

    minxRnf(x)

    因为已经假设f(x),ci(x),hj(x)连续可微,直接对f(x)求导取0,即可求出最优解,但是这里有约束条件,因此得想办法去掉约束条件,而拉格朗日函数正是干这个的。

    1.2 广义拉格朗日函数

    为了解决上述原始问题,引入广义拉格朗日函数(generalized Lagrange function)

    L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)

    其中x=(x(1),x(2),,x(n))TRnαi0,βj是拉格朗日乘子。

    如果把L(x,α,β)看作是关于αi,βj的函数,求其最大值,即

    maxα,βL(x,α,β)

    由于αi,βj作为拉格朗日乘子已经可知,因此可以把L(x,α,β)看作是关于x的函数

    θP(x)=maxα,βL(x,α,β)

    其中下标P表示原始问题。

    1.3 约束条件的考虑

    假设给定某个x

    1. 如果x违反原始问题的约束条件,即存在某个i使得ci(w)>0或存在某个j使得hj(w)0,则有

    θP(x)=maxα,β:αi0[f(x)+i=1kαici(x)+i=1lβjhj(x)]=+

    因为如果某个i使得约束条件ci(x)>0,则可以令αi+;如果某个j使得hj(x)0,则可以使得βjhj(x)+
    2. 如果x满足原始问题的约束条件,hj(x)=0并且αici(x)0,因此θP(x)的最大值即为f(x),即θP(x)=f(x)

    通过对约束条件的考虑即可得

    θP(x)={f(x),x满足约束条件+,其他

    所以如果考虑极小化问题

    minxθP(x)x=minxmaxα,βL(x,α,β)=minxf(x)

    它与原始问题是等价的,其中minxmaxα,βL(x,α,β)被称作广义拉格朗日函数的极小极大问题。

    通过广义拉格朗日函数的极小极大问题,可以定义原始问题的最优值

    p=minxθP(x)

    这一节主要通过使用拉格朗日函数把原始约束问题转化为无约束问题,即将约束问题无约束化。

    二、对偶问题

    定义一个关于α,β的函数

    θD(α,β)=minxL(x,α,β)

    其中等式右边是关于x的函数的最小化,即确定了x的值,最小值只与α,β有关。
    如果极大化θD(α,β),即

    maxα,βθD(α,β)=maxα,βminxL(x,α,β)

    上述就是原始问题的对偶问题,其中maxα,βminxL(x,α,β)也称为广义拉格朗日函数的极大极小问题。

    该对偶问题的原始问题为

    minxθP(x)x=minxmaxα,βL(x,α,β)

    原始问题是先固定L(x,α,β)中的x,优化出参数α,β,再优化x;对偶问题是先固定α,β,优化出x,然后再确定α,β
    对偶问题的最优值为

    d=maxα,βθD(α,β)

    三、原始问题和对偶问题的关系

    3.1 定理1

    如果原始问题和对偶问题都有最优解,则

    d=maxα,βminxL(x,α,β)minxmaxα,βL(x,α,β)=p

    因为对任意的α,β,x,都有

    θD(α,β)=minxL(x,α,β)L(x,α,β)maxα,βL(x,α,β)=θP(x)

    thetaD(α,β)θP(x)

    由于原始问题和对偶问题都有最优值,所以

    maxα,βθD(α,β)minxθP(x)

    d=maxα,βminxL(x,α,β)minxmaxα,βL(x,α,β)=p

    上述说明了原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须得使原始问题的最优值与对偶问题的最优值相等。

    3.2 推论1

    通过定理1可以推出:假设x,α,β分别是原始问题和对偶问题的可行解,如果d=p,则x,α,β分别是原始问题和对偶问题的最优解。

    当原始问题和对偶问题的最优值相等d=p,如果使用对偶问题比求解原始问题简单,则可以用对偶问题求解原始问题。

    3.3 定理2

    对于原始问题和对偶问题,假设函数f(x)ci(x)是凸函数,hj(x)是仿射函数(注:仿射函数是一阶多项式构成的函数,f(x)=Ax+bA是矩阵,x,b是向量);并且假设不等式约束ci(x)是严格可行的,即存在x,对所有的ici(x)<0,则存在x,α,β,使x是原始问题的解,α,β是对偶问题的解,并且会有

    p=d=L(x,α,β)

    3.4 定理3(KTT条件)

    对于原始问题和对偶问题,假设函数f(x)ci(x)是凸函数,hj(x)是仿射函数;并且假设不等式约束ci(x)是严格可行的,即存在x,对所有的ici(x)<0,则x是原始问题的解,α,β是对偶问题的解的充分必要条件是x,α,β满足下面的Karush-Kuhn-Tucker(KKT)条件

    (4)xL(x,α,β)=0(5)αL(x,α,β)=0(6)βL(x,α,β)=0(7)αici(x)=0,i=1,2,,k(8)ci(x)0,i=1,2,,k(9)αi0,i=1,2,,k(10)hj(x)=0,j=1,2,,l

    其中αici(x)=0,i=1,2,,k是KKT的对偶互补条件,由该条件可知:如果αi>0,则ci(x)=0

  • 相关阅读:
    java.io.file
    连线小游戏
    发票类型区分的正则表达式(仅区分普票专票)
    mybatis: No enum constant org.apache.ibatis.type.JdbcType."VARCHAR"
    bootstrap inputfile 使用-上传,回显
    微积分极限中一例
    oracle 查看表结构语句
    redis无法连接
    项目配置shiro原缓存注解失效
    bug 找不到或无法加载主类main.java.*
  • 原文地址:https://www.cnblogs.com/abdm-989/p/14117986.html
Copyright © 2011-2022 走看看