(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241112BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2023556013
(86)(22)【出願日】2021-10-29
(86)【国際出願番号】 JP2021039967
(87)【国際公開番号】W WO2023073903
(87)【国際公開日】2023-05-04
【審査請求日】2024-04-16
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】岡嶋 穣
【審査官】今城 朋彬
(56)【参考文献】
【文献】特開2019-061494(JP,A)
【文献】特開2018-027577(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
複数の特徴量の集合として表現される事例を取得する取得手段と、
前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測手段と、
前記複数の予測結果を参照して、事例の異常度を出力する異常度出力手段とを備える
ことを特徴とする情報処理装置。
【請求項2】
前記予測手段は、
前記部分集合のそれぞれに対して1以上の予測モデルもしくは予測ルールを用いることで前記予測結果を複数出力する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記複数の特徴量のそれぞれの間の関連性が予め与えられ、
前記部分集合は、前記少なくとも何れかの特徴量との関連度が相対的に低い特徴量により構成される
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記取得手段は、前記関連性に関する情報を更に取得し、
前記予測手段は、
前記関連性に関する情報を参照して、前記少なくとも何れかの特徴量との関連度が相対的に低い特徴量を特定し、特定した特徴量により前記部分集合を構成する
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記予測手段は、
前記少なくとも何れかの特徴量を除く特徴量から1以上の特徴量をランダムに選択し、
前記選択を繰り返して得られた部分集合のそれぞれを前記説明変数として用いて、前記予測結果を複数出力する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項6】
前記予測手段は、
前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量を参照して学習された決定木に含まれる各ノードからルールを抽出するルール抽出手段を備え、
前記抽出されたルールのそれぞれを用いて前記予測結果を複数出力する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項7】
前記ルール抽出手段は、
前記決定木の各ノードから抽出されたルールから冗長なルールを除外した少数のルールに絞り込むことで前記予測結果を出力するために用いる複数のルールを選択する
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記異常度出力手段は、前記事例に含まれる特徴量の値であって、前記目的変数に対応する特徴量の値である真値と前記予測結果とを比較することにより、前記真値の確からしさを表す確率値を計算する確率計算手段を備え、
前記複数の予測結果のそれぞれに対応する複数の前記確率値を用いた演算により前記異常度を算出する
請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
複数の特徴量の集合として表現される事例を取得すること、
前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力すること、
前記複数の予測結果を参照して、事例の異常度を出力することを含む
ことを特徴とする情報処理方法。
【請求項10】
コンピュータを、
複数の特徴量の集合として表現される事例を取得する取得手段と、
前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測手段と、
前記複数の予測結果を参照して、事例の異常度を出力する異常度出力手段とを備える情報処理装置として機能させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常な事例をより正確に検知できるようにする情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、複数の事例を参照して事前に学習した予測モデルを用いることで、事例に含まれる特徴量を予測し、予測した特徴量の値が、事例に含まれる特徴量の値である真値と大きく乖離している事例を異常な事例として検知する技術が知られている。
【0003】
例えば、特許文献1には、D個の特徴量から成るデータを事例として学習し、1個の特徴量のそれぞれを目的変数とし、残りのD-1個の特徴量を説明変数として予測モデルを学習することが開示されている。
【0004】
特許文献1では、異常であるか否かを判定すべき事例のD個の特徴量が、それぞれ学習済のD個の予測モデルを用いて予測される。そして、例えば、それぞれの予測値と真値の差異を平均化して閾値と比較することにより当該事例が異常であるか否かが判定される。
【0005】
また、1つの特徴量を予測するときに、それぞれ異なる複数個の予測モデルを用いて予測し、それぞれの予測モデルによる予測値が真値からどれだけ乖離しているかを表す外れ度合いを求める技術も提案されている(例えば、非特許文献1参照)。非特許文献1によれば、例えば、それぞれの予測モデルによる予測値の外れ度合いを足し合わせ、閾値と比較することで、当該事例が異常であるか否かが判定される。
【先行技術文献】
【特許文献】
【0006】
【文献】米国特許出願 2005/0283511号公報
【非特許文献】
【0007】
【文献】K. Noto et. al., “FRaC: A feature-modeling approach for semi-supervised and unsupervised anomaly detection”, 2012
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、事例の中で、ある特徴量が異常な値となることに連動して多くの他の特徴量がやはり異常な値となる場合、他の特徴量から当該特徴量を予測できてしまう。このような場合、当該事例を異常な事例として判定できない。特許文献1および非特許文献2では、この点が考慮されていなかった。
【0009】
本発明の一態様は、上記の問題に鑑みてなされたものであり、その目的の一例は、異常な事例をより正確に検知できるようにする技術を提供することである。
【課題を解決するための手段】
【0010】
本発明の一側面に係る情報処理装置は、複数の特徴量の集合として表現される事例を取得する取得手段と、前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測手段と、前記複数の予測結果を参照して、事例の異常度を出力する異常度出力手段とを備える。
【0011】
本発明の一側面に係る情報処理方法は、複数の特徴量の集合として表現される事例を取得すること、前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力すること、前記複数の予測結果を参照して、事例の異常度を出力することを含む。
【0012】
本発明の一側面に係るプログラムは、コンピュータを、複数の特徴量の集合として表現される事例を取得する取得手段と、前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測手段と、前記複数の予測結果を参照して、事例の異常度を出力する異常度出力手段とを備える情報処理装置として機能させる。
【発明の効果】
【0013】
本発明の一態様によれば、異常な事例をより正確に検知できるようにする技術を提供することができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の例示的実施形態1に係る情報処理装置の構成例を示すブロック図である。
【
図2】本発明の例示的実施形態1に係る情報処理方法の流れを示すフローチャートである。
【
図3】本発明の例示的実施形態2に係る異常判定装置の構成例を示すブロック図である
【
図5】予測部による処理を概略的に説明する図である。
【
図6】異常判定装置による異常判定処理の例を説明するフローチャートである。
【
図7】説明変数特定処理の詳細な例について説明するフローチャートである。
【
図8】予測処理の詳細な例について説明するフローチャートである。
【
図9】異常度出力処理の詳細な例について説明するフローチャートである。
【
図11】本発明の例示的実施形態3に係る異常判定装置の構成例を示すブロック図である。
【
図12】予測処理の別の例について説明するフローチャートである。
【
図13】複数の決定木からルールを抽出する場合の例を説明する図である。
【
図14】複数の決定木からルールを抽出する場合の例を説明する図である。
【
図15】予測処理のさらに別の例について説明するフローチャートである。
【
図17】本発明の例示的実施形態4に係る異常判定・学習装置の構成例を示すブロック図である。
【
図18】異常判定・学習装置による学習処理の例を説明するフローチャートである。
【
図19】パラメータ更新処理の詳細な例について説明するフローチャートである。
【
図20】各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータの例を示すブロック図である。
【発明を実施するための形態】
【0015】
〔例示的実施形態1〕
本発明の第1の例示的実施形態について、図面を参照して詳細に説明する。本例示的実施形態は、後述する例示的実施形態の基本となる形態である。
【0016】
<情報処理装置20の概要>
本例示的実施形態に係る情報処理装置20は、概略的に言えば、複数の特徴量から成る事例であって、与えられた事例が異常であるか否かを予測する装置である。
【0017】
より具体的に言えば、情報処理装置20は、一例として、
複数の特徴量の集合として表現される事例を取得する取得手段と、
事例に含まれる少なくとも何れかの特徴量を目的変数とし、複数の特徴量のうち、少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測手段と、
複数の予測結果を参照して、事例の異常度を出力する異常度出力手段とを備える。
【0018】
<情報処理装置20の構成>
本例示的実施形態に係る情報処理装置20の構成について、
図1を参照して説明する。
図1は、情報処理装置20の構成例を示すブロック図である。
【0019】
図1に示すように、情報処理装置20は、取得部21、予測部22および異常度出力部23を備える。取得部21は、本例示的実施形態において取得手段を実現する構成である。予測部22は、本例示的実施形態において予測手段を実現する構成である。異常度出力部23は、本例示的実施形態において異常度出力手段を実現する構成である。
【0020】
取得部21は、複数の特徴量の集合として表現される事例を取得する。
【0021】
予測部22は、事例に含まれる少なくとも何れかの特徴量を目的変数とし、複数の特徴量のうち、少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する。
【0022】
例えば、事例に含まれる特徴量がD個ある場合、特徴量の部分集合は、目的変数に対応する1個の特徴量を除いたD-1個の特徴量のうち、任意の個数(0個を含む)の特徴量の組み合わせとなる。
【0023】
異常度出力部23は、複数の予測結果を参照して、事例の異常度を出力する。
【0024】
異常度出力部23は、例えば、予測結果が現実の事例からどれだけ乖離しているかを表す外れ度合いを、複数の予測結果のそれぞれについて求める。そして異常度出力部23は、複数の予測結果のそれぞれの外れ度合いを用いて、事例が異常である確からしさを表す異常度を算出して出力する。
【0025】
<情報処理装置20の効果>
本例示的実施形態に係る情報処理装置20によれば、事例に含まれる少なくとも何れかの特徴量を目的変数とし、複数の特徴量のうち、少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果が複数出力される。従って、異常な事例をより正確に検知できる。すなわち、互いに異なる複数の部分集合を説明変数とした予測結果が複数得られるので、ある特徴量が異常な値となることに連動して多くの他の特徴量がやはり異常な値となる場合であっても、当該特徴量の異常度を得ることができる。
【0026】
<情報処理装置20による情報処理方法の流れ>
以上のように構成された情報処理装置20が実行する情報処理方法の流れについて、
図2を参照して説明する。
図2は、情報処理方法の流れを示すフローチャートである。同図に示されるように、情報処理は、ステップS11乃至ステップS13を含んでいる。
【0027】
ステップS11において、取得部21は、複数の特徴量の集合として表現される事例を取得する。
【0028】
ステップS12において、予測部22は、事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する。
【0029】
ステップS13において、異常度出力部23は、複数の予測結果を参照して、事例の異常度を出力する。
【0030】
<情報処理方法の効果>
本例示的実施形態に係る情報処理方法によれば、事例に含まれる少なくとも何れかの特徴量を目的変数とし、複数の特徴量のうち、少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果が複数出力される。従って、異常な事例をより正確に検知できる。すなわち、互いに異なる複数の部分集合を説明変数とした予測結果が複数得られるので、ある特徴量が異常な値となることに連動して多くの他の特徴量がやはり異常な値となる場合であっても、当該特徴量の異常度を得ることができる。
【0031】
〔例示的実施形態2〕
本発明の第2の例示的実施形態について、図面を参照して詳細に説明する。なお、例示的実施形態1にて説明した構成要素と同じ機能を有する構成要素については、同じ符号を付し、その説明を適宜省略する。
【0032】
<異常判定装置10の構成>
本例示的実施形態に係る異常判定装置10の構成について、
図3を参照して説明する。
図3は、異常判定装置10の構成例を示すブロック図である。
図3に示すように、異常判定装置10は、情報処理装置20、記憶部30、通信部41、入力部42、および出力部43を含んでいる。
【0033】
情報処理装置20は、例示的実施形態1において説明した情報処理装置20と同様の機能を有する機能ブロックである。
【0034】
記憶部30は、例えば、半導体メモリデバイスなどにより構成され、データを記憶する。この例では、記憶部30に事例データおよびモデルパラメータが記憶されている。
【0035】
ここで、モデルパラメータは、予測部22が予測結果を得るために用いる予測モデルを規定するパラメータであり、一例として、当該予測モデルによって参照される重み係数や閾値等を含み得る。本例示的実施形態では、一例として、同図に示されているように、記憶部30には、複数のモデルパラメータのセットが記憶されており、これら複数のモデルパラメータのセットは、一例として、それぞれ異なる複数の予測モデルに適用される。
【0036】
通信部41は、異常判定装置10を、ネットワークに接続するためのインタフェースである。ネットワークの具体的構成は本例示的実施形態を限定するものではないが、一例として、無線LAN(Local Area Network)、有線LAN、WAN(Wide Area Network)、公衆回線網、モバイルデータ通信網、又は、これらのネットワークの組み合わせを用いることができる。
【0037】
入力部42は、異常判定装置10に対する各種の入力を受け付ける。入力部42の具体的構成は本例示的実施形態を限定するものではないが、一例として、キーボード及びタッチパッド等の入力デバイスを備える構成とすることができる。また、入力部42は、赤外線や電波等の電磁波を介してデータの読み取りを行うデータスキャナ、及び、環境の状態をセンシングするセンサ等を備える構成としてもよい。
【0038】
出力部43は、異常判定装置10による処理結果を出力する機能ブロックである。出力部43の具体的構成は本例示的実施形態を限定するものではないが、一例として、ディスプレイ、スピーカ、プリンタなどにより構成され、異常判定装置10による各種処理結果などを画面上に表示したり、音声や図として出力したりする。
【0039】
本例示的実施形態による異常判定装置10は、複数の事例を教師データとして事前に実行された機械学習により得られた複数の予測モデルのモデルパラメータのセットを記憶部30に記憶している。異常判定装置10は、与えられた事例の特徴量を、事前に学習した予測モデルにより予測することで当該事例が異常であるか否かを判定する。
【0040】
(事例データと部分集合の例)
図4は、事例データの例を説明する図である。
図4において、事例データ15は、表形式のデータとされ、特徴量x1乃至特徴量x4を有する複数のレコードにより構成されている。
【0041】
図4に示されるテスト事例16は、異常であるか否かを判定すべき事例とされる。上述したように、取得部21は、複数の特徴量の集合として表現される事例としてテスト事例16を取得する。
【0042】
例えば、事例データ15の第1番目の事例は、特徴量x1の値が-102であり、特徴量x2の値が-102であり、特徴量x3の値が-1であり、特徴量x4の値が-1である。事例データ15の第2番目の事例は、特徴量x1の値が-101であり、特徴量x2の値が-101であり、特徴量x3の値が-1であり、特徴量x4の値が-1である。
【0043】
事例データ15の各事例では、常に特徴量x1の値は特徴量x2の値と等しく、特徴量x3の値は特徴量x4の値と等しくなっている。また、特徴量x1乃至特徴量x4の値では、常に正負の符号が一致している。この条件に合致する事例は正常であり、合致しない事例は異常である。
【0044】
例えば、特徴量x1の値を目的変数とし、特徴量x1以外の特徴量を説明変数として線形予測モデルを学習する場合を考える。この場合、学習された予測モデルは、x1=1*x2+0*x3+0*X4となる。ここで、「*」は積を表す演算記号とする。この予測モデルにより、事例データ15における全ての事例の特徴量x1の値を予測することが可能となる。
【0045】
実際に存在する事例においては、多くの場合、異常な事例を入手することが難しく、事例の特徴量から、事例が異常であることを予測する予測モデルを生成することは難しい。
【0046】
一般に、充分に多くの正常な事例を教師データとして学習された予測モデルにより予測された特徴量が、実際に事例に含まれる特徴量と等しいかまたは近い値であれば、当該事例は正常である可能性が高い。目的変数となる特徴量と説明変数となる特徴量との相関関係が学習を通して予測モデルに反映され、正常な事例の条件を満たすように、特徴量が予測されると考えられるからである。
【0047】
換言すれば、予測モデルにより予測された特徴量が、実際に事例に含まれる特徴量と乖離していれば、当該事例は異常である可能性が高い。このように、予測モデルにより予測された特徴量と、実際に事例に含まれる特徴量との乖離によって事例が異常であるか否かを判定することができる。この場合、異常な事例を入手することができなくても、正常な事例を学習することで予測モデルを生成することができる。
【0048】
ところで、テスト事例16は、特徴量x1の値は特徴量x2の値と等しいが、特徴量x1乃至特徴量x4の値では、正負の符号が一致していないので異常と判定されるべき事例である。
【0049】
しかしながら、上述の予測モデルにより特徴量x1の値を予測すると、x1=1*100+0*(-1)+0*(-1)となり、特徴量x1の値を正しく予測できてしまう。このように、特徴量x3および特徴量x4に対して、特徴量x1および特徴量x2が同時に異常となった場合、単に、特徴量x1以外の全ての特徴量を説明変数とした予測モデルによる予測では、正確に異常を判定することができない。
【0050】
そこで、本例示的実施形態においては、事例に含まれる特徴量の目的変数に対応する特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測モデルを用いた予測を実行する。例えば、事例データ15の場合、目的変数を特徴量x1とした場合、特徴量x3のみを用いて特徴量x1を予測する予測モデルも学習される。
【0051】
いまの場合、学習された予測モデルは、x1=100*x3となる。この予測モデルは、事例データ15に含まれる事例の全てを教師データとした機械学習を実行したとしても、予測誤差を0にすることができない。すなわち、この予測モデルによる予測誤差は、2,1,0,1,および2となり、それぞれの予測誤差がほぼ同じ頻度で出現することになる。なお、予測誤差を0にすることができない予測モデルを弱い予測モデルと称することもある。
【0052】
この弱い予測モデルを用いてテスト事例16の特徴量x1の値を予測すると、x1=-100となり、正しく予測できない。
【0053】
このように本例示的実施形態では、目的変数に対応する特徴量以外の特徴量の一部を使った予測モデルを用いる。すなわち、弱い予測モデルをあえて用いることでより、予測された特徴量が、実際に事例に含まれる特徴量から乖離する予測結果を出力させ、その予測結果を利用して事例が異常であるか否かを判定する。
【0054】
このようにすることで、例えば、ある特徴量が異常な値となることに連動して多くの他の特徴量がやはり異常な値となる事例についても、適切に異常を判定できるようになる。
【0055】
ここでは、一例として、線形予測モデルを用いる予測について説明したが、線形予測モデルとは異なる方式の予測モデルが用いられるようにしてもよい。例えば、非線形のSVMや、決定木などの予測モデルが用いられるようにしてもよい。あるはまた、後述するように、予測モデルに代えて予測ルールが用いられるようにしてもよい。
【0056】
本例示的実施形態における特徴量の部分集合と予測モデルは、具体的には、次のようにして決まる。例えば、事例の特徴量がx1乃至x4の4個であり、x4を目的変数とする場合、説明変数の組み合わせは、下記の8通りになる。
【0057】
[]
[x1], [x2], [x3]
[x1,x2], [x1, x3], [x2, x3]
[x1, x2, x3]
なお、[]は、事例に含まれる特徴量を0個用いる場合を表している。
【0058】
本例示的実施形態によれば、予測部22が、部分集合のそれぞれに対応する予測モデルを用いることで予測結果を複数出力する。このようにすることで、弱い予測モデルを用いた予測結果を得ることができる。
【0059】
ここで、予測モデルのそれぞれは、上述した説明変数の組み合わせにより異なることになるが、同じ説明変数の組み合わせを用いた複数の予測モデルが用いられるようにしてもよい。例えば、説明変数が[x1, x2, x3]であるSVMの予測モデルと、説明変数が[x1, x2, x3]である決定木の予測モデルがそれぞれ用いられるようにしてもよい。すなわち、部分集合のそれぞれに対して1以上の予測モデルまたは予測ルールが用いられる。
【0060】
また、事例が異常であるか否かを判定する際に、複数の特徴量の予測結果を用いてもよい。例えば、事例の特徴量が、x1乃至x8である場合、x1を目的変数とし、x2乃至x8の部分集合を説明変数とした予測結果と、x2を目的変数とし、x1およびx3乃至x8の部分集合を説明変数とした予測結果と・・・のように複数の特徴量の予測結果が用いられてもよい。
【0061】
このようにすることで、より正確に事例が異常であるか否かを判定することができる。
【0062】
また、目的変数となる特徴量と説明変数となる特徴量との関連性を考慮すればさらに正確な判定も可能となる。
【0063】
例えば、水道管の上流から下流に向かって複数のセンサが設けられている場合を考える。このとき、水道管の上流で水漏れが発生すると、下流のセンサは、同時に異常な値を取ることになる。この場合、センサから出力される特徴量は関連度が高く、それぞれの特徴量から互いに予測できてしまうことがある。
【0064】
そこで、例えば、事例に含まれる複数の特徴量のそれぞれの間の関連性が予め与えられ、説明変数として用いられる部分集合は、目的変数に対応する特徴量との関連度が相対的に低い特徴量により構成されるようにしてもよい。
【0065】
このようにすることで、多くの特徴量が同時に異常になっても、目的関数の特徴量が実際に事例に含まれる特徴量から乖離した予測結果を出力できる予測モデルを用いることができる。これにより、異常な事例が誤って正常と判定されてしまう可能性を低くすることができる。
【0066】
なお、予測モデルまたは予測ルールのそれぞれは、記憶部30に記憶された複数のモデルパラメータのセットによって規定される。
【0067】
異常度出力部23は、このようにして出力された予測結果を用いて与えられた事例が異常である確からしさを表す異常度を算出して出力する。なお、異常度算出の詳細については後述する。
【0068】
(予測モデルの数の絞り込みの例)
一方で、これらの予測モデルの機械学習を全て実行すると計算コストが著しく高くなる。また、あまりにも多くの予測モデルを用いると、事例が異常と判定された理由の事後的な認識可能性である解釈性も低下する。
【0069】
そこで、予測モデルの数が絞り込まれるようにしてもよい。例えば、部分集合の数を限定するか、又は部分集合を構成する特徴量の数を限定することで、予測モデルの数を絞り込むことができる。
【0070】
例えば、取得部21が、関連性に関する情報を取得し、予測部22が、関連性に関する情報を参照して、少なくとも何れかの特徴量との関連度が相対的に低い特徴量を特定し、特定した特徴量により部分集合を構成するようにしてもよい。
【0071】
この場合、部分集合を構成する特徴量が、関連度の相対的に低い特徴量に限定されるため、特徴量の数が限定されることになり、予測モデルの数を絞り込むことが可能となる。例えば、8通りの特徴量の組み合わせの中から4通りの組み合わせを選択することができる。そして、選択された組み合わせのそれぞれが説明変数として用いられる予測モデルだけを用いた予測が行われるようにすることで、予測モデルの数を絞り込こむことが可能となる。
【0072】
このようにすることで、予測モデルの数が膨大になることを避けることができ、計算コストが低下し、解釈性も高められる。
【0073】
上述の例では、目的変数に対応する特徴量との関連度が相対的に低い特徴量によって説明変数を構成することで予測モデルの数を絞り込むこととしたが、別の方式により予測モデルの数を絞り込むようにしてもよい。例えば、目的変数に対応する特徴量以外の特徴量の中から任意に選択された所定の数の特徴量のみによって説明変数を構成し、この選択を繰り返すことで予測モデルの数を絞り込むようにしてもよい。
【0074】
すなわち、予測部22は、目的変数に対応する特徴量を除く特徴量から1以上の特徴量をランダムに選択し、選択を繰り返して得られた部分集合のそれぞれを説明変数として用いて、予測結果を複数出力するようにしてもよい。
【0075】
この場合、選択を繰り返す回数を限定することにより、部分集合の数が限定されるので、予測モデルの数を絞り込むことが可能となる。このようにすることで、予測モデルの数が膨大になることを避けることができ、計算コストが低下し、解釈性も高められる。
【0076】
特徴量のランダムな選択を繰り返して予測モデルを生成するアルゴリズムの例は、疑似コードを用いて次のように表現される。ここでは、特徴量の数がL個とされ、T回選択を繰り返す場合のアルゴリズムを示す。
【0077】
models = []
for i in range(L):
models[i] = []
for j in range(T): #Tは事前に決める適当な定数
features = random_select(i, L, K) #i以外のL-1個の特徴量からK個ランダムに選ぶ
models[i][j] = training(i, features) #選ばれた特徴量で特徴量x_iを予測するモデルを訓練事例集合を元に作成
この例では、選択回数Tを小さくするほど、予測モデルの数が少なくなる。
【0078】
(予測部の処理の概略)
図5は、上述した本例示的実施の形態における予測部22による処理を概略的に説明する図である。この例では、事例に含まれる特徴量として、特徴量1乃至特徴量DのD個が存在するものとする。
【0079】
図5に示されるように、予測部22は、特徴量1を予測するために、P_1個の予測モデルを用いた予測処理を実行する。また、予測部22は、特徴量3を予測するために、P_2個の予測モデルを用いた予測処理を実行し、特徴量3を予測するために、P_3個の予測モデルを用いた予測処理を実行し、・・・特徴量Dを予測するために、P_D個の予測モデルを用いた予測処理を実行する。
【0080】
<異常判定装置10による異常判定処理の流れ>
次に、
図6のフローチャートを参照して、本例示的実施形態の異常判定装置10による異常判定処理の例を説明する。
【0081】
ステップS31において、取得部21は、異常であるか否かを判定すべき事例を取得する。
【0082】
ステップS32において、予測部22は、説明変数特定処理を実行する。これにより、ステップS31で取得した事例において目的変数に対応する特徴量を予測するための説明変数が特定される。
【0083】
ここで、
図7のフローチャートを参照して、
図6のステップS32の説明変数特定処理の詳細な例について説明する。
【0084】
ステップS51において、予測部22は、ステップS31で取得された事例の特徴量を収集する。例えば、事例にD個の特徴量が含まれる場合、D個の特徴量が収集される。
【0085】
ステップS52において、予測部22は、目的変数となる特徴量を特定する。目的変数となる特徴量は任意に選択されてもよいし、予め指定されるようにしてもよい。目的変数となる特徴量が予め指定される場合、例えば、入力部42を介して受け付けられた操作または所定の情報などにより指定される。
【0086】
ステップS53において、取得部21は、事例に含まれる複数の特徴量のそれぞれの間の関連性を表す情報である関連性情報を取得する。関連性情報は、例えば、予め事例データを分析することで得られた各特徴量間の相関度が記述された情報などとされる。
【0087】
取得部21は、例えば、入力部42または通信部41を介して関連性情報を取得する。あるいはまた、記憶部30に予め関連性情報が記憶されているようにしてもよい。
【0088】
ステップS54において、予測部22は、ステップS53の処理で取得した関連性情報を参照し、ステップS52の処理で特定された目的変数の特徴量との関連度が相対的に低い特徴量を特定する。
【0089】
ステップS55において、予測部22は、ステップS54の処理で特定した関連度が相対的に低い特徴量を用いて、特徴量の部分集合を複数抽出する。このとき、ステップS54の処理で特定された特徴量の1部または全部から成る特徴量の組み合わせが複数抽出される。
【0090】
ステップS56において、予測部22は、ステップS55の処理で抽出された特徴量の部分集合を、ステップS52の処理で特定された目的変数を予測するための説明変数として特定する。このとき、複数の部分集合のそれぞれが、説明変数として特定される。すなわち、複数の予測モデルに対応する複数通りの説明変数が特定される。
【0091】
このようにして、説明変数特定処理が実行される。
【0092】
ここでは、目的変数の特徴量との関連度が相対的に低い特徴量を特定し、特定した特徴量により説明変数となる部分集合を抽出する場合の例について説明した。しかし、説明変数となる部分集合は、異なる方式で抽出されるようにしてもよい。例えば、目的変数に対応する特徴量を除く特徴量から1以上の特徴量をランダムに選択し、選択を繰り返して得られた部分集合が抽出されるようにしてもよい。
【0093】
図6に戻って、ステップS32の処理の後、予測部22は、ステップS33において予測処理を実行する。これにより、ステップS56の処理で特定された説明変数を用いた目的変数の予測が行われる。
【0094】
ここで、
図8のフローチャートを参照して、
図6のステップS33の予測処理の詳細な例について説明する。
【0095】
ステップS71において、予測部22は、部分集合に対応する予測モデルを選択する。このとき、ステップS55の処理で抽出された特徴量の部分集合(すなわち、説明変数)に対応する予測モデルが選択される。なお、上述したように、同じ説明変数の組み合わせを用いた複数の予測モデルが選択されるようにしてもよい。このような複数の予測モデルは、予め記憶部30に記憶されたモデルパラメータのセットによって規定される。
【0096】
ステップS72において、予測部22は、ステップS71の処理で選択された予測モデルを用いて目的変数を予測する。
【0097】
ステップS73において、予測部22は、次の部分集合があるか否かを判定する。次の部分集合があると判定された場合、処理は、ステップS71にもどり、次の部分集合に対応する予測モデルが選択され、目的変数が予測される。このようにして、複数の部分集合に対応する複数の予測結果が得られる。
【0098】
ステップS73において、次の部分集合はないと判定された場合、処理は、ステップS74に進み、予測部22は、予測結果を出力する。これにより、上述した複数の予測結果が出力される。
【0099】
このようにして、予測処理が実行される。
【0100】
図6に戻って、ステップS33の処理の後、処理は、ステップS34に進み、異常度出力部23は、異常度出力処理を実行する。これにより、ステップS31で取得された事例の異常度が算出されて出力される。
【0101】
図3に示されるように、本例示的実施形態の異常度出力部23は、確率計算部101を有している。確率計算部101は、目的変数に対応する特徴量の値である真値と予測結果とを比較することにより、真値の確からしさを表す確率値pを計算する。なお、確率値pは、複数の予測結果のそれぞれについて算出される。
【0102】
このようにして算出された確率値を用いて、事例が異常であるか否かを判定するために、適切な異常度を計算することができる。
【0103】
次に、
図9のフローチャートを参照して、
図6のステップS33の異常度出力処理の詳細な例について説明する。
【0104】
ここでは、事例に含まれる特徴量xの数がD個であり、特徴量の部分集合が次のように表されるものとして説明する。
【0105】
【数1】
なお、説明変数を構成する特徴量の部分集合の個数はPiで表されている。
【0106】
そして、それぞれの部分集合に対応する予測モデルは、Ci1,Ci2,Ci3,・・・CiPiで表されるものとする。
【0107】
ステップS91において、確率計算部101は、ステップS74の処理で出力された複数の予測結果のそれぞれについて確率値pを算出する。
【0108】
ステップS92において、異常度出力部23は、ステップS91の処理で算出された確率値pに基づいて、異常度の算出に用いられるパラメータであるSurprisalを算出する。なお、Surprisalは、ステップS91で算出された確率値pのそれぞれについて算出される。すなわち、Surprisalも、やはり複数の予測結果のそれぞれについて算出される。
【0109】
Surprisalは、予測結果の意外性を表す値とされ、確率値pが小さいほど大きい値となる。Surprisalは、次の式により表される。
【0110】
【数2】
ステップS93において、異常度出力部23は、ステップS92で算出されたSurprisalを用いて異常度Sを算出する。このとき、異常度は、例えば、次の式により算出される。
【0111】
【数3】
これにより、ステップS92の処理で算出されたSurprisalが足しあわされて異常度Sが算出される。
【0112】
一方で、ステップS74の処理で出力された複数の予測結果は、意外性の小さいものが多いこともある。すなわち、ステップS92において、算出されるSurprisalのほとんどが、小さい値となることもある。このような場合、目的変数を正確に予測できなかった予測結果が異常度の算出において有効に活用されないことになる。
【0113】
そこで、例えば、もっとも意外性の高い予測結果に対応するSurprisalを用いて異常度が算出されるようにしてもよい。この場合、異常度は、例えば、次の式により算出される。
【0114】
【数4】
この例では、もっとも意外性の高い予測結果に対応するSurprisal、すなわちSurprisalの最大値を用いて異常度が算出されるようにしているが、例えば、もっとも意外性の高いk番目までの予測結果に対応するSurprisalが用いられるようにしてもよい。なお、kは任意の定数とされ、例えば、3とされる。
【0115】
換言すれば、異常度が、複数予測結果の確率値pのうち、最も値の小さい順に、k個(kは自然数)の確率値pを用いた演算により算出されるようにしてもよい。
【0116】
このようにすることで、単純にSurprisalの最大値を用いる場合と比較して、より安定した異常度を算出することができる。すなわち、1つではなく、3つの予測結果が異常度に反映されるため、例えば、事例により異常度が極端に変化することが回避されやすい。
【0117】
あるいはまた、予測に用いられる説明変数の数に注目した重みづけを行って異常度が算出されるようにしてもよい。例えば、少ない説明変数のみを用いる予測において目標変数を正確に予測できない事例は、一見して明らかに異常な事例であることが多い。
【0118】
そこで、異常度が、複数の確率値を、確率値に対応する予測結果を得るために用いた説明変数の数が多いほど重みが小さくなるように重み付けする重み係数と、複数の確率値を用いた演算により算出されるようにしてもよい。この場合、異常度は、例えば、次式により算出される。
【0119】
【数5】
このようにすることで、一見して明らかに異常な事例が誤って正常と判定される可能性が低くなる。その結果、より正確な異常の判定が可能となる。
【0120】
このようにして異常度算出処理が実行される。また、これにより、
図6の異常度判定処理が終了することになる。ステップS93で算出された異常度は、事例が異常である確からしさを表すものなので、例えば、異常度の値を閾値と比較することなどにより、事例が異常であるか否かを判定することができる。
【0121】
<異常判定処理装置および異常判定処理の効果>
このように、本例示的実施形態に係るに異常判定処理装置および異常判定処理おいては、事例に含まれる特徴量の目的変数に対応する特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測モデルを用いた予測が実行される。このようにすることで、弱い予測モデルをあえて用いることができ、より適正に異常度を算出することができる。その結果、事例が異常であるか否かをより正確に判定できる。
【0122】
〔例示的実施形態3〕
例示的実施形態2においては、予測部22が、主に予測モデルを用いた予測を行う例について説明した。しかし、予測部22が、予測ルールを用いた予測を行うようにしてもよい。
【0123】
(単一の決定木から抽出される予測ルールの例)
図10は、例示的実施形態における予測ルールの例を説明する図である。同図には、特徴量x1および特徴量x2を用いて特徴量x3を予測する単一の決定木からルールを抽出する例が示されている。
【0124】
この決定木は、深さ0に1つの内部ノード、深さ1に2つの内部ノード、深さ2に4つの内部ノードがあり、合計7つの内部ノードを有している。ここで、それぞれの内部ノードは、ひとつのIF-THENルールと見なすことができる。
【0125】
すなわち、深さ0の内部ノードは、ルールID0のIF-THENルールと見なすことができ、深さ1の内部ノードは、ルールID1およびルールID1のIF-THENルールと見なすことができる。さらに、深さ2の内部ノードは、ルールID3乃至ルールID6のIF-THENルールと見なすことができる。
【0126】
IF-THENルールは、条件に当てはまるときのみ予測を出力し、それ以外のときは予測を出力しない、不完全な予測モデルと考えることもできる。
【0127】
<異常判定装置10の構成>
図11は、本例示的実施形態における異常判定装置10の構成例を示すブロック図である。同図に示されるように、本例示的実施形態においては、予測部22が、複数の特徴量のうち、目的変数に対応する特徴量を除く特徴量を参照して学習された決定木に含まれる各ノードからルールを抽出するルール抽出部81を有している。そして、予測部22は、抽出されたルールのそれぞれを用いて予測結果を複数出力する。
図11におけるその他の構成は
図3と同様なので、詳細な説明は省略する。
【0128】
<単一の決定木を用いる場合の予測処理の流れ>
次に、
図12のフローチャートを参照して、
図11に示される予測部22が、
図6のステップS33において実行する予測処理の例について説明する。
【0129】
ステップS111において、予測部22は、目的変数を予測するための単一の決定木を取得する。この決定木は、例えば、事例に含まれる特徴量のうち、目的変数に対応する特徴量を除いた全ての特徴量を用いて目的変数を予測する予測モデルとされる。この決定木の予測モデルは、記憶部30に予め記憶されたモデルパラメータにより規定される。
【0130】
ステップS112において、予測部22のルール抽出部81は、ルールを抽出する。このとき、例えば、
図6を参照して説明したステップS32の説明変数特定処理により特定された説明変数に対応する特徴量の部分集合からなるルールが抽出される。
【0131】
ステップS113において、予測部22は、ステップS112で抽出されたルールにより目的変数を予測する。
【0132】
ステップS114において、予測部22は、次の部分集合があるか否かを判定する。次の部分集合があると判定された場合、処理は、ステップS112にもどり、次の部分集合に対応するルールが抽出され、目的変数が予測される。このようにして、複数の部分集合に対応する複数の予測結果が得られる。
【0133】
ステップS112において、次の部分集合はないと判定された場合、処理は、ステップS115に進み、予測部22は、予測結果を出力する。これにより、複数の予測結果が出力される。
【0134】
このようにして本例示的実施形態における予測処理が実行される。上述したように、予測結果が決定木に含まれる各ノードから抽出されたルールを用いて得られるので、計算コストが低下する。
【0135】
(複数の決定木から抽出される予測ルールの例)
ここでは、一例として、目的変数に対応する特徴量を除いた全ての特徴量を用いて目的変数を予測する単一の決定木からルールを抽出する例について説明したが、複数の決定木からルールが抽出されるようにしてもよい。
【0136】
例えば、
図13および
図14に示されるように、特徴量x_iを目的変数として予測するための説明変数となる特徴量を、特徴量x_i以外の特徴量の中からランダムに選ぶことにより、それぞれの説明変数に対応する決定木が用いられるようにしてもよい。
図13および
図14は、複数の決定木からルールを抽出する場合の例を説明する図である。
【0137】
例えば、特徴量x1乃至特徴量x8があり、特徴量x1を目的変数とする。この場合、説明変数となる特徴量は、特徴量x2乃至特徴量x8となり、特徴量x2乃至特徴量x8の中からランダムに1以上の特徴量が選択される。
【0138】
例えば、特徴量x2、特徴量x3、および特徴量x4が組み合わせ1として選択され、特徴量x6、特徴量x7、および特徴量x8が組み合わせ2として選択されたとする。いまの場合、組み合わせ1に対応して決定木121Aが生成され、組み合わせ2に対応して決定木121Bが生成される。
【0139】
そして、決定木121Aおよび決定木121Bから、それぞれIF-THENルールが抽出される。例えば、
図14に示されるように、決定木121AからIF-THENルール122Aが抽出され、決定木121BからIF-THENルール122Bが抽出される。
【0140】
このように抽出されたIF-THENルール122Aと、IF-THENルール122Bとが結合され、ルール集合123が生成される。ルール集合123は、特徴量x1を予測するための説明変数であって、特徴量x2乃至特徴量x8の部分集合を説明変数とするIF-THENルールの集合となる。
【0141】
<複数の決定木を用いる場合の予測処理の流れ>
次に、
図15のフローチャートを参照して、予測部22が複数の決定木から抽出されたルールを用いて目的変数を予測する場合の予測処理の例について説明する。
【0142】
ステップS131において、予測部22は、特徴量の部分集合を選択する。このとき、例えば、事例に含まれる特徴量のうち、目的変数に対応する特徴量を除いた全ての特徴量の中から説明変数となる特徴量がランダムに選択される。
【0143】
ステップS132において、予測部22は、目的変数を予測するための決定木を取得する。この決定木は、ステップS131で選択された特徴量を用いて目的変数を予測する予測モデルとされる。この決定木の予測モデルは、記憶部30に予め記憶されたモデルパラメータにより規定される。
【0144】
ステップS133において、予測部22のルール抽出部81は、ステップS132で取得された決定木からルールを抽出する。
【0145】
ステップS134において、予測部22は、次の部分集合があるか否かを判定する。次の部分集合があると判定された場合、処理は、ステップS131にもどり、次の部分集合に対応する決定木が取得され、ルールが抽出される。このようにして、複数の決定木のそれぞれからルールが抽出されていく。
【0146】
ステップS134において、次の部分集合がないと判定された場合、処理は、ステップS135に進む。
【0147】
ステップS135において、予測部22は、ステップS133で抽出されたルールのそれぞれを結合してルール集合を生成する。
【0148】
ステップS136において、予測部22は、ステップS135の処理で生成されたルール集合を用いて目的変数となる特徴量を予測する。これにより、ルール集合に含まれるルールのそれぞれに対応して複数の予測結果が出力される。
【0149】
このようにして、予測処理が実行される。
【0150】
(予測ルールの絞り込みの例)
ところで、
図13および
図14を参照して説明した例においては、複数の決定木のそれぞれからルールを結合したルール集合をそのまま用いて予測が行われる。しかしながら、ルール集合には、冗長なルールや、あまり予測に役立たないルールが複数含まれることがある。
【0151】
予測部22は、例えば、
図16に示されるように、冗長なルールや、あまり予測に役立たないルールを除外してルール集合123に含まれるルールを絞り込み、絞り込みルール集合124を生成するようにしてもよい。
【0152】
ルールを絞り込む方式の一例として、「Yuzuru Okajima, Kunihiko Sadamasa. Decision List Optimization based on Continuous Relaxation: The SIAM International Conference on Data Mining (SDM19), 2019」に記載された技術を利用できる。この技術は、確率的勾配降下法(stochastic gradient decent (SGD))を用い、ルール集合を入力として、予測に役立つルールだけからなるルールのリスト(決定リスト)を出力する。
【0153】
このように、予測部22は、抽出されたルールから冗長なルールを除外した少数のルールに絞り込むことで予測結果を出力するために用いる複数のルールを選択するようにしてもよい。ルールの数が絞り込まれることで、計算コストがさらに低下する。
【0154】
絞り込みルール集合を生成するアルゴリズムの例は、疑似コードを用いて次のように表現される。ここでは、事例に含まれる特徴量がD個あり、特徴量x_iに対して予測ルールの集合R_iが得られることとする。
rulesets = []
for i in [1, ..., D]:
ruleset_i = [] #x_iを予測するルールの集合R_i
for j in [1, ..., T]:#Tは事前に決める適当な定数
features = random_select(i, D, K) #i以外のD-1個の特徴量からK個ランダムに選ぶ
tree = training(i, features) #選ばれた特徴量で特徴量x_iを予測する決定木を訓練事例集合を元に作成
rules = get_rules_from_tree(tree) #決定木からルール抽出
ruleset_i.append(rules) #抽出されたルールをR_iに追加
rulesets[i] = filter(ruleset_i) #ルール集合の絞込
絞り込みルール集合を用いて与えられた事例xの異常度を計算するアルゴリズムの例は、疑似コードを用いて次のように表現される。ここでは、事例として、x=[x1,x2,...]という、D個の要素をもつベクトルが入力されるものとする。
surprisals = []
for i in [1, ..., D]: #D個の特徴量に関して
rules = get_applicable(rulesets[i]) #ルール集合R_iのうちx_iが当てはまるルールを抽出
error = get_error(rules.predict, x_i) #ルールの予測値とx_iの誤差を計算
surprisals[i] = get_surprisal(error) #誤差から特徴量のsurprisalを計算
score = get_anomaly_score(surprisals) #D個の特徴量のsurprisalから事例の異常度を計算
〔例示的実施形態4〕
次に、本発明の第4の例示的実施形態について、図面を参照して詳細に説明する。なお、例示的実施形態1乃至例示的実施形態3にて説明した構成要素と同じ機能を有する構成要素については、同じ符号を付し、その説明を適宜省略する。
【0155】
<異常判定・学習装置10Aの構成>
本例示的実施形態に係る異常判定・学習装置10Aの構成について、
図17を参照して説明する。異常判定・学習装置10Aは、異常判定装置10における記憶部30のモデルパラメータのセットを学習する機能をさらに有する装置である。
【0156】
同図に示されるように、異常判定・学習装置10Aは、情報処理装置20Aを有している。情報処理装置20Aは、
図3に示される情報処理装置20と同様に、取得部21、予測部22、および異常度出力部23を有するとともに、教師データ取得部24および学習部25をさらに有している。異常判定・学習装置10Aのその他の構成は、
図3に示される異常判定装置10と同様である。
【0157】
情報処理装置20Aに含まれる教師データ取得部24は、事例データを参照して教師データを取得する。学習部25は、教師データ取得部24が取得した教師データを用いて機械学習を行い、予測モデルを学習させる。
【0158】
<異常判定・学習装置10Aによる学習処理の流れ>
図18は、異常判定・学習装置10Aによる学習処理の例を説明するフローチャートである。
【0159】
ステップS151において、教師データ取得部24は、事例を取得する。このとき、学習の対象となる複数の事例が取得される。
【0160】
ステップS152において、教師データ取得部24は、説明変数特定処理を実行する。これにより、目的変数の予測に用いられる説明変数が特定される。この処理は、
図7を参照して説明した処理と同様の処理なので詳細な説明は省略する。教師データ取得部24は、予測部22を制御してステップS152の説明変数特定処理を実行させるようにしてもよい。
【0161】
なお、ステップS152の説明変数特定処理では、
図7を参照して上述したように、複数の予測モデルに対応する複数通りの説明変数が特定される。
【0162】
また、ステップS152では、ステップS151で取得された複数の事例のそれぞれについて説明変数が特定される。
【0163】
ステップS153において、教師データ取得部24および学習部25は、パラメータ更新処理を実行する。
【0164】
ここで、
図19のフローチャートを参照して、
図18のステップS153のパラメータ更新処理の詳細な例について説明する。
【0165】
ステップS171において、教師データ取得部24は、目的変数に対応する特徴量と説明変数に対応する特徴量の組から成る教師データを取得する。このとき、例えば、
図7のステップS52で特定された目的変数に対応する特徴量と、ステップS56で特定された説明変数に対応する特徴量が、
図18のステップS151で取得された事例から抽出されて教師データとされる。
【0166】
なお、教師データは、ステップS151で取得された複数の事例のそれぞれに対応して複数取得される。
【0167】
ステップS172において、学習部25は、ステップS171で取得された教師データを用いて重み行列の各成分を計算する。このとき、例えば、目的変数を予測するために、説明変数に乗じられる重み行列の各成分が計算される。このとき、複数通りの説明変数のそれぞれに対して乗じられる重み行列の各成分が、それぞれ計算される。計算された重み行列の各成分は、モデルパラメータのセットとなる。
【0168】
なお、ここでは、一例として、線形予測モデルにより目的変数を求める場合の例について説明しているが、他の方式の予測モデルが用いられるようにしてもよい。要は、ステップS172において、予測モデルのモデルパラメータのセットが計算されるようにすればよい。
【0169】
ステップS173において、学習部25は、モデルパラメータを更新する。
【0170】
なお、ステップS172およびステップS173の処理は、ステップS171で取得された教師データの数に応じて複数回実行され、モデルパラメータが繰り返し更新されることになる。このように、モデルパラメータが更新されることにより、予測モデルの学習が進むことになる。
【0171】
このようにしてパラメータ更新処理が実行される。パラメータ更新処理が終了すると、
図18の学習処理が終了し、1つの目的変数を予測するために用いられる複数の予測モデルのモデルパラメータのセットが得られる。学習処理は、目的変数を変えて複数回実行される。これにより、
図6のステップS33で実行される予測処理において用いられる予測モデルのモデルパラメータのセットが得られる。
【0172】
<異常判定・学習装置および学習処理の効果>
このように、本例示的実施形態に係る異常判定・学習装置および学習処理によれば、予測処理において用いられる予測モデルのモデルパラメータを得ることができる。また、得られたモデルパラメータの予測モデルを用いて予測処理を実行し、事例が異常であるか否かを判定することができる。
【0173】
〔ソフトウェアによる実現例〕
情報処理装置20、異常判定装置10、および異常判定・学習装置10Aの一部又は全部の機能は、集積回路(ICチップ)等のハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
【0174】
後者の場合、情報処理装置20、異常判定装置10、および異常判定・学習装置10Aは、例えば、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータによって実現される。このようなコンピュータの一例(以下、コンピュータCと記載する)を
図20に示す。
【0175】
コンピュータCは、少なくとも1つのプロセッサC1と、少なくとも1つのメモリC2と、を備えている。メモリC2には、コンピュータCを情報処理装置20、異常判定装置10、または異常判定・学習装置10Aとして動作させるためのプログラムPが記録されている。コンピュータCにおいて、プロセッサC1は、プログラムPをメモリC2から読み取って実行することにより、情報処理装置20、異常判定装置10、または異常判定・学習装置10Aの各機能が実現される。
【0176】
プロセッサC1としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせなどを用いることができる。メモリC2としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又は、これらの組み合わせなどを用いることができる。
【0177】
なお、コンピュータCは、プログラムPを実行時に展開したり、各種データを一時的に記憶したりするためのRAM(Random Access Memory)を更に備えていてもよい。また、コンピュータCは、他の装置との間でデータを送受信するための通信インタフェースを更に備えていてもよい。また、コンピュータCは、キーボードやマウス、ディスプレイやプリンタなどの入出力機器を接続するための入出力インタフェースを更に備えていてもよい。
【0178】
また、プログラムPは、コンピュータCが読み取り可能な、一時的でない有形の記録媒体Mに記録することができる。このような記録媒体Mとしては、例えば、テープ、ディスク、カード、半導体メモリ、又はプログラマブルな論理回路などを用いることができる。コンピュータCは、このような記録媒体Mを介してプログラムPを取得することができる。また、プログラムPは、伝送媒体を介して伝送することができる。このような伝送媒体としては、例えば、通信ネットワーク、又は放送波などを用いることができる。コンピュータCは、このような伝送媒体を介してプログラムPを取得することもできる。
【0179】
〔付記事項1〕
本発明は、上述した実施形態に限定されるものでなく、請求項に示した範囲で種々の変更が可能である。例えば、上述した実施形態に開示された技術的手段を適宜組み合わせて得られる実施形態についても、本発明の技術的範囲に含まれる。
【0180】
〔付記事項2〕
上述した実施形態の一部又は全部は、以下のようにも記載され得る。ただし、本発明は、以下の記載する態様に限定されるものではない。
【0181】
(付記1)
複数の特徴量の集合として表現される事例を取得する取得手段と、
前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測手段と、
前記複数の予測結果を参照して、事例の異常度を出力する異常度出力手段とを備える
ことを特徴とする情報処理装置。
【0182】
(付記2)
前記予測手段は、
前記部分集合のそれぞれに対して1以上の予測モデルもしくは予測ルールを用いることで前記予測結果を複数出力する
ことを特徴とする付記1に記載の情報処理装置。
【0183】
(付記3)
前記複数の特徴量のそれぞれの間の関連性が予め与えられ、
前記部分集合は、前記少なくとも何れかの特徴量との関連度が相対的に低い特徴量により構成される
ことを特徴とする付記1または2に記載の情報処理装置。
【0184】
(付記4)
前記取得手段は、前記関連性に関する情報を更に取得し、
前記予測手段は、
前記関連性に関する情報を参照して、前記少なくとも何れかの特徴量との関連度が相対的に低い特徴量を特定し、特定した特徴量により前記部分集合を構成する
ことを特徴とする付記3に記載の情報処理装置。
【0185】
(付記5)
前記予測手段は、
前記少なくとも何れかの特徴量を除く特徴量から1以上の特徴量をランダムに選択し、
前記選択を繰り返して得られた部分集合のそれぞれを前記説明変数として用いて、前記予測結果を複数出力する
ことを特徴とする付記2に記載の情報処理装置。
【0186】
(付記6)
前記予測手段は、
前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量を参照して学習された決定木に含まれる各ノードからルールを抽出するルール抽出手段を備え、
前記抽出されたルールのそれぞれを用いて前記予測結果を複数出力する
ことを特徴とする付記2に記載の情報処理装置。
【0187】
(付記7)
前記ルール抽出手段は、
前記決定木の各ノードから抽出されたルールから冗長なルールを除外した少数のルールに絞り込むことで前記予測結果を出力するために用いる複数のルールを選択する
ことを特徴とする付記6に記載の情報処理装置。
【0188】
(付記8)
前記異常度出力手段は、前記事例に含まれる特徴量の値であって、前記目的変数に対応する特徴量の値である真値と前記予測結果とを比較することにより、前記真値の確からしさを表す確率値を計算する確率計算手段を備え、
前記複数の予測結果のそれぞれに対応する複数の前記確率値を用いた演算により前記異常度を算出する
付記1乃至7のいずれか1項に記載の情報処理装置。
【0189】
(付記9)
前記異常度は、
前記複数の確率値のうち、最も値の小さい順に、m個(mは自然数)の確率値を用いた演算により算出される付記8に記載の情報処理装置。
【0190】
(付記10)
前記異常度は、
前記複数の確率値を、前記確率値に対応する前記予測結果を得るために用いた前記説明変数の数が多いほど重みが小さくなるように重み付けする重み係数と、複数の前記確率値を用いた演算により算出される
ことを特徴とする付記8に記載の情報処理装置。
【0191】
(付記11)
複数の特徴量の集合として表現される事例を取得すること、
前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力すること、
前記複数の予測結果を参照して、事例の異常度を出力することを含む
ことを特徴とする情報処理方法。
【0192】
(付記12)
コンピュータを、
複数の特徴量の集合として表現される事例を取得する取得手段と、
前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測手段と、
前記複数の予測結果を参照して、事例の異常度を出力する異常度出力手段とを備える情報処理装置として機能させる
ことを特徴とするプログラム。
【0193】
〔付記事項3〕
上述した実施形態の一部又は全部は、更に、以下のように表現することもできる。
【0194】
少なくとも1つのプロセッサを備え、前記プロセッサは、
複数の特徴量の集合として表現される事例を取得する取得処理と、
前記事例に含まれる少なくとも何れかの特徴量を目的変数とし、前記複数の特徴量のうち、前記少なくとも何れかの特徴量を除く特徴量の部分集合であって、互いに異なる複数の部分集合を説明変数とした予測結果を複数出力する予測処理と、
前記複数の予測結果を参照して、事例の異常度を出力する異常度出力処理とを
を実行する。
【0195】
なお、この情報処理装置は、更にメモリを備えていてもよく、このメモリには、前記取得処理と、前記出力列生成処理とを前記プロセッサに実行させるためのプログラムが記憶されていてもよい。また、このプログラムは、コンピュータ読み取り可能な一時的でない有形の記録媒体に記録されていてもよい。
【符号の説明】
【0196】
10 異常判定装置
10A 異常判定・学習装置
20 情報処理装置
20A 情報処理装置
21 取得部
22 予測部
23 異常度出力部
24 教師データ取得部
25 学習部
30 記憶部
41 通信部
42 入力部
43 出力部
81 ルール抽出部
101 確率計算部