カーネル関数 (G検定)

カーネル関数

1. 定義と概要

カーネル関数とは、2つのデータ点を高次元の特徴空間(データを何らかの規則で写し替えた、元とは異なる次元の空間)へ写像した場合の内積(2つのベクトルの向きの近さを1つの数値で表す計算)を求める関数です。ただし、実際に高次元への写像を計算することはせず、元の低次元空間のデータだけから直接この内積を求めます。代表的な種類として線形カーネル・多項式カーネル・RBF(ガウス)カーネル・シグモイドカーネルの4つが挙げられます。

SVM(サポートベクターマシン。データを分類する境界線=超平面を求める教師あり学習(正解つきのデータから規則を学ぶ学習方式)の手法)は本来、直線(超平面)でデータを分離できる場合を想定した手法ですが、現実のデータの多くは直線では分けられない複雑な境界を必要とします。

カーネル関数を使うと、低次元空間では複雑にしか分けられないデータでも、高次元空間へ写した場合の内積だけを計算することで、実質的に非線形分離(直線では分けられない複雑な形の境界でデータを分類すること)を扱えるようになります。

この高次元写像という考え方自体の詳細はカーネル法(データを高次元の空間に写して、複雑な分け方でも分離しやすくする考え方全般)という論点に整理されています。また、写像を省略して内積だけを求める計算上の工夫はカーネルトリック(実際に高次元へ写像する計算をせず、その内積だけを求める計算上の工夫)と呼ばれ、本記事ではその上でどの関数を選ぶかという具体的な種類と特性に焦点をあてます。

2. 試験対策ポイント

線形カーネルは、2つのデータの内積をそのまま使う最も単純な形のカーネル関数です。線形分離可能なデータに向き、計算コストが低い一方、複雑な境界は表現できません。

多項式カーネルは、次数(じすう。多項式カーネルで非線形の複雑さを段階的に決める数値)というパラメータ(モデルの挙動を調整するための数値)で非線形の度合いを段階的に調整できます。次数を上げるほど表現力が増す反面、過学習(訓練データに適合しすぎて、未知のデータへの対応力が落ちる現象)のリスクも高まります。

RBF(ガウス)カーネルは、ガンマ(γ。RBFカーネルで決定境界の複雑さを調整するパラメータ)というパラメータで決定境界の複雑さを調整する最も汎用的なカーネルで、非線形分離が必要な場面の既定選択になりやすい関数です。シグモイドカーネルはtanh(双曲線正接)関数を使う特殊な形で、条件によっては多層パーセプトロン(複数の層を重ねたニューラルネットワークの基本的な構造)の出力と同じ構造になるという関係にあります。

4種類の違いは、表現できる境界の形と、あわせて押さえておきたい性質という軸で並べると見通しがよくなります。

カーネル関数 表現できる境界 あわせて押さえたい性質
線形カーネル 直線的な範囲に限られる 内積をそのまま使う最も単純な形で、計算コストが低い
多項式カーネル 次数で段階的に調整する非線形の境界 次数を上げるほど表現力が増し、過学習のリスクも高まる
RBF(ガウス)カーネル ガンマで調整する連続的で滑らかな非線形の境界 最も汎用的で、非線形分離が必要な場面の既定選択になりやすい
シグモイドカーネル tanh(双曲線正接)関数を使う特殊な形 条件によっては多層パーセプトロンの出力と同じ構造になる

どのカーネル関数を選ぶかはモデルの表現力を左右し、表現力が高すぎると過学習、低すぎると未学習(アンダーフィッティング)につながるトレードオフの関係にあります。線形・多項式・RBF・シグモイドという4種類の名称とそれぞれの特徴、次数やガンマといったパラメータの役割が、この整理の柱になります。

3. 関連概念との比較・相違点

線形カーネルと非線形カーネル(多項式・RBF・シグモイド)の最大の違いは、表現できる境界の形にあります。線形カーネルは計算コストが低く高速に処理できますが、表現できる境界は直線的な範囲に限られます。一方、非線形カーネルは計算コストと引き換えに複雑な境界を表現でき、直線では分けられないデータへの対応力が高まります。

多項式カーネルとRBFカーネルの最大の違いは、非線形性を調整する仕組みにあります。多項式カーネルは次数という段階的なパラメータで表現力を調整するのに対し、RBFカーネルはガンマの調整により連続的で滑らかな非線形境界を表現します。同じ非線形カーネルでも、境界の変化のしかたが異なる点が両者を区別する軸になります。

カーネル関数とカーネル法・カーネルトリックとの関係も、混同しやすいポイントです。名前がよく似ている3つの用語ですが、それぞれが指している範囲は次のように分かれます。

用語 指している範囲
カーネル関数 高次元空間へ写した場合の内積を求める個々の関数。本記事が扱う種類と使い分けの対象
カーネル法 データを高次元の空間に写して、複雑な分け方でも分離しやすくする考え方の総論
カーネルトリック 実際に高次元へ写像する計算をせず、その内積だけを求める計算上の工夫

本記事は個々の関数の性質と使い分けに焦点をあてていますが、高次元写像という考え方の総論はカーネル法、写像を省略して計算する仕組みはカーネルトリックという別の論点として位置づけられています。カーネル関数の種類を学ぶ前提として、この3つの用語が指す範囲の違いは取り違えやすい点です。

4. ビジネス・実務での活用シナリオ

画像・手書き文字認識の分野では、ディープラーニングが普及する以前、RBFカーネルを用いたSVMが手書き文字や画像パターンの非線形な境界を捉える手法として実用され、認識精度の向上に貢献しました。

テキスト分類・スパム検知では、単語の出現有無を並べた高次元の疎なベクトル(要素の大半がゼロで埋まったベクトル)が線形分離可能なことが多く、計算コストの低い線形カーネルSVMが処理速度の面で好まれます。大量のメールやレビューを高速に振り分けられるため、リアルタイム性が求められる業務での運用に適しています。

医療診断・異常検知の分野では、少量データでの良性・悪性の判定のような2値分類にRBFカーネルSVMが使われ、単純な直線では捉えきれない非線形な境界を表現する場面で活用されます。少量のデータからでも精度の高い判定基準を作れるため、症例数が限られる領域や専門知識に基づくデータ収集が難しい領域でも有効に機能します。

5. 要点まとめ

  • カーネル関数は高次元空間での内積を元の低次元空間の計算だけで求める関数で、線形・多項式・RBF(ガウス)・シグモイドの4種類が代表的です。
  • 線形カーネルは計算コストが低く線形分離可能なデータ向き、多項式・RBF・シグモイドは非線形な境界を表現できます。
  • どのカーネル関数を選ぶかはモデルの表現力を左右し、次数やガンマといったパラメータの設定と合わせて過学習・未学習のバランスに関わります。

6. 確認問題

問1RBF(ガウス)カーネルは非線形な決定境界を表現でき、SVMで最も汎用的に用いられるカーネル関数の一つである。

解答・解説をみる

○ 正しい

RBFカーネルはガンマの調整により非線形分離に対応でき、既定選択として使われることが多いカーネル関数です。

問2シグモイドカーネルを用いたSVMは、条件によって多層パーセプトロン(ニューラルネットワーク)の構造と同じ形になることが知られている。

解答・解説をみる

○ 正しい

シグモイドカーネルはtanh関数を用いるため、単純な多層パーセプトロンの出力と同じ形になります。カーネル関数の性質を理解するうえで押さえておきたい関連知識です。

問3線形カーネルは多項式カーネルやRBFカーネルよりも複雑な非線形の決定境界を表現でき、あらゆるデータに対して他のカーネルより高い精度を発揮する。

解答・解説をみる

× 誤り

正しくは、線形カーネルは内積をそのまま使う単純な形で、複雑な非線形境界は表現できません。非線形分離が必要なデータでは多項式やRBFのようなカーネルが選ばれます。