マージン最大化とは

まーじんさいだいかmargin maximization別名 最大マージン

1行定義

マージン最大化とは、クラスを分ける境界と、境界に最も近いデータとの距離(マージン)が最も大きくなるように境界を決める考え方のことです。

くわしく

マージン最大化は、サポートベクターマシン(SVM)が分類の境界を決めるときの基準です。2つのクラスを分ける直線(高次元では超平面)は、多くの場合いくつも引けます。その中から、どちらのクラスからもできるだけ離れた境界を1つ選ぶのがマージン最大化です。

マージンとサポートベクター

マージンは、境界と、境界に最も近いデータとの距離です。この最も近いデータをサポートベクターと呼びます。境界の位置はサポートベクターだけで決まり、遠くにある大多数のデータは影響しません。

なぜマージンを広く取るのか

境界がデータのすぐそばを通ると、少し違う新しいデータが来ただけで、反対側に分類されてしまいます。両側に余裕を持たせた境界は、未知のデータに対しても誤りにくくなります。つまりマージン最大化は、汎化性能を高めるための考え方です。

数式では、境界を w・x + b = 0 と表し、サポートベクターで |w・x + b| = 1 となるように尺度をそろえると、マージンは 1 / ||w||(両側を合わせた幅は 2 / ||w||)になります。そのため、すべてのデータを正しく分けるという条件のもとで、||w|| を最小にする最適化問題として解きます。

ハードマージンとソフトマージン

すべての訓練データを完全に分けることを求める方式を、ハードマージンと呼びます。しかし現実のデータにはノイズや外れ値があり、完全には分けられないことが多くあります。そこで、境界を越えるデータをある程度許し、そのはみ出しに罰(ペナルティ)を与える方式を使います。これがソフトマージンで、罰の強さはパラメータCで調整します。

直線では分けられないデータには、カーネルトリックを組み合わせます。高次元の空間でマージン最大化を行うことで、元の空間では曲がった境界を学習できます。

覚え方

「境界は、両側のいちばん近いデータからなるべく遠くに引く」と覚えます。

G検定での出題

SVMが境界を決める基準として、マージンとサポートベクターの意味が問われます。ハードマージンとソフトマージンの違いや、カーネルトリックと組み合わせた非線形な分類との関係も問われます。

◯×チェック

  1. マージン最大化で決めた境界は、境界から遠く離れたデータを少し動かしても、サポートベクターが変わらなければ変わらない。

    答えを見る

    答え ◯ 正しい

    境界の位置を決めるのは、境界に最も近いサポートベクターだけです。遠くのデータは影響しません。

  2. ハードマージンは、訓練データの一部が境界を越えたり、マージンの内側に入ったりすることを許す方式である。

    答えを見る

    答え × 誤り

    はみ出しを許すのはソフトマージンです。ハードマージンは、すべての訓練データを誤りなく分けることを前提にします。

  3. カーネルトリックを使って非線形な境界を学習するSVMでは、マージン最大化の考え方は使われない。

    答えを見る

    答え × 誤り

    カーネルトリックを使うSVMも、写像した高次元の空間でマージンを最大化します。その境界を元の空間で見ると、曲がった境界になります。

練習問題

マージン最大化の問題(2問)
  1. SVMのマージンとカーネル
  2. SVMとロジスティック回帰の違い

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術7

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習