機械学習の理論コース(数学、経済学、最適化、財務など)を勉強するとき、「二重問題」の概念がよく見られます。
デュアルタスクは、最適化問題のターゲット関数の低い(または高い)推定値を取得するためによく使用されます。 さらに、最適化問題のほとんどすべての意味のあるステートメントについて、二重問題には意味のある解釈があります。 つまり、重要な最適化の問題に直面している場合、その二重の問題もおそらく最も重要です。
この記事では、円錐双対性について説明します。 私の意見では、デュアルタスクを構築するこの方法は、当然のことながら注目を奪われています...
次のマット...
通常、デュアルタスクはどのように構築されますか?
いくつかの最適化問題を与えましょう:
( ) ( ) 、 ( ) 、 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 | 。
さらなる研究のためのリンク: