ヘッダーをスキップ
Oracle Data Mining概要
11g リリース2(11.2)
E48231-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

18 サポート・ベクター・マシン

この章では、統計的学習理論に基づいた強力なアルゴリズムであるサポート・ベクター・マシンについて説明します。サポート・ベクター・マシンは、分類、回帰および異常検出用にOracle Data Miningによって実装されています。


参考:

2005年第31回VLDB Conference(ノルウェー、トロンヘイム)会報『SVM in Oracle Database 10g: Removing the Barriers to Widespread Adoption of Support Vector Machines』(Milenova, B.L.、Yarmus, J.S.、Campos, M.M.共著)

http://www.oracle.com/technology/products/bi/odm/


この章には、次の項が含まれます。

サポート・ベクター・マシンとは

サポート・ベクター・マシン(SVM)は、Vapnik-Chervonenkis理論に基づいた強固な理論的基礎を持つ最新の強力なアルゴリズムです。SVMは、強力な正則化プロパティを持ちます。正則化とは、新しいデータへのモデルの一般化を指します。

SVMの利点

SVMモデルは、一般的なデータ・マイニング手法であるニューラル・ネットワークおよび動径基底関数に似た関数形式を持ちます。ただし、どちらのアルゴリズムも、SVMの基盤を形成する正則化に対して根拠のある理論的アプローチを持ちません。SVMのトレーニングの容易性と一般化の質は、これらのより伝統的な手法の機能をはるかに凌いでいます。

SVMでは、テキストや画像の分類、手書き文字の認識、バイオインフォマティクスや配列分析など、実際の世界の複雑な問題をモデル化できます。

SVMは、モデルをトレーニングするケースがごくわずかでも多くの属性を持つデータセットではよく機能します。属性の数に上限はなく、ハードウェアによる制約があるのみです。従来のニューラル・ネットは、このような状況ではうまく機能しません。

Oracle Data MiningのSVMの利点

Oracle Data Miningは独自のSVMを実装しており、この実装では、SVMフレームワークに本来備わっている一部の制限を補いながら、このアルゴリズムの多くの利点を活かしています。Oracle Data MiningのSVMでは、本番レベルのデータ・マイニング・システムで必要とされるスケーラビリティおよび利用性が提供されます。

利用性

SVMは専門家のためのツールと考えられてきたため、主に拡張された機能は利用性です。アルゴリズムでは、通常、データの準備、チューニングおよび最適化が必要です。Oracle Data Miningでは、これらの要件を最小限に抑えます。専門家でなくても、Oracle Data Miningで質の高いSVMモデルを構築できます。次に例を示します。

スケーラビリティ

非常に大規模なデータセットを扱う場合、サンプリングが頻繁に必要となります。しかし、Oracle Data MiningのSVMではサンプリングは必要ありません。これは、必要に応じてトレーニング・データのサイズを削減するために、このアルゴリズム自体で層別サンプリングが行われるためです。

Oracle Data MiningのSVMは非常によく最適化されています。このSVMでは、グローバルなソリューションに対して小さなワーキング・セットを最適化することによって、モデルを増分的に作成します。モデルは、現在のワーキング・セットが収束するまでトレーニングされてから、新しいデータに適用されます。このプロセスは、収束条件が満たされるまで繰り返し続行されます。ガウス・カーネルでは、ワーキング・セットの管理にキャッシュ技術が使用されます。「カーネルベースの学習」を参照してください。

Oracle Data MiningのSVMでは能動学習がサポートされています。これは、モデルのトレーニングに必要な時間およびメモリーのリソースを削減しつつ、より小さくてコンパクトなモデルを作成する最適化方法です。「能動学習」を参照。

カーネルベースの学習

SVMはカーネルベースのアルゴリズムです。カーネルは、問題が解決される高次元空間に入力データを変換する関数です。カーネル関数は線形の場合も非線形の場合もあります。

Oracle Data Miningでは、線形カーネルおよびガウス(非線形)カーネルがサポートされています。

Oracle Data Miningでは、線形カーネル関数が、トレーニング・データ内の元の属性に関する一次方程式に還元されます。線形カーネルは、トレーニング・データ内に多数の属性が存在する場合に適しています。

ガウス・カーネルによって、トレーニング・データ内の各ケースがn-次元空間(nはケースの数)のポイントに変換されます。アルゴリズムは、ポイントを同質ターゲット値のサブセットに分割しようと試みます。ガウス・カーネルでは、非線形のセパレータが使用されますが、カーネル空間では一次方程式の構造となります。

能動学習

能動学習は、モデルの増加を制御し、モデルの作成時間を短縮する最適化方法です。能動学習を使用しない場合、構築データセットのサイズが増加するにつれてSVMモデルも拡大し、SVMモデルを小規模および中規模サイズ(100,000ケース未満)のトレーニング・セットに効果的に制限します。能動学習には、この制限事項を回避する方法があります。能動学習では、非常に大規模なトレーニング・セット上にSVMモデルを構築できます。

能動学習により、SVMアルゴリズムは最も有益なトレーニング・サンプルを学習し、データ全体を使用しないように制限されます。多くの場合、生成されるモデルの予測精度は、標準的な(精密な) SVMモデルの予測精度と同程度になります。

能動学習によって、線形およびガウスSVMモデルのどちらにおいても、分類、回帰または異常検出が大幅に改善されます。ただし、能動学習は、ガウス・カーネルに対して特に有効です(それ以外の場合、非線形モデルは非常に大規模に増加し、メモリーおよびその他のシステム・リソースを大幅に使用する場合があるため)。

SVMモデルのチューニング

SVMには、データに基づいて適切な設定を自動的に選択するメカニズムが組み込まれています。分野によっては、システムで決定された設定をオーバーライドする必要がある場合もあります。

表18-1で説明する構築設定は、SVMモデルの構成に使用できます。特に指定されていなければ、回帰、分類および異常検出に関する設定を指します。

表18-1 サポート・ベクター・マシンの構築設定

設定名 構成対象 説明

SVMS_KERNEL_FUNCTION

カーネル

線形またはガウス。対象データに最も適切なカーネル関数がアルゴリズムによって自動的に使用される。

SVMでは、トレーニング・データ内に多数の(100を超える)属性が存在する場合に線形カーネルが使用され、それ以外の場合にガウス・カーネルが使用される。「カーネルベースの学習」を参照してください。

属性の数は、トレーニング・データ内の列数には対応しない。SVMでは、質的属性が2項の量的属性に展開される。さらに、Oracle Data Miningでは、ネストした列の各行が別個の属性として解釈される。「SVM用のデータ準備」を参照。

SVMS_STD_DEV

ガウス・カーネルの標準偏差

ガウス・カーネル関数の分布を制御する。

SVMでは、データ駆動の手法が使用され、通常のケース間の距離と同じスケールにある標準偏差値が検出される。

SVMS_KERNEL_CACHE_SIZE

ガウス・カーネルのキャッシュ・サイズ

モデルの作成時間を短縮するためにメモリー内に維持される、ガウス・カーネルのキャッシュに割り当てられたメモリー量。デフォルトのキャッシュ・サイズは50MB。

SVMS_ACTIVE_LEARNING

能動学習

能動学習を使用するかどうか。この設定は、非線形(ガウス) SVMモデルに対して特に重要となる。

デフォルトでは、能動学習が使用される。「能動学習」を参照。

SVMS_COMPLEXITY_FACTOR

複雑性要素

新しいデータに対して優れた一般化を実現するための、モデルの堅牢性に対するモデルの複雑性のバランスをとる正則化設定。SVMでは、データ駆動の手法を使用して複雑性要素が検出される。

SVMS_CONVERGENCE_TOLERANCE

収束許容値

モデルのトレーニング・プロセスを完了するための基準。デフォルトは0.001。

SVMS_EPSILON

回帰用のイプシロン要素

回帰用の正則化設定(複雑性要素と似ている)。イプシロンによって、データ内で許容される残差(ノイズ)が指定される。

SVMS_OUTLIER_RATE

異常検出の外れ値

異常検出で期待される外れ値の率。デフォルトの割合は0.1。



関連項目:

SVM設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

SVM用のデータ準備

SVMアルゴリズムは、量的属性に対してネイティブに作用します。このアルゴリズムでは、質的データはカテゴリ値ごとに2項属性のセットとして自動的に展開されます。たとえば、値marriedまたはsingleを持つ婚姻区分用の文字列の列は、marriedsingleという2つの量的属性に変換されます。新しい属性には、値1 (true)または0 (false)が格納されます。

単純な(ネストしていない)データ型の列に欠損値がある場合、SVMではそれらをランダムに欠損した値として解釈します。質的データの欠損値は最頻値に、量的データの欠損値は平均値に自動的に置換されます。

ネストした列に欠損値がある場合、SVMではそれらをスパースとして解釈します。スパースな量的データは0 (ゼロ)に、スパースな質的データはゼロ・ベクトルに自動的に置換されます。

正規化

SVMでは、量的な入力を正規化する必要があります。正規化によって、量的属性の値が同じスケール上に配置され、元の大規模なスケールを持つ属性によってソリューションに偏りがでることが回避されます。正規化はまた、オーバーフローおよびアンダーフローの可能性を最小限に抑えます。さらに、正規化によって量的属性が、展開された質的データと同じスケール(0,1)に配置されます。

SVMと自動データ準備

欠損値の処理や質的データの変換はSVMアルゴリズムによって自動的に実行されますが、正規化や外れ値の検出はADPで処理するか、手動で準備する必要があります。ADPは、SVM用にmin-max正規化を実行します。


注意:

SVMでは自動データ準備を使用することをお薦めします。ADPで実行される変換は、ほとんどのモデルに対して適切です。

第19章「自動データ準備と組込みのデータ準備」を参照してください。


SVM分類

SVM分類は、決定境界を定義する決定面の概念に基づいています。決定面は、異なるクラスのメンバーシップを持つオブジェクト・セット間を区別するものです。SVMは、クラスの最も広範な区切りを与えるセパレータを定義するベクター(サポート・ベクター)を検出します。

SVM分類では、2項および多クラスの両ターゲットがサポートされます。

クラスの重み

SVM分類では、重みは、ターゲット値(クラス)の相対的な重要度を示すためのバイアス・メカニズムです。

SVMモデルは、クラス全体にわたって最良の平均予測を得るために自動的に初期化されます。ただし、トレーニング・データが実際の分布を代表していない場合は、モデルにバイアスをかけて、十分に代表されていないクラス値を補正できます。クラスの重みを増やすと、そのクラスの正しい予測子の割合が増加します。


関連項目:

「事前確率」

1クラスSVM

Oracle Data Miningでは、異常検出用の1クラス分類機能としてSVMが使用されます。SVMは異常検出で使用される場合、分類マイニング機能を持ちますが、ターゲットは使用しません。

1クラスSVMモデルは、適用時に、スコアリング・データの各ケースに対して予測および確率を生成します。予測が1の場合、そのケースは典型的とみなされます。予測が0の場合、そのケースは異常とみなされます。この動作は、モデルが標準データでトレーニングされていることを反映しています。

異常とみなすデータの割合は、SVMS_OUTLIER_RATE構築設定で指定できます。「疑わしい」ケースの数が母集団の一定の割合であることがわかっている場合、その割合に外れ値の率を設定できます。モデルは、一般母集団への適用時に、その数の「頻度の低い」ケースをおおまかに識別します。デフォルトは10%ですが、この値は多くの異常検出問題において高い設定値となります。

SVM回帰

SVMでは、回帰問題を解決するために、イプシロン非感受性損失関数が使用されます。

SVM回帰では、データ・ポイントの最大数がイプシロン幅の非感受性チューブ内に収まるような連続関数の検出が試行されます。真のターゲット値のイプシロン距離内におさまる予測は、誤差として解釈されません。

イプシロン要素は、SVM回帰用の正則化設定です。この設定によって、モデルの堅牢性と誤差のマージンのバランスがとられ、新しいデータへの最適な一般化を実現できます。SVM用の構築設定については、表18-1を参照してください。