
ドーナツ型データは、3次元に持ち上げると一刀両断できる。カーネルトリックを目で見る
ドーナツ型のデータ——外側の輪と内側の輪を分類したい。人間には輪郭が見えているのに、直線1本ではどう引いても半々にしか分けられない。これは「線形分離不可能」の教科書的な例だ。
ところが、このデータにという3次元目をひとつ付け足すだけで、魔法のようなことが起きる。内側の輪(原点に近い=zが小さい)は谷底に沈み、外側の輪(原点から遠い=zが大きい)は山腹に持ち上がる。すると——水平な平面1枚で、スパッと切れる。
カーネルSVMの「カーネルトリック」の正体は、この持ち上げを(実際に座標を計算せずに)暗黙にやることだ。今回は、その暗黙の部分をあえて明示的に構築して、目で見えるようにした。
まず2次元での敗北を確認する
ドーナツと、もうひとつの意地悪データ「二重らせん」に、線形SVMとRBFカーネルSVMをぶつけた。

線形SVMは両方とも0.57(ほぼコイン投げ)。同じSVMなのに、カーネルをRBFに変えるだけでドーナツ1.00・らせん0.99。境界線が輪を囲み、渦を巻く。この柔軟さはどこから来るのか。
持ち上げを実際に見る
を明示的に3次元目として追加し、線形SVM(直線・平面しか引けないはずのモデル)を3次元で学習させた。結果は正解率1.00。分離平面の高さはz=0.55だった。何が起きたのか、回して見てほしい。
持ち上げの過程はこちら。平面では絡まって見えた2つの輪が、お椀型の曲面に持ち上がって高さで分離する。
つまり「線形分離不可能」は、データの性質ではなく見ている次元の問題だった。RBFカーネルはこれと同じことを、(理論上)無限次元への持ち上げとして暗黙にやっている。2次元で渦巻く複雑な境界は、高次元では単なる平面の影なのだ。
ただし、持ち上げ方は何でもいいわけではない
同じの持ち上げを二重らせんに適用すると——正解率0.56。ほぼ無力だ。らせんは「原点からの距離」では2クラスが分離できない(同じ半径に両方の腕がいる)ので、この持ち上げでは高さが混ざったままになる。
ドーナツに効いたのは、持ち上げがたまたま「原点からの距離」というデータの本質と一致していたからだ。万能の持ち上げはなく、データに合った持ち上げ(カーネル)を選ぶことこそが本体——「カーネルトリックすごい」で終わらない、実務で効く教訓だと思う。
柔らかさにも「ちょうど良さ」がある
RBFカーネルのgamma(境界の曲がりやすさ)を0.1から1500まで振って、らせんでの訓練/テスト正解率を測った。

gammaを上げすぎると、訓練データは満点のままテストだけが崩れる——過学習の記事で見た「丸暗記」の顔が、カーネルの世界にもそのまま現れた。1点1点の周りだけを島のように囲む境界は、たまたま見た600点への最適化でしかない。
手を動かして意外だったこと
「線形分離不可能」という言葉を、これまでデータへの悪口だと思っていた。実際にやってみて分かったのは、それが視点への悪口だということだ。ドーナツは2次元では絶対に切れないが、正しい3次元目を1本足せば、最も単純な道具(平面)で切れる。問題が解けないとき、道具を複雑にする方向(もっと曲がる境界を!)と、視点を増やす方向(もう1軸足す)があり、カーネル法の思想は徹底して後者だった。
そして、らせんでの失敗が一番勉強になった。「高次元に持ち上げれば何でも分離できる」は嘘ではないが、何を測る軸で持ち上げるかを外すと1軸増やしても何も起きない。仕事で「情報を増やせば判断できるはず」と資料を積み上げるとき、増やすべきは量ではなく、対立を分離する軸なのだ——ドーナツには「中心からの距離」、らせんには「腕に沿った角度」。データが何で分かれているかを見抜くことが、持ち上げの前にある。
まとめ
- ドーナツ型データは2次元の線形SVMでは正解率0.57(分離不可能)だが、の3次元目を明示的に足すと線形SVMのまま1.00になる(分離平面はz=0.55)
- RBFカーネルSVMはこの「持ち上げ」を暗黙に(無限次元で)行っている。2次元で見える渦巻き状の複雑な境界は、高次元では平面の影
- ただし同じ持ち上げは二重らせんには無力(0.56)——持ち上げ(カーネル)の選択がデータの本質と合っていることが本体
- gammaを上げすぎると訓練満点のままテストが崩れる「丸暗記」が発生(過学習の記事と同じ構図)。柔らかさにも最適点がある
- 見せ方: 持ち上げ→平面切断の回せる3Dを主役に、持ち上げ過程の動画を併設


