凸関数

凸関数

執筆済 数学最適化凸最適化
f(θx+(1θ)y)θf(x)+(1θ)f(y)

2 点を結ぶ線分が、関数のグラフより上にある。 下に凸。

判定法#

情報 条件
一階微分 f(y)f(x)+f(x)(yx)(接平面が下から支える)
二階微分 ヘッセ行列半正定値

実用上は二階の条件が最も使いやすい。 ヘッセ行列の固有値がすべて非負なら凸。

なぜ凸だと解けるのか#

局所最適解が大域最適解になる。 一階の条件から

f(y)f(x)+f(x)=0(yx)=f(x)

停留点なら、すべての y について f(y)f(x)。 近くしか見ないアルゴリズムでも、止まった場所が最良と保証される。

凸性を保つ操作#

  • 非負の重み付き和 wifiwi0
  • 最大値 maxifi
  • アフィン変換との合成 f(Ax+b)

これらを組み合わせて凸性を確かめる手続きが disciplined convex programming で、 CVXPY などのモデリング言語が採用している。

参考文献#

ノート一覧を閉じる