凸集合とは、集合内の任意の2点を結ぶ線分が完全にその集合内に含まれるような図形や空間の集まりです。機械学習や数理最適化において、解が存在する探索空間が凸集合である場合、局所最適解が大域的最適解と一致する凸最適化問題として定式化しやすくなり、効率的かつ安定したパラメータ学習を実現するための基盤となります。
凸集合とは
凸集合とは、集合内のどの2点を選んで直線で結んでも、その線分全体が必ず同じ集合の内側に収まる幾何学的性質を持つ領域のことです。
詳しく解説
数学的には、集合Sの任意の2点x, yと0から1の間の実数tに対して、tx + (1-t)yが常にSに含まれるとき、Sを凸集合と呼びます。機械学習ではモデルの学習を高精度かつ高速に行うために「凸最適化」が広く利用されますが、探索範囲となる制約領域が凸集合であり、目的関数が「凸関数」である場合、最適化の計算において「局所最適解」がそのまま「大域的最適解」になることが保証されます。これにより、勾配法などのアルゴリズムが望ましくない局所解に捕まることなく、確実に最適解へ収束するため、最適化アルゴリズムの設計や解析において極めて重要な役割を果たします。
具体例・使われ方
幾何学的な例としては、円や球、正方形、楕円などの内部が凸集合にあたります。一方、星型や三日月型のように窪みがある図形は、2点を結ぶ線分が図形の外に出てしまうため凸集合ではありません。機械学習の実践例としては、「サポートベクターマシン」においてデータを分類するマージン最大化問題の許容領域や、重みパラメータの正則化条件として使われるL1ノルム球やL2ノルム球が凸集合の代表例です。
似た用語との違い
凸集合と凸関数は混同されやすい概念です。凸集合が空間内の「領域」を指すのに対し、凸関数はその領域上で定義された「関数」の形状を指します。また、窪みや穴が存在し2点を結ぶ線分が領域外にはみ出す領域は非凸集合と呼ばれます。非凸集合上の問題では大域的最適解の探索が極めて困難になります。
注意点
深層学習(ディープラーニング)の損失関数や探索空間の多くは凸集合や凸関数にはならず、非凸な問題となります。そのため、凸集合の理論的保証がそのままディープニューラルネットワーク全体の学習に適用できるわけではない点に注意が必要です。また、凸集合同士の共通部分は常に凸集合ですが、和集合は必ずしも凸集合にならないという数学的性質にも留意する必要があります。