4.5 分離超平面

2つのクラスを「まっすぐな境界」で分ける。これが分離超平面の基本的なアイデアです。

「どうやって境界を決めるか?」という問いに対する2つのアプローチ—パーセプトロンの試行錯誤と最適分離超平面のマージン最大化—を学びます。一見シンプルなこの問題が、なぜ機械学習の歴史で重要な位置を占めるのか。一緒に見ていきましょう。

分離の直感

データを分類したい。例えば、メールがスパムかどうか、画像が猫か犬か。

ここでは、最もシンプルな状況を考えましょう。2つのクラスがあり、それらが「きれいに分かれている」場合です。

赤い点と青い点が平面上に散らばっているとします。この2つのグループを分ける「境界線」を引けるでしょうか?

実は、きれいに分かれている場合、無数の境界線が引けます。どの線を選ぶべきか?ここに、興味深い問題が隠れています。

2クラスを分ける複数の直線候補を示すアニメーション

この境界線を数学的に表現してみましょう。

2次元の場合、直線は次のように書けます:

$$f(x) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 = 0$$

これをベクトルでまとめて書くと:

$$f(x) = \beta_0 + \beta^T x = 0$$

直感的に言えば:

境界線に対して垂直な方向を向いているのが $\beta$。この $f(x)$ の符号を見れば、どちら側にいるかがわかるのです。

パーセプトロン - 試行錯誤で学ぶ

では、どうやって境界線を見つければいいのでしょうか?

1958年に提案されたパーセプトロンは、驚くほどシンプルなアイデアに基づいています:

  1. 適当な境界線からスタート
  2. 間違って分類された点を見つける
  3. その点の方向へ境界を少し調整
  4. 間違いがなくなるまで繰り返す

人間が間違いから学ぶように、パーセプトロンも「間違い」を手がかりに成長します。

パーセプトロンの学習過程を示すアニメーション

パーセプトロンの更新ルールは、驚くほどシンプルです。

間違って分類された点 $x_i$ を見つけたら、境界のパラメータを次のように更新します:

$$\beta \leftarrow \beta + \rho \cdot y_i \cdot x_i$$

なぜこれで動くのか?

$y_i$ はクラスラベル(+1か-1)です。間違って分類された点に対して、その点の方向に $\beta$ を動かすことで、$f(x_i)$ の値が正しい符号に近づきます。

$\rho$ は「学習率」と呼ばれます。一度にどれだけ動かすかを決めるパラメータで、小さすぎると学習が遅く、大きすぎると行ったり来たりして不安定になります。

パーセプトロンの限界

パーセプトロンは賢いアルゴリズムですが、大きな弱点があります。

同じデータでも、毎回違う答えが出る可能性があるのです。

2つのクラスが直線で分けられる場合(これを「線形分離可能」と言います)、パーセプトロンは必ず正しく分類できる境界を見つけます。これは数学的に証明されています。

しかし...どの境界に収束するかは、初期値と学習順序に依存します。どれも「正解」ではありますが、どれが「最良」かはわかりません。

異なる初期値から異なる解に収束する様子を示すアニメーション

さらに深刻な問題:直線で分けられないデータでは、永遠に収束しません。

ここで自然な疑問が生まれます。「最良」の境界とは何でしょうか?

マージン - 余裕を持つ

「最良」の境界とは何か。ここで重要な概念が登場します:マージン(余裕)。

境界線から最も近い点までの距離、これをマージンと呼びます。

直感的に考えてみてください。境界がデータ点のすぐそばを通っている場合、新しいデータが少しずれただけで誤分類される危険があります。

逆に、境界が両クラスから十分離れていれば、多少のノイズにも強くなります。

マージンを最大化する境界 - これが「最適分離超平面」の考え方です。

マージンの概念を視覚化したアニメーション

最適分離超平面

マージンを最大化する問題を考えましょう。

目標は明確です:すべての点を正しく分類しながら、境界から最も近い点までの距離(マージン)を最大にする。

この問題には、ある素晴らしい性質があります。「最適な境界は一意に決まる」のです。

パーセプトロンのように「どの解になるかわからない」という問題がありません。どんな初期値から始めても、同じ「最良」の境界にたどり着きます。

マージン最大化の過程を示すアニメーション

数学的には、次の問題を解きます:

$$\min_{\beta, \beta_0} \frac{1}{2}\|\beta\|^2$$

制約条件(すべての点について):

$$y_i (x_i^T \beta + \beta_0) \geq 1$$

この制約は「すべての点が境界から十分離れている」ことを保証します。

$y_i$ はクラスラベル(+1か-1)で、$y_i (x_i^T \beta + \beta_0)$ が正であれば正しく分類されています。それが1以上、つまりマージンの外にいることを要求しているのです。

サポートベクトル

最適分離超平面には、興味深い性質があります。

解を決めるのは、マージン境界上にある点だけです。これらの点をサポートベクトルと呼びます。

他の点をどこに動かしても(マージンの外にいる限り)、最適な境界は変わりません。解は、ほんの数個のサポートベクトルだけで完全に決まるのです。

この性質は、後にサポートベクターマシン(SVM)として大きく発展することになります。

サポートベクトルの重要性を示すアニメーション

最適解を求めると、境界を決めるパラメータ $\beta$ は次の形で表されます:

$$\hat{\beta} = \sum_{i \in S} \hat{\alpha}_i y_i x_i$$

ここで $S$ はサポートベクトル(マージン境界上の点)の集合です。

つまり、境界の位置を決めているのは、マージン境界上にある数個の点だけ。他の点は、どこにあっても影響しません。

まとめ - 2つのアプローチの対比

分離超平面を見つける2つのアプローチを学びました。

パーセプトロン

最適分離超平面

パーセプトロンと最適分離超平面の比較を示すアニメーション

最適分離超平面の考え方は、後にカーネル法と組み合わされ、サポートベクターマシン(SVM)として発展します。非線形な境界も扱えるようになり、1990年代から2000年代にかけて機械学習の主要な手法となりました。

シンプルな「直線で分ける」という発想から、これほど豊かな理論が生まれる。数学の美しさを感じませんか?