最適化の定義(何をしている状態か)

最適化とは、「何を良いとみなすか(目的)」を決め、その良さを増やす方向に「変えられる要素(変数)」を調整していく考え方です。多くの場合、目的は数値で表されます(例:時間やコストを小さくする、品質を大きくするなど)。また、できることの範囲を「制約」として置くこともあります。

重要なのは、最適化の成果は目的と指標の置き方に強く依存する点です。目的が偏っていると、たとえスコアが上がっても、別の望ましくない側面が悪化することがあります。

簡単なモデル:目的関数・制約・探索

最適化を理解するための単純なモデルは次の形です。

  • 目的関数:現在の状態がどれくらい良いかを表す数値(スコア)
  • 変数:調整対象(設定、パラメータ、意思決定など)
  • 制約:守るべき条件(上限、下限、リソース制限、整合条件など)
  • 探索:変数を少しずつ変えて、目的関数の値が良くなる方向を探す

探索の方法は大きく分けて、既存の候補を系統的に試す(探索型)方法、現状から改善方向を推定して更新する(勾配などの情報を使う)方法、両者を組み合わせる方法などがあります。どの方法でも「良さの評価(測定)」が正しくないと、結果がブレやすくなります。

最適化の部品:目的と評価、そしてトレードオフ

最適化では「何を最大化するか/最小化するか」だけでなく、「評価の仕方」も同じくらい重要です。例えば、品質を上げたいのに、評価が一部の条件に偏っていると、全体の品質ではなく評価対象だけが改善したように見えることがあります。

また、最適化にはトレードオフが付きものです。ある指標を良くすると、別の指標が悪化する場合があります。このため、単一の目的関数に何でも詰め込むか、複数目的をどう扱うか(重み付け、段階的な基準、妥協点の設定など)が結果を左右します。

限界と失敗パターン:局所最適、過適合、環境変化

最適化には、避けられない制限や失敗パターンがあります。