インテル® DAAL 2017 デベロッパー・ガイド
サイズ 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、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |