多様体上の最適化の概論

Published

2025-02-07

Modified

2025-02-07

最適化問題とは

  • 集合 X 上で定義された実数値関数 f をある集合 \Omega \subset X 上で最小化する問題
    • f を目的関数という
    • x\in \Omega を制約条件という
      • 変数 x を決定変数という
      • \Omega を実行可能集合といい, x\in \Omega を実行可能界という
  • 無制約最適化問題と, 制約付き最適化問題がある
    • \Omega = X のときと, そうでないとき

最適化問題における制約条件と多様体

例えば, n 次元ユークリッド空間 \mathbb{R}^n における制約条件 \mathbf{x}^T \mathbf{x}=1 が定められていると見る代わりに, n 次元球面 S^{n-1} における無制約最適化問題とみなすことができる

  • ユークリッド空間 \mathbb{R}^n における制約問題では, 最急降下法などの無制約最適化アルゴリズムは使えない
    • そのため, 3章で学ぶようなバリア法などを使う必要が生じる
  • 無制約最適化アルゴリズムを多様体上に拡張できれば, 最急降下法などの収束性を引き継ぐことが期待できる

最適化問題に現れる多様体の例

一旦, 多様体の構造は入れずに単に集合として例を挙げる

  • \mathbb{R}^nn 次の実ベクトル全体
  • \mathbb{R}^{m\times n}m\times n 実行列全体
  • \mathrm{Sym}(n)n 次の実対称行列全体
  • \mathrm{Skew}(n)n 次の実歪対称行列全体
  • S^{n-1}=\{\mathbf{x}\in \mathbb{R}^n \mid \| \mathbf{x} \| = 1\}(n-1) 次元球面
  • O(n)=\{X\in \mathbb{R}^{m\times n} \mid X^TX =I_n\}n 次直交群
  • シュティーフェル多様体
  • 一般化シュティーフィル多様体
  • グラスマン多様体
  • n 次正定値対称行列全体

多様体上の最適化の応用問題例

固有値分解への応用

  • 第一固有値に対応するを求めるレイリー商の最小化問題は単位球面における最小化問題
  • p < n 個の固有値に対応する固有ベクトルを求めるのも, シュティーフェル多様体上の最適化問題になる(命題9.2.1)
  • 直交行列による同一視のもとで, グラスマン多様体上の最適化問題と帰着される

特異値分解

  • 対称行列でも正方行列でもない場合
  • シュティーフェル多様体の積多様体における最適化問題とみなせる(命題9.2.3)

主成分分析 

  • 上の事実を組み合わせるとできる

混合正規分布モデルにおける最尤推定

  • 前提
    • n 変量からなるデータが K 個の正規分布が咬合された確率分布から生成されたと仮定する.
    • 混合の重みは総和が 1 となる \mathbf{w}=[w_k]_k\in \mathbb{R}^K によって表し
    • k=1,2,\ldots ,K に対する重みは w_k>0とし, 多変量正規分布は平均ベクトル \mathbf{\mu}_k\in \mathbb{R}^n, 分散共分散行列 \Sigma_k \in \mathrm{Sym}_{++}(n) を持つものとする

以上の条件のもとで, 最尤推定量を求める問題は次のように定式化される

  • \Delta_K=\{\mathbf{w}\in \mathbb{R}^K \mid \mathbf{1}_K^T \mathbf{w}=1, \mathbf{w} >0\} とおく
  • 積多様体 \Delta_K\times (\mathbb{R}^n)^K\times (\mathrm{Sym}_{++}(n))^K 上の無条件最適化問題として
  • 目的関数は以下のようになる(対数尤度を取り, 最小化問題なので符号を入れ替えている) f(\mathbf{w}, \mathbf{\mu}_1, \mathbf{\mu}_2,\ldots, \mathbf{\mu}_K, \Sigma_1, \Sigma_2,\ldots, \Sigma_K) = -\sum_{t=1}^T \log\left(\sum_{k=1}^K w_k p(\mathbf{x_t}; \mathbf{\mu}_k, \Sigma_k)\right)

このようにしておくと, ユークリッド空間における最小化問題とみなすよりも, 分散共分散行列が正値対称行列であることが扱いやすいらしい

非負主成分分析

発展的らしいので一旦スルー

多様体上の最適化のためのライブラリ

  • MATLAB では Manopt
    • Python では Pymanopt
    • Julia では Manopt.jl
  • C++ のための ROPTLIB
    • R では ManifoldOptim
  • 書籍のサンプルは MATLAB で Manopt を使って計算した例が載っている
  • 実際のコードや導入方法は著者によるサポートページにある

演習問題