円錐双対性について少し

機械学習の理論コース(数学、経済学、最適化、財務など)を勉強するとき、「二重問題」の概念がよく見られます。



デュアルタスクは、最適化問題のターゲット関数の低い(または高い)推定値を取得するためによく使用されます。 さらに、最適化問題のほとんどすべての意味のあるステートメントについて、二重問題には意味のある解釈があります。 つまり、重要な最適化の問題に直面している場合、その二重の問題もおそらく最も重要です。



この記事では、円錐双対性について説明します。 私の意見では、デュアルタスクを構築するこの方法は、当然のことながら注目を奪われています...



次のマット...



通常、デュアルタスクはどのように構築されますか?



いくつかの最適化問題を与えましょう:





 minx inRnfxfix leq0 quad1 leqi leqkhix=01 leqi leqm









デュアルタスクは、次のスキームに従って構築されます。









Lx lambda mu=fx+ sumi=1k lambdaifix+ sumi=1m muihix













g lambda mu= infxLx lambda mu













 max lambda mug lambda mu lambda geq0









このスキームの主な難点は、検索ステップで配線されています  infxLx lambda mu



問題が凸でない場合、これはcoです-一般に、多項式時間で解決することはできません( P neqNP )およびこの記事のこのような問題については、今後触れません。



問題が凸であると仮定します、それでは何ですか?



問題が滑らかな場合、1次の最適条件を使用できます  nablaxLx lambda mu=0 。 この条件から、すべてが正常であれば、推測または x lambda mu= arg minxLx lambda mu そして g lambda mu=Lx lambda mu lambda mu または直接機能する g\ラ mu



問題がスムーズでない場合は、1次条件のアナログを使用できます 0 in partialxLx lambda mu (こちら  partialxLx lambda mu 関数の微微分を示します Lx lambda mu )ただし、この手順は通常はるかに複雑です。



場合によっては、同等の「滑らかな」最適化問題があり、それに対して二重の問題を構築できます。 ただし、構造を改善するために(非滑らかから滑らかに)、原則として、常に次元の増加を支払う必要があります。



円錐双対性



次の表現を可能にする最適化タスク(以下の例)がかなりあります。





\ min_ {R ^ nのx \} c ^ Tx \\ Ax + b \ in K







どこで A -マトリックス b -ベクトル K -非縮退凸コーン。



この場合、デュアルタスクは次のスキームに従って構築できます。



デュアルタスクは、次のスキームに従って構築されます。









Lx lambda=cTx+ lambdaTAx+b













g lambda= infxLx lambda= begincases lambdaTb quadc+AT lambda=0 infty quadc+AT lambda neq0 endcases













 max lambdabT lambdac+AT lambda=0 lambda inK







共役円錐はどこですか K コーン用 K として定義される K ^ * = \左\ {y \ in R ^ k | z ^ T y \ geq 0、\ quad \ forall z \ in K \ right \}



ご覧のように、二重問題の構築の複雑さ全体が二重円錐の構築に移されました。 しかし、喜びは、デュアルコーンを構築するための優れた計算法があり、非常に頻繁にデュアルコーンをすぐに書き出すことができることです。





問題の二重最適化問題を構築する必要があると仮定します。





 minx inRn |x |2+ |x |1Ax geqb









ここに  |x |1= sumi=1n|xi| |x |2= sqrt sumi=1nxi2



最初に気づくことができます:目的関数は常に線形にすることができます!



むしろ、線形目的関数には常に同等の問題があります。





\ 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_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









これで、二重の問題をすぐに書き出すことができます。





 max lambda mu nubT nu lambdai+ mui+[AT nu]i=0 quad1 leqi leqn lambdan+1+1=0 mun+1+1=0 lambda inK2=K2 mu inK1=K infty nu inR+k







または、少し簡単にするために、





 max lambda mu nubT nu lambda+ mu+AT nu=0 | lambda |2 leq1 | mu | infty leq1 nu inR+k









どこで  | mu | infty= maxi| mui|



さらなる研究のためのリンク:






All Articles