機械学習統計学

カーネル行列

かーねるぎょうれつ · Kernel Matrix
3 views

カーネル行列(グラム行列とも呼ばれる)は、機械学習において高次元空間に写像されたデータ点同士の内積(類似度)を表す正方行列です。サポートベクターマシンなどのカーネル法で中心的な役割を果たし、データを高次元に直接写像する計算コストを回避しながら、非線形な境界やパターンの認識を可能にします。

カーネル行列とは

カーネル行列とは、データセット内のすべてのペア(データ点の組み合わせ)に対してカーネル関数を適用し、その算出された類似度をグリッド状に並べた対称行列(正方行列)のことです。

詳しく解説

機械学習では、線形に分離できない複雑なデータを高次元の特徴空間に写像して処理することがあります。しかし、実際に高次元への写像を直接計算すると計算量が膨大になります。ここで「カーネルトリック」が利用されます。カーネルトリックとは、高次元空間での内積を、元の低次元空間の入力データに対するカーネル関数の計算のみで代替する技術です。このとき、データ点同士のすべての内積結果を並べたものがカーネル行列(またはグラム行列)です。データ数をNとすると、カーネル行列はN×Nのサイズを持つ対称行列であり、さらに数学的には半正定値行列という重要な性質を持っています。これにより、最適化問題が凸計画問題となり、大局的最適解を安定して得ることができます。このアプローチ全体をカーネル法と呼びます。

具体例・使われ方

サポートベクターマシンによる画像分類や、カーネル主成分分析による非線形な次元削減においてカーネル行列が直接構築・利用されます。例えば、テキスト分類において文書間の類似性を計算してカーネル行列を作成し、それをもとに分類を行います。

似た用語との違い

カーネル行列と共分散行列は混同されやすいですが、共分散行列は特徴量(変数)間の線形な関係性を示す行列であるのに対し、カーネル行列はサンプル(データ点)間の類似度を示す行列です。また、ニューラルネットワークの「重み行列」が学習パラメータを保持するのに対し、カーネル行列は入力データ自体の関係性を表す静的な行列(カーネル法において)となります。

注意点

カーネル行列はデータ数Nに対してN×Nのメモリ空間を必要とするため、データ数が数万〜数十万規模に肥大化すると、メモリ消費量が爆発的に増加するという限界があります。また、適切なカーネル関数やハイパーパラメータを選択しないと、過学習を起こしたり、モデルの性能が著しく低下したりする点に注意が必要です。

更新日時: 2026年9月3日 20:41