18 期待値最大化
- 期待値最大化とは
期待値最大化(EM)では、様々な用途の混合モデルが推定されます。これにより、クラスタリングと異常検出が拡張されます。 - アルゴリズムの拡張
期待値最大化(EM)は、その標準形式でのいくつかの課題を解決するために拡張されています。 - アルゴリズムの構成
期待値最大化(EM)を構成します。 - 期待値最大化用のデータ準備
期待値最大化(EM)用のデータを準備する方法を学習します。
関連項目
親トピック: アルゴリズム
18.1 期待値最大化とは
期待値最大化(EM)では、様々な用途の混合モデルが推定されます。これにより、クラスタリングと異常検出が拡張されます。
Oracle Machine Learningでは、EMを使用して分布ベースのクラスタリング・アルゴリズム(EMクラスタリング)および分布ベースの異常検出アルゴリズム(EM異常)が実装されます。
- 期待値ステップと最大化ステップ
EMでは、モデルの精度が高まる可能性が繰り返し計算され最大化されます。それにより、信頼できるクラスタリング結果になるようにします。 - 確率密度推定
確率密度を使用して信頼性の高いクラスタ割当てを計算できます。
親トピック: 期待値の最大化
18.1.1 期待値ステップと最大化ステップ
EMでは、モデルの精度が高まる可能性が繰り返し計算され最大化されます。それにより、信頼できるクラスタリング結果になるようにします。
期待値最大化は、反復的な方法です。それは、初期パラメータの不確定要素で始まります。パラメータ値を使用して、現在のモデルの可能性が計算されます。これは、期待値ステップです。次にパラメータ値は、可能性を最大化するよう再計算されます。これは、最大化ステップです。新しいパラメータ推定値を使用して新しい期待値が計算され、推定値は、可能性を最大化するように再び最適化されます。この反復プロセスは、モデルが収束するまで続きます。
親トピック: 期待値最大化とは
18.1.2 確率密度推定
確率密度を使用して信頼性の高いクラスタ割当てを計算できます。
密度推定の目的は、所与の母集団がどのように分布しているかを取得する密度関数を構成することです。確率密度推定において、密度推定値は、母集団のサンプルを表現する観測済データに基づきます。モデル内の高データ密度の領域は、基礎となる分布のピークに対応します。
密度ベースのクラスタリングは、強調がクラスタ内の最小の距離および最大の距離に配置される距離ベースのクラスタリング(k-Meansなど)とは概念的に異なります。密度ベースのクラスタリングは、確率的な性質を持つため、クラスタ割当てで信頼性の高い確率を計算できます。欠損値を自動的に処理することもできます。
分布ベースの異常検出アルゴリズムは、オブジェクトの確率密度がデータ・セット内の他のデータ・レコードの密度より低い場合に、そのオブジェクトを外れ値として識別します。EM異常アルゴリズムは、基礎となるデータ分布を取得できるため、学習したデータ分布に適合しないレコードにフラグを設定できます。
親トピック: 期待値最大化とは
18.2 アルゴリズムの拡張
期待値最大化(EM)は、その標準形式でのいくつかの課題を解決するために拡張されています。
EMは分布ベースのアルゴリズムとして確立されていますが、その標準形式では多少扱いづらいところがあります。Oracle Machine Learning for SQLの実装には、大容量データのスケーラブルな処理や自動パラメータ初期化などの重要な拡張が含まれています。EMクラスタリングおよびEM異常の固有の制限事項に対処するために、OML4SQLで使用される方針についてさらに説明します。
ノート:
EMの略称は、ここでは、EMクラスタリングとEM異常の両方に共通する確率密度推定の一般的なEM手法を指すために使用します。
標準の期待値最大化の制限事項:
-
スケーラビリティ: EMには、レコードと属性の数に応じた線形のスケーラビリティがあります。収束に至るまでの反復回数は、増大するデータ・サイズ(行と列の両方)に伴って増加する傾向があります。EMの収束は、複雑な問題に対応する場合は速度が低下し、計算リソースに相当な負荷をかける可能性があります。
-
高いディメンション性: EMにおける高次元(ワイド)データのモデリング用の容量には制限があります。多くの属性の存在がモデルの収束速度を低下させ、アルゴリズムが意味のある属性とノイズを区別する能力も低下します。そのため、アルゴリズムによる相関検出能力は弱まります。
-
成分数: EMでは、通常、ユーザーが成分数を指定する必要があります。ほとんどの場合、これは、ユーザーが前もって知ることができる情報ではありません。
-
パラメータ初期化: 適切な初期パラメータ値の選択が、モデルの品質に重大な影響を与えることがあります。EMに使用されている初期化の方針は、一般的に、計算上高い負荷を伴います。
-
成分からクラスタへ: EMクラスタリング・モデルでは、通常、成分はクラスタとして扱われます。密集性の高いクラスタは、通常、複数の成分によってモデル化されるため、このアプローチには問題があります。複雑な形状を持つクラスタは、複数の成分によってモデル化される必要があります。これを実現するため、Oracle Machine Learning for SQLによるEMクラスタリング実装では、個々の成分の分布の重複に基づいて成分階層が作成されます。OML4SQL EMクラスタリング・アルゴリズムでは、凝集型階層クラスタリングを採用しています。OML4SQLによるEMクラスタリング実装では、高レベル・クラスタへのモデルの成分の割当てが生成されます。
-
異常検出: EM異常検出では、オブジェクトが正常か異常かを分類するために異常確率が使用されます。EMアルゴリズムは、異常の確率にマップされるデータ・レコードの確率密度を推定します。
- スケーラビリティ
期待値最大化(EM)では、データベースのパラレル処理を使用して優れたスケーラビリティが実現されます。それにより、大規模なデータセットが効率的に処理されるようになります。 - 高いディメンション性
期待値最大化によって高次元のデータを処理します。 - 成分数
EMでは、最適な成分数が自動的に判断されます。それにより、モデルの精度を高め、オーバーフィットを防ぎます。 - パラメータ初期化
適切な初期パラメータ値の選択が、解決策の質に重大な影響を与えることがあります。 - 成分からクラスタへ
期待値最大化では、高レベル・クラスタへのモデルの成分の割当てが生成されます。 - 異常検出の期待値最大化
EMでは、確率密度に基づいて異常が識別されます。それにより、正確な異常検出が実現されて、データの整合性が高まります。
親トピック: 期待値の最大化
18.2.1 スケーラビリティ
期待値最大化(EM)では、データベースのパラレル処理を使用して優れたスケーラビリティが実現されます。それにより、大規模なデータセットが効率的に処理されるようになります。
Oracle Machine Learning for SQLによる期待値最大化の実装では、データベースのパラレル処理を使用して優れたスケーラビリティを実現します。EMの計算は、基本的に、行のパラレル処理に役立つもので、部分的な結果は容易に集計されます。パラレル実装によって、計算集中型の作業がセカンダリ・プロセス全体に効率的に分散され、部分的な結果が結合されて最終的な解決策が生成されます。
親トピック: アルゴリズムの拡張
18.2.2 高いディメンション性
期待値最大化によって高次元のデータを処理します。
Oracle Machine Learning for SQLによる期待値最大化(EM)の実装では、数千もの属性を持つ高次元データを効率的に処理できます。これは、次の2段階のプロセスを通じて実行されます。
-
単一列(ネストなし)属性のデータ空間が、ペアワイズ相関用に分析されます。他の属性と重大な相関性のある属性のみが、EM混合モデルに含まれます。アルゴリズムは、M個の最も相関性のある属性にディメンション性を制限するように構成することも可能です。
-
同様のタイプのイベントを測定する高次元の(ネストした)量的データは、EMによってモデル化された低次元の特徴セットに投影されます。高次元の量的データの例として、テキスト、推奨事項、遺伝子発現、マーケット・バスケット・データなどがあります。
親トピック: アルゴリズムの拡張
18.2.3 成分数
EMでは、最適な成分数が自動的に判断されます。それにより、モデルの精度を高め、オーバーフィットを防ぎます。
期待値最大化(EM)の典型的な実装では、ユーザーは、モデルの成分数を指定する必要があります。ユーザーは一般的に正しい成分数を知らないため、これには問題があります。選択する成分が多すぎたり少なすぎたりすると、それぞれオーバーフィットやアンダーフィットが発生する可能性があります。
モデル検索を有効にすると、EMの成分数は自動的に決定されます。アルゴリズムでは、保持サンプルを使用して正しい成分数を決定しますが、ベイズ情報量規準(BIC)の正則化が使用されている場合の非常に小規模なデータセットについては除外します。
親トピック: アルゴリズムの拡張
18.2.4 パラメータ初期化
適切な初期パラメータ値の選択が、解決策の品質に重大な影響を与えることがあります。
期待値最大化(EM)では、尤度関数の全体的な最大値に収束することが保証されるわけではなく、かわりに局所的な最大値に収束する可能性があります。そのため、異なる初期パラメータ値によって、異なるモデル・パラメータおよび異なるモデル品質が導かれることがあります。
モデル検索の過程において、EMモデルは独自に拡大します。新しい成分が追加されると、それらのパラメータは、分布適用が少ない領域に初期化されます。
親トピック: アルゴリズムの拡張
18.2.5 成分からクラスタへ
期待値最大化では、高レベル・クラスタへのモデルの成分の割当てが生成されます。
期待値最大化(EM)モデルの成分は、通常、クラスタとして扱われます。ただし、このアプローチでは問題が発生する可能性があります。密集性の高いクラスタは、通常、複数の成分によってモデル化されます。EMで使用される確率密度関数の形状によって、識別されたクラスタの形状が効率的に前もって決定されます。たとえば、ガウス密度関数では、単一ピークの対称クラスタを識別できます。より複雑な形状のクラスタは、複数の成分によってモデル化される必要があります。
任意の形状の高密度領域は、単一クラスタとして解釈される必要があります。これを実現するため、Oracle Machine Learning for SQLによるEM実装では、個々の成分の分布の重複に基づいた成分階層が構築されます。OML4SQLのEMでは、凝集型階層クラスタリングが使用されます。成分分布の重複は、バタチャリア距離関数を使用して測定されます。階層内の適切なカットオフ・レベルを選択すると、高レベル・クラスタの数が自動的に決定されます。
OML4SQLによるEM実装では、高レベル・クラスタへのモデルの成分の割当てが生成されます。平均、分散、最頻値、ヒストグラムおよびルールなどの統計では、追加で高レベル・クラスタを説明します。アルゴリズムは、クラスタリング割当てを成分レベルで生成するか、クラスタ・レベルで生成するように構成できます。
親トピック: アルゴリズムの拡張
18.2.6 異常検出の期待値最大化
期待値最大化(EM)では、確率密度に基づいて異常が特定されます。それにより、正確な異常検出が実現されてデータの整合性が高まります。
オブジェクトの異常確率が0.5を超えると、そのオブジェクトはEM異常モデルの外れ値として識別されます。ラベル1は正常を示し、ラベル0は異常を示します。EM手法は、データ・セットの基礎となるデータ分布をモデル化し、データ・レコードの確率密度が異常確率に変換されます。
次の例では、期待値最大化アルゴリズムを使用した異常検出に使用するコード・スニペットを示します。EMCS_OUTLIER_RATE
設定を指定して、トレーニング・データ・セットの目標の外れ値率を取得します。
-- SET OUTLIER RATE IN SETTINGS TABLE - DEFAULT IS 0.05
--
BEGIN DBMS_DATA_MINING.DROP_MODEL('CUSTOMERS360MODEL_AD');
EXCEPTION WHEN OTHERS THEN NULL; END;
/
DECLARE
v_setlst DBMS_DATA_MINING.SETTING_LIST;
BEGIN
v_setlst('ALGO_NAME') := 'ALGO_EXPECTATION_MAXIMIZATION';
v_setlst('PREP_AUTO') := 'ON';
v_setlst('EMCS_OUTLIER_RATE') := '0.1';
DBMS_DATA_MINING.CREATE_MODEL2(
MODEL_NAME => 'CUSTOMERS360MODEL_AD',
MINING_FUNCTION => 'CLASSIFICATION',
DATA_QUERY => 'SELECT * FROM CUSTOMERS360_V',
CASE_ID_COLUMN_NAME => 'CUST_ID',
SET_LIST => v_setlst,
TARGET_COLUMN_NAME => NULL); -- NULL target indicates anomaly detection
END;
/
親トピック: アルゴリズムの拡張
18.3 アルゴリズムの構成
期待値最大化(EM)を構成します。
Oracle Machine Learning for SQLでは、EMによって、ユーザーが初期化パラメータを指定する必要もモデルの成分数を指定する必要もなく、非常に大規模なデータセット(行と列の両方)を効果的にモデル化できます。アルゴリズムによって合理的なデフォルトが提供されますが、同時に柔軟性も得ることができます。
次のリストで、EMの構成可能ないくつかの要素について説明します。
-
ネストしていない列の独立属性をモデルに含めるかどうか。EMクラスタリングのデフォルトでは、システムで決定されます。EM異常の場合、各列の属性の極値は、属性自体の他の列への依存性が低い場合でも、潜在的な外れ値を示す可能性があります。したがって、デフォルトでは、アルゴリズムによってEM異常での属性の削除が無効化されます。
-
量的属性にベルヌーイ分布またはガウス分布のどちらを使用するか。デフォルトでは、アルゴリズムによって最も適切な分布が選択されますが、個々の属性では異なる分布を使用できます。分布は、ユーザーによって指定されると、すべての量的属性に使用されます。
-
収束基準を保持データセットまたはベイズ情報量規準(BIC)のどちらに基づかせるか。収束基準は、デフォルトでシステムによって決定されます。
-
新しい成分をモデルに追加するために必要な対数尤度関数の値における割合の改善。デフォルトの割合は0.001です。
-
EMクラスタリングの場合、クラスタを個別の成分として定義するか、成分のグループとして定義するか。クラスタは、デフォルトで成分のグループに関連付けられます。
-
モデルの成分の最大数。モデル検索が有効である場合、アルゴリズムによって、尤度関数の改良または正則化(BIC)に基づいて成分の数が(指定した最大値を限度に)決定されます。
-
EMクラスタリングの場合、凝集型クラスタリング・ステップ用の結合関数で、枝内の最近隣距離(単一結合)、枝内の平均距離(平均結合)、または枝内の最大距離(完全結合)のどれを使用するか。デフォルトでは、アルゴリズムによって単一結合が使用されます。
- EM異常の場合、異常とみなすデータの割合を指定するかどうか。「疑わしい」ケースの数がデータの一定の割合であることが事前にわかっている場合は、外れ値の率をその割合に設定できます。アルゴリズムのデフォルト値は0.05です。
関連項目:
使用可能なモデル設定のリストおよび説明は、DBMS_DATA_MINING - アルゴリズムの設定: 期待値の最大化を参照してください。ノート:
モデル設定と同じ意味でハイパーパラメータという用語も使用されます。親トピック: 期待値の最大化
18.4 期待値最大化用のデータ準備
期待値最大化(EM)のデータを準備する方法を学習します。
自動データ準備(ADP)を使用する場合、期待値最大化用の追加のデータ準備を指定する必要はありません。ネストしていない列の量的属性は、ガウス分布でモデル化される場合、ADPによって正規化されます。ADPは、上位Nのビニング変換を質的属性に適用します。
欠損値の処理は、Oracle Machine Learning for SQLのアルゴリズムによって自動的に行われるため、必要ありません。EMアルゴリズムによって、欠損値は、ガウス分布でモデル化される単一列の量的属性の平均値に置換されます。他の単一列の属性(ベルヌーイ分布でモデル化される質的属性および量的属性)では、NULLは、独自の頻度数を持つ個別値として扱われるため、置換されません。ネストした列では、欠損値は0 (ゼロ)として扱われます。
親トピック: 期待値の最大化