カーネルは、サポートベクターマシン(SVM)などで活躍する「データ同士の類似度を測る関数」です。直線では分けられないデータを、高次元の世界に持ち込んで分けられるようにする——その計算を現実的なコストで実現する鍵がカーネルです。名前は難しそうですが、役割を押さえれば一気に理解できます。
📖 ひと言でいうと
カーネルとは、実質的には2つのデータ(ベクトル)間の類似度を測る関数であり、機械学習アルゴリズムの中で内積の計算を置き換える役割を果たします。例えるなら、2人の相性を判定する「相性診断関数」のようなものです。本来なら2人の膨大なプロフィールを全項目突き合わせる必要があるところを、カーネルはその照合結果(類似度)だけを直接はじき出してくれます。この性質を利用して、データを高次元空間で分析したのと同じ効果を、少ない計算で得るのがカーネル法です。
🖼 1枚でわかるカーネル
📘 公式テキストの説明
カーネル法は、データを高次元空間へと変換し、その空間での分析を容易にする手法である。この方法は、特徴量間の相関よりも精度が要求される場合や、線形分離不可能なデータセットに対して有効である。カーネル法を利用することで、高次元空間での分析を行いつつ、計算コストを抑えることが可能になる。カーネルは、実質的には2つのベクトル間の類似度を測る関数であり、機械学習アルゴリズムにおいて内積を置き換える役割を果たす。カーネルトリックと呼ばれる手法を用いることで、データを実際に高次元空間に変換することなく、内積の計算を行うことができる。代表的なカーネル関数として、線形カーネル、多項式カーネル、ガウシアンカーネル(RBFカーネル)などがある。
この説明は3層構造になっています。①カーネル法=データを高次元空間へ変換して分析を容易にする手法(線形分離不可能なデータに有効)。②カーネル=その中核部品で、2つのベクトルの類似度を測り内積を置き換える関数。③カーネルトリック=実際に高次元変換をせずに内積を計算して、計算コストを抑えるテクニック。「手法(カーネル法)・部品(カーネル)・テクニック(カーネルトリック)」と役割を分けて覚えるのがコツです。
🔍 しっかり理解する
直線で分けられないデータという壁
分類の基本は「境界線を引いてグループを分ける」ことですが、現実のデータは1本の直線(平面)では分けられないことがよくあります。たとえば、円の内側に○、外側に×が散らばっているデータには、どう頑張っても直線の境界は引けません。これが「線形分離不可能」な状態です。カーネル法の発想は、「今いる次元で無理なら、次元を増やした空間に写せば直線(平面)で分けられるようになる」というものです。
カーネルが「近道」になる仕組み
問題は、高次元への変換を真面目に計算すると、次元が増えるほど計算量が爆発することです。ここで効くのが、SVMなど多くのアルゴリズムが「データ同士の内積(類似度)さえ分かれば動く」という性質です。カーネルは、高次元空間での内積の値を、元の低次元データから直接計算してくれる関数です。つまり、変換後の座標を一切求めずに、「変換したとしたらこの2点はどれくらい似ているか」という答えだけを手に入れられます。これがカーネルトリックであり、高次元の恩恵と低い計算コストを両立させる仕掛けです。
代表的なカーネル関数
カーネルには複数の種類があり、データの性質に応じて使い分けます。線形カーネルは通常の内積そのもので、もともと直線で分けられそうなデータ向き。多項式カーネルは特徴量の組み合わせ(掛け合わせ)を考慮した曲線的な境界を作れます。ガウシアンカーネル(RBFカーネル)は2点の距離が近いほど類似度が高くなる関数で、複雑な境界を柔軟に表現できるため広く使われています。
💡 具体例で考える
カーネル法の定番の適用先がサポートベクターマシン(SVM)です。たとえば、健康診断の2項目(検査値Aと検査値B)からある疾患のリスク群を分類したいとき、リスク群が「両方の値が中程度の範囲」に集中しているとすると、平面上ではドーナツの穴のような配置になり直線では分けられません。SVMにガウシアンカーネルを組み合わせると、高次元空間での分離に相当する丸い境界を、実際の高次元変換なしで学習できます。
もうひとつのイメージ例として、2次元の点(x, y)に「x×y」という掛け合わせの軸を加えて3次元に持ち上げる操作を考えてみてください。平面では入り組んでいた2グループが、持ち上げた空間では1枚の平面ですっぱり分かれることがあります。多項式カーネルは、まさにこうした特徴量の組み合わせを陽に作らずに扱う道具です。
⚠️ よくある誤解・紛らわしい用語
- OSの「カーネル」との混同 — コンピュータのOSの中核部分もカーネルと呼ばれますが、機械学習のカーネル(類似度を測る関数)とは全くの別物です。
- 「実際にデータを高次元に変換する」は誤解 — カーネルトリックの要点は、実際には変換せずに内積の計算だけを行うことです。だから計算コストを抑えられます。
- カーネル法とカーネルトリックの混同 — カーネル法は高次元空間で分析する手法の総称、カーネルトリックはその計算を変換なしで実現するテクニックです。
- 「カーネルは1種類」は誤り — 線形・多項式・ガウシアン(RBF)など複数あり、データに応じて選択します。
📝 試験でのポイント
- 「カーネルは2つのベクトル間の類似度を測る関数で、内積を置き換える役割を果たす」という定義は正誤判定でそのまま問われます。
- カーネル法が有効な場面として「線形分離不可能なデータセット」を選ばせる問題が想定されます。
- 「カーネルトリック=実際に高次元空間へ変換せずに内積を計算する手法」という一文の穴埋め・正誤に対応できるようにしましょう。
- 代表的なカーネル関数(線形・多項式・ガウシアン(RBF))の名称は列挙選択で問われ得ます。
📚 まとめ
カーネルは2つのベクトル間の類似度を測る関数で、機械学習アルゴリズムの内積を置き換える中核部品です。カーネル法はデータを高次元空間へ写して線形分離不可能なデータの分析を容易にする手法であり、カーネルトリックによって実際の変換なしに内積だけを計算するため、計算コストを抑えられます。代表的なカーネル関数は線形・多項式・ガウシアン(RBF)の3つ。「手法・部品・テクニック」の3層で整理して覚えましょう。
