本文へ移動

G検定(ジェネラリスト検定)

かーねる

カーネル

Kernel

サポートベクターマシンなどで使う関数で、2つの入力を特徴関数で変換したあとの内積 φ(x)・φ(x') に当たる値を k(x, x') として返すものです。

詳しい説明

内積を置き換える関数

カーネルとは、2つの入力 x と x' を受け取り、それぞれを特徴関数 φ で変換したあとの内積 φ(x)・φ(x') に当たる値を返す関数のことです。式では k(x, x') = φ(x)・φ(x') と書きます。サポートベクターマシンに関連して使われる言葉で、カーネル関数や核関数とも呼ばれます。

イアン・グッドフェロー(Ian Goodfellow)、ヨシュア・ベンジオ(Yoshua Bengio)、アーロン・クールヴィル(Aaron Courville)による教科書『Deep Learning』(2016年)の第5章は、サポートベクターマシンに関連する重要な革新の1つとしてカーネルトリックを挙げ、その中でこの関数を「カーネル」と呼んでいます。

内積の形が出てくる理由

同書は、多くの機械学習アルゴリズムが例どうしの内積の形だけで書けることに着目しています。たとえば線形関数 w・x + b は、学習データの i 番目の例を x^(i)、係数を α_i として、次のように書き直せます。

w・x + b = b + Σ α_i x・x^(i)

右辺では、入力 x は学習データの各例との内積 x・x^(i) の形でしか現れません。ここがカーネルの出番になります。

特徴関数とカーネルへの置き換え

上の式の x を特徴関数の出力 φ(x) に置き換え、さらに内積 φ(x)・φ(x^(i)) を関数 k(x, x^(i)) に置き換えると、予測は次の形になります。

f(x) = b + Σ α_i k(x, x^(i))

この k がカーネルです。予測の式にはカーネルの値だけが現れ、φ(x) そのものは現れません。この性質を利用して計算を進める工夫がカーネルトリックで、その仕組みはカーネルトリックの語で詳しく扱います。この語で押さえたいのは、カーネルが「変換後の特徴どうしの内積を表す関数」だという点です。

よく使われるガウスカーネル

同書によれば、最もよく使われるカーネルはガウスカーネルで、RBFカーネル(動径基底関数カーネル)とも呼ばれます。式は次のとおりです。

k(u, v) = N(u - v; 0, σ²I)

これは、平均が0、共分散が σ²I の正規分布の確率密度を u - v で評価した値です。u と v が同じ点のとき最も大きくなり、2点のユークリッド距離が離れるほど0に近づきます。同書は、このカーネルが u から v へのユークリッド距離に基づくテンプレートマッチングの一種とみなせると説明しています。

畳み込みニューラルネットワークのカーネルとは別の概念

畳み込みニューラルネットワークでは、畳み込み層で使う小さな重みの行列(フィルタ)もカーネルと呼ばれることがあります。名前は同じですが、これはサポートベクターマシンのカーネルとは別の概念です。フィルタの意味については、フィルタの語で扱います。

試験で問われること

G検定

  • カーネルは、2つの入力を特徴関数 φ で変換したあとの内積 φ(x)・φ(x') に当たる値を返す関数です。k(x, x') = φ(x)・φ(x') という形で表されます。
  • カーネルが使える背景には、線形関数 w・x + b が学習データの各例との内積だけで b + Σ α_i x・x^(i) と書き直せることがあります。この内積をカーネルに置き換えると、予測は f(x) = b + Σ α_i k(x, x^(i)) となります。
  • 代表的なカーネルはガウスカーネルで、RBFカーネルとも呼ばれます。2つの入力のユークリッド距離が近いほど大きな値を返すため、テンプレートマッチングの一種とみなせます。
  • 畳み込みニューラルネットワークのフィルタもカーネルと呼ばれることがありますが、こちらは畳み込み層で使う重みの行列であり、サポートベクターマシンのカーネルとは別の概念です。

最終更新日: 2026/09/23