カーネル法(非線形を分離する)
直線で分けられないデータも、高次元へ写すと平面で分離できる。同心円データを φ(x,y)=(x, y, x²+y²) で持ち上げます。
1.30
1.5
0.50
分離平面の高さ z*
—
誤分類した点
—
2D での境界の形
—
A 内側 / B 外側
—
—
① 元の 2D ── 直線(どの向きでも)では内側 A と外側 B を分けられない。色付き領域=今の境界が A 側と判定する範囲。
② 高次元へ持ち上げ ── 各点を高さ
z = x²+y² へ。紫の水平面 z = z* というただの平面で上下にきれいに分かれる。
同心円データは直線では絶対に分けられません。内側の クラス A と、それを取り囲む クラス B。2D 平面上のどんな直線を引いても、必ずどちらかが混ざります。
そこで各点を φ(x, y) = (x, y, x²+y²) で 3 次元へ持ち上げます。原点に近い A は低く、遠い B は高く浮きます。すると z = z* という水平な平面 1 枚で上下に分離できます。これを元の 2D へ戻すと、境界は 円
左の「高さ z*」で平面を上下させ、誤分類がゼロになる位置を探してください。RBF カーネルに切り替えると「近さ」で似た点を集める別の写し方も試せます。
そこで各点を φ(x, y) = (x, y, x²+y²) で 3 次元へ持ち上げます。原点に近い A は低く、遠い B は高く浮きます。すると z = z* という水平な平面 1 枚で上下に分離できます。これを元の 2D へ戻すと、境界は 円
x²+y² = z* になります。左の「高さ z*」で平面を上下させ、誤分類がゼロになる位置を探してください。RBF カーネルに切り替えると「近さ」で似た点を集める別の写し方も試せます。
いま何が起きている?
ここがポイント
- 低次元で非線形でも、適切に高次元へ写せば線形分離できる ── これがカーネルトリックの核心。2D の「円」が 3D では「平面」になる。
- RBF カーネルは「近さ」で似た点を集める ── 各点を「他の点とどれだけ近いか」のベクトルへ写すので、塊ごとにまとまって分けやすくなる。
- 実際は内積だけ計算すればよい ── 写像 φ を明示的に作らなくても、カーネル関数
K(x, x') = φ(x)·φ(x')という内積さえ計算できれば学習できる(だから「トリック」)。 - 境界の形は写し方で決まる ── φ=x²+y² なら円、RBF なら点を囲む滑らかな曲線。元の空間では曲がって見えるだけ。