【优化】共轭函数(Conjugate Function)超简说明

【优化】共轭函数(Conjugate Function)超简说明

共轭函数是最优化问题中非常重要的概念,常用来在原问题和对偶问题之间进行转换。 本文主要参考S. Boyd and L. Vandenberghe, Convex Optimization中3.3节。

定义

对于原函数

    f


    (


    x


    )


    ,


    x


    ∈


    D



   f(x),x\in D


f(x),x∈D,其共轭函数为:<br> 





      f


      ∗



     (


     y


     )


     =




       sup


       ⁡




       x


       ∈


       D




     (


     <


     y


     ,


     x


     >


     −


     f


     (


     x


     )


     )



    f^*(y)=\sup_{x\in D} (<y,x>-f(x))


 f∗(y)=x∈Dsup​(<y,x>−f(x))

其中,

    <


    y


    ,


    x


    >



   <y,x>


<y,x>表示两个变量的内积

  • 对于标量:

         <
    
    
         y
    
    
         ,
    
    
         x
    
    
         >
    
    
         =
    
    
         y
    
    
         ⋅
    
    
         x
    
    
    
        <y,x>=y\cdot x
    
    
     <y,x>=y⋅x</li><li>对于向量:
    
    
    
    
         <
    
    
         y
    
    
         ,
    
    
         x
    
    
         >
    
    
         =
    
    
    
          y
    
    
          T
    
    
    
         x
    
    
    
        <y,x>=y^Tx
    
    
     <y,x>=yTx</li><li>对于
    
    
    
    
         n
    
    
         ×
    
    
         n
    
    
    
        n\times n
    
    
     n×n对称矩阵:
    
    
    
    
         <
    
    
         y
    
    
         ,
    
    
         x
    
    
         >
    
    
         =
    
    
         tr
    
    
         (
    
    
         y
    
    
         x
    
    
         )
    
    
    
        <y,x>=\textbf{tr} (yx)
    
    
     <y,x>=tr(yx)</li>
    

    特别注意,共轭函数的定义域要求对

        x
    
    
        ∈
    
    
        D
    
    
    
       x\in D
    
    
    x∈D,
    
    
    
    
        <
    
    
        y
    
    
        ,
    
    
        x
    
    
        >
    
    
        −
    
    
        f
    
    
        (
    
    
        x
    
    
        )
    
    
    
       <y,x>-f(x)
    
    
    <y,x>−f(x)有上界。即,
    
    
    
    
    
         f
    
    
         ∗
    
    
    
        (
    
    
        y
    
    
        )
    
    
    
       f^*(y)
    
    
    f∗(y)不能为无穷大。
    
    

    物理意义

    对于共轭函数的每一个自变量

        y
    
    
        =
    
    
    
         y
    
    
         ˉ
    
    
    
    
       y=\bar{y}
    
    
    y=yˉ​,其取值相当于一条直线与原函数之差的最大值:<br> 
    
    
    
    
    
          f
    
    
          ∗
    
    
    
         (
    
    
    
          y
    
    
          ˉ
    
    
    
         )
    
    
         =
    
    
    
    
           sup
    
    
           ⁡
    
    
    
    
           x
    
    
           ∈
    
    
           D
    
    
    
    
         (
    
    
         l
    
    
         (
    
    
         x
    
    
         )
    
    
         −
    
    
         f
    
    
         (
    
    
         x
    
    
         )
    
    
         )
    
    
    
        f^*(\bar y)=\sup_{x\in D}(l(x)-f(x))
    
    
     f∗(yˉ​)=x∈Dsup​(l(x)−f(x))<br> 这条直线
    
    
    
    
        l
    
    
        (
    
    
        x
    
    
        )
    
    
        =
    
    
        <
    
    
    
         y
    
    
         ˉ
    
    
    
        ,
    
    
        x
    
    
        >
    
    
    
       l(x)=<\bar y,x>
    
    
    l(x)=<yˉ​,x>,其斜率由
    
    
    
    
    
         y
    
    
         ˉ
    
    
    
    
       \bar y
    
    
    yˉ​决定。<br> <img src="https://img-blog.csdnimg.cn/img_convert/0a8b6711f36f1a713e13e2d52b3f29df.png" alt="这里写图片描述">
    
    

    两条曲线之差随着

        x
    
    
    
       x
    
    
    x变化,其最大值可以对
    
    
    
    
        x
    
    
    
       x
    
    
    x求导得到:<br> 
    
    
    
    
    
    
           ∂
    
    
           (
    
    
           <
    
    
           y
    
    
           ,
    
    
           x
    
    
           >
    
    
           −
    
    
           f
    
    
           (
    
    
           x
    
    
           )
    
    
           )
    
    
    
    
           ∂
    
    
           x
    
    
    
    
         =
    
    
         0
    
    
         ⇒
    
    
    
          f
    
    
          ′
    
    
    
         (
    
    
         x
    
    
         )
    
    
         =
    
    
         y
    
    
    
        \frac{\partial(<y,x>-f(x))}{\partial x}=0 \Rightarrow f'(x)=y
    
    
     ∂x∂(<y,x>−f(x))​=0⇒f′(x)=y<br> 即:曲线斜率与直线斜率相同处的
    
    
    
    
        x
    
    
    
       x
    
    
    x,能够得到最大值。<br> 
    
    
    
    
    
          f
    
    
          ∗
    
    
    
         (
    
    
    
          y
    
    
          ˉ
    
    
    
         )
    
    
         =
    
    
         <
    
    
    
          y
    
    
          ˉ
    
    
    
         ,
    
    
    
          x
    
    
          ˉ
    
    
    
         >
    
    
         −
    
    
         f
    
    
         (
    
    
    
          x
    
    
          ˉ
    
    
    
         )
    
    
         ,
    
    
         s
    
    
         u
    
    
         b
    
    
         j
    
    
         e
    
    
         c
    
    
         t
    
    
          
    
    
         t
    
    
         o
    
    
          
    
    
         f
    
    
         (
    
    
    
          x
    
    
          ˉ
    
    
    
         )
    
    
         =
    
    
    
          y
    
    
          ˉ
    
    
    
    
        f^*(\bar y)=<\bar y, \bar x>-f(\bar x), subject\ to\ f(\bar x)=\bar y
    
    
     f∗(yˉ​)=<yˉ​,xˉ>−f(xˉ),subject to f(xˉ)=yˉ​<br> <img src="https://img-blog.csdnimg.cn/img_convert/2360b31a33849eeed01571b5c8055b89.png" alt="这里写图片描述">
    
    

    举例

    Negative entropy

    原函数:

        f
    
    
        (
    
    
        x
    
    
        )
    
    
        =
    
    
        x
    
    
        log
    
    
        ⁡
    
    
        x
    
    
        ,
    
    
        x
    
    
        >
    
    
        0
    
    
    
       f(x)=x\log x, x>0
    
    
    f(x)=xlogx,x>0
    
    

    原函数为增函数。
    对于

        y
    
    
        <
    
    
        0
    
    
    
       y<0
    
    
    y<0,
    
    
    
    
        l
    
    
        (
    
    
        x
    
    
        )
    
    
    
       l(x)
    
    
    l(x)为减函数。则
    
    
    
    
        l
    
    
        (
    
    
        x
    
    
        )
    
    
        −
    
    
        f
    
    
        (
    
    
        x
    
    
        )
    
    
    
       l(x)-f(x)
    
    
    l(x)−f(x)为减函数,不超过其在零点取值。<br> 对于
    
    
    
    
        y
    
    
        ≥
    
    
        0
    
    
    
       y\geq 0
    
    
    y≥0,
    
    
    
    
        l
    
    
        (
    
    
        x
    
    
        )
    
    
    
       l(x)
    
    
    l(x)也是增函数<br> 
    
    
    
    
    
    
           lim
    
    
           ⁡
    
    
    
    
           x
    
    
           →
    
    
           ∞
    
    
    
    
         l
    
    
         (
    
    
         x
    
    
         )
    
    
         /
    
    
         f
    
    
         (
    
    
         x
    
    
         )
    
    
         =
    
    
    
    
           lim
    
    
           ⁡
    
    
    
    
           x
    
    
           →
    
    
           ∞
    
    
    
    
    
          l
    
    
          ′
    
    
    
         (
    
    
         x
    
    
         )
    
    
         /
    
    
    
          f
    
    
          ′
    
    
    
         (
    
    
         x
    
    
         )
    
    
         =
    
    
    
    
           lim
    
    
           ⁡
    
    
    
    
           x
    
    
           →
    
    
           ∞
    
    
    
    
         y
    
    
         /
    
    
         (
    
    
         log
    
    
         ⁡
    
    
         x
    
    
         +
    
    
         x
    
    
         )
    
    
         =
    
    
         0
    
    
    
        \lim_{x\to \infty} l(x)/f(x)=\lim_{x \to \infty} l'(x)/f'(x)=\lim_{x\to \infty} y/(\log x + x)=0
    
    
     x→∞lim​l(x)/f(x)=x→∞lim​l′(x)/f′(x)=x→∞lim​y/(logx+x)=0
    
    
    
    
    
    
        l
    
    
        (
    
    
        x
    
    
        )
    
    
    
       l(x)
    
    
    l(x)增速小于
    
    
    
    
        f
    
    
        (
    
    
        x
    
    
        )
    
    
    
       f(x)
    
    
    f(x)增速,故其差有界。
    
    

    故,

         f
    
    
         ∗
    
    
    
        (
    
    
        y
    
    
        )
    
    
    
       f^*(y)
    
    
    f∗(y)的定义域为
    
    
    
    
        y
    
    
        ∈
    
    
        R
    
    
    
       y\in R
    
    
    y∈R。
    
    

    找到最大值处

        x
    
    
    
       x
    
    
    x的表达式:<br> 
    
    
    
    
    
    
           x
    
    
           y
    
    
           −
    
    
           x
    
    
           log
    
    
           ⁡
    
    
           x
    
    
    
    
           ∂
    
    
           x
    
    
    
    
         =
    
    
         0
    
    
         ⇒
    
    
         x
    
    
         =
    
    
    
          e
    
    
    
           y
    
    
           −
    
    
           1
    
    
    
    
    
        \frac{xy - x\log x}{\partial x}=0 \Rightarrow x=e^{y-1}
    
    
     ∂xxy−xlogx​=0⇒x=ey−1 
    
    
    
    
    
          f
    
    
          ∗
    
    
    
         (
    
    
         y
    
    
         )
    
    
         =
    
    
         y
    
    
         ⋅
    
    
    
          e
    
    
    
           y
    
    
           −
    
    
           1
    
    
    
    
         −
    
    
    
          e
    
    
    
           y
    
    
           −
    
    
           1
    
    
    
    
         (
    
    
         y
    
    
         −
    
    
         1
    
    
         )
    
    
         =
    
    
    
          e
    
    
    
           y
    
    
           −
    
    
           1
    
    
    
    
    
        f^*(y)=y\cdot e^{y-1}-e^{y-1}(y-1)=e^{y-1}
    
    
     f∗(y)=y⋅ey−1−ey−1(y−1)=ey−1
  • posted @ 2020-12-28 10:20  刘桓湚  阅读(1383)  评论(0)    收藏  举报