(57)【要約】【課題】異常検知を高精度で行うことができる異常検知装置、異常検知方法、および異常検知プログラムを提供することである。【解決手段】実施形態の異常検知装置は、検知部と、除去部と、学習部とを持つ。検知部は、異常検知の対象となる検知対象データを、学習の対象となる第１学習対象データに基づく学習が行われた第１自己符号化器に入力することにより、前記検知対象データ内の第１異常データを検知する。除去部は、前記第１学習対象データを、前記検知部によって検知された前記第１異常データに基づく学習が行われた第２自己符号化器に入力することにより、前記第１学習対象データから、前記第１異常データと関連付けされたデータを除去して第２学習対象データを生成する。学習部は、前記除去部により生成された前記第２学習対象データに基づいて前記第１自己符号化器を学習させる。【選択図】図１
2018112863.tif 000002
【特許請求の範囲】
【請求項１】
異常検知の対象となる検知対象データを、学習の対象となる第１学習対象データに基づく学習が行われた第１自己符号化器に入力することにより、前記検知対象データ内の第１異常データを検知する検知部と、
前記第１学習対象データを、前記検知部によって検知された前記第１異常データに基づく学習が行われた第２自己符号化器に入力することにより、前記第１学習対象データから、前記第１異常データと関連付けされたデータを除去して第２学習対象データを生成する除去部と、
前記除去部により生成された前記第２学習対象データに基づいて前記第１自己符号化器を学習させる学習部と、
を備える異常検知装置。
【請求項２】
前記検知部は、前記検知対象データと、前記第１自己符号化器により前記検知対象データを圧縮して再構成することにより生成された再構成データとの間の第１差異を算出し、前記第１差異に基づいて、前記第１異常データを検知する、
請求項１に記載の異常検知装置。
【請求項３】
前記除去部は、前記第１学習対象データと、前記第２自己符号化器により前記第１学習対象データを圧縮して再構成することにより生成された再構成データとの間の第２差異を算出し、前記第２差異に基づいて、前記第１学習対象データから、前記第１異常データと関連付けされたデータを除去して前記第２学習対象データを生成する、
請求項１または２に記載の異常検知装置。
【請求項４】
前記除去部は、前記第２学習対象データを、第２異常データに基づく学習が行われた第３自己符号化器に入力することにより、前記第２学習対象データから、前記第２異常データを除去して第３学習対象データを生成し、前記第２異常データは、前記第１異常データ内における、前記第１異常データと、前記第２自己符号化器により前記第１異常データを圧縮して再構成することにより生成された再構成データとの間の差異が閾値以上のデータであり、
前記学習部は、前記第３学習対象データに基づいて前記第１自己符号化器を学習させる、
請求項１から３のいずれか一項に記載の異常検知装置。
【請求項５】
前記除去部は、第ｎ番目の学習対象データを、第ｎ番目の異常データに基づく学習が行われた第ｎ＋１番目の自己符号化器に入力することにより、前記第ｎ番目の学習対象データから、前記第ｎ番目の異常データを除去して第ｎ＋１番目の学習対象データを生成し、前記第ｎ番目の異常データは、第ｎ−１番目の異常データ内における、第ｎ−１番目の異常データと、第ｎ番目の自己符号化器により前記第ｎ−１番目の異常データを圧縮して再構成することにより生成された再構成データとの間の差異が閾値以上のデータであり、
前記学習部は、前記第ｎ＋１番目の学習対象データに基づいて前記第１自己符号化器を学習させ、
前記ｎは、２以上の自然数である、
請求項１から３のいずれか一項に記載の異常検知装置。
【請求項６】
異常検知の対象となる検知対象データを、学習の対象となる第１学習対象データに基づく学習が行われた第１自己符号化器に入力することにより、前記検知対象データ内の第１異常データを検知し、
前記第１学習対象データを、検知された前記第１異常データに基づく学習が行われた第２自己符号化器に入力することにより、前記第１学習対象データから、前記第１異常データと関連付けされたデータを除去して第２学習対象データを生成し、
生成された前記第２学習対象データに基づいて前記第１自己符号化器を学習させる、
異常検知方法。
【請求項７】
前記第２学習対象データを、第２異常データに基づく学習が行われた第３自己符号化器に入力することにより、前記第２学習対象データから、前記第２異常データを除去して第３学習対象データを生成し、前記第２異常データは、前記第１異常データ内における、前記第１異常データと、前記第２自己符号化器により前記第１異常データを圧縮して再構成することにより生成された再構成データとの間の差異が閾値以上のデータであり、
前記第３学習対象データに基づいて前記第１自己符号化器を学習させる、
請求項６に記載の異常検知方法。
【請求項８】
コンピュータに、
異常検知の対象となる検知対象データを、学習の対象となる第１学習対象データに基づく学習が行われた第１自己符号化器に入力することにより、前記検知対象データ内の第１異常データを検知させ、
前記第１学習対象データを、検知された前記第１異常データに基づく学習が行われた第２自己符号化器に入力することにより、前記第１学習対象データから、前記第１異常データと関連付けされたデータを除去して第２学習対象データを生成させ、
生成された前記第２学習対象データに基づいて前記第１自己符号化器を学習させる、
異常検知プログラム。
【請求項９】
前記第２学習対象データを、第２異常データに基づく学習が行われた第３自己符号化器に入力することにより、前記第２学習対象データから、前記第２異常データを除去して第３学習対象データを生成させ、前記第２異常データは、前記第１異常データ内における、前記第１異常データと、前記第２自己符号化器により前記第１異常データを圧縮して再構成することにより生成された再構成データとの間の差異が閾値以上のデータであり、
前記第３学習対象データに基づいて前記第１自己符号化器を学習させる、
請求項８に記載の異常検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、異常検知装置、異常検知方法、および異常検知プログラムに関する。
【背景技術】
【０００２】
近年、自己符号化器を用いたデータの異常検知方法が知られている。この異常検知方法では、正常データ間における関係性やパターンを利用して、データを可能な限り損失無く圧縮して再構成するモデルを用いて異常データの検知を行う。このモデルを用いて正常データを処理した場合、データ損失が少ない、即ち、圧縮前の元データと再構成後のデータとの差分（以下、「再構成誤差」と呼ぶ）が小さくなる。一方、異常データを処理した場合、データ損失が大きく、即ち、再構成誤差が大きくなる。この異常検知方法では、このような再構成誤差の大きさに基づいてデータの異常が検知される。
【０００３】
上記の異常検知方法は、教師なし学習であるため、データに対して異常または正常のラベル付をする手間なく利用可能であるというメリットがあり、各種機器の故障検知、ネットワークの不正アクセス検知などに幅広く利用されている。
【０００４】
上記の異常検知方法は、モデルを生成するために、予め、学習データを用いた学習処理を行う必要があるが、この学習データには、正常データ以外に異常データを含んでいる場合がある。このような異常データを含む学習データを用いて学習処理を行うと、異常検知の精度が低下する場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−４５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、データの異常検知を高精度で行うことができる異常検知装置、異常検知方法、および異常検知プログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の異常検知装置は、検知部と、除去部と、学習部とを持つ。検知部は、異常検知の対象となる検知対象データを、学習の対象となる第１学習対象データに基づく学習が行われた第１自己符号化器に入力することにより、前記検知対象データ内の第１異常データを検知する。除去部は、前記第１学習対象データを、前記検知部によって検知された前記第１異常データに基づく学習が行われた第２自己符号化器に入力することにより、前記第１学習対象データから、前記第１異常データと関連付けされたデータを除去して第２学習対象データを生成する。学習部は、前記除去部により生成された前記第２学習対象データに基づいて前記第１自己符号化器を学習させる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態の異常検知装置の一例を示す機能ブロック図。
【図２】第１の実施形態の異常検知装置の処理の一例を示すフローチャート。
【図３】第１の実施形態の異常検知装置の異常データ除去処理の一例を示すフローチャート。
【図４】第１の実施形態の異常検知装置の異常データ除去処理を示す図。
【図５】第１の実施形態の異常検知装置の学習処理の一例を示すフローチャート。
【図６】第１の実施形態の異常検知装置の処理の他の例を示すフローチャート。
【図７】第２の実施形態の異常検知装置の一例を示す機能ブロック図。
【図８】第２の実施形態の異常検知装置における自己符号化器の関係の一例を示す図。
【図９】第２の実施形態の異常検知装置の異常データ除去処理の一例を示すフローチャート。
【図１０】第２の実施形態の異常検知装置の学習処理の一例を示すフローチャート。
【図１１】実施例の評価試験において使用したデータセットを示す図。
【図１２】実施例の評価試験の評価手順を示す図。
【発明を実施するための形態】
【０００９】
以下、実施形態の異常検知装置、異常検知方法、および異常検知プログラムを、図面を参照して説明する。
【００１０】
（第１の実施形態）
本実施形態の異常検知装置は、自己符号化器を用いて異常検知の実施時（運用時）に検知した異常データを使用して、学習時に使用する学習の対象となるデータ（以下、「学習対象データ」と呼ぶ）の中に含まれる異常データを除去する。そして、この異常データが除去された学習対象データを用いて自己符号化器を学習させることで、異常検知の性能を向上させることができる。
【００１１】
図１は、第１の実施形態の異常検知装置１の一例を示す機能ブロック図である。異常検知装置１は、異常検知の対象となるデータ（以下、「検知対象データ」と呼ぶ）の異常検知を行う。本実施形態における異常検知とは、検知対象データ内に存在する大多数のデータ（正常データ）と異なる傾向のデータ（異常データ）を発見することを示す。異常検知装置１は、異常検知を行うための前準備として、正常データの圧縮および再構成処理（復号処理）を行うことで、正常データにおけるデータ間の関係性やパターンを把握し、再構成誤差の小さな圧縮および復号処理を行うための手順を学習する。例えば、異常検知装置１は、学習のために準備された学習対象データの圧縮および再構成処理を行い、学習対象データに適合するモデル（正常モデル）を生成する。
【００１２】
異常検知装置１は、検知対象データに含まれる正常データに対しては再構成誤差の小さな圧縮および再構成処理を行うが、異常データに対して圧縮および再構成処理を行った場合、その再構成誤差が大きくなる。異常検知装置１は、この再構成誤差を大きさに基づいて、異常データを検知することができる。
【００１３】
異常検知装置１は、例えば各種センサである外部装置Ａから検知対象データを取得する。検知対象データは、例えば、各種センサによって測定されたセンサデータ、各種装置の動作ログデータ、各種数値データなど、任意のデータを含む。
【００１４】
異常検知装置１は、例えば、制御部１０と、取得部１２と、検知部１４と、除去部１６と、学習部１８と、受付部２０と、表示部２２と、記憶部２４とを備える。記憶部２４は、例えば、検知対象データ記憶部Ｄ１と、異常データ記憶部Ｄ２と、学習対象データ記憶部Ｄ３と、モデル記憶部Ｄ４とを備える。制御部１０は、異常検知装置１の各部の動作の制御を行う。
【００１５】
取得部１２は、外部装置Ａから検知対象データを取得し、検知対象データ記憶部Ｄ１に記憶させる。取得部１２は、例えば、外部装置Ａから検知対象データを継続的に取得する。或いは、取得部１２は、所定の周期で、外部装置Ａに蓄積された検知対象データを取得してもよい。また、受付部２０が異常検知装置１のユーザによるデータ取得指示を受け付けた場合に、取得部１２が、外部装置Ａから検知対象データを取得してもよい。
【００１６】
検知部１４は、検知対象データ記憶部Ｄ１から検知対象データを読み出して異常検知を行う。検知部１４は、例えば、学習対象データを用いた学習を行った第１自己符号化器３０を含む。第１自己符号化器３０は、モデル記憶部Ｄ４に記憶された正常モデルを用いて検知対象データの圧縮および再構成処理を行い、再構成データを生成する。正常モデルとは、学習対象データを用いた学習により算出された正常データに適合するモデルである。第１自己符号化器３０は、正常データを処理した場合、再構成誤差が小さな圧縮および再構成処理を行う。一方、第１自己符号化器３０は、異常データを処理した場合、再構成誤差が大きな圧縮および再構成処理を行う。検知部１４は、この再構成誤差の大きさに基づいてデータの異常検知を行う。
【００１７】
検知部１４は、例えば、検知対象データの再構成誤差（第１差異）を算出し、算出した再構成誤差が所定の閾値以上である場合には異常データと判定し、算出した再構成誤差が閾値未満である場合には正常データと判定する。この閾値は、平均二乗誤差などを用いて予め定義される。例えば、この閾値は、正常データの平均二乗誤差のα倍（αは正の数）などに設定されてよい。検知部１４は、検知した異常データを異常データ記憶部Ｄ２に記憶させる。
【００１８】
除去部１６は、学習対象データ記憶部Ｄ３から学習対象データを読み出し、この学習対象データの中に含まれる異常データを除去する。除去部１６は、例えば、異常データを用いた学習を行った第２自己符号化器３２を含む。第２自己符号化器３２は、モデル記憶部Ｄ４に記憶された異常モデルを用いて検知対象データの圧縮および再構成処理を行い、再構成データを生成する。異常モデルとは、異常データを用いた学習により算出された異常データに適合するモデルである。即ち、除去部１６は、学習対象データから、検知部１４によって検知された異常データと関連付けされたデータを削除する。除去部１６は、学習対象データから、検知部１４によって検知された異常データと同じ性質（傾向）を持つ異常データを削除する。
【００１９】
除去部１６は、例えば、学習対象データの再構成誤差（第２差異）を算出し、算出した再構成誤差が所定の閾値以上である場合には異常データと判定し、算出した再構成誤差が閾値未満である場合には正常データと判定する。この除去部１６によって異常データと判定されたデータは、検知部１４によって行われる異常検知においては、正常データと判定されるべきデータである。また、この除去部１６によって正常データと判定されたデータは、検知部１４によって行われる異常検知においては、異常データと判定されるべきデータである。
【００２０】
除去部１６は、学習対象データの中から、除去部１６が正常データと判定したデータ（検知部１４によって異常データと判定されるべきデータ）を除去することで、異常データの割合が低減された新たな学習対象データを生成する。即ち、除去部１６は、学習対象データの中から、除去部１６が異常データと判定したデータ（検知部１４によって正常データと判定されるべきデータ）を抽出する。除去部１６は、新たな学習対象データを学習対象データ記憶部Ｄ３に記憶させる。
【００２１】
学習部１８は、第１自己符号化器３０および第２自己符号化器３２の学習処理を制御する。学習部１８は、例えば、学習対象データに基づいて第１自己符号化器３０を学習させる。また、学習部１８は、例えば、第１自己符号化器３０に対して検知対象データを入力することにより得られる異常データに基づいて第２自己符号化器３２を学習させる。
【００２２】
受付部２０は、異常検知装置１のユーザによる操作を受け付ける。受付部２０は、例えば、マウス、キーボード、タッチパネルなどの入力端末である。
【００２３】
表示部２２は、例えば、検知部１４による異常検知の結果などを表示する。例えば、表示部２２は、液晶ディスプレイなどである。表示部２２が、タッチパネル対応のディスプレイである場合、表示部２２は、上記の受付部２０の機能を備えてもよい。
【００２４】
上記の異常検知装置１の各機能部のうち一部または全部は、プロセッサがプログラム（ソフトウェア）を実行することにより実現されてよい。この場合、異常検知装置１は、上記のプログラムをコンピュータ装置に予めインストールすることで実現してもよい。或いは、ＣＤ−ＲＯＭなどの記憶媒体に記憶された上記のプログラム、又はネットワークを介して頒布される上記のプログラムを、コンピュータ装置に適宜インストールすることで実現してもよい。また、異常検知装置１の各機能部のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアによって実現されてもよいし、ソフトウェアとハードウェアの組み合わせによって実現されてもよい。
【００２５】
記憶部２４は、検知対象データ、異常検知装置１の内部で処理される各種内部データ、各種モデルなどを記憶する。記憶部２４は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリなどで実現される。検知対象データ記憶部Ｄ１は、取得部１２によって外部装置Ａから取得された検知対象データを記憶する。異常データ記憶部Ｄ２は、検知部１４によって異常と判定された異常データを記憶する。学習対象データ記憶部Ｄ３は、第１自己符号化器３０の学習処理に使用される学習対象データを記憶する。モデル記憶部Ｄ４は、検知部１４の異常検知処理および除去部１６の除去処理において使用される各種モデルを記憶する。
【００２６】
次に、本実施形態の異常検知装置１の動作について説明する。図２は、本実施形態の異常検知装置１の処理の一例を示すフローチャートである。
【００２７】
まず、取得部１２は、制御部１０の制御下において、外部装置Ａから検知対象データを取得し、検知対象データ記憶部Ｄ１に記憶させる（ステップＳ１０１）。例えば、取得部１２は、外部装置Ａから検知対象データを継続的に取得する。或いは、取得部１２は、所定の周期で、外部装置Ａに蓄積された検知対象データを取得するようにしてもよい。
【００２８】
次に、制御部１０は、外部装置Ａから取得した検知対象データに対する異常検知処理を実行するか否かを判定する（ステップＳ１０３）。制御部１０は、例えば、受付部２０が異常検知装置１のユーザによる異常検知処理の実行指示を受け付けた場合に、異常検知処理を実行すると判定する。或いは、制御部１０は、所定の時間が経過した場合に異常検知処理を実行すると判定してもよい。尚、制御部１０による異常検知処理を実行するか否かの判定は行わず、外部装置Ａから検知対象データを取得した場合には必ず異常検知処理を実行してもよい。
【００２９】
制御部１０が検知対象データに対する異常検知処理を実行すると判定した場合、検知部１４は、検知対象データ記憶部Ｄ１から検知対象データを読み出し、学習対象データ（第１学習対象データ）に基づいて学習した第１自己符号化器３０を用いて検知対象データを圧縮および再構成し、再構成誤差を算出する（ステップＳ１０５）。
【００３０】
次に、検知部１４は、算出した再構成誤差が閾値以上であるか否かを判定する（ステップＳ１０７）。この閾値は、正常データの平均二乗誤差などを用いて予め定義される。
【００３１】
検知部１４が算出した再構成誤差が閾値以上であると判定した場合、即ち、検知対象データが異常データであると判定した場合、検知部１４は、この検知対象データを、異常データとして異常データ記憶部Ｄ２に記憶させる（ステップＳ１０９）。一方、検知部１４が算出した再構成誤差が閾値未満であると判定した場合、即ち、検知対象データが正常データであると判定した場合、検知部１４は、この検知対象データを異常データ記憶部Ｄ２に記憶させない。検知対象データが複数する場合には、検知対象データの各々に対して、上記の再構成誤差に基づく異常検知および記憶処理を行う。尚、制御部１０は、検知部１４によって検知された異常データに関する情報を、表示部２２に表示させてもよい。
【００３２】
次に（或いは、制御部１０が検知対象データに対する異常検知を実行しないと判定した場合）、制御部１０は、異常データ除去処理を実行するか否かを判定する（ステップＳ１１１）。例えば、制御部１０は、受付部２０が異常検知装置１のユーザによる異常データ除去処理の実行指示を受け付けた場合に、異常データ除去処理を実行すると判定する。或いは、制御部１０は、所定の時間が経過した場合に異常データ除去処理を実行すると判定してもよい。尚、制御部１０による異常データ除去処理を実行するか否かの判定は行わず、必ず異常データ除去処理を実行してもよい。
【００３３】
制御部１０が異常データ除去処理を実行すると判定した場合、除去部１６は、異常データ除去処理を実行する（Ｓ１１３）。異常データ除去処理の詳細については後述する。
【００３４】
次に（或いは、制御部１０が異常データ除去処理を実行しないと判定した場合）、制御部１０は、学習処理を実行するか否かを判定する（ステップＳ１１５）。例えば、制御部１０は、受付部２０が異常検知装置１のユーザによる学習処理の実行指示を受け付けた場合に、学習処理を実行すると判定する。或いは、制御部１０は、所定の時間が経過した場合に学習処理を実行すると判定してもよい。尚、制御部１０による学習処理を実行するか否かの判定は行わず、必ず学習処理を実行してもよい。制御部１０が学習処理を実行しないと判定した場合、検知対象データの取得処理を再度行う。
【００３５】
制御部１０が学習処理を実行すると判定した場合、学習部１８は、学習処理を実行する（Ｓ１１７）。学習処理の詳細については後述する。以後、検知対象データの取得処理を再度行う。
【００３６】
次に、本実施形態の異常検知装置１の異常データ除去処理について説明する。図３は、本実施形態の異常検知装置１の異常データ除去処理の一例を示すフローチャートである。図４は、本実施形態の異常検知装置１の異常データ除去処理を示す図である。
【００３７】
まず、学習部１８は、異常データ記憶部Ｄ２から異常データを読み出し、この異常データに基づいて第２自己符号化器３２を学習させる（ステップＳ２０１）。
【００３８】
次に、除去部１６は、学習対象データ記憶部Ｄ３から第１学習対象データを読み出し、異常データに基づいて学習した第２自己符号化器３２に対して入力する（ステップＳ２０３）。第２自己符号化器３２は、この第１学習対象データを圧縮して再構成して再構成データを生成する。
【００３９】
次に、除去部１６は、第１学習対象データと、再構成データと用いて、再構成誤差を算出する（ステップＳ２０５）。第１学習対象データ内に複数のデータが存在する場合には、各データに対して、再構成誤差を算出する。
【００４０】
次に、除去部１６は、第１学習対象データから異常データを除去する（ステップＳ２０７）。除去部１６は、例えば、再構成誤差が閾値以上であるデータを、学習対象データ記憶部Ｄ３に記憶させることで、異常データが除去された学習対象データ（第２学習対象データ）を生成する。除去部１６は、第１学習対象データから、検知部１４によって検知された異常データと関連付けされたデータを削除する。以上により、本フローチャートの処理を終了する。
【００４１】
次に、本実施形態の異常検知装置１の学習処理について説明する。図５は、本実施形態の異常検知装置１の学習処理の一例を示すフローチャートである。
【００４２】
まず、学習部１８は、学習対象データ記憶部Ｄ３から学習対象データ（上記の異常データ除去処理により異常データが除去された第２学習対象データ）を読み出し、この第２学習対象データを第１自己符号化器３０に対して入力させる（ステップＳ３０１）。
【００４３】
次に、学習部１８は、第１自己符号化器３０を学習させ、第２学習対象データに適合するノード間の結合係数を算出させる（ステップＳ３０３）。ここで、この結合係数は、例えばバックプロパゲーション法（誤差逆伝播法）等を使用して算出させる。
【００４４】
次に、学習部１８は、算出した結合係数を正常モデルとして、モデル記憶部Ｄ４に記憶させる（ステップＳ３０５）。以上により、本フローチャートの処理を終了する。
【００４５】
以上で説明した本実施形態によれば、異常検知を高精度で行うことができる異常検知装置、異常検知方法、および異常検知プログラムを提供することができる。本実施形態において、第１自己符号化器３０が、除去部１６によって異常データが除去された学習対象データに基づく学習を行うことで、検知部１４による異常検知の精度を向上させることができる。本実施形態の異常検知装置１は、各種機器の出力データに基づく故障または異常検知、製品の画像に基づく製造ラインでの検品、ネットワークの不正アクセス検知などに利用することができる。
【００４６】
尚、本実施形態では、「異常データ除去処理（ステップＳ１１３）」を行った後に、「学習処理（ステップＳ１１７）」を行う例について説明したが、図６に示すように、「学習処理（ステップＳ１１７）」を行った後に、「異常データ除去処理（ステップＳ１１３）」を行ってもよい。
【００４７】
また、本実施形態では、「異常データ除去処理（ステップＳ１１３）」の最初に第２自己符号化器３２の学習処理を行う例について説明したが、第２自己符号化器３２の学習は、「学習処理（ステップＳ１１７）」において行ってもよい。
【００４８】
（第２の実施形態）
次に、第２の実施形態について説明する。第１の実施形態と比較して、本実施形態における異常検知装置は、複数の自己符号化器を用いて、異常データの除去処理を行う点が異なる。このため、本実施形態の説明において、上記の第１の実施形態と同様の部分には同じ参照番号を付与し、その説明を省略あるいは簡略化する。また、第２学習対象データまでの処理については、第１の実施形態で説明しているので省略する。
【００４９】
学習対象データの中には、互いに性質の異なる複数の種類の異常データが存在する場合がある。これらの複数の種類の異常データの各々に適合した複数の自己符号化器を用いることで、異常データの除去性能を向上させることができる。
【００５０】
図７は、本実施形態の異常検知装置２の一例を示す機能ブロック図である。第１の実施形態と比較して、本実施形態の異常検知装置２は、複数の自己符号化器を用いて異常データの除去処理を行う除去部１７を備える。
【００５１】
除去部１７は、例えば、Ｎ−１個の自己符号化器（第２から第Ｎ自己符号化器）を備える。Ｎは２以上の自然数である。図８は、本実施形態の異常検知装置２における第２から第Ｎの自己符号化器の関係の一例を示す図である。第２自己符号化器３２は、第１自己符号化器３０に対して検知対象データを入力することにより得られた第１異常データを用いて学習を行う。第３自己符号化器３４は、第２自己符号化器３２に対して第１異常データを入力することにより得られた第２異常データを用いて学習を行う。第４自己符号化器３６は、第３自己符号化器３４に対して第２異常データを入力することにより得られた第３異常データを用いて学習を行う。第Ｎ自己符号化器３８は、第Ｎ−１自己符号化器に対して第Ｎ−２異常データを入力することにより得られた第Ｎ−１異常データを用いて学習を行う。
【００５２】
すなわち、除去部１７は、第ｎ番目の学習対象データを、第ｎ番目の異常データに基づく学習が行われた第ｎ＋１番目の自己符号化器に入力することにより、第ｎ番目の学習対象データから、第ｎ番目の異常データを除去して第ｎ＋１番目の学習対象データを生成する。第ｎ番目の異常データは、第ｎ−１番目の異常データ内における、第ｎ−１番目の異常データと、第ｎ番目の自己符号化器により第ｎ−１番目の異常データを圧縮して再構成することにより生成された再構成データとの間の差異が閾値以上のデータである。学習部１８は、第ｎ＋１番目の学習対象データに基づいて第１自己符号化器３０を学習させる。ここで、ｎは、２以上の自然数である。
【００５３】
モデル記憶部Ｄ４は、第２から第Ｎ自己符号化器によって用いられる第２から第Ｎ異常モデルを記憶する。例えば、第２自己符号化器３２は、モデル記憶部Ｄ４に記憶された第２異常モデルを用いて検知対象データの圧縮および再構成処理を行う。
【００５４】
次に、本実施形態の異常検知装置２の動作について説明する。異常検知装置２の全体の処理の流れは、異常データ除去処理および学習処理を除いて、図２に示す第１実施形態における異常検知装置１と同じである。以下、異常検知装置２の異常データ除去処理および学習処理についてのみ説明する。図９は、本実施形態の異常検知装置２の異常データ除去処理の一例を示すフローチャートである。
【００５５】
まず、制御部１０は、第１異常データに含まれる異常データの除去処理を実行するか否かを判定する（ステップＳ４０１）。例えば、制御部１０は、受付部２０が異常検知装置２のユーザによる異常データ除去処理の実行指示を受け付けた場合に、異常データ除去処理を実行すると判定する。
【００５６】
制御部１０が第１異常データに含まれる異常データの除去処理を実行すると判定した場合、除去部１６は、第２自己符号化器３２以外の自己符号化器（第３から第Ｎ自己符号化器）用いた再構成誤差を算出する（ステップＳ４０３）。次に、除去部１６は、算出した再構成誤差が閾値以下であるデータを除去する（ステップＳ４０５）。
【００５７】
即ち、除去部１６は、第３異常モデルを用いる第３自己符号化器３４に対して第１異常データを入力して再構成誤差を算出する。次に、除去部１６は、算出した再構成誤差が閾値以下であるデータを第１異常データから除去する。ここで、再構成誤差が閾値以下であるデータ、即ち、再構成誤差が小さいデータは、第１異常データに含まれる異常データに相当する。
【００５８】
次に、第３自己符号化器３４を用いて異常データの除去処理が行われたデータに対して、第４自己符号化器３６を用いて同様な異常データの除去処理を行う。以後、第５から第Ｎ自己符号化器を用いて同様な異常データの除去を繰り返し行うことで、第２自己符号化器３２の学習対象とすべき異常データの割合が高いデータが得られる。尚、第３、第４、・・・、第Ｎ自己符号化器の順で異常データの除去処理を行う必要はなく、第３から第Ｎ自己符号化器は任意の順で異常データの除去処理を行ってよい。
【００５９】
以後（或いは、制御部１０が第１異常データに含まれる異常データの除去処理を実行しないと判定した場合）、第３から第Ｎ自己符号化器に対して、上記の異常データの除去処理を行う。尚、上記の異常データ除去処理の後に、異常データ除去処理が行われた異常データに基づいて第２から第Ｎ自己符号化器の学習処理を行ってもよい。
【００６０】
次に、制御部１０は、学習対象データに含まれる異常データの除去処理を実行するか否かを判定する（ステップＳ４０７）。例えば、制御部１０は、受付部２０が異常検知装置２のユーザによる異常データ除去処理の実行指示を受け付けた場合に、異常データ除去処理を実行すると判定する。
【００６１】
制御部１０が学習対象データに含まれる異常データの除去処理を実行すると判定した場合、除去部１６は、第２異常モデルを用いる第２自己符号化器３２に対して、学習対象データを入力して再構成誤差を算出する（ステップＳ４０９）。次に、除去部１６は、算出した再構成誤差が閾値以下であるデータを除去する（ステップＳ４１１）。次に、第２自己符号化器３２を用いてデータの除去処理を行ったデータに対して、第３自己符号化器３４を用いて同様なデータ除去処理を行う。以後、第４から第Ｎ自己符号化器を用いて同様なデータの除去処理を行うことで、異常データが少なく、第１自己符号化器３０の学習対象とすべき正常データの割合が高い学習対象データ（第２学習対象データ）が得られる。除去部１６は、第２学習対象データを、学習対象データ記憶部Ｄ３に記憶させる。尚、第２、第３、・・・、第Ｎ自己符号化器の順でデータの除去処理を行う必要はなく、第２から第Ｎ自己符号化器は任意の順でデータの除去処理を行ってよい。以上により、本フローチャートの処理を終了する。
【００６２】
次に、本実施形態の異常検知装置２の学習処理について説明する。図１０は、本実施形態の異常検知装置２の学習処理の一例を示すフローチャートである。
【００６３】
まず、制御部１０は、正常モデルの学習処理を実行するか否かを判定する（ステップＳ５０１）。例えば、制御部１０は、受付部２０が異常検知装置２のユーザによる正常モデルの学習処理の実行指示を受け付けた場合に、学習処理を実行すると判定する。
【００６４】
制御部１０が正常モデルの学習処理を実行すると判定した場合、学習部１８は、学習対象データ記憶部Ｄ３から学習対象データ（例えば、上記の異常データ除去処理が行われた第２学習対象データ）を読み出し、この第２学習対象データを第１自己符号化器３０に入力させる（ステップＳ５０３）。
【００６５】
次に、学習部１８は、第１自己符号化器３０に第２学習対象データを学習させ、第２学習対象データに適合する結合係数を算出させる（ステップＳ５０５）。
【００６６】
次に、学習部１８は、算出した結合係数を正常モデルとして、モデル記憶部Ｄ４に記憶させる（ステップＳ５０７）。
【００６７】
次に、制御部１０は、第２異常モデルの学習処理を実行するか否かを判定する（ステップＳ５０９）。例えば、制御部１０は、受付部２０が異常検知装置２のユーザによる第２異常モデルの学習処理の実行指示を受け付けた場合に、学習処理を実行すると判定する。
【００６８】
制御部１０が第２異常モデルの学習を実行すると判定した場合、学習部１８は、異常データ記憶部Ｄ２から第１異常データを読み出し、この第１異常データを第２自己符号化器３２に入力させる（ステップＳ５１１）。
【００６９】
次に、学習部１８は、第２自己符号化器３２に第１異常データを学習させ、第１異常データに適合する結合係数を算出させる（ステップＳ５１３）。
【００７０】
次に、学習部１８は、算出した結合係数を第１異常モデルとして、モデル記憶部Ｄ４に記憶させる（ステップＳ５１５）。以後、第２から第Ｎ自己符号化器を用いて同様な学習処理を行う。尚、第２、第３、・・・第Ｎ自己符号化器の順で学習処理を行う必要はなく、第２から第Ｎ自己符号化器は任意の順で学習処理を行ってよい。以上により、本フローチャートの処理を終了する。
【００７１】
以上で説明した本実施形態によれば、異常検知を高精度で行うことができる異常検知装置、異常検知方法、および異常検知プログラムを提供することができる。また、本実施形態では、複数の種類の異常データの各々に適合した複数の自己符号化器を用いることで、異常データの除去性能を向上させることができる。
【００７２】
尚、本実施形態では、学習処理において、正常モデル（第１自己符号化器３０）の学習後に、異常モデル（第２から第Ｎ自己符号化器）の学習を行う例を説明したが、異常モデルの学習後に、正常モデル（第１自己符号化器３０）の学習を行ってもよい。
【００７３】
（実施例）
上記の異常検知装置１および２の性能を評価するために、以下の手順の評価試験を行った。図１１は、本実施例の評価試験において使用したデータセットを示す図である。図１２は、本実施例の評価試験の評価手順を示す図である。
【００７４】
評価手順
手順１：第１学習対象データに基づいて第１自己符号化器３０を学習
手順２：第１自己符号化器３０に対して検知対象データを入力し、再構成誤差が上位１０，０００位までのデータを第１異常データとして抽出
手順３：第１異常データに基づいて第２自己符号化器３２を学習
手順４：第２自己符号化器３２に対して学習対象データを入力し、再構成誤差が下位６，０００以内のデータを除去し、第２学習対象データとして保存
手順５：第２学習対象データに基づいて第１自己符号化器３０を学習（学習後の第１自己符号化器を第１自己符号化器３０Ａと呼ぶ）
手順６：第１自己符号化器３０および第１自己符号化器３０Ａの各々に対してテストデータを入力し、異常データの検知性能を評価指標ＡＵＣ（Area under the curve）にて評価
【００７５】
ＡＵＣ（Area under the curve）とは、分類器の評価指標となるＲＯＣ（Receiver Operating Characteristic‥受信者操作特性）曲線の下面積であって、０から１の値を取るものであり、１に近付く程、分類の精度が高いことを示す。ＡＵＣが１の場合に対象を完全に分類可能であることを示す。
【００７６】
手順６において、第１自己符号化器３０に対してテストデータを入力した場合のＡＵＣは０．７６であり、第１自己符号化器３０Ａに対してテストデータを入力した場合のＡＵＣは０．９９となった。これにより、第２自己符号化器３２を用いて異常データの除去処理を行うことで、分類の精度が向上することが分かった。
【００７７】
以上で説明した少なくとも一つの実施形態によれば、異常検知の対象となる検知対象データを、学習の対象となる第１学習対象データに基づく学習が行われた第１自己符号化器に入力することにより、前記検知対象データ内の第１異常データを検知する検知部と、前記第１学習対象データを、前記検知部によって検知された前記第１異常データに基づく学習が行われた第２自己符号化器に入力することにより、前記第１学習対象データから、前記第１異常データと関連付けされたデータを除去して第２学習対象データを生成する除去部と、前記除去部により生成された前記第２学習対象データに基づいて前記第１自己符号化器を学習させる学習部と、を備えることにより、データの異常検知を高精度で行うことができる。
【００７８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７９】
１，２…異常検知装置、１０…制御部、１２…取得部、１４…検知部、１６，１７…除去部、１８…学習部、２０…受付部、２２…表示部、２４…記憶部、３０…第１自己符号化器、３２…第２自己符号化器、３４…第３自己符号化器、３６…第４自己符号化器、３８…第Ｎ自己符号化器、Ａ…外部装置、Ｄ１…検知対象データ記憶部、Ｄ２…異常データ記憶部、Ｄ３…学習対象データ記憶部、Ｄ４…モデル記憶部
【図１】
2018112863.tif 000003
【図２】
2018112863.tif 000004
【図３】
2018112863.tif 000005
【図４】
2018112863.tif 000006
【図５】
2018112863.tif 000007
【図６】
2018112863.tif 000008
【図７】
2018112863.tif 000009
【図８】
2018112863.tif 000010
【図９】
2018112863.tif 000011
【図１０】
2018112863.tif 000012
【図１１】
2018112863.tif 000013
【図１２】
2018112863.tif 000014