Main Content

サポート ベクター マシン回帰について

SVM 回帰の数学的形成化

概要

サポート ベクター マシン (SVM) 分析は分類と回帰のための一般的な機械学習ツールで、Vladimir Vapnik らが 1992 年にはじめて提案しました[5]。SVM 回帰はカーネル関数に依存するので、ノンパラメトリックな手法と考えられます。

Statistics and Machine Learning Toolbox™ では、L1 損失としても知られる、線形のイプシロン不感応 SVM (ε-SVM) 回帰を実装しています。ε-SVM 回帰では、一連の学習データに予測子変数と観測された応答値が含まれています。目標は、各学習点 x において yn からの逸脱が ε を超えない、可能な限りフラットな関数 f(x) を求めることです。

線形 SVM 回帰: 主問題の式

一連の学習データがあり、xn は、観測した応答変数 yn と N 個の観測値が含まれている多変量のセットであるとします。

次の線形関数を求めるとします。

f(x)=xβ+b,

そして、この関数を可能な限りフラットにするとします。これには、ノルムの値 (β′β) が最小になる f(x) を求める必要があります。これは、次を最小化する凸最適化問題として定式化されます。

J(β)=12ββ

これには、すべての残差が ε より小さいという条件があり、方程式の形式では次のようになります。

n:|yn(xnβ+b)|ε.

すべての点についてこれらの制約を満たす関数 f(x) は存在しない可能性があります。実行不可能制約に対処するには、各点にスラック変数 ξn および ξ*n を導入します。スラック変数は必要な条件を満たしたまま ξnξ*n の値まで回帰誤差の存在を許容するので、このアプローチは SVM 分類における "ソフト マージン" の概念に似ています。

スラック変数を含めると、目的関数は次のようになります。これは、主問題の式としても知られています[5]

J(β)=12ββ+Cn=1N(ξn+ξn*),

これには、次の条件が適用されます。

n:yn(xnβ+b)ε+ξnn:(xnβ+b)ynε+ξn*n:ξn*0n:ξn0.

定数 C はボックス制約で、イプシロンのマージン (ε) の範囲外にある観測値に課されるペナルティを制御する正の数値であり、過適合の防止 (正則化) に役立ちます。この値は、f(x) のフラットさと、ε より大きい逸脱を許容する最大量の間のトレードオフを決定します。

線形の ε 許容損失関数は、観測値からの距離が ε 以内である誤差を、ゼロに等しいものとして扱うことにより無視します。損失は、観測値 y と ε 境界の間の距離に基づいて測定されます。正式な表記は次のとおりです。

Lε={0if |yf(x)|ε|yf(x)|εotherwise

線形 SVM 回帰: 双対問題の式

前述した最適化問題は、ラグランジュ双対形式化で解くと計算が簡単になります。双対問題の解は、主 (最小化) 問題の解に対する下限を与えます。主問題と双対問題の最適値は同じである必要はありません。この差は "双対性ギャップ" と呼ばれます。問題が凸型で制約適格性条件を満たす場合、主問題に対する最適な解の値は双対問題の解によって与えられます。

双対問題の式を得るには、各観測値 xn について非負の乗数 αn および α*n を導入することにより、主問題の関数からラグランジュ関数を作成します。これにより双対問題の式が得られ、次を最小化することになります。

L(α)=12i=1Nj=1N(αiαi*)(αjαj*)xixj+εi=1N(αi+αi*)+i=1Nyi(αi*αi)

以下の制約に従います。

n=1N(αnαn*)=0n:0αnCn:0αn*C.

次の方程式を使用すると、パラメーター β を学習観測値の線形結合として完全に表すことができます。

β=n=1N(αnαn*)xn.

新しい値の予測に使用する関数は、サポート ベクターのみに依存します。

f(x)=n=1N(αnαn*)(xnx)+b.(1)

カルーシュ・キューン・タッカー (KKT) 相補性条件は、最適な解を得るために必要な最適化制約です。線形 SVM 回帰の場合、これらの条件は次のようになります。

n:αn(ε+ξnyn+xnβ+b)=0n:αn*(ε+ξn*+ynxnβb)=0n:ξn(Cαn)=0n:ξn*(Cαn*)=0.

これらの条件は、完全にイプシロン チューブの内部にあるすべての観測値にラグランジュ乗数 αn = 0 および αn* = 0 があることを示します。αn または αn* のいずれかがゼロではない場合、対応する観測値は "サポート ベクター" と呼ばれます。

学習済み SVM モデルの Alpha プロパティには、サポート ベクターの 2 つのラグランジュ乗数の差 αn – αn* が格納されます。SupportVectors プロパティと Bias プロパティには、それぞれ xn と b が格納されます。

非線形 SVM 回帰: 主問題の式

一部の回帰問題は、線形モデルを使用して適切に表すことはできません。このような場合は、ラグランジュ双対形式を使用して、前述した手法を非線形関数に拡張できます。

非線形 SVM 回帰モデルを得るには、ドット積 x1′x2 を非線形カーネル関数 G(x1,x2) = <φ(x1),φ(x2)> に置き換えます。ここで、φ(x) は x を高次元空間にマッピングする変換です。Statistics and Machine Learning Toolbox には、次の半正定値カーネル関数が組み込まれています。

カーネル名カーネル関数
線形 (ドット積)G(xj,xk)=xjxk
ガウスG(xj,xk)=exp(xjxk2)
多項式G(xj,xk)=(1+xjxk)q。ここで、q は集合 {2,3,...} に含まれます。

"グラム行列" は、gi,j = G(xi,xj) という要素が含まれている n 行 n 列の行列です。各要素 gi,j は、φ で変換した予測子の内積と等しくなります。しかし、カーネル関数を使用して直接グラム行列を生成できるので、φ が既知である必要はありません。非線形 SVM では、この方法を使用して、変換した予測子空間で最適な関数 f(x) を求めます。

非線形 SVM 回帰: 双対問題の式

非線形 SVM 回帰の双対問題の式では、予測子の内積 (xi′xj) をグラム行列の対応する要素 (gi,j) に置き換えます。

非線形 SVM 回帰では、次を最小化する係数を求めます。

L(α)=12i=1Nj=1N(αiαi*)(αjαj*)G(xi,xj)+εi=1N(αi+αi*)i=1Nyi(αiαi*)

これには、次の条件が適用されます。

n=1N(αnαn*)=0n:0αnCn:0αn*C.

新しい値の予測に使用される関数は以下に等しくなります。

f(x)=n=1N(αnαn*)G(xn,x)+b.(2)

KKT 相補性条件は次のようになります。

n:αn(ε+ξnyn+f(xn))=0n:αn*(ε+ξn*+ynf(xn))=0n:ξn(Cαn)=0n:ξn*(Cαn*)=0.

SVM 回帰の最適化問題を解く

ソルバーのアルゴリズム

最小化問題は、標準的な二次計画法の形式で表し、一般的な二次計画法の手法を使用して解くことができます。しかし、特にグラム行列が大きくなりすぎてメモリに格納できなくなる場合があるので、二次計画法のアルゴリズムを使用すると計算コストが高くなる可能性があります。代わりに分解法を使用すると、計算が高速になり、メモリ不足を回避できます。

"分解法" ("チャンクおよびワーキング セット法" とも呼ばれます) では、すべての観測値をワーキング セットおよび残りのセットという 2 つの互いに素な集合に分割します。そして、各反復でワーキング セットの要素のみを修正します。したがって、各反復ではグラム行列の一部の列のみが必要になり、必要なストレージの量が少なくなります。

"逐次最小最適化法" (SMO) は、SVM 問題を解くための最も一般的なアプローチです[4]。SMO では、一連の 2 点最適化を実行します。各反復では、2 つの点のワーキング セットが、2 次情報を使用する選択規則に基づいて選択されます。そして、[2][1]に記載されているアプローチを使用して、このワーキング セットのラグランジュ乗数を解析的に解きます。

SVM 回帰では、各反復後にアクティブ セットの勾配ベクトル L が更新されます。勾配ベクトルについて分解した方程式は、次のようになります。

(L)n={i=1N(αiαi*)G(xi,xn)+εyn,nNi=1N(αiαi*)G(xi,xn)+ε+yn,n>N.

"反復単一データ アルゴリズム" (ISDA) では、各反復で 1 つのラグランジュ乗数を更新します[3]。多くの場合、ISDA は小さい正の定数 a をカーネル関数に加算することにより、バイアス項 b を使用せずに実行されます。b がなくなると双対問題の方程式における総和制約がなくなり、

n=1N(αiα*)=0

次のようになります。これにより各反復で 1 つのラグランジュ乗数を更新できるので、外れ値を削除することが SMO の場合より簡単になります。ISDA では、更新するワーキング セットとして、すべての αn および αn* の値から最悪の KKT 違反値を選択します。

収束基準

これらのソルバー アルゴリズムでは、指定された収束基準が満たされるまで繰り返し計算を行います。収束基準には、いくつかのオプションがあります。

  • "実行可能性ギャップ" ― 実行可能性ギャップは、次のように表されます。

    Δ=J(β)+L(α)J(β)+1,

    ここで、J(β) は主目的、L(α) は双対目的です。各反復後、実行可能性ギャップが評価されます。GapTolerance で指定した値より実行可能性ギャップが小さくなった場合、収束基準が満たされ、解が返されます。

  • "勾配差分" ― 各反復後、勾配ベクトル L が評価されます。現在の反復と前回の反復における勾配ベクトルの値の差分が DeltaGradientTolerance で指定した値より小さくなった場合、収束基準が満たされ、解が返されます。

  • KKT 違反の最大値 — 各反復後、すべての αn および αn* の値について KKT 違反値が評価されます。違反の最大値が KKTTolerance で指定した値より小さくなった場合、収束基準が満たされ、解が返されます。

参照

[1] Fan, R.E. , P.H. Chen, and C.J. Lin. "A Study on SMO-Type Decomposition Methods for Support Vector Machines." IEEE Transactions on Neural Networks, Vol. 17:893–908, 2006.

[2] Fan, R.E. , P.H. Chen, and C.J. Lin. "Working Set Selection Using Second Order Information for Training Support Vector Machines." The Journal of Machine Learning Research, Vol. 6:1871–1918, 2005.

[3] Huang, T.M., V. Kecman, and I. Kopriva. Kernel Based Algorithms for Mining Huge Data Sets: Supervised, Semi-Supervised, and Unsupervised Learning. Springer, New York, 2006.

[4] Platt, J. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines. Technical Report MSR-TR-98–14, 1999.

[5] Vapnik, V. The Nature of Statistical Learning Theory. Springer, New York, 1995.

参考

| | |

関連するトピック