(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023163114
(43)【公開日】2023-11-09
(54)【発明の名称】異常検知装置、システム、方法及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231101BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022167374
(22)【出願日】2022-10-19
(62)【分割の表示】P 2022549666の分割
【原出願日】2022-04-27
(71)【出願人】
【識別番号】517045705
【氏名又は名称】株式会社エイシング
(74)【代理人】
【識別番号】100098899
【弁理士】
【氏名又は名称】飯塚 信市
(74)【代理人】
【識別番号】100163865
【弁理士】
【氏名又は名称】飯塚 健
(72)【発明者】
【氏名】菅原 志門
(72)【発明者】
【氏名】出澤 純一
(57)【要約】 (修正有)
【課題】事後的なデータの傾向の変化にも対応可能な異常検知技術を提供する。
【解決手段】異常検知装置100は、評価対象データを取得するデータ取得部131と、1又は複数の木構造モデルへの評価対象データの入力に基づいて生成された推論出力に基づいて評価対象データに関する異常検知を行う異常検知部133と、木構造モデルに対して、評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する更新モデル生成部11と、を備え、所定の条件を満たした場合、異常検知部133及び更新モデル生成部11において、木構造モデルに代えて更新木構造モデルを使用する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
評価対象データを取得する、データ取得部と、
1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知部と、
前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成部と、を備え、
所定の条件を満たした場合、前記異常検知部及び前記更新モデル生成部において、前記木構造モデルに代えて前記更新木構造モデルが使用される、異常検知装置。
【請求項2】
前記忘却学習処理は、忘却学習用更新量を、各前記木構造モデルの有するすべての葉ノードに対応付けられた推論値から減ずることにより行われる、請求項1に記載の異常検知装置。
【請求項3】
前記忘却学習用更新量は、所定の窓幅に基づいて設定される、請求項2に記載の異常検知装置。
【請求項4】
前記忘却学習用更新量は、各前記木構造において、前記推論出力に基づいて生成された追加学習用更新量を各前記木構造の葉ノードの数で除した値である、請求項2に記載の異常検知装置。
【請求項5】
前記追加学習処理は、前記推論出力に基づいて生成された追加学習用更新量を、各前記木構造モデルの有する葉ノードのうち前記推論出力の生成に関与した葉ノードに対応付けられた推論値に対して加算することにより行われる、請求項2に記載の異常検知装置。
【請求項6】
前記条件は、前記更新木構造モデルが生成されたことである、請求項1に記載の異常検知装置。
【請求項7】
前記異常検知部は、前記推論出力と所定の閾値との比較に基づいて異常検知を行う、請求項1に記載の異常検知装置。
【請求項8】
前記木構造モデルは1つであって、
前記異常検知部における前記推論出力は、前記木構造モデルの一の葉ノードに対応付けられた出力値である、請求項1に記載の異常検知装置。
【請求項9】
前記木構造モデルは複数であって、
前記異常検知部における前記推論出力は、各前記木構造モデルの各葉ノードに対応付けられた出力値の相加平均値である、請求項1に記載の異常検知装置。
【請求項10】
前記木構造モデルは複数であって、
前記異常検知部における前記推論出力は、各前記木構造モデルの各葉ノードに対応付けられた出力値の総和である、請求項1に記載の異常検知装置。
【請求項11】
評価対象データを取得する、データ取得部と、
1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知部と、
前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成部と、を備え、
所定の条件を満たした場合、前記異常検知部及び前記更新モデル生成部において、前記木構造モデルに代えて前記更新木構造モデルが使用される、異常検知システム。
【請求項12】
評価対象データを取得する、データ取得ステップと、
1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知ステップと、
前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成ステップと、を備え、
所定の条件を満たした場合、前記異常検知ステップ及び前記更新モデル生成ステップにおいて、前記木構造モデルに代えて前記更新木構造モデルが使用される、異常検知方法。
【請求項13】
評価対象データを取得する、データ取得ステップと、
1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知ステップと、
前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成ステップと、を備え、
所定の条件を満たした場合、前記異常検知ステップ及び前記更新モデル生成ステップにおいて、前記木構造モデルに代えて前記更新木構造モデルが使用される、異常検知プログラム。
【請求項14】
評価対象データを取得する、データ取得部と、
1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知部と、
前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成部と、を備え、
所定の条件を満たした場合、前記異常検知部及び前記更新モデル生成部において、前記木構造モデルに代えて前記更新木構造モデルが使用される、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データ等の異常検知を行う装置等に関する。
【背景技術】
【0002】
近年、人工知能(AI)に対する注目の高まりから、様々な機械学習技術について研究開発が進められている(例えば、特許文献1)。
【0003】
また、近年、事前に収集されたデータについて機械学習技術や統計技術を適用して得られたモデルを種々の装置へと搭載し、異常検知を行う技術について研究開発がなされている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、この種の異常検知を行うにあたって、事前に得られたデータの傾向と、運用後に事後的に得られたデータの傾向が異なる場合があった。このようなことは、例えば、異常検知を行うデータに係る装置が経年劣化したこと等により所謂コンセプトドリフトが生じた場合や、事前に得られたデータの量又は質が不十分であった場合等に生じる。
【0006】
このようなデータの傾向の変化の結果、異常検知を適切に実行することができないおそれがあった。すなわち、事後的に得られたデータの傾向からすれば正常と判定すべき状態を異常と判定してしまったり、或いは、その逆に、事後的に得られたデータの傾向からすれば異常と判定すべき状態を正常と判定してしまうおそれがあった。
【0007】
本発明は、上述の技術的背景の下になされたものであり、その目的とするところは、事後的なデータの傾向の変化にも対応可能な異常検知技術を提供することにある。
【0008】
本発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【0009】
上述の技術的課題は、以下の構成を有する異常検知装置等により解決することができる。
【0010】
すなわち、本発明に係る異常検知装置は、評価対象データを取得する、データ取得部と、1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知部と、前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成部と、を備え、所定の条件を満たした場合、前記異常検知部及び前記更新モデル生成部において、前記木構造モデルに代えて前記更新木構造モデルが使用される。
【0011】
このような構成によれば、新たなデータに基づく追加学習処理に加えて忘却学習処理を行って木構造モデルの更新を行い、更新されたモデルに基づいて異常検知が行われるので、事後的なデータの傾向の変化にも対応可能な異常検知技術を提供することができる。
【0012】
前記忘却学習処理は、忘却学習用更新量を、各前記木構造モデルの有するすべての葉ノードに対応付けられた推論値から減ずることにより行われる、ものであってもよい。
【0013】
このような構成によれば、減算という簡易な処理により高速に忘却学習を行うことができる。
【0014】
前記忘却学習用更新量は、所定の窓幅に基づいて設定される、ものであってもよい。
【0015】
このような構成によれば、窓幅という一定の基準に基づいて忘却学習を行うことができる。
【0016】
前記忘却学習用更新量は、各前記木構造において、前記推論出力に基づいて生成された追加学習用更新量を各前記木構造の葉ノードの数で除した値である、ものであってもよい。
【0017】
このような構成によれば、忘却学習用更新量として、追加学習用更新量に応じた更新量を設定することができる。
【0018】
前記追加学習処理は、前記推論出力に基づいて生成された追加学習用更新量を、各前記木構造モデルの有する葉ノードのうち前記推論出力の生成に関与した葉ノードに対応付けられた推論値に対して加算することにより行われる、ものであってもよい。
【0019】
このような構成によれば、加算という簡易な処理により高速に追加学習を行うことができる。
【0020】
前記条件は、前記更新木構造モデルが生成されたことである、ものであってもよい。
【0021】
このような構成によれば、更新木構造モデルが存在する場合には、異常検知と更新モデルの生成において木構造モデルに代えて更新木構造モデルが使用される。
【0022】
前記異常検知部は、前記推論出力と所定の閾値との比較に基づいて異常検知を行う、ものであってもよい。
【0023】
このような構成によれば、所定の閾値を基準として異常検知を行うことができる。
【0024】
前記木構造モデルは1つであって、前記異常検知部における前記推論出力は、前記木構造モデルの一の葉ノードに対応付けられた出力値である、ものであってもよい。
【0025】
このような構成によれば、1の木構造モデルにより推論出力を特定することができる。
【0026】
前記木構造モデルは複数であって、前記異常検知部における前記推論出力は、各前記木構造モデルの各葉ノードに対応付けられた出力値の相加平均値である、ものであってもよい。
【0027】
このような構成によれば、複数の木構造モデルを用いて推論出力を生成することができる。
【0028】
前記木構造モデルは複数であって、前記異常検知部における前記推論出力は、各前記木構造モデルの各葉ノードに対応付けられた出力値の総和である、ものであってもよい。
【0029】
このような構成によれば、複数の木構造モデルを用いて推論出力を生成することができる。
【0030】
別の側面から見た本発明は、異常検知システムであって、評価対象データを取得する、データ取得部と、1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知部と、前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成部と、を備え、所定の条件を満たした場合、前記異常検知部及び前記更新モデル生成部において、前記木構造モデルに代えて前記更新木構造モデルが使用される。
【0031】
別の側面から見た本発明は、異常検知方法であって、評価対象データを取得する、データ取得ステップと、1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知ステップと、前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成ステップと、を備え、所定の条件を満たした場合、前記異常検知ステップ及び前記更新モデル生成ステップにおいて、前記木構造モデルに代えて前記更新木構造モデルが使用される。
【0032】
別の側面から見た本発明は、異常検知プログラムであって、評価対象データを取得する、データ取得ステップと、1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知ステップと、前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成ステップと、を備え、所定の条件を満たした場合、前記異常検知ステップ及び前記更新モデル生成ステップにおいて、前記木構造モデルに代えて前記更新木構造モデルが使用される。
【0033】
別の側面から見た本発明は、情報処理装置であって、評価対象データを取得する、データ取得部と、1又は複数の木構造モデルへの前記評価対象データの入力に基づいて生成された推論出力に基づいて前記評価対象データに関する異常検知を行う、異常検知部と、前記木構造モデルに対して、前記評価対象データに基づく追加学習処理と、忘却学習処理と、を行うことにより更新木構造モデルを生成する、更新モデル生成部と、を備え、所定の条件を満たした場合、前記異常検知部及び前記更新モデル生成部において、前記木構造モデルに代えて前記更新木構造モデルが使用される。
【発明の効果】
【0034】
本発明によれば、事後的なデータの傾向の変化にも対応可能な異常検知技術を提供することができる。
【図面の簡単な説明】
【0035】
【
図1】
図1は、異常検知装置のハードウェア構成図である(第1の実施形態)。
【
図2】
図2は、異常検知装置の機能ブロック図である(第1の実施形態)。
【
図3】
図3は、木構造モデルの生成処理に関するゼネラルフローチャートである(第1の実施形態)。
【
図4】
図4は、木構造生成用データの例を示す表である(第1の実施形態)。
【
図5】
図5は、統計データの一例を示す表である(第1の実施形態)。
【
図6】
図6は、木構造モデルの生成処理に関する詳細フローチャートである(第1の実施形態)。
【
図7】
図7は、木構造モデルにおけるノードの参照順に関する説明図である(第1の実施形態)。
【
図8】
図8は、事前学習動作に関するゼネラルフローチャートである(第1の実施形態)。
【
図9】
図9は、学習用データの一例を示す表である(第1の実施形態)。
【
図10】
図10は、推論値の特定処理に関する詳細フローチャートである(第1の実施形態)。
【
図11】
図11は、木構造モデルの更新処理の詳細フローチャートである(第1の実施形態)。
【
図12】
図12は、更新処理に関する概念図である(第1の実施形態)。
【
図13】
図13は、異常検知動作に関するゼネラルフローチャートである(第1の実施形態)。
【
図14】
図14は、忘却学習処理の概念図である(第1の実施形態)。
【
図15】
図15は、木構造モデルの生成処理に関するゼネラルフローチャートである(第2の実施形態)。
【
図16】
図16は、事前学習動作に関するゼネラルフローチャートである(第2の実施形態)。
【
図17】
図17は、推論値の生成処理に関する詳細フローチャートである(第2の実施形態)。
【
図18】
図18は、木構造モデルの更新処理の詳細フローチャートである(第2の実施形態)。
【
図19】
図19は、更新処理の概念図である(第2の実施形態)。
【
図20】
図20は、異常検知動作に関するゼネラルフローチャートである(第2の実施形態)。
【
図21】
図21は、忘却学習処理の概念図である(第2の実施形態)。
【
図22】
図22は、更新処理の概念図(第3の実施形態)である。
【
図23】
図23は、忘却学習処理の概念図(第3の実施形態)である。
【発明を実施するための形態】
【0036】
以下、本発明の実施の一形態を、添付の図面を参照しつつ、詳細に説明する。
【0037】
(1.第1の実施形態)
第1の実施形態においては、本発明を異常検知装置100へと適用した例について説明する。ここで、異常検知装置100は、異常検知を行うための専用装置であってもよいし他の機能を含む装置の一部として構成されてもよい。また、単にPC等の情報処理装置上で実現してもよい。
【0038】
(1.1 構成)
図1は、異常検知装置100のハードウェア構成図である。同図から明らかな通り、異常検知装置100は、制御部1、記憶部3、入力部5、表示部6、音声出力部7、通信部8及びI/O部9を備え、これらの構成は互いにバス等を介して接続されている。
【0039】
制御部1は、CPUであり種々の演算処理を行う。より詳細には、後述の種々の動作を実現するプログラムを実行する処理を行う。なお、制御部1は、CPUに限定されず、GPU等の他の演算機能を持つ装置であってもよい。
【0040】
記憶部3は、ROM、RAM、ハードディスク、フラッシュメモリ等の揮発性又は不揮発性の記憶装置であり、後述の種々の動作を実現するプログラムや、種々のデータを記憶する。
【0041】
入力部5は、装置に設けられた図示しない入力装置からの入力を検出して制御部1等に供する機能を有する。
【0042】
表示部6は、図示しないディスプレイ等の表示装置へと表示する制御を行う機能を有する。
【0043】
音声出力部7は、図示しないスピーカー等の音声出力装置へと音声出力を行う制御を行う機能を有する。
【0044】
通信部8は、外部装置との間の通信を行うための通信ユニットであり、外部装置との間でデータの授受を行う。
【0045】
I/O部9は、外部装置との間で入出力を行うためのインタフェースとなる装置である。
【0046】
なお、
図1に示したハードウェア構成は例示である。従って、ハードウェア構成は、他の構成としてもよく、例えば、一部の構成又は機能を統合したり分割する等してもよい。また、後述の種々の処理は、プログラムにより実行してもよいし、FPGA等のICにより回路的に実現してもよい。
【0047】
図2は、異常検知装置100の機能ブロック図である。同図から明らかな通り、異常検知装置100は、記憶部3と、木構造モデル生成処理部11と、初期学習処理部12と、異常検知部13を備えている。
【0048】
木構造モデル生成処理部11は、記憶部3からデータを読み出して木構造を生成する処理を行い、記憶部3へと記憶する。初期学習処理部12は、記憶部3から学習対象となるデータ及び学習パラメータ等を読み出し、初期学習を行い、学習済モデルを記憶部3へと記憶する。異常検知部13は、記憶部3とデータをやり取りして、異常検知処理、追加学習処理、忘却学習処理、及び、異常出力処理を行う。
【0049】
異常検知部13は、データ取得部131と、推論処理部132と、異常検知処理部133と、出力処理部137と、追加学習処理部135と、忘却学習処理部136とを備えている。
【0050】
データ取得部131は、図示しないセンサや外部装置等から評価対象データを取得し記憶部3へと記憶させる処理を行う。推論処理部132は、記憶部3から学習済モデルを読み出して評価対象データに基づいて推論処理を実行し、異常検知に用いられる推論出力を生成する。異常検知処理部133は、推論出力に基づいて評価対象データに関する異常検知を行う。異常を検知した場合、出力処理部137は、表示部6又は音声出力部7へと異常出力を行う。
【0051】
追加学習処理部135は、評価対象データと学習済モデルを読み出して追加学習処理を行い、追加学習済モデルを記憶部3へと記憶する。また、忘却学習処理部136は、学習済モデルを読み出して忘却学習処理を行い、忘却学習を行った学習済モデルを記憶部3へと記憶する。
【0052】
(1.2 動作)
本実施形態において、異常検知装置100は、以下で述べる通り、木構造モデルの生成動作、事前学習動作、及び、異常検知動作を行う。なお、これらの一連の処理は、連続的に行ってもよいし一部の動作を事前に実行してもよい。例えば、運用前に木構造モデルの生成動作と事前学習動作を実行し、運用後に、異常検知動作を実行してもよい。
【0053】
(1.2.1 木構造モデルの生成動作)
まず、後述の事前学習及び異常検知等で用いられる学習済モデル生成の基礎となる木構造モデルを生成するための動作について説明する。
【0054】
図3は、木構造モデルの生成処理に関するゼネラルフローチャートである。同図から明らかな通り、処理が開始すると、木構造モデル生成処理部11は、木構造生成用データを記憶部3から読み出す処理を行う(S11)。
【0055】
図4は、木構造生成用データの例を示す表である。同図から明らかな通り、本実施形態においては、木構造生成用データは、それぞれTステップから成る3つの系列データX
1~X
3から構成されている。第1の系列データX
1には、1→8→・・・→42のように整数値が格納されている。第2の系列データX
2には、31→35→・・・→39のように整数値が格納されている。第3の系列データX
3には、0→5→・・・→12のように整数値が格納されている。
【0056】
図3に戻り、木構造生成用データの読出処理が完了すると、木構造モデル生成処理部11は、後述の繰り返し処理に用いる整数nを初期化する処理を行う(S12)。例えば、整数nは1に設定される。
【0057】
初期化処理の後、木構造モデル生成処理部11は、整数nの値に対応する系列データXnについて統計データの生成処理及び記憶処理を行う。本実施形態において統計データは当該系列データの最大値と最小値である。従って、整数nが1の場合には、第1の系列データX1を構成するデータから、最大値と最小を特定して記憶する。
【0058】
統計データの記憶処理の後、木構造モデル生成処理部11は、このような統計データの特定及び記憶処理(S13)を、nの値が所定の最大値Nと一致するまで(S15NO)、整数nに1を足し合わせてインクリメントしつつ(S16)、繰り返し行う。なお、本実施形態において、Nは3である。
【0059】
すなわち、整数nが2の場合には、第2の系列データX2を構成するデータから、最大値と最小値を特定して記憶する。整数nが3の場合には、第3の系列データX3を構成するデータから、最大値と最小値を特定して記憶する。
【0060】
図5は、以上の処理(S15YES)により生成された統計データの一例を示す表である。同図から明らかな通り、各系列データX
1~X
3について最大値と最小値が特定される。
【0061】
なお、本実施形態においては、統計データとして最大値と最小値を例示したが、本発明はこのような構成に限定されない。従って、例えば、統計データとして、平均値と標準偏差等、他の値を利用してもよい。
【0062】
図3に戻り、統計データを生成する一連の処理が完了すると、木構造モデル生成処理部11は、木構造モデルの生成処理を行う(S17)。
【0063】
図6は、木構造モデルの生成処理に関する詳細フローチャートである。同図から明らかな通り、処理が開始すると、生成される木構造モデルを構成する根ノードを参照ノードに設定する処理を行う(S171)。
【0064】
参照ノードの設定処理の後、参照ノードから2分木を生成するための分割値を設定するため、入力系列を選択する処理が行われる(S172)。本実施形態においては、3つの入力系列(X1~X3)のうちから1の入力系列が選択される。
【0065】
入力系列の選択処理の後、統計データに基づいて分割値を設定する処理が行われる(S173)。本実施形態においては、分割値として、選択された入力系列に係る最大値と最小値の間でランダムな値を設定する。
【0066】
分割値の設定処理の後、木構造を構成するすべてのノードについて分割値を設定する処理がなされたか否かを判定する処理が行われる(S175)。未だすべてのノードについて処理がなされていない場合(S175NO)、所定の法則に則って参照ノードを別のノードへと設定する処理が行われる(S176)。本実施形態においては、深さ優先探索の順序で参照ノードを変更する。
【0067】
一方、すべてのノードについて処理がなされた場合(S175YES)、すべてのノードへの分割値の設定処理が完了したものとして次の処理へと進む。
【0068】
図7は、本実施形態に係る木構造モデルにおけるノードの参照順に関する説明図である。同図において、各ノード内の数字はノードの参照順である。本実施形態においては、数字の順序に従って、分割値の設定が実行されていく。なお、本実施形態においては深さ優先探索によりノードを参照したが他の順序により参照してもよい。
【0069】
図6に戻り、分割値の設定処理の後、生成された木構造の各葉ノードに対応付けられた出力値を初期化する処理が行われる(S177)。本実施形態において、出力値はいずれも0である。
【0070】
初期化処理の後、生成された木構造データを記憶部3へと記憶する処理が行われて(S178)、木構造の生成処理は終了する。
【0071】
なお、本実施形態においては、木構造モデル分割値は、それぞれ統計データに基づいてランダムに設定する構成としたが、本発明はこのような構成に限定されない。要するに各ノードにおいて分割値が設定された木構造が得られればよいことから、他の手法により木構造を生成してもよい。例えば、決定木等の手法により木構造を生成し、葉ノードに係る出力値を初期化する等してもよい。
【0072】
(1.2.2 事前学習動作)
次に、生成した木構造モデルを利用した事前学習動作について説明する。
【0073】
図8は、初期学習処理部12によって実行される事前学習動作に関するゼネラルフローチャートである。同図から明らかな通り、処理が開始すると、初期学習処理部12は、分割値が設定された木構造モデルを読み出す処理を行う(S21)。また、木構造モデルの読出処理の後、初期学習処理部12は、学習用データの読出処理を行う(S22)。
【0074】
図9は、読み出される学習用データの一例を示す表である。同図から明らかな通り、本実施形態において学習用データは、それぞれTステップから成る複数の入力系列データ(X1~X3)と、対応する一の正解系列データ(Y)とから構成されている。なお、正解系列データは、正常値の場合に1、異常値の場合に-1となるように設定されており、これが教師あり学習における教師データとなる。
【0075】
なお、木構造生成用データと学習用データとを共用してもよい。また、入力系列データや正解データの次元数は例示である。さらに、教師データにおいて正常値と異常値として割り当てる数字は、任意の数値であってもよく、正負も問わない。また、正常値と異常値が非対称であってもよい(例えば、正常値の場合に5、異常値の場合に-3など)。加えて、後述の異常検知の際の閾値と関連付けて決定してもよい。
【0076】
図8に戻り、学習用データの読出処理の後、初期学習処理部12は、推論値y'の特定処理を行う(S23)。
【0077】
図10は、推論値の特定処理(S23)に関する詳細フローチャートである。同図から明らかな通り、処理が開始すると、初期学習処理部12は、系列データ(X1~X3)の1ステップ分のデータを木構造モデルに対して入力することにより、各ノードに設定された分割値に基づいて一の経路を特定し、葉ノードを特定する処理を行う(S231)。
【0078】
葉ノードを特定した後、初期学習処理部12は、推論値y'の特定処理を行う(S232)。本実施形態において、推論値y'は、当該葉ノードに対応付けられたすべての正解データyの相加平均値である。なお、ここで特定の語は、記憶部3からデータを読み出すことによる特定と、及び、所定の演算により値を生成することによる特定の両方を含む。
【0079】
図8に戻り、推論値y'の特定処理の後、木構造モデルの更新処理を行う(S25)。
【0080】
図11は、木構造モデルの更新処理(S25)の詳細フローチャートである。同図から明らかな通り、処理が開始すると、まず、更新量dの生成処理が行われる(S251)。更新量dは、正解値yと推論値y'の差分に学習率η(0<η≦1)を掛けた値である。
【0081】
【0082】
更新量dを算出した後、下記の数式の通り、推論に用いた葉ノードの推論値y'に対して更新量dを加算することにより推論値y'を更新する処理を行う(S252)。なお、下式は、右辺の値を左辺へと代入することを表している。
【0083】
【0084】
図12は、推論に用いた葉ノードの推論値y'を更新量dを加算することにより行われる更新処理に関する概念図である。同図においては、推論に用いられた右から2番目の葉ノードに対して更新量dが加算されている。なお、同図における木構造は例示であって、簡略化して示されている点に留意されたい。
【0085】
更新処理の後、初期学習処理部12は、更新結果を記憶する処理を行い(S253)、木構造モデルの更新処理は終了する。
【0086】
図8に戻り、木構造モデルの更新処理が完了すると、初期学習処理部12は、すべてのステップの学習用データについて一連の処理(S23、S25)を実行したか否かを判定する(S27)。
【0087】
未だすべてのステップの学習用データについて処理が完了していない場合(S27NO)、参照データの変更処理を行い(S28)、再度一連の処理を行う(S23、S25)。一方、すべてのステップの学習用データについて処理が完了した場合(S27YES)、すべての学習用データについて学習処理を行ったものとして、次の処理へと進む。
【0088】
学習処理の完了後、初期学習処理部12は、葉ノードに対応付けられた推論値y'を含む学習済モデルデータを記憶する処理を行う(S29)。その後、初期学習処理は終了する。
【0089】
(1.2.3 異常検知動作)
続いて、初期学習処理により生成された学習済モデル、本実施形態においては、学習済の木構造モデルを用いた異常検知動作について説明する。
【0090】
図13は、異常検知動作に関するゼネラルフローチャートである。同図から明らかな通り、処理が開始すると、データ取得部131は、後述の異常検知処理において利用される所定の閾値を読み出す処理を行う(S30)。
【0091】
閾値の読出処理の後、データ取得部131は、記憶部3から記憶されている最新の木構造学習済モデルを読み出す処理を行う(S31)。学習済モデルの読出処理の後、データ取得部131は、評価対象となる木構造モデルへの入力データを記憶部3から取得する処理を行う(S32)。
【0092】
なお、この入力データは、異常検知装置100の構成のうち記憶部3以外の構成から取得してもよいし、他の外部装置等から取得してもよい。
【0093】
入力データの取得処理の後、推論処理部132は、読み出した木構造学習済モデルと、取得した入力データに基づいて、初期学習時と同様の推論処理を行う(S33)。すなわち、推論処理部132は、まず、入力データと、木構造モデルの各ノードに対応付けられた分割値に基づいて、入力データに対応する木構造モデル上の一の経路と葉ノードを特定する。その後、特定された葉ノードに対応付けられた推論値y'を特定する。
【0094】
推論処理の後、異常検知処理部133は、読み出した閾値と特定された推論値y'に基づいて異常検知処理を行う(S35)。より詳細には、異常検知処理部133は、推論値y'が閾値以上であるか又は閾値より小さいかを判定する。推論値y'が閾値以上である場合、異常検知処理部133は、異常でないこと、すなわち、正常であることを検知する。一方、推論値y'が閾値より小さい場合、異常検知処理部133は、異常であることを検知する。
【0095】
異常が検知された場合(S36YES)、入力データにおいて異常が検知されたことを出力する処理を行う(S37)。なお、この異常出力処理は、例えば、表示部6や音声出力部7へと出力する処理を含んでもよい。
【0096】
一方、異常が検知されなかった場合(S36NO)、追加学習処理部135は、入力データに基づいて追加学習処理(S38)を行う。より詳細には、追加学習処理部135は、
図11の木構造モデルの更新処理(S25)と同様に、推論値y'と正解値yの差分に学習率ηを掛け合わせて得られた更新量d(数式1を参照)を、推論に用いた葉ノードの推論値y'に対して加算することにより推論値y'を更新する(数式2を参照)。なお、このとき、正解値yは正常値の場合であるので1に設定される。
【0097】
このような構成によれば、加算という簡易な処理により高速に追加学習を行うことができる。
【0098】
追加学習処理の後、忘却学習処理部136は、忘却学習処理(S39)を行う。より詳細には、忘却学習処理部136は、下記数式の通り、木構造が有するk個の葉ノードのそれぞれから、忘却用更新量εだけ減算する処理を行う。
【0099】
【0100】
なお、ここで忘却用更新量εは、下記数式の通り、出力1をスライドする窓幅に相当するステップ数を表すL(自然数)で除した値である。
【0101】
【0102】
図14は、忘却学習処理の概念図である。同図から明らかな通り、本実施形態においては、忘却学習処理として、木構造を有するすべての葉ノードの推論値y'についてそれぞれ忘却用更新量εだけ減算されている。
【0103】
このような構成によれば、減算という簡易な処理により高速に忘却学習を行うことができる。また、窓幅という一定の基準に基づいて忘却学習を行うことができる。
【0104】
図13に戻り、忘却学習処理の後、再び一連の処理が実行される(S31~S36)。なお、この場合、学習済モデルの読出処理(S31)においては、追加学習処理及び忘却学習処理が行われた学習済モデルが読み出される。
【0105】
このような構成によれば、取得された新たなデータに基づく追加学習処理に加えて忘却学習処理を行って木構造モデルの更新を行い、更新されたモデルに基づいて異常検知が行われるので、事後的なデータの傾向の変化にも対応可能な異常検知技術を提供することができる。
【0106】
なお、本実施形態においては、異常検知がされなかった場合(S36)にのみ、追加学習及び忘却学習を行うものとして説明したが、本発明はこのような構成に限定されない。従って、異常の有無に関わらず学習する構成、例えば、異常が検知されなかった場合(S36NO)には、正常な状態として追加学習し、異常が検知された場合(S36YES)には、異常な状態として学習する構成としてもよい。このとき、いずれの場合も忘却学習を行ってもよい。また、ユーザからの指令に基づいて、得られたデータの一部又は全部について、任意のタイミングで追加学習処理及び/又は忘却学習処理を行ってもよい。
【0107】
(2.第2の実施形態)
第1の実施形態においては、単一の木構造モデルを用いて異常検知処理等を行った。本実施形態においては、複数の木構造モデルを利用して学習/推論処理を行うアンサンブル学習モデルを用いた例のうち、特に、複数の木構造モデルの出力に基づいて(例えば、複数の木構造モデルの出力の平均をとることにより)、推論出力を生成するバギング型モデルを用いた例について説明する。
【0108】
(2.1 構成)
本実施形態に係る異常検知装置のハードウェア構成は、学習モデルとしてアンサンブル学習モデルを用いる点を除いて、第1の実施形態に係る構成(
図1及び
図2参照)と略同一であるので、詳細な説明は省略する。
【0109】
(2.2 動作)
(2.2.1 木構造モデルの生成動作)
図15は、複数の木構造モデルの生成処理に関するゼネラルフローチャートである。同図から明らかな通り、木構造生成用データの読み出しを行い各系列データについて統計データを特定及び記憶するフローは第1の実施形態に係るフローと同一である(S41~S46)。
【0110】
ただし、本実施形態においては、統計データの特定及び記憶処理の後に、変数mを例えば1等に初期化する処理を行い(S47)、第1の実施形態と同様の木構造モデルの生成処理(S48、
図6参照)を、変数mがTreeNumと等しくなるまで(S49YES)、変数mを1ずつインクリメントしつつ(S50)繰り返す(S49NO)点において第1の実施形態と相違する。
【0111】
すなわち、本実施形態においては、木構造モデルがTreeNum個生成されて記憶部3へと記憶されることとなる。
【0112】
(2.2.2 事前学習動作)
図16は、本実施形態に係る事前学習動作に関するゼネラルフローチャートである。同図から明らかな通り、事前学習動作のフロー(S61~S68)は、第1の実施形態に係るフロー(
図8参照)と略同一である。ただし、本実施形態においては、木構造モデルが複数存在することから、推論値y'の生成処理(S63)に関する詳細フローと、木構造モデルの更新処理(S65)に関する詳細フローが第1の実施形態とは異なる。
【0113】
図17は、本実施形態に係る推論値の生成処理(S63)に関する詳細フローチャートである。同図から明らかな通り、処理が開始すると、変数mを初期化する処理が行われる(S631)。
【0114】
その後、各木構造における推論値を表す木構造推論値y''をすべての木構造モデルにおいて特定する処理が行われる。
【0115】
まず、一の木構造モデルについて対応する葉ノードを特定する処理が行われる(S632)。すなわち、参照データを入力データとして、入力データと、一の木構造モデルの各ノードに対応付けられた分割値に基づいて、入力データに対応する木構造モデル上の一の経路を特定し、その末端の葉ノードを特定する処理が行われる。
【0116】
次に、特定された葉ノードに対応付けられた推論値を読み出して木構造推論値ymо''を特定する処理が行われる(S633)。
【0117】
このような一連の処理(S632~S633)を木の個数分だけ、変数mを1ずつインクリメントしながら(S636)繰り返す(S635NO)。
【0118】
すべての木について木構造推論値ymо''が特定された場合(S637)、最終的な推論値y'を生成する処理が行われる。下記数式の通り、推論値y'は、木構造推論値ymо''の総和を木の本数TreeNumで除した値、すなわち、木構造推論値ymо''の相加平均値である。推論値y'の生成処理の後、処理は終了する。
【0119】
【0120】
図18は、木構造モデルの更新処理(S65)の詳細フローチャートである。同図から明らかな通り、処理が開始すると、更新量dの生成処理が行われる(S651)。なお、更新量dは、下記数式の通り、正解値yと生成した推論値y'との差分に学習率η(ただし、0<η≦1)を掛けた値である。
【0121】
【0122】
更新量dの生成処理の後、変数mの初期化処理が行われる(例えば、m=1)。初期化処理の後、一の木構造モデルに係る推論に用いた葉ノードの更新処理が実行される(S653)。より詳細には、下記数式の通り、木構造推論値ymо''に更新量dを加算することにより木構造推論値ymо''の更新処理が実行される。
【0123】
【0124】
木構造推論値の更新処理の後、変数mが木の本数TreeNumと等しくなるまで(S655NO)、変数mを1ずつインクリメントさせつつ(S656)、繰り返す処理が行われる。すなわち、これにより、すべての木構造モデルに係る推論に用いた葉ノードについて、更新量dに基づく更新処理が行われることとなる。
【0125】
すべての木について更新処理が完了すると(S655YES)、更新結果、すなわち、更新済の学習済モデルやその付随データを記憶部3へと記憶する処理が行われる(S657)。その後、処理は終了する。
【0126】
図19は、複数の木について更新処理を行う場合の概念図である。同図から、更新量dを各木の推論に用いた葉ノードの推論値y''に対して加算することにより学習済モデルの更新処理がなされることが把握される。
【0127】
(2.2.3 異常検知動作)
図20は、本実施形態に係る異常検知動作に関するゼネラルフローチャートである。同図から明らかな通り、本実施形態に係る異常検知動作に関するフローは、第1の実施形態に係るフローと略同一である。しかしながら、本実施形態においては複数の木構造モデルを含むモデルを用いることから、推論処理(S75)、追加学習処理(S79)、及び忘却学習処理(S80)の詳細が第1の実施形態とは異なる。
【0128】
本実施形態に係る推論処理(S75)においては、
図17で示した処理と同様の処理により推論値y'が生成される。すなわち、入力データに基づいて木構造推論値y''を生成し、それらの相加平均値(数式5を参照)を算出することにより、推論値y'が生成される。
【0129】
本実施形態に係る追加学習処理(S79)においては、
図16の木構造モデルの更新処理(S65)と同様に、推論値y'と正解値yの差分に学習率ηを掛け合わせて得られた更新量d(数式6を参照)を、推論の基礎となった各木構造モデルの葉ノードの推論値y
mо''に対して加算することにより木構造推論値y
mо''の更新処理が実行される(数式7を参照)。なお、このとき、正解値yは正常値の場合であるので1に設定される。
【0130】
本実施形態に係る忘却学習処理(S80)においては、下記数式の通り、各木構造モデルのすべての葉ノードに係る木構造推論値y''から忘却用更新量εだけ減算する処理が実行される。
【0131】
【0132】
ただし、忘却用更新量εは第1の実施形態と同様に出力1をスライド窓幅に相当するステップ数を表すL(自然数)で除した値である。
【0133】
図21は、本実施形態に係る忘却学習処理の概念図である。同図から明らかな通り、本実施形態においては、忘却学習処理として、各木構造モデルのすべての葉ノードに係る木構造推論値y''についてそれぞれ忘却用更新量εだけ減算されている。
【0134】
このような構成によれば、取得された新たなデータに基づく追加学習処理に加えて忘却学習処理を行って木構造モデルの更新を行い、更新されたモデルに基づいて異常検知が行われるので、事後的なデータの傾向の変化にも対応可能な異常検知技術を提供することができる。
【0135】
(3.第3の実施形態)
第2の実施形態においては、複数の木構造モデルの木構造推論値y''の相加平均を推論値y'とするモデルを用いた処理について説明した。本実施形態においては、複数の木構造モデルを利用して学習/推論処理を行うアンサンブル学習モデルを用いた例のうち、特に、複数の木構造モデルの出力に基づいて(例えば、複数の木構造モデルの出力の総和をとることにより)、推論出力を生成するブースティング型モデルを用いた例について説明する。
【0136】
(3.1 構成)
本実施形態のハードウェア構成は第1の実施形態又は第2の実施形態と略同一であるので詳細な説明は省略する。
【0137】
(3.2 動作)
(3.2.1 木構造モデルの生成動作)
本実施形態に係る木構造モデルの生成動作は、第2の実施形態で示したもの(
図15を参照)と略同一であるので同様な処理についての詳細な説明は省略する。すなわち、本実施形態においても、TreeNum個の木構造モデルを生成して記憶部3へと記憶する。
【0138】
(3.2.2 事前学習動作)
本実施形態に係る事前学習動作も第2の実施形態と略同一であるので同様な処理についての詳細な説明は省略する(
図16を参照)。しかしながら、本実施形態においては推論値y'の生成処理(S63)と木構造モデルの更新処理(S65)が第2の実施形態とは異なる。
【0139】
本実施形態に係る推論値y'の生成処理は、各木について木構造推論値ymо''を特定する点において第2の実施形態と同様である(S631~S635)。しかしながら、下記数式の通り、すべての木構造推論値ymо''の総和をとることにより推論値y'を生成する点において相違する。
【0140】
【0141】
また、本実施形態に係る木構造モデルの更新処理も、基本的な流れは第2の実施形態と同様である(
図18を参照)。すなわち、まず、第2の実施形態と同様、以下の数式に従って、更新量dを生成する。
【0142】
【0143】
その後、第2の実施形態(
図18を参照)と同様に、この更新量dを用いて、推論値y'の基礎となった木構造推論値y''を生成したすべての葉ノードについて更新を行い、その更新結果を記憶する処理を行う。
【0144】
ただし、下記数式の通り、更新量を木の個数TreeNumで除した値を加算することにより木構造推論値y''を更新する点において第2の実施形態とは相違する。
【0145】
【0146】
図22は、本実施形態に係る更新処理を行う場合の概念図である。同図から、本実施形態においては、更新量dを木の個数TreeNumで除した値を加算することにより、各木の木構造推論値y''の更新処理がなされることが把握される。
【0147】
(3.2.3 異常検知動作)
本実施形態に係る異常検知動作も第2の実施形態と略同一であるので同様な処理についての詳細な説明は省略する(
図20を参照)。しかしながら、本実施形態においては推論値y'の生成処理(SS75)、追加学習処理(S79)、及び忘却学習処理(S80)の詳細が、第2の実施形態とは異なる。
【0148】
本実施形態に係る推論処理において、推論値y'は各木の木構造推論値y''の総和として生成される(は数式9を参照)。
【0149】
また、本実施形態に係る追加学習処理において、木構造推論値y''は、事前学習と同様の手法により行われる。すなわち、推論値y'と正解値yの差分に学習率ηを掛け合わせて得られた更新量d(数式10を参照)を木の本数TreeNumで除した値を、推論の基礎となった各木構造モデルの葉ノードの推論値ymо''に対して加算することにより木構造推論値ymо''の更新処理が実行される(数式11を参照)。なお、このとき、正解値yは正常値の場合であるので1に設定される。
【0150】
さらに、本実施形態に係る忘却学習処理において、木構造推論値y''は、下記数式の通り、忘却用更新量εを木の本数TreeNumで除した値を、各木構造モデルのすべての葉ノードに係る木構造推論値y''から減算することにより更新される。
【0151】
【0152】
ただし、忘却用更新量εは第1の実施形態と同様に出力1をスライド窓幅に相当するステップ数を表すL(自然数)で除した値である。
【0153】
図23は、本実施形態に係る忘却学習処理の概念図である。同図から、本実施形態において、忘却学習処理として、各木構造モデルのすべての葉ノードに係る木構造推論値y''から、忘却用更新量εを木の本数で除した値だけ、それぞれ減算されていることが把握される。
【0154】
このような構成によれば、取得された新たなデータに基づく追加学習処理に加えて忘却学習処理を行って木構造モデルの更新を行い、更新されたモデルに基づいて異常検知が行われるので、事後的なデータの傾向の変化にも対応可能な異常検知技術を提供することができる。
【0155】
(4.変形例)
本発明は、上述の実施形態に限定されることはなく、様々に変形して実施することができる。
【0156】
上述の実施形態における忘却学習処理においては、忘却用更新量εをスライド窓幅Lに基づいて決定したが、本発明はそのような構成に限定されない。従って、他の手法により忘却学習処理を行ってもよい。
【0157】
例えば、忘却用更新量として、下記数式の通り、更新量dをm番目の木の葉ノードの数LeafNummで除した値としてもよい。
【0158】
【0159】
このような構成によれば、忘却更新量として、追加学習用更新量に応じた更新量を設定することができる。
【0160】
なお、第1の実施形態の場合、下記数式の通り、推論値yk'から忘却用更新量ε1を減算することによりモデルの更新が行われる。
【0161】
【0162】
第2の実施形態の場合も同様に、下記数式の通り、木構造推論値ymk'から忘却用更新量εmを減算することによりモデルの更新が行われる。
【0163】
【0164】
第3の実施形態の場合には、下記数式の通り、推論値yk'から忘却用更新量εmをTreeNumで除した値で減算することによりモデルの更新が行われる。
【0165】
【0166】
図24は、これらの忘却学習処理の概念図である。
図24Aから明らかな通り、単一の木構造モデルを用いる場合(第1の実施形態)、木構造の有するすべての葉ノードに係る推論値y'について忘却用更新量ε
mの減算処理が行われる。
図24Bから明らかな通り、複数の木構造モデルを用いた場合であって各木構造モデルの推論値y''の相加平均により推論値y'を生成する構成の場合(第2の実施形態)、すべての木構造モデルの推論値y''から忘却用更新量ε
mを減算する処理が行われる。
図24Cから明らかな通り、複数の木構造モデルを用いた場合であって各木構造モデルの推論値y''の総和により推論値y'を生成する構成の場合(第3の実施形態)、すべての木構造モデルの推論値y''から、忘却用更新量ε
mを木の本数TreeNumで除した値だけ、減算する処理が行われる。
【0167】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。また、上記の実施形態は、矛盾が生じない範囲で適宜組み合わせ可能である。
【産業上の利用可能性】
【0168】
本発明は、機械学習技術を利用する種々の産業等にて利用可能である。
【符号の説明】
【0169】
1 制御部
11 木構造モデル生成処理部
12 初期学習処理部
13 異常検知部
131 データ取得部
132 推論処理部
133 異常検知処理部
135 追加学習処理部
136 忘却学習処理部
137 出力処理部
3 記憶部
5 入力部
6 表示部
7 音声出力部
8 通信部
9 I/O部
100 異常検知装置