ヒンジ損失とは何か?SVMのマージン最大化を支える凸損失関数の解説
ヒンジ損失とは
ヒンジ損失(hinge loss)は、主にサポートベクターマシン(SVM)などの大マージン分類器で用いられる損失関数です。二値分類において、正しいクラスへ一定のマージン(余裕)を確保できていない予測に対して線形にペナルティを課すことで、誤分類だけでなく「マージン違反」も評価します。0-1損失の凸近似(凸サロゲート)として扱われ、最適化が容易でありながら理論的に良好な一般化特性を持つ点が特徴です。
定義と数学的表現
入力 x、ラベル y∈{+1,−1}、予測関数 f(x)(線形分類器なら f(x)=w・x + b)とすると、ヒンジ損失は次のように定義されます。
L_hinge(y, f(x)) = max(0, 1 − y f(x))
- y f(x) ≥ 1 のとき:損失は 0(正しく、かつマージンを確保)
- 0 < y f(x) < 1 のとき:0 と 1 の間で線形に減少(正だがマージン未満)
- y f(x) ≤ 0 のとき:誤分類。損失は 1−y f(x) として大きな値になる
SVMとの関係(ソフトマージンSVMの最適化問題)
ソフトマージンSVMの primal 形式はヒンジ損失を用いた次の最小化問題として書けます。
min_{w,b} 1/2 ||w||^2 + C ∑_i max(0, 1 − y_i (w·x_i + b))
ここで 1/2 ||w||^2 はマージンを大きくするための正則化項、C は損失と正則化のトレードオフを調整するハイパーパラメータです。ヒンジ損失により、最適解は「サポートベクトル」と呼ばれるマージン境界上または境界違反している訓練例に依存します。双対問題に変換することでカーネル法を使った非線形SVMが可能になります。
直感と性質
- 凸性:ヒンジ損失は凸であるため、凸最適化手法が適用でき、局所解の問題が起きにくい。
- 非微分点:境界 y f(x) = 1 において微分不連続(サブグラディエントは存在)。
- マージン最大化と整合:ヒンジ損失は0-1損失を上から被覆する(upper bound)ため、マージンを大きくすることが誤分類率の低下に寄与するという理論を得やすい。
- 外れ値への感度:マージン違反に対して線形に罰則を課すため、大きく誤った外れ値は大きな損失を生む(頑健とは一概に言えない)。
勾配(サブグラディエント)
ヒンジ損失は y f(x) < 1 の領域でのみ勾配(実際はサブグラディエント)を持ちます。線形分類器 f(x)=w·x+b の場合、損失に対するサブグラディエントは次の通りです。
- もし y f(x) < 1 なら: ∂/∂w L = −y x (∂/∂b = −y)
- もし y f(x) > 1 なら: ∂/∂w L = 0 (∂/∂b = 0)
- もし y f(x) = 1 なら:サブグラディエントは区間内の値を取る(任意の重み付き和)。
この性質から、確率的勾配降下(SGD)や確率的サブグラディエント法が簡単に適用できます。実用的手法としては Pegasos(確率的サブグラディエント法ベースのSVM)などが知られます。
ヒンジ損失のバリエーション
- 二乗ヒンジ損失(squared hinge):L = max(0, 1 − y f(x))^2。境界付近でより滑らかにし、違反例への罰則を強める。
- 改良ヒンジや滑らか化ヒンジ(smoothed hinge):微分可能にすることで二次法などを使いやすくする目的で用いられる。
- 多クラスヒンジ(Crammer–Singer 等):多クラス分類向けにスコア差とマージンを用いる一般化。代表例は L = max(0, 1 + max_{j≠y} f_j(x) − f_y(x))。
- 構造化ヒンジ損失(structured hinge):ラベル構造を持つ問題(系列タグ付け、構造化予測など)で損失増強推論を組み込む損失。
ヒンジ損失と他の損失関数の比較
- 0-1損失:最も直感的だが非凸で最適化困難。ヒンジは凸な上界(サロゲート)であり最適化可能。
- ロジスティック損失(log loss):確率的出力を与えることができ、滑らか。大きく誤ったサンプルへの挙動は異なるが、理論的にはロジスティック回帰の方が確率推定には向く。
- 感度とロバスト性:ヒンジは誤分類点に対して線形でペナルティを増やすため、外れ値に敏感になり得る。一方で、トリミングや重み付けなどで対処可能。
最適化アルゴリズムと実装上の注意
- バッチ法:二次計画問題(QP)を解く伝統的な方法(SMOなど)。カーネルSVMでは広く使われる。
- 線形SVM向けの効率的手法:liblinear(座標降下等)、Pegasos(確率的サブグラディエント)、LibSVMもよく使われる。
- 非微分点への対処:サブグラディエント法や平滑化により実装。ライブラリは内部でこれらを扱っている。
- ハイパーパラメータ:C(正則化強度)、カーネル(RBF等)、クラス不均衡対策(クラス重みや異なるC)。
- 確率出力が必要な場合:Platt スケーリングや温度付き変換でヒンジベースの出力を確率に変換する。
応用と拡張例
- テキスト分類や画像分類など、特徴が高次元で線形分離しやすい問題に有効。
- 構造化予測(例:系列ラベリング、依存構文解析)では構造化ヒンジ損失が用いられ、損失増強推論(loss-augmented inference)と組み合わせられる。
- 大規模学習では確率的手法(SGD, Pegasos)やオンライン学習が現実的。
実務上のポイントまとめ
- ヒンジ損失は分類マージンを明示的に扱うため、マージンを重視するアプリケーションに向く。
- クラス不均衡や外れ値には注意。重み付けや事前処理で対処する。
- 確率推定が必要なら Platt スケーリング等を検討する。
- 多クラス問題では one-vs-rest も使えるが、Crammer–Singer 型の多クラスヒンジや他のアルゴリズムも検討する。
まとめ
ヒンジ損失は、0-1損失の凸な上界として大変有用な損失関数で、サポートベクターマシンをはじめとする大マージン学習において中心的な役割を持ちます。凸性とマージン最大化に基づく理論的利点、サブグラディエント法やSMOのような多様な最適化手法に適合する実装面の利便性から、実務でも広く使われています。一方で非確率的で非微分点があり、外れ値やクラス不均衡に対する配慮が必要です。用途に応じてヒンジのバリエーションや後処理(確率変換)を組み合わせることで、実用的かつ高性能な分類器を構築できます。
参考文献
- Hinge loss — Wikipedia
- T. Joachims, "Learning to Classify Text Using Support Vector Machines" (SVM概説)
- C. Cortes & V. Vapnik, "Support-Vector Networks", Machine Learning, 1995
- Shalev-Shwartz, Singer & Srebro, "Pegasos: Primal Estimated sub-GrAdient SOlver for SVM", 2007
- R.-E. Fan et al., "LIBLINEAR: A Library for Large Linear Classification"
- SVM FAQ / SVMlight (実装・最適化に関するFAQ)
- Crammer & Singer, "On the Algorithmic Implementation of Multiclass Kernel-based Vector Machines", 2001
- Tsochantaridis et al., "Support Vector Machine Learning for Interdependent and Structured Output Spaces", 2005(構造化SVM)


