勾配降下は非凸関数に適用できますか?


18

私は最適化について学習しているだけで、凸最適化と非凸最適化の違いを理解するのに苦労しています。私の理解では、凸関数は「関数のグラフ上の任意の2点間の線分がグラフの上またはグラフ上にある」ものです。この場合、勾配降下アルゴリズムを使用できます。これは、単一の最小値があり、勾配によって常にその最小値に到達するためです。

ただし、この図の機能についてはどうですか:

ここに画像の説明を入力してください

ここでは、青の線分が赤の関数の下で交差しています。ただし、この関数には最小値が1つしかないため、勾配降下法でもこの最小値に到達します。

だから私の質問は:

1)この図の関数は凸型ですか、それとも非凸型ですか?

2)非凸の場合、凸最適化法(勾配降下法)を適用できますか?

回答:


21

グラフ化した関数は確かに凸ではありません。ただし、これは準凸です。

勾配降下法は連続最適化の一般的な方法であるため、非凸関数に適用することができ、非常に一般的に適用されます。滑らかな関数と適切に選択されたステップサイズを使用して、厳密に減少する値持つ点シーケンスを生成します。x1,x2,f(x1)>f(x2)>

勾配降下は、凸面に関係なく、最終的に関数の静止点に収束します。関数が凸である場合、これはグローバルな最小値になりますが、そうでない場合、ローカルな最小値またはサドルポイントになります。

準凸関数は興味深いケースです。準凸関数の局所的最小値もグローバルミニマムですが、準凸関数は局所的最小値ではない静止点を持つこともできますたとえばを使用します)。したがって、理論的には、勾配降下がそのような静止点にとどまり、グローバルな最小値に進まない可能性があります。あなたの例では、グラフの左側の肩が完全に水平になる場合、勾配降下がそこにスタックする可能性があります。ただし、ヘビーボール方式などのバリアントは、「ロールスルー」してグローバル最小値に到達できる場合があります。f(x)=x3


5

ポールはすでに1つの重要な点に言及しました:

  • fが凸の場合、addle点はなく、すべての局所最小値もグローバルです。したがって、GD(適切なステップサイズ)は、グローバルな最小化子を見つけることが保証されます。

非凸最適化を難しくしているのは、勾配が(0、...、0)で、客観的な値が任意に悪いbad点と極小値の存在です。

このような設定でグローバルミニマイザーを見つけることは一般にNP困難であり、代わりにローカルミニマイザーを見つけることを目標に解決します。

ただし、次のことに注意してください。

  • GDがサドルで立ち往生する確率は、実際には0です(こちらを参照)。
  • ただし、サドルポイントの存在は、低曲率の方向の利用が遅すぎるため、GDの進行が著しく遅くなる場合があります(こちらを参照

したがって、問題の次元に応じて、2次最適化ルーチンを使用することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.