機械学習の理論コース(数学、経済学、最適化、財務など)を勉強するとき、「二重問題」の概念がよく見られます。 
      
        
         
        
      
    
      
        
         
        
      
     デュアルタスクは、最適化問題のターゲット関数の低い(または高い)推定値を取得するためによく使用されます。 さらに、最適化問題のほとんどすべての意味のあるステートメントについて、二重問題には意味のある解釈があります。 つまり、重要な最適化の問題に直面している場合、その二重の問題もおそらく最も重要です。 
      
        
        
 
        
      
    
      
        
         
        
      
     この記事では、円錐双対性について説明します。 私の意見では、デュアルタスクを構築するこの方法は、当然のことながら注目を奪われています... 
      
        
        
 
        
      
    
      
        
         
        
      
     次のマット... 
      
        
        
 
        
      
     
      
        
         
        
      
     通常、デュアルタスクはどのように構築されますか?  
      
        
         
        
      
     いくつかの最適化問題を与えましょう: 
      
        
        
 
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
( ) ( ) 、 ( ) 、   m i n x   i n R n f ( x ) f i ( x )   l e q 0 、   q u a d 1   l e q i   l e q k h i ( x ) = 0 、 1   l e q i   l e q m 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
     デュアルタスクは、次のスキームに従って構築されます。 
      
        
        
 
        
      
    
      
        
         
        
      
    
      
        
         
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
( 、 、 ) ( ) ( ) ( ) L ( x 、   l a m b d a 、   m u ) = f ( x ) +   s u m i = 1 k   l a m b d a i f i ( x ) +   s u m i = 1 m   m u i h i ( x ) 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
( 、 ) ( 、 、 ) g (   l a m b d a 、   m u ) =   i n f x L ( x 、   l a m b d a 、   m u ) 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
、 ( 、 )   m a x   l a m b d a 、   m u g (   l a m b d a 、   m u )   l a m b d a   g e q 0 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
     このスキームの主な難点は、検索ステップで配線されています 
( 、 、 )   i n f x L ( x 、   l a m b d a 、   m u )   。 
      
        
        
 
        
      
    
      
        
         
        
      
     問題が凸でない場合、これはcoです-一般に、多項式時間で解決することはできません( 
P   n e q N P   )およびこの記事のこのような問題については、今後触れません。 
      
        
        
 
        
      
    
      
        
         
        
      
     問題が凸であると仮定します、それでは何ですか? 
      
        
        
 
        
      
    
      
        
         
        
      
     問題が滑らかな場合、1次の最適条件を使用できます 
( 、 、 )   n a b l a x L ( x 、   l a m b d a 、   m u ) = 0   。 この条件から、すべてが正常であれば、推測または 
( 、 ) ( 、 、 ) x (   l a m b d a 、   m u ) =   a r g   m i n x L ( x 、   l a m b d a 、   m u )  そして 
( 、 ) ( ( 、 ) 、 、 ) g (   l a m b d a 、   m u ) = L ( x (   l a m b d a 、   m u ) 、   l a m b d a 、   m u )  または直接機能する 
( ラ ム ダ 、 ) g ( \ラ ム ダ 、   m u )   。 
      
        
        
 
        
      
    
      
        
         
        
      
     問題がスムーズでない場合は、1次条件のアナログを使用できます 
( 、 、 ) 0   i n   p a r t i a l x L ( x 、   l a m b d a 、   m u )   (こちら 
( 、 、 )   p a r t i a l x L ( x 、   l a m b d a 、   m u )  関数の微微分を示します 
( 、 、 ) L ( x 、   l a m b d a 、   m u )   )ただし、この手順は通常はるかに複雑です。 
      
        
        
 
        
      
    
      
        
         
        
      
     場合によっては、同等の「滑らかな」最適化問題があり、それに対して二重の問題を構築できます。 ただし、構造を改善するために(非滑らかから滑らかに)、原則として、常に次元の増加を支払う必要があります。 
      
        
        
 
        
      
    
      
        
         
        
      
     円錐双対性  
      
        
         
        
      
     次の表現を可能にする最適化タスク(以下の例)がかなりあります。 
      
        
        
 
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
\ min_ {R ^ nのx \} c ^ Tx \\ Ax + b \ in K \ min_ {R ^ nのx \} c ^ Tx \\ Ax + b \ in K 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
     どこで 
A   -マトリックス 
b   -ベクトル 
K   -非縮退凸コーン。 
      
        
        
 
        
      
    
      
        
         
        
      
     この場合、デュアルタスクは次のスキームに従って構築できます。 
      
        
        
 
        
      
    
      
        
         
        
      
     デュアルタスクは、次のスキームに従って構築されます。 
      
        
        
 
        
      
    
      
        
         
        
      
    
      
        
         
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
( 、 ) ( ) L ( x 、   l a m b d a ) = c T x +   l a m b d a T ( A x + b ) 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
( ) ( 、 ) 、 、 g (   l a m b d a ) =   i n f x L ( x 、   l a m b d a ) =   b e g i n c a s e s   l a m b d a T b 、   q u a d c + A T   l a m b d a = 0 −   i n f t y 、   q u a d c + A T   l a m b d a   n e q 0   e n d c a s e s 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
  m a x   l a m b d a b T   l a m b d a c + A T   l a m b d a = 0 −   l a m b d a   i n K ∗ 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
     共役円錐はどこですか 
K ∗  コーン用 
K  として定義される 
K ^ * = \左\ {y \ in R ^ k | z ^ T y \ geq 0、\ quad \ forall z \ in K \ right \} K ^ * = \左\ {y \ in R ^ k | z ^ T y \ geq 0、\ quad \ forall z \ in K \ right \}   。 
      
        
        
 
        
      
    
      
        
         
        
      
     ご覧のように、二重問題の構築の複雑さ全体が二重円錐の構築に移されました。 しかし、喜びは、デュアルコーンを構築するための優れた計算法があり、非常に頻繁にデュアルコーンをすぐに書き出すことができることです。 
      
        
        
 
        
      
    
      
        
         
        
      
     例  
      
        
         
        
      
     問題の二重最適化問題を構築する必要があると仮定します。 
      
        
        
 
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
  m i n x   i n R n   | x   | 2 +   | x   | 1 A x   g e q b 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
     ここに 
  | x   | 1 =   s u m i = 1 n | x i |   、 
  | x   | 2 =   s q r t   s u m i = 1 n x i 2  
      
        
         
        
      
    
      
        
         
        
      
     最初に気づくことができます:目的関数は常に線形にすることができます! 
      
        
        
 
        
      
    
      
        
         
        
      
     むしろ、線形目的関数には常に同等の問題があります。 
      
        
        
 
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
\ min_ {Rのn \ ^ n、Rのy \、Rのz \} y + z \\ \ | x \ | _2 \ leq y \\ \ | x \ | _1 \ leq z \\ Ax \ geq b \ min_ {Rのn \ ^ n、Rのy \、Rのz \} y + z \\ \ | x \ | _2 \ leq y \\ \ | x \ | _1 \ leq z \\ Ax \ geq b 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
     今、あなたは少し秘密の知識を使用する必要があります:多くの 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
K_1 = \ {(x、t)\ in R ^ n \ times R | \ quad \ | x \ | _1 \ leq t \} K_1 = \ {(x、t)\ in R ^ n \ times R | \ quad \ | x \ | _1 \ leq t \} 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
     そして 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
K_2 = \ {(x、t)\ in R ^ n \ times R | \ quad \ | x \ | _2 \ leq t \} K_2 = \ {(x、t)\ in R ^ n \ times R | \ quad \ | x \ | _2 \ leq t \} 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
     凸コーンです。 
      
        
        
 
        
      
    
      
        
         
        
      
     したがって、問題の同等の表記法に到達します。 
      
        
        
 
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
\ min_ {R ^ nのx \、Rのy \、Rのz \} y + z \\ I_ {n + 1} \ begin {pmatrix} x \\ y \ end {pmatrix} + 0_ {n +1} \ K_2 \\ I_ {n + 1} \ begin {pmatrix} x \\ z \ end {pmatrix} + 0_ {n + 1} \ K_1 \\ Ax-b \ in R _ + ^ k \ min_ {R ^ nのx \、Rのy \、Rのz \} y + z \\ I_ {n + 1} \ begin {pmatrix} x \\ y \ end {pmatrix} + 0_ {n +1} \ K_2 \\ I_ {n + 1} \ begin {pmatrix} x \\ z \ end {pmatrix} + 0_ {n + 1} \ K_1 \\ Ax-b \ in R _ + ^ k 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
     これで、二重の問題をすぐに書き出すことができます。 
      
        
        
 
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
、 、 、 ( ) ( )   m a x   l a m b d a 、   m u 、   n u − b T   n u   l a m b d a i +   m u i + [ A T   n u ] i = 0 、   q u a d 1   l e q i   l e q n   l a m b d a n + 1 + 1 = 0   m u n + 1 + 1 = 0 −   l a m b d a   i n K 2 ∗ ( = K 2 ) −   m u   i n K 1 ∗ ( = K   i n f t y ) −   n u   i n R + k 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
     または、少し簡単にするために、 
      
        
        
 
        
      
    
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
、 、   m a x   l a m b d a 、   m u 、   n u − b T   n u   l a m b d a +   m u + A T   n u = 0   |   l a m b d a   | 2   l e q 1   |   m u   |   i n f t y   l e q 1 −   n u   i n R + k 
      
      
        
         
        
      
    
        
         
        
      
      
        
         
        
      
    
    
      
        
         
        
      
    
      
        
         
        
      
     どこで 
  |   m u   |   i n f t y =   m a x i |   m u i |   。 
      
        
        
 
        
      
    
      
        
         
        
      
     さらなる研究のためのリンク: