【DS検定対策】高次元へ飛ばしてスパッと切る!SVMと「カーネル法」の魔術
直線や平面ではどうしても2つのグループに切り分けることができない複雑なデータ。それを数理の力で鮮やかに分類できるようにするのが、サポートベクターマシンの「カーネル法」です。
1. 【 問題 】
サポートベクターマシン(SVM)において、直線や平面では綺麗に分類できない「非線形分離」なデータに対し、データをより高次元の空間へと写像(マッピング)することで、線形分離(直線や平面での分割)を可能にする手法を何と呼ぶでしょうか?
① カーネル法
② 勾配降下法
③ ステップワイズ法
④ 主成分分析
2. 【 解答 】
3. 図解イメージ:高次元へ飛ばすとはどういうことか?
2次元(平面)ではどう頑張っても直線1本でセパレートできない「ドーナツ型」のデータを例に、カーネル法の魔法を視覚的に整理してみましょう。
| 元の空間(2次元平面) | カーネルトリック後の空間(3次元空間) |
|---|---|
| ・中心に「グループA(●)」がある。 ・その周りを「グループB(✖)」が囲んでいる。 【悩み】 まっすぐな直線(線形)をどこに引いても、●と✖を1本で完全に切り離すことは不可能です。 |
・カーネル関数を使い、データを「縦・横」だけでなく「高さ(Z軸)」の次元を追加した3次元空間にマッピングします。 【結果】 中心の●だけがポコッと上に浮き上がり、周りの群が下に残るため、間を「1枚の平らな紙(平面)」でスパッと水平に切り分ける(線形分離)ことができるようになります! |
★ ここが天才的:「カーネルトリック」
実際に高次元のめんどくさい座標計算を真面目にやると、計算量が爆発してフリーズしてしまいます。しかし、カーネル法では「高次元に移動した後のデータ同士の内積」を、元の次元のままで直接ショートカット計算できる関数(カーネル関数)を使います。これを「カーネルトリック」と呼び、深層学習が登場する前の機械学習界を席巻しました。
5. DS検定形式:実戦4択クイズ
問:サポートベクターマシン(SVM)において、データを2つのクラスに分類する境界線を決定する際、境界線に最も近い位置に存在する(境界線を支える目印となる)一部のデータ点のことを何と呼ぶか。
① サポートベクター ② マージン ③ カーネル係数 ④ スラック変数
【 正解: ① 】
解説: アルゴリズムの名の由来でもある「サポートベクター」です。SVMは、すべてのデータを覚えるのではなく、境界線のギリギリのキワにいる「サポートベクター」だけを基準にして境界線を引きます。そのため、以前に学んだ外れ値やノイズに対しても非常にタフ(堅牢 / ロバスト)であるという、美しい繋がりを持っています。
6. まとめ
DS検定において「非線形データを高次元に飛ばして線形分離する」「SVM」というキーワードが来たら「カーネル法」です。実務のデータコンペ(Kaggleなど)でも、データ構造によっては非常に強力な選択肢となるクラシックな名手法ですので、その幾何学的なイメージをしっかり押さえておきましょう!