(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-20
(45)【発行日】2022-12-28
(54)【発明の名称】学習装置、推定装置、パラメータ算出方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20221221BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2018228516
(22)【出願日】2018-12-05
【審査請求日】2021-03-15
【前置審査】
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100128314
【氏名又は名称】沖川 仁
(74)【代理人】
【識別番号】100189898
【氏名又は名称】永田 健悟
(72)【発明者】
【氏名】岩田 具治
(72)【発明者】
【氏名】山中 友貴
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2017-102540(JP,A)
【文献】桑原 昭之,ROC曲線を局所的に改善するパーセプトロンの学習則,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2012年03月07日,第111巻 第483号,第399頁-第404頁
【文献】槇原 靖 他,信頼度に基づく適応的しきい値制御によるROC曲線最適化,電子情報通信学会論文誌 (J94-D),日本,社団法人電子情報通信学会,2011年08月01日,第8号,第1227頁-第1239頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 3/12
10/00-20/20
(57)【特許請求の範囲】
【請求項1】
データと、データが異常か否かを示すラベルとを入力する入力データ読み込み部と、
異常度に関するパラメータを適用してデータの異常度を算出するための所定の関数と、前記ラベルとに基づく目的関数の値を、前記データと前記パラメータの値とを用いて算出する目的関数計算部と、
前記パラメータの値を更新しながら、前記目的関数計算部による処理を繰り返し実行することにより、前記目的関数の値を最大化する前記パラメータの値を算出するパラメータ更新部と
を備え
前記パラメータ更新部は、異常データの異常度を正常データの異常度よりも高くするための制約を用いて前記パラメータの値を更新する
ことを特徴とする学習装置。
【請求項2】
請求項1に記載の学習装置により得られた、前記目的関数の値を最大化する前記パラメータの値を適用した前記所定の関数にデータを入力することにより、当該データの異常度を算出する異常度計算部を備える
ことを特徴とする推定装置。
【請求項3】
学習装置が実行するパラメータ算出方法であって、
データと、データが異常か否かを示すラベルとを入力する入力ステップと、
異常度に関するパラメータを適用してデータの異常度を算出するための所定の関数と、前記ラベルとに基づく目的関数の値を、前記データと前記パラメータの値とを用いて算出する目的関数計算ステップと、
前記パラメータの値を更新しながら、前記目的関数計算ステップを繰り返し実行することにより、前記目的関数の値を最大化する前記パラメータの値を算出するパラメータ算出ステップと
を備え、
前記パラメータ算出ステップにおいて、異常データの異常度を正常データの異常度よりも高くするための制約を用いて前記パラメータの値を更新する
ことを特徴とするパラメータ算出方法。
【請求項4】
コンピュータを、
請求項1に記載の学習装置における各部として機能させるためのプログラム。
【請求項5】
コンピュータを、
請求項2に記載の推定装置における異常度計算部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データが与えられたときに、当該データに含まれる異常度を推定するための技術に関連するものである。
【背景技術】
【0002】
データが与えられたときに異常を検知するタスクは、異常検知と呼ばれる。異常検知の技術は、例えば、機器異常やネットワーク異常、クレジットカード詐欺の検知に利用されている。
異常検知の方法として、教師なし手法が提案されている(例えば非特許参考文献1)。しかし、 各データが異常か異常でないかを表す異常ラベルが与えられている場合、従来の教師なし手法では、その異常ラベルを有効に活用できないという問題がある。
【0003】
また、異常検知の方法として、教師あり手法も提案されている(例えば非特許参考文献2)。しかし、従来の教師あり手法では、異常データが少ない場合、高い性能が達成できないという問題がある。
【先行技術文献】
【非特許文献】
【0004】
【文献】Liu, Fei Tony, Kai Ming Ting, and Zhi-Hua Zhou. "Isolation forest." 2008 Eighth IEEE International Conference on Data Mining. IEEE, 2008.
【文献】Zhang, J., Zulkernine, M., & Haque, A. (2008). Random-forests-based network intrusion detection systems. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 38(5), 649-659.
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は上記の点に鑑みてなされたものであり、データ及び異常ラベルが与えられたときに、異常ラベルを有効に活用し、高い性能で異常度を推定することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
開示の技術によれば、データと、データが異常か否かを示すラベルとを入力する入力データ読み込み部と、
異常度に関するパラメータを適用してデータの異常度を算出するための所定の関数と、前記ラベルとに基づく目的関数の値を、前記データと前記パラメータの値とを用いて算出する目的関数計算部と、
前記パラメータの値を更新しながら、前記目的関数計算部による処理を繰り返し実行することにより、前記目的関数の値を最大化する前記パラメータの値を算出するパラメータ更新部と
を備え、
前記所定の関数を用いて算出される異常度は、データの発生する確率が高いデータに対してはその値が低くなり、データの発生する確率が低いデータに対してはその値が高くなるような異常度である
ことを特徴とする学習装置が提供される。
【発明の効果】
【0007】
開示の技術によれば、データ及び異常ラベルが与えられたときに、異常ラベルを有効に活用し、高い性能で異常度を推定することを可能とする技術が提供される。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施の形態におけるシステムの構成図である。
【
図2】装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施の形態を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、以下の説明では、データとして多次元ベクトルを用いているが、本発明は、多次元ベクトルに限らず、時系列データやグラフデータなどの構造データなど、任意のデータに対して適用可能である。
【0010】
なお、以下の明細書のテキストにおいて、「Aバー」は、「A」の頭にバー「-」が付された記号を意味し、θ^は、「θ」の頭に「^」が付された記号を意味する。
【0011】
(システム構成例)
図1に、本発明の実施の形態におけるシステムの構成例を示す。
図1に示すように、本システムは、入力データから異常度に関するパラメータの値を算出する学習装置100と、学習装置100で算出されたパラメータの値を用いて入力データから異常度を算出する推定装置200とを有する。
【0012】
図1に示すように、学習装置100は、入力データ読み込み部110、目的関数計算部120、パラメータ更新部130を有する。また、推定装置200は、異常度計算部210を有する。各部の動作内容については後述する。
【0013】
なお、学習装置100と推定装置200が1つの装置(便宜上、学習推定装置と呼ぶ)であってもよい。当該学習推定装置は、入力データ読み込み部110、目的関数計算部120、パラメータ更新部130、異常度計算部210を有する。
【0014】
学習装置100、推定装置200、及び学習推定装置は、いずれもコンピュータにより実現することができる。すなわち、当該装置は、コンピュータに内蔵されるCPUやメモリ等のハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0015】
図2は、上記コンピュータのハードウェア構成例を示す図である。
図2のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、及び入力装置1007等を有する。
【0016】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0017】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、学習装置100、推定装置200、学習推定装置などに係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられ、ネットワークを介した入力手段及び出力手段として機能する。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。表示装置1006は出力手段の例でもある。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【0018】
以下、各部の処理内容を説明する。まず、学習装置100について説明する。
【0019】
(学習装置100の入力データ読み込み部110)
入力データ読み込み部110には、入力データとしてX={(xn,yn)}N
n=1が与えられ、当該入力データは目的関数計算部120に渡される。ここで、xn=(xn1,・・・,xnD)はn番目のデータのD次元の特徴ベクトル、ynはその異常ラベルである。データxnが異常の場合yn=1、異常でない場合(正常の場合)yn=0となる。また、Nは1以上の整数である。
【0020】
(学習装置100の目的関数計算部120、パラメータ更新部130)
本実施の形態では、データの異常度として、そのデータが発生する確率が高い場合に低くなり、発生する確率が低い場合に高くなるような異常度を用いる。例えば、異常度として、以下の式(1)に示すように負の対数尤度関数を用いることができる。
【0021】
【数1】
ここでθは異常度のパラメータである。θは、尤度関数p(x|θ)のパラメータでもある。
【0022】
なお、異常度は、尤度関数以外の関数で表わすようにしても良い。例えば、オートエンコーダの再構成誤差などの教師なし異常検知で用いられる関数で表わされる異常度を用いることとしてもよい。
【0023】
異常度を表すための関数を"所定の関数"と呼んでもよい。例えば、尤度関数p(x|θ)は所定の関数の例である。「-logp(x|θ)」も所定の関数の例である。また、"所定の関数"は、尤度関数以外の関数であってもよい。
【0024】
パラメータθは、異常度に関連するパラメータであり、特定のものに限定されないが、例えば、異常データ(あるいは正常データ)の発生確率や、データの分布を表すための平均及び分散、ニューラルネットのパラメータなどである。また、尤度関数p(x|θ)の値は、パラメータθのもとで、データxが観測される尤度(尤もらしさ)を表す。
【0025】
異常度を尤度関数を用いて算出する場合における当該尤度関数として、正規分布、混合正規分布、変分オートエンコーダ、ニューラル自己回帰密度関数など、任意の密度関数を用いることができる。例えば、尤度関数として、ニューラル自己回帰密度関数を用いる場合、尤度関数p(x|θ)は下記の式(2)で表わされる。
【0026】
【数2】
上記の式(2)において、x
<d=[x
1,・・・,x
d-1]はd番目より前の各特徴ベクトルであり、各特徴のモデルとして例えば、下記の式(3)で表わされる混合正規分布を用いることができる。
【0027】
【数3】
上記の式(3)において、Kは混合数であり、N(・|μ,σ
2)は平均μ、分散σ
2の正規分布、π
dk(x
<d;θ),μ
dk(x
<d;θ),σ
2
dk(x
<d;θ)はそれぞれ、k番目のコンポーネントのd番目の特徴のための混合比、平均、分散を定義するニューラルネットワークである。
【0028】
なお、上記の分布を用いることは一例であり、例えば、データが二値変数の場合はベルヌーイ分布、データが非負の整数の場合はポワソン分布、データが非負の実数の場合はガンマ分布などの他の分布を用いることもできる。
【0029】
学習装置100は、正常データに対しては異常度が低く、かつ、異常データの異常度が正常データの異常度よりも高くなるように、異常度のパラメータθを推定する。そのために、例えば、正常データの異常度を低くするために、以下の式(4)に示す目的関数を最大化するようにθを推定する。目的関数計算部120は、θの推定のために、入力データと、ある値のθを用いて目的関数の計算を行う。
【0030】
【数4】
また、上記目的関数最大化問題を解く際に、異常データの異常度を正常データの異常度よりも高くするために、以下の式(5)で示される制約を利用することができる。なお、より具体的には、制約は、パラメータ更新部130がパラメータを更新する際の制約となる。
【0031】
【数5】
式4、式5において、Aは異常データのインデックスの集合を示し、Aバー={n∈D|y
n=0}は正常データのインデックスの集合を示す。すなわち、式(4)は、正常データのみの対数尤度の和を正常データの個数で割った値を示す。また、式(5)は、前述したとおり、異常データの異常度(-logp(x
n|θ)、n∈A)が、正常データの異常度(-logp(x
n´|θ)、n´∈Aバー)よりも高いという制約を示す。この制約のもとで、パラメータを更新しながら式(4)を最大化するパラメータθを計算する。
【0032】
入力データとして、ラベルありデータとラベルなしデータが与えられる場合がある。ラベルありデータとラベルなしデータが与えられる場合、式(5)の制約に代えて、異常データがラベルなしデータよりも異常度が高くなるように、正常データがラベルなしデータよりも異常度が低くなるような制約を用いればよい。
【0033】
上記のように制約を用いて目的関数を最大化することは一例である。効率的な制約なし最適化として、以下の式(6)で示す目的関数を最大化することで、パラメータθを推定することとしてもよい。
【0034】
【数6】
上記の式(6)において、λ≧0はハイパーパラメータ、f(・)は下記の式(7)で示されるシグモイド関数である。
【0035】
【数7】
式(6)の第二項は、異常データの異常度が正常データの異常度よりも高い場合に大きな値を取り、異常データの異常度が正常データの異常度よりも低い場合に小さな値を取る関数の例である。f(・)として、異常データの異常度が正常データの異常度よりも高い場合に大きな値を取り、異常データの異常度が正常データの異常度よりも低い場合に小さな値を取る関数であって、式(6)以外の関数を用いてもよい。ハイパーパラメータは、例えば開発データを用いることにより設定できる。
【0036】
上記の目的関数の最大化の方法は特定の方法に限定されないが、例えば、確率的勾配法を用いて実現できる。例えば、パラメータ更新部130は、目的関数の値と、目的関数のパラメータθによる微分値を用いて、確率的勾配法によりパラメータθを推定する。
【0037】
(推定装置200の異常度計算部210)
学習装置100により推定されたパラメータの値をθ^とする。推定装置200には、パラメータθ^と、異常度を求める対象の入力データとしてデータx*が入力される。異常度計算部210は、パラメータθ^を用いて、データx*に対する異常度を下記の式(8)により計算し、当該異常度を出力する。
【0038】
【数8】
(処理フロー)
図3は、学習装置100の処理を示すフローチャートである。
【0039】
S101において、入力データ読み込み部110が入力データを読み込む。読み込まれた入力データは目的関数計算部120に渡される。なお、入力データは、あるシステムからリアルタイムに受信する観測データであってもよいし、観測されたデータを学習装置100における記憶手段(HDD,メモリ等)に予め保存しておいたものであってもよい。
【0040】
S102において、目的関数計算部120が、入力データと現在のパラメータθの値(最初は予め設定した初期値)を用いて目的関数を計算することにより目的関数の値を求めるとともに、目的関数のパラメータθに関する微分値を求める。目的関数の値、及び、微分地は、パラメータ更新部130に渡される。
【0041】
S103において、パラメータ更新部130は、S102で計算した目的関数の値と微分値を用いて、目的関数の値が高くなるように、パラメータθを更新する。
【0042】
S102、S103の処理は、終了条件を満たすまで繰り返される。すなわち、S104において、パラメータ更新部130(あるいは目的関数計算部120)は、終了条件を満たすかどうかを判定し、満たさなければS102に進み、満たせば処理を終了する。
【0043】
終了条件としては、例えば、繰り返し回数がある値を越える、目的関数値の変化量がある値より小さくなる、パラメータの変化量がある値より小さくなる、などを用いることができる。
【0044】
学習装置100の処理によりパラメータθの値が算出(推定)されると、推定装置200の異常度計算部210が、推定されたパラメータθの値を用いて、対象のデータについての異常度を計算する。
【0045】
(評価結果)
上記実施の形態を用いて説明した本発明に係る技術を評価するために、16のデータを用いて評価を実施した。その結果を
図4に示す。
図4に示す評価では、評価指標としてArea Under the ROC Curve(AUC)を用いた。AUCの値が1に近いほど高性能であることを示す。
【0046】
図4における表の左端に16のデータ名が示されている。本発明に係る手法(Proposed)に対する比較対象として、
図4の表の上端に示すとおり、the local outlier factor (LOF)、one-class support vector machine (OCSVM)、isolation forest (IF)、valiational autoencoder (VAE)、deep masked autoencoder density estimator (MADE)、k-nearest neighbor (KNN)、support vector machine (SVM)、random forest (RF)、neural network (NN)を用いた。
【0047】
図4に示すとおり、本発明に係る手法(Proposed)が他の手法よりも多くのデータで高い性能を達成していることがわかる。
【0048】
(実施の形態のまとめ)
以上、説明したとおり、本明細書には少なくとも下記の事項が開示されている。
(第1項)
データと、データが異常か否かを示すラベルとを入力する入力データ読み込み部と、
異常度に関するパラメータを適用してデータの異常度を算出するための所定の関数と、前記ラベルとに基づく目的関数の値を、前記データと前記パラメータの値とを用いて算出する目的関数計算部と、
前記パラメータの値を更新しながら、前記目的関数計算部による処理を繰り返し実行することにより、前記目的関数の値を最大化する前記パラメータの値を算出するパラメータ更新部と
を備えることを特徴とする学習装置。
(第2項)
前記所定の関数を用いて算出される異常度は、出現する確率が高いデータに対してはその値が低くなり、出現する確率が低いデータに対してはその値が高くなるような異常度である
ことを特徴とする第1項に記載の学習装置。
(第3項)
前記パラメータ更新部は、異常データの異常度を正常データの異常度よりも高くするための制約を用いて前記パラメータの値を更新する
ことを特徴とする第1項又は第2項に記載の学習装置。
(第4項)
前記目的関数は、異常データの異常度が正常データの異常度よりも高い場合に大きな値を取り、異常データの異常度が正常データの異常度よりも低い場合に小さな値を取る関数を含む
ことを特徴とする第1項又は第2項に記載の学習装置。
(第5項)
第1項ないし第4項のうちいずれか1項に記載の学習装置により得られた、前記目的関数の値を最大化する前記パラメータの値を適用した前記所定の関数にデータを入力することにより、当該データの異常度を算出する異常度計算部
を備えることを特徴とする推定装置。
(第6項)
学習装置が実行するパラメータ算出方法であって、
データと、データが異常か否かを示すラベルとを入力する入力ステップと、
異常度に関するパラメータを適用してデータの異常度を算出するための所定の関数と、前記ラベルとに基づく目的関数の値を、前記データと前記パラメータの値とを用いて算出する目的関数計算ステップと、
前記パラメータの値を更新しながら、前記目的関数計算ステップを繰り返し実行することにより、前記目的関数の値を最大化する前記パラメータの値を算出するパラメータ算出ステップと
を備えることを特徴とするパラメータ算出方法。
(第7項)
コンピュータを、第1項ないし第4項のうちいずれか1項に記載の学習装置における各部として機能させるためのプログラム。
(第8項)
コンピュータを、第5項に記載の推定装置における異常度計算部として機能させるためのプログラム。
【0049】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0050】
100 学習装置
110 入力データ読み込み部
120 目的関数計算部
130 パラメータ更新部
200 推定装置
210 異常度計算部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置