Skip to content

第10章:無限次元への拡張 —— カーネル法とブラックボックス最適化 ​

これまでの章では、入力データに対して係数を掛け合わせる線形モデルを扱ってきました。しかし、現実の複雑なデータに対しては、単純な直線や平面の当てはめ(線形回帰)だけでは表現力が不足します。 本章では、特徴量空間を「(無限次元)」へと拡張し、非線形な関係性を鮮やかに解き明かす「(カーネル法)」の数理と、それを応用して未知の関数を効率的に探索する「(ブラックボックス最適化)」の仕組みを導出します。

1. 線形回帰から無限次元特徴空間へ ​

最も単純な線形回帰モデルは で表されます。これを拡張し、 のように多項式の項を増やしていくことを考えます。 パラメータ数を とすると、モデルは と記述できます。

ここで、究極の表現力を得るために (無限次元)の極限を考えます。すなわち、ありとあらゆる特徴変換関数 を用いた無限和 のモデルを構築するということです。

2. 表現定理(Representer Theorem)の導入 ​

無限次元のパラメータベクトル を直接最適化することは計算機上不可能です。ここで、第2章で学んだ Ridge回帰の目的関数を振り返ります。

この最適化問題において、未知のパラメータベクトル は、手元にあるデータの特徴ベクトル の線形結合と、それに直交する成分 (すなわち )の和として仮説を立てることができます。

「(表現定理(Representer Theorem))」によれば、誤差関数の最小化においてデータと直交する成分 は関与しないため、 として扱ってよいことが数学的に保証されています。 これにより、無限次元のパラメータ を探す問題が、データ数 と同じ次元の「(重み )」を探す問題へと劇的に次元削減されます。

3. カーネルトリックと類似度 ​

表現定理によって導かれた を元の式に代入すると、計算の随所にデータ同士の内積 が現れます。

この「無限次元空間における内積」を、いちいち無限回の足し算を行うことなく、元の入力データ を用いた一つの関数 の計算だけで済ませてしまう魔法のような手法を「(カーネルトリック)」と呼びます。 内積は、2つのデータベクトルがどれくらい同じ方向を向いているかを示す指標であるため、カーネル関数 はデータ間の「(類似度)」を直接計算していることと同義になります。

4. 重み の最適化 ​

パラメータを から重み に置き換えて目的関数を再構築します。 データ数 のカーネル行列 (対称行列 )を用いると、最適化問題は次のように記述されます。

この目的関数を で偏微分して と置きます。

これを について解くと、次のような極めて美しい解析解(正規方程式のカーネル版)が得られます。

無限次元の特徴空間という途方もない概念を導入したにもかかわらず、最終的には手元のデータ数 の連立方程式を解くだけで最適なモデルが構築できるのです。

5. 様々なカーネル関数 ​

カーネル関数 は、1次元のデータだけでなく、高次元の入力データに対しても適用可能です。対象となるデータの性質に応じて、様々な類似度の測り方を選択します。

  • 線形カーネル:
    • 最も単純な内積です。通常の線形Ridge回帰と完全に等価になります。
  • 指数カーネル:
    • 距離が近いほど値が大きくなる関数です。
  • ガウスカーネル:
    • なめらかな非線形表現力を持ち、機械学習において最も標準的かつ強力なカーネルです。
  • 周期カーネル:
    • データの中に潜む「(周期性)」を捉えるための特殊なカーネルです。

6. 未知のデータへの予測 ​

学習が完了したモデルを用いて、新しい未知のデータ に対する予測値 を求めます。 無限次元のパラメータを直接使わずとも、新しいデータと既存のすべての学習データ 個との類似度ベクトル を計算するだけで済みます。

学習済みの重み と、この新たな類似度ベクトルを掛け合わせることで、予測値が瞬時に導き出されます。

7. ブラックボックス最適化への応用 ​

関数 の形が未知であり、かつ1回の計算(実験やシミュレーション)に膨大なコストがかかる状況を考えます。このような関数の最小値を探す手法を「(ブラックボックス最適化)」と呼びます。 カーネル法を応用すると、この探索問題を極めて効率的に解くことができます。

  1. 学習: わずかな実験データ からカーネル行列 を計算し、重み を求めます。
  2. 予測(サロゲートモデルの構築): 無数の候補点 に対して、真の関数 を計算する代わりに、一瞬で計算できるカーネル予測 を用いて関数の形を推定します。
  3. 実験の追加: 予測モデル上で「最小値になりそうな候補点」でのみ実際の実験(シミュレーション)を実行し、その結果を新たなデータとして追加します。

これを繰り返すことで、当てずっぽうに実験するよりも圧倒的に少ない試行回数で、未知の関数の最適解へと到達できるのです。

Released under the MIT License.