インテル® DAAL プログラミング・ガイド
サイズ p の n 特徴ベクトル x1= (x11,…,x1p), ..., xn= (xn1,…,xnp)、クラスラベルのベクトル y = (y1,…,yn)、ここで yi∈ {-1,1} は特徴ベクトル xi が属するクラスで、2 クラス SVM (サポート・ベクトル・マシン) 分類器を作成します。
SVM モデルは、二次最適化問題のソリューションである Boser メソッド [Boser92] を使用して訓練されます。
0 ≤αi≤C, i = 1, ... , n, yTα = 0
ここで、e はベクトル、C はベクトル α の座標の上限、Q はサイズ n x n で Qij=yiyjK(xi,xj) の対称行列、K(x,y) はカーネル関数です。
アルゴリズムの各反復で更新される α の作業サブセットは、作業セット選択 (WSS) 3 スキーム [Fan05] に基づきます。スキームは、以下のいずれかまたは両方の手法を使用して最適化できます。
キャッシュ。
この実装は、カーネル計算の結果を格納するメモリーを事前に定義されたサイズで割り当てます。
シュリンク。
この実装は、カーネルに関連する計算の量を減らします ([Joachims99] を参照)。
問題のソリューションは、分離超平面と対応する決定関数 D(x)= ∑kykαkK(xk,x) + b を定義します。ここで、非ゼロの αk に対応する xk のみ和に現れます。b はバイアスです。各非ゼロの αk は分類係数と呼ばれ、対応する xk はサポートベクトルと呼ばれます。
SVM 分類器と r 特徴ベクトル x1,…,xr で、決定関数 D(xi), i=1, ... , r の符号付きの値を計算します。値の符号は、特徴ベクトルのクラスを定義します。関数の絶対値は、特徴ベクトルと分離超平面の間の距離の倍数です。
インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。 改訂 #20110804 |