凹関数とは、グラフのどの2点間を結んでも、その線分が関数のグラフの下側か同じ高さに位置する関数のことです。AIや機械学習の分野では、主に損失関数の最大化や最適化問題において、効率的な解の探索を保証するための重要な数学的性質として利用されます。
凹関数とは
一言でいうと凹関数とは、上側に突き出た形状(丘のような形)を持ち、2点を結ぶ線分が常にグラフの下側に位置するような数学的関数のことです。
詳しく解説
凹関数は、数学や機械学習の最適化問題において中心的な役割を果たします。関数の定義として、領域内の任意の2点を選んだとき、その間を結ぶ線分が関数のグラフ以下にある性質を持ちます。AIの学習プロセスでは、モデルのパラメータを調整する際に目的関数や損失関数が用いられますが、この関数が凹関数である場合、局所的最適解がそのまま大域的最適解になるという強力な特性があります。これにより、効率的かつ確実に最適なパラメータを導き出すことが可能となります。
具体例・使われ方
具体的な例として、対数関数(log x)などが凹関数に該当します。機械学習においては、確率モデルのパラメータ推定で広く使われる最尤推定法において、対数尤度関数を最大化する計算の際に凹関数の性質が直接的に活用されます。
似た用語との違い
凸関数とはしばしば混同されますが、数学的な定義が逆になります。凸関数は谷のような形状をしており、2点を結ぶ線分がグラフの上側に位置します。最適化問題において、凹関数は「最大化」に適しているのに対し、凸関数は「最小化」に適しているという違いがあります。
注意点
すべての複雑なAIモデルの目的関数が綺麗に凹関数や凸関数になっているわけではありません。ディープラーニングなどの非線形モデルでは、関数が多数の極小値や鞍部を持つ非凸関数となるため、凹関数の性質をそのまま適用して大域的最適解を簡単に見つけることはできない点に注意が必要です。