(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-01-25
(45)【発行日】2022-02-02
(54)【発明の名称】学習モデルの生成方法、プログラム、情報処理装置及び学習用データの生成方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20220126BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2021075232
(22)【出願日】2021-04-27
【審査請求日】2021-05-07
【早期審査対象出願】
(73)【特許権者】
【識別番号】500323188
【氏名又は名称】東京エレクトロンデバイス株式会社
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】岡田 大輝
【審査官】金木 陽一
(56)【参考文献】
【文献】特開2020-070164(JP,A)
【文献】特開2019-018351(JP,A)
【文献】国際公開第2020/217987(WO,A1)
【文献】特開2020-064253(JP,A)
【文献】特開2020-091694(JP,A)
【文献】特開2014-044510(JP,A)
【文献】特開2000-131289(JP,A)
【文献】特開2018-074757(JP,A)
【文献】PREUVENEERS, D., et al.,Resource Usage and Performance Trade-offs for Machine Learning Models in Smart Environments,Sensors,Vol.20, No.4,2020年02月
【文献】KDD-OpenSource,agots Anomaly Generator on Time Series [online],GitHub,2019年11月21日,Internet: <URL: https://github.com/KDD-OpenSource/agots>,[検索日 2021.07.02]
【文献】jetnew,TSAG - Time Series Anomaly Generator [online],GitHub,2019年06月27日,Internet: <URL: https://github.com/jetnew/tsag>,[検索日 2021.07.02]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
正常と判断された複数の時系列データを取得し、
取得した複数の時系列データの実効値をそれぞれ算出し、
算出したそれぞれの実効値から最大の実効値を取得し、
前記複数の時系列データにおける代表時系列データの実効値を算出し、
取得した最大実効値と、算出した代表時系列データの実効値との比を算出し、
算出した実効値の比に基づいて、前記複数の時系列データにおける代表時系列データを補正し、
補正した代表時系列データに基づいて異常データを生成し、
正常と判断された前記時系列データ及び前記時系列データに対しラベル付けされた正常ラベルと、生成した異常データ及び前記異常データに対しラベル付けされた異常ラベルとに基づき、時系列データを入力した場合に、異常に関する情報を出力する学習モデルを生成する
処理を実行する学習モデルの生成方法。
【請求項2】
補正後の前記
代表時系列データに周期的な変動を加えた前記異常データを生成する
請求項1に記載の学習モデルの生成方法。
【請求項3】
補正後の前記
代表時系列データを時間の変化に伴い継続して増加または減少させる前記異常データを生成する
請求項1又は2に記載の学習モデルの生成方法。
【請求項4】
補正後の前記
代表時系列データに、単位時間内の値が突発的に閾値を超えるスパイクを加えた前記異常データを生成する
請求項1から3までのいずれかひとつに記載の学習モデルの生成方法。
【請求項5】
補正後の前記
代表時系列データの波形の位相をずらすことにより、前記異常データを生成する
請求項1から4までのいずれかひとつに記載の学習モデルの生成方法。
【請求項6】
異常データの生成方法を示す複数の生成方法を選択可能に出力し、
出力した生成方法の選択を受け付け、
受け付けた生成方法に基づき、前記異常データを生成する
請求項1から
5までのいずれかひとつに記載の学習モデルの生成方法。
【請求項7】
異常データの生成方法を示す複数の生成方法と、各生成方法を組み合わせた組み合わせ方法とを選択可能に出力し、
出力した生成方法のいずれか、または、組み合わせ生成方法を受け付け、
受け付けた生成方法または組み合わせ生成方法に基づき、前記異常データを生成する
請求項1から
5までのいずれかひとつに記載の学習モデルの生成方法。
【請求項8】
前記異常データにカラードノイズを加えた第2異常データを生成する
請求項1から
7までのいずれかひとつに記載の学習モデルの生成方法。
【請求項9】
前記時系列データに対する複数種類の異常データの生成方法を、異なるタイミングで前記時系列データに適用することにより異常データを生成する
請求項1から
8までのいずれかひとつに記載の学習モデルの生成方法。
【請求項10】
正常と判断された複数の時系列データを取得し、
取得した複数の時系列データの実効値をそれぞれ算出し、
算出したそれぞれの実効値から最大の実効値を取得し、
前記複数の時系列データにおける代表時系列データの実効値を算出し、
取得した最大実効値と、算出した代表時系列データの実効値との比を算出し、
算出した実効値の比に基づいて、前記複数の時系列データにおける代表時系列データを補正し、
補正した代表時系列データに基づいて異常データを生成し、
正常と判断された
前記時系列データ及び前記時系列データに対しラベル付けされた正常ラベルと、生成した異常データ及び前記異常データに対しラベル付けされた異常ラベルとに基づき、時系列データを入力した場合に、異常に関する情報を出力する学習モデルを生成する
処理をコンピュータに実行させるプログラム。
【請求項11】
正常と判断された複数の時系列データを取得する
第1取得部と、
取得した複数の時系列データの実効値をそれぞれ算出する第1算出部と、
算出したそれぞれの実効値から最大の実効値を取得する第2取得部と、
前記複数の時系列データにおける代表時系列データの実効値を算出する第2算出部と、
取得した最大実効値と、算出した代表時系列データの実効値との比を算出する第3算出部と、
算出した実効値の比に基づいて、前記複数の時系列データにおける代表時系列データを補正する補正部と、
補正した代表時系列データに基づいて異常データを生成する第
1生成部と、
正常と判断された
前記時系列データ及び前記時系列データに対しラベル付けされた正常ラベルと、生成した異常データ及び前記異常データに対しラベル付けされた異常ラベルとに基づき、時系列データを入力した場合に、異常に関する情報を出力する学習モデルを生成する第
2生成部と
を備える情報処理装置。
【請求項12】
コンピュータが、
正常と判断された複数の時系列データを取得し、
取得した複数の時系列データの実効値をそれぞれ算出し、
算出したそれぞれの実効値から最大の実効値を取得し、
前記複数の時系列データにおける代表時系列データの実効値を算出し、
取得した最大実効値と、算出した代表時系列データの実効値との比を算出し、
算出した実効値の比に基づいて、前記複数の時系列データにおける代表時系列データを補正し、
補正した代表時系列データに基づき異常データを生成し、
生成した異常データに異常ラベルを対応付けて、前記時系列データに正常ラベルを対応付けて、前記異常データ及び前記時系列データを学習用データとして記憶する
処理を
実行する学習用データの生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習モデルの生成方法、プログラム、情報処理装置及び学習用データの生成方法に関する。
【背景技術】
【0002】
近年では、異常検出を行うために機械学習のアルゴリズムが利用されている。例えば特許文献1には、複数のデータから異常を精度良く検知可能な異常検知装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、学習モデルの精度を向上させるためには、正常及び異常双方に関する大量の訓練データが必要となるという問題がある。
【0005】
一つの側面では、異常訓練データの準備負担を軽減することが可能な学習モデルの生成方法等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの側面に係る学習モデルの生成方法は、コンピュータが、正常と判断された複数の時系列データを取得し、取得した複数の時系列データの実効値をそれぞれ算出し、算出したそれぞれの実効値から最大の実効値を取得し、前記複数の時系列データにおける代表時系列データの実効値を算出し、取得した最大実効値と、算出した代表時系列データの実効値との比を算出し、算出した実効値の比に基づいて、前記複数の時系列データにおける代表時系列データを補正し、補正した代表時系列データに基づいて異常データを生成し、正常と判断された前記時系列データ及び前記時系列データに対しラベル付けされた正常ラベルと、生成した異常データ及び前記異常データに対しラベル付けされた異常ラベルとに基づき、時系列データを入力した場合に、異常に関する情報を出力する学習モデルを生成する処理を実行させることを特徴とする。
【発明の効果】
【0007】
一つの側面では、異常訓練データの準備負担を軽減することが可能となる。
【図面の簡単な説明】
【0008】
【
図2】訓練データ管理DB及び学習モデル管理DBのレコードレイアウトの一例を示す説明図である。
【
図3】複数の時系列データの平均を求める処理を説明する説明図である。
【
図4】異常データの生成方法を説明する説明図である。
【
図5】複数パターンの異常データを生成する処理を説明する説明図である。
【
図6】異常データの生成方法の受付画面の一例を示す説明図である。
【
図7】異常検知モデルを生成する際の処理手順を示すフローチャートである。
【
図8】異常データを生成する処理のサブルーチンの処理手順を示すフローチャートである。
【
図9】補正処理を行う処理を説明する説明図である。
【
図10】最大実効値と平均実効値との比を算出する説明図である。
【
図11】実施形態2の異常データを生成する処理のサブルーチンの処理手順を示すフローチャートである。
【
図12】実施形態3のサーバの構成例を示すブロック図である。
【
図13】生成モデルの学習処理に関する説明図である。
【
図14】生成モデルを生成する際の処理手順を示すフローチャートである。
【
図15】実施形態3の異常検知モデルを生成する際の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
実施形態1は、正常と判断された時系列データと、該時系列データに基づいて生成された異常データとに基づき、時系列データを入力した場合に異常に関する情報を出力する学習モデルを生成する形態に関する。時系列データは、連続的な複数の時刻のそれぞれにおける計測値が時系列に配列されたデータ、またはその集合である。
【0011】
本実施形態のシステムは、情報処理装置1を含む。情報処理装置1は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置1は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC(パソコン)等である。本実施形態において、情報処理装置1は、時系列データに基づいて異常を検知するパーソナルコンピュータであるものとし、以下では簡潔のためコンピュータ1と読み替える。
【0012】
本実施形態に係るコンピュータ1は、正常と判断された時系列データを取得し、取得した時系列データに基づいて異常データを生成する。コンピュータ1は、正常と判断された時系列データに対して正常ラベルを付与し、異常データに対して異常ラベルを付与する。コンピュータ1は、正常と判断された時系列データ及び該時系列データに対しラベル付けされた正常ラベルと、異常データ及び該異常データに対しラベル付けされた異常ラベルとに基づき、時系列データを入力した場合に、異常に関する情報を出力する学習モデルを生成する。生成された学習モデルはコンピュータ1、または工作機械等に付属する情報系端末装置もしくはコントローラ(図示なし)にデプロイされる。
【0013】
図1は、コンピュータ1の構成例を示すブロック図である。コンピュータ1は、制御部11、記憶部12、入力部13、表示部14、読取部15及び大容量記憶部16を含む。各構成はバスBで接続されている。
【0014】
制御部11はCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を含み、記憶部12に記憶された制御プログラム1Pを読み出して実行することにより、コンピュータ1に係る種々の情報処理、制御処理等を行う。なお、
図1では制御部11を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0015】
記憶部12はRAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子を含み、制御部11が処理を実行するために必要な制御プログラム1P又はデータ等を記憶している。また、記憶部12は、制御部11が演算処理を実行するために必要なデータ等を一時的に記憶する。
【0016】
入力部13は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部11へ出力する。表示部14は、液晶ディスプレイ又は有機EL(electroluminescence)ディスプレイ等であり、制御部11の指示に従い各種情報を表示する。
【0017】
読取部15は、CD(Compact Disc)-ROM又はDVD(Digital Versatile Disc)-ROMを含む可搬型記憶媒体1aを読み取る。制御部11が読取部15を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、大容量記憶部16に記憶しても良い。また、ネットワーク等を介して他のコンピュータから制御部11が制御プログラム1Pをダウンロードし、大容量記憶部16に記憶しても良い。さらにまた、半導体メモリ1bから、制御部11が制御プログラム1Pを読み込んでも良い。
【0018】
大容量記憶部16は、例えばHDD(Hard disk drive:ハードディスク)、SSD(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。大容量記憶部16は、異常検知モデル161、訓練データ管理DB(database)162、学習モデル管理DB163及び訓練データファイル164を含む。
【0019】
異常検知モデル161は、時系列データに基づいて異常に関する情報を出力する異常検知器であり、機械学習により生成された学習済みモデルである。訓練データ管理DB162は、異常検知モデル161を構築(作成)するための訓練データ(学習用データ)の管理情報を記憶している。学習モデル管理DB163は、学習済みの異常検知モデル161に関する情報を記憶している。訓練データファイル164は、訓練データを記憶している。
【0020】
なお、本実施形態において記憶部12及び大容量記憶部16は一体の記憶装置として構成されていても良い。また、大容量記憶部16は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部16はコンピュータ1に接続された外部記憶装置であっても良い。
【0021】
コンピュータ1は、種々の情報処理及び制御処理等をコンピュータ単体で実行しても良いし、複数のコンピュータで分散して実行しても良いし、仮想マシンで分散して実行しても良い。なお、コンピュータ1に係る種々の情報処理及び制御処理等が、通信環境を有するサーバ装置等で実行されても良い。
【0022】
図2は、訓練データ管理DB162及び学習モデル管理DB163のレコードレイアウトの一例を示す説明図である。
訓練データ管理DB162は、訓練ID列、ファイル名称列及び登録日時列を含む。訓練ID列は、各訓練データを識別するために、一意に特定される訓練データのIDを記憶している。ファイル名称列は、時系列データを含むファイルの名称を記憶している。なお、ファイル名称列には、ファイルの名称がファイルのパスと合わせて記憶されても良い。登録日時列は、訓練データを登録した日時情報を記憶している。
【0023】
学習モデル管理DB163は、モデルID列、学習モデル列及び生成日時列を含む。モデルID列は、各学習済みの異常検知モデル161を識別するために、一意に特定される異常検知モデル161のIDを記憶している。学習モデル列は、学習済みの異常検知モデル161のファイルを記憶している。生成日時列は、異常検知モデル161を生成した日時情報を記憶している。
【0024】
なお、上述した各DBの記憶形態は一例であり、データ間の関係が維持されていれば、他の記憶形態であっても良い。
【0025】
訓練データファイル164は、異常検知モデル161を構築するための訓練データを記憶している。具体的には、訓練データファイル164には、時系列データ、及び該時系列データに対し付けられたラベルの種類等が記憶される。ラベルの種類は、例えば「正常」及び「異常」を含む。なお、ラベルの種類は、「正常」及び「異常」に限定せず、実際に生じる異常種類により詳細化されても良い。訓練データファイル164は、例えば、拡張子であるXLS若しくはXLSX等のEXCEL(登録商標)ファイルであっても良く、またはユーザにより定義されたユーザ定義ファイルであっても良い。
【0026】
続いて、時系列データに基づいて異常に関する情報を出力する処理を説明する。本実施形態では、異常検知モデル161を用いて異常に関する情報を出力する。異常検知モデル161は、例えばOneClassSVM(One Class Support Vector Machine)である機械学習のアルゴリズムを用いて生成される。OneClassSVMは、教師なしで学習した良品の学習値からの離れ値(outliers)を検出するアルゴリズムであり、正常データを非負値に、異常データを負値に写像(射影)するモデルである。
【0027】
OneClassSVMではすべての訓練データをクラスタ1とし、原点のみをクラスタ-1に属するようにカーネルトリックと呼ばれる手法を用いて、高次元空間の特徴空間へデータを写像する。このとき、訓練データは原点から遠くに配置されるように写像されるため、もとの訓練データと類似していない時系列データは原点の近くに集まるようになる。この性質を用いて正常および異常データの区別をすることができる。
【0028】
コンピュータ1は、訓練データを用いて機械学習を行う異常検知モデル161を生成する。コンピュータ1は、機械学習のアルゴリズムとしてOneClassSVMを用いて、正常データ(正常時の時系列データ)と異常データ(異常時の時系列データ)とを訓練データとして機械学習させることで異常値との識別境界を決定する。コンピュータ1は、当該識別境界を基準として異常の検出が可能な異常検知モデル161を生成する。
【0029】
具体的には、コンピュータ1は、OneClassSVMを用いて、正常・異常の2クラスの分離超平面を教師なし学習する。機械学習のアルゴリズムは、ハイパーパラメータと称されるパラメータを有する。ハイパーパラメータは、ニュー(ν)及びガンマ(γ)をパラメータとして含む。パラメータνは、訓練データに含まれる異常データの割合に関連するパラメータである。パラメータγは、境界面の複雑さを決定するパラメータであり、ガンマが大きくなると境界面の複雑さが増す。
【0030】
OneClassSVMでは、パラメータνによって学習データにおける外れ値が占める割合を指定し、特徴量空間において正常データと原点の間のマージンを最大化する分離超平面を学習する。また、パラメータγを伴うRBFカーネル(Radial basis function kernel)により特徴量空間を写像することで、非線形の分離超平面を得ることができる。
【0031】
なお、OneClassSVM等の外れ値検知アルゴリズムを利用する場合は、学習時に生成された異常データをニューなどのパラメータで指定する割合で含めても良いし、自然界で取得されるデータには外れ値データをその割合で含んでいることを仮定して、正常データだけを用いて、分離超平面を学習しても良い。また同様に自然界のデータには一定割合外れ値を含むとして、ブートストラップサンプリングを繰り返すことでサンプルデータに外れ値の割合を調整しても良い。
【0032】
コンピュータ1は、取得した正常データと異常データとを含む訓練データに基づいて、異常検知モデル161のハイパーパラメータを探索によって最適化する。ハイパーパラメータを最適化することで、コンピュータ1は、異常を検知する際の精度をさらに向上させることができる。
【0033】
コンピュータ1は、タイムスロットごとの特徴量ベクトルを受け取り、それぞれに対する正常・異常の検知結果を出力する。具体的には、コンピュータ1は、正常である検知結果に対して1を出力し、異常である検知結果に対して-1を出力する。なお、コンピュータ1は、検知結果の計算の過程で求めた実数値が0以上である場合に1を出力し、実数値が0未満である場合に-1を出力しても良い。
【0034】
なお、本実施の形態では異常検知モデル161がOneClassSVMであるものとして説明するが、異常検知モデル161はOneClassSVMに限定されず、アイソレーションフォレスト(Isolation Forest)、LOF(Local Outlier Factor;局所外れ値因子)、CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、ベイジアンネットワークまたは回帰木等の任意の学習アルゴリズムで構築された学習済みモデルであって良い。その他、LTSM(Long-Short Term Memory)に係るニューラルネットワーク、トランスフォーマー(Transformer)等を用いても良い。
【0035】
続いて、訓練データの作成処理を説明する。本実施形態では、コンピュータ1は、正常と判断された時系列データを取得し、取得した時系列データに基づいて異常データを生成する。なお、異常データの生成処理に関しては後述する。コンピュータ1は、正常と判断された時系列データに対して正常ラベルを付与し、異常データに対して異常ラベルを付与する。
【0036】
正常ラベルは、例えば、異常なしを示す「正常」であっても良い。異常ラベルは、例えば、異常ありを示す「異常」であっても良く、または、異常の種類応じて分類される異常名称であっても良い。コンピュータ1は、複数の時系列データにおいて、それぞれの時系列データに対してラベリングすることで、異常検知モデル161を学習するための訓練データを作成(生成)する。
【0037】
続いて、時系列データに基づく異常データの生成処理を詳しく説明する。先ず、コンピュータ1は、複数の時系列データの代表データを求める。代表データは、例えば、複数の時系列データの平均値、複数の時系列データの中央値、または複数の時系列データの最頻値(時系列データの中で頻度が最も高い値)等である。なお、複数の時系列データの中でユーザが指定した最も正常を示すデータが代表データとして利用されても良い。なお、本実施形態では、代表データが複数の時系列データの平均である例を説明するが、ほかの種類の代表データ、その代表データが複数ある場合にも同様に適用することができる。
【0038】
図3は、複数の時系列データの平均を求める処理を説明する説明図である。
図3Aは、元データとなった複数の時系列データを説明する説明図である。コンピュータ1は、元データとなった複数の時系列データを取得する。時系列データは、例えば、工作機械に取り付けられた3軸加速度センサのデータである。なお、時系列データは、その他、温度、圧力、速度、血圧、売上等のデータであっても良い。3軸加速度センサは、X軸とY軸とZ軸の3方向の加速度を検出し、加速度信号を出力する。図示のように、取得されたX軸の加速度センサのデータ、Y軸の加速度センサのデータ及びZ軸の加速度センサのデータが、グラフ11aに示されている。グラフ11aの横軸は、時間を示し、矢印の先端に向かって時間が経過している。グラフ11aの縦軸は加速度の大きさを示す。また、3軸の加速度センサのデータそれぞれが、異なる時間帯(例えば、t0~t1、t2~t3及びt4~t5)で複数取得される。
【0039】
コンピュータ1は、取得した各軸の複数の加速度センサのデータの平均を算出する。具体的には、コンピュータ1は、X軸の各時間帯の加速度センサのデータの平均を算出し、Y軸の各時間帯の加速度センサのデータの平均を算出し、Z軸の各時間帯の加速度センサのデータの平均を算出する。図示のように、算出された3軸の各時間帯の加速度センサのデータの平均が、グラフ11bに示されている。なお、グラフ11bの横軸及び縦軸は、グラフ11aと同様であるため、説明を省略する。
以上の処理に従って、複数の時系列データの平均を求めることができる。
【0040】
続いて、コンピュータ1は、複数の時系列データの平均に基づいて異常データを生成する処理を説明する。なお、本実施形態では、複数の時系列データの平均(以下、平均データという)を用いて説明するが、時系列データそのものに基づいて異常データを生成する処理にも同様に適用することができる。
【0041】
異常データの生成方法は、第1生成方法、第2生成方法、第3生成方法及び第4生成方法を含む。第1生成方法は、平均データに対し、周期的な変動を加えた異常データを生成する生成方法である。第2生成方法は、平均データを時間の変化に伴い継続して増加または減少させることにより、異常データを生成する生成方法である。第3生成方法は、平均データに単位時間内の値が突発的に閾値を超えるスパイク(spike)を加えた異常データを生成する生成方法である。第4生成方法は、平均データの波形の位相をずらすことにより、異常データを生成する生成方法である。
【0042】
平均データに対し、第1生成方法、第2生成方法、第3生成方法、第4生成方法のうちの少なくとも一つまたはこれらの組み合わせに基づいて、異常データを生成することができる。
【0043】
図4は、異常データの生成方法を説明する説明図である。
図4Aは、第1生成方法に基づく異常データの生成処理を説明する説明図である。平均データに所定のタイミング(時点)で周期的な変動を加えることにより、異常データを生成することができる。周期的な変動は、時間的に連続して同じ間隔で生じる変動であっても良いし、周期的な変動の周期を長くまたは短くすることにより生じる変動であっても良い。また、周期的な変動は、周期的な変動の振幅を大きくまたは小さくすることにより生じる変動であっても良い。
【0044】
例えば、コンピュータ1は、異常の発生開始タイミング(例えば、550ms)から異常の発生終了タイミング(例えば、1000ms)までに、所定の周期(例えば、20ms)で繰り返しても良い。または、コンピュータ1は、異常の発生開始タイミングから異常の発生終了タイミングまでに、正常な変動の振幅を0.5倍に小さくしても良い。
【0045】
図4Bは、第2生成方法に基づく異常データの生成処理を説明する説明図である。平均データを時間の変化に伴い継続して増加(上昇)または減少(下降)させることにより、異常データを生成することができる。図示のように、コンピュータ1は、異常の発生開始タイミング(例えば、600ms)から異常の発生終了タイミング(例えば、1000ms)までに、所定の傾き係数で平均データに減少傾向を加えて異常データを生成する。なお、増加傾向と減少傾向との組み合わせに基づいて異常データが生成されても良い。
【0046】
図4Cは、第3生成方法に基づく異常データの生成処理を説明する説明図である。平均データに単位時間内の値が突発的に閾値を超えるスパイクを付加することにより、異常データを生成することができる。図示のように、コンピュータ1は平均データに対し、異常発生タイミングt1に所定の第1スパイク幅でスパイク(突起形状)を正の位置に加えて、異常発生タイミングt2に所定の第2スパイク幅でスパイクを正の位置に加える。異なるタイミングでのスパイクの付加によりスパイク状の歪みが生じ、異常データが生成される。
【0047】
なお、スパイクの付加位置は正の位置に限るものではない。例えばコンピュータ1は、複数のスパイクを負の位置に加えることにより、異常データを生成しても良いし、または、複数のスパイクを正の位置と負の位置との両方に加えることにより、異常データを生成しても良い。
【0048】
このように、異常発生タイミング、スパイク幅及びスパイクの数のうちの少なくとも一つまたはこれらの組み合わせに基づいて、第3生成方法に基づく複数のパターンの異常データを生成することができる。
【0049】
図4Dは、第4生成方法に基づく異常データの生成処理を説明する説明図である。時系列データの波形の位相をずらすことにより、異常データを生成することができる。位相は、周期的に変動する波の位置情報である。図示のように、コンピュータ1は平均データに対し、時間を示す横軸に沿って、所定のずらし量(例えば、500ms)で波形の位相をずらすことで異常データを生成する。
【0050】
なお、コンピュータ1は、ユーザによる各異常データの生成方法を実行するためのパラメータの設定を受け付けても良い。例えばコンピュータ1は、ユーザによる第1生成方法のパラメータ(時点、周期及び振幅等)の設定を受け付ける。コンピュータ1は、受け付けた第1生成方法のパラメータに基づき、異常データを生成する。
【0051】
また、第1生成方法、第2生成方法、第3生成方法、第4生成方法の任意の組み合わせに基づいて、異常データを生成することができる。例えばコンピュータ1は、第1生成方法と第2生成方法との組み合わせに基づいて、異常データを生成しても良い。具体的には、コンピュータ1は、第1生成方法に基づいて、異常の発生開始タイミングt1から異常の発生終了タイミングt2までに、平均データに所定の周期(例えば、20ms)で繰り返す変動を加えて中間の異常データを生成する。コンピュータ1は、第2生成方法に基づいて、異常の発生開始タイミングt3から異常の発生終了タイミングt4までに、生成した中間の異常データに所定の傾き係数で増加傾向または減少傾向を加える処理を行い、最終的な異常データを生成する。
【0052】
また、生成された異常データにカラードノイズ(Colors of Noise)を加えることにより、該異常データとは異なるパターンの異常データ(第2異常データ)を生成することができる。カラードノイズは、パワースペクトル密度(Power Spectral Density)が平坦でないノイズである。例えば、パワースペクトルの大きさが周波数に反比例するピンクノイズ、または、パワースペクトルの大きさが周波数の二乗に反比例するブラウンノイズ等のカラードノイズを加えて第2異常データを生成する。なお、カラードノイズに限らず、異常データに平坦なパワースペクトルを示すホワイトノイズ(White noise)を加えて、第2異常データを生成しても良い。
【0053】
更にまた、平均データに対する複数種類の異常データの生成方法を、異なるタイミングで平均データに適用することにより異常データを生成することができる。
【0054】
図5は、複数パターンの異常データを生成する処理を説明する説明図である。なお、
図5では、第3生成方法に基づいて異常データを生成する例を説明するが、他の生成方法にも同様に適用することができる。
【0055】
第3生成方法は、平均データに単位時間内の値が突発的に閾値を超えるスパイクを付加することにより、異常データを生成する生成方法である。例えばコンピュータ1は、平均データに対し、一部の時間範囲にスパイク12a及びスパイク12bを付加して第1パターンの異常データを生成する。そして、コンピュータ1は、生成した第1パターンの異常データに、スパイク12a及びスパイク12bを付加した時間範囲をお互いにずらすことにより、第2パターンの異常データ及び第3パターンの異常データを生成する。
【0056】
図6は、異常データの生成方法の受付画面の一例を示す説明図である。該画面は、生成方法選択欄13a及び設定ボタン13bを含む。生成方法選択欄13aは、単一または複数の異常データの生成方法の選択を受け付ける欄である。設定ボタン13bは、異常データの生成方法を設定するボタンである。
【0057】
コンピュータ1は、第1生成方法、第2生成方法、第3生成方法、第4生成方法、及び、各生成方法を組み合わせた組み合わせ生成方法を選択可能な受付画面を生成する。コンピュータ1は、生成した受付画面を表示する。図示のように、第1生成方法(周波数変化)、第2生成方法(トレンド)、第3生成方法(スパイク)、第4生成方法(位相変化)、及び組み合わせ生成方法(複合変化)が、生成方法選択欄13aに表示される。
【0058】
コンピュータ1は、生成方法選択欄13aの選択操作を受け付けた場合、異常データの生成方法の選択を受け付ける。コンピュータ1は、設定ボタン13bのタッチ(クリック)操作を受け付けた場合、生成方法選択欄13aにより選択された生成方法を記憶部12または大容量記憶部16に記憶する。そして、異常データの生成処理の際には、記憶された生成方法を利用する。
【0059】
図7は、異常検知モデル161を生成する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、正常と判断された複数の時系列データを入力部13により取得する(ステップS101)。制御部11は、異常データの生成方法の選択を入力部13により受け付ける(ステップS102)。制御部11は、取得した複数の時系列データと、受け付けた異常データの生成方法とに基づいて、異常データを生成する処理のサブルーチンを実行する(ステップS103)。なお、異常データの生成処理のサブルーチンに関しては後述する。
【0060】
制御部11は、複数の時系列データと、生成した異常データとに基づき、訓練データを作成する(ステップS104)。具体的には、制御部11は、時系列データに対して正常ラベル(例えば、「正常」)を付与し、異常データに対して異常ラベル(例えば、「異常」)を付与する。
【0061】
制御部11は、複数の時系列データと、生成した異常データとを訓練データ(学習用データ)として訓練データファイル164に記憶する(ステップS105)。具体的には、制御部11は、訓練データファイル164を生成する。制御部11は、各時系列データに対してラベル名称(例えば、「正常」)を付与し、時系列データとラベル名称とを対応付けて訓練データファイル164に書き込む。制御部11は、各異常データに対してラベル名称(例えば、「異常」)を付与し、時系列データとラベル名称とを対応付けて訓練データファイル164に書き込む。制御部11は、時系列データとラベル名称とを対応付けて書き込んだファイルを大容量記憶部16に記憶する。
【0062】
制御部11は、訓練データファイル164を管理するための管理情報を大容量記憶部16の訓練データ管理DB162に記憶する(ステップS106)。具体的には、制御部11は、訓練IDを割り振り、訓練データが含まれているファイルの名称及び登録日時を一つのレコードとして訓練データ管理DB162に記憶する。
【0063】
制御部11は、作成した訓練データを用いて異常検知モデル161を生成する(ステップS107)。具体的には、制御部11は、OneClassSVMを用いて、訓練データである複数の時系列データを機械学習させることにより、異常値との識別境界を決定し、当該識別境界を基準として異常の検出が可能な異常検知モデル161を生成する。
【0064】
制御部11は、生成した異常検知モデル161を大容量記憶部16の学習モデル管理DB163に記憶し(ステップS108)、一連の処理を終了する。具体的には、制御部11は、生成した異常検知モデル161に対してモデルIDを割り振り、割り振ったモデルIDに対応付けて、異常検知モデル161のファイル及び生成日時を一つのレコードとして学習モデル管理DB163に記憶する。
【0065】
図8は、異常データを生成する処理のサブルーチンの処理手順を示すフローチャートである。コンピュータ1の制御部11は、複数の時系列データの平均を算出する(ステップS11)。例えば、時系列データが3軸加速度センサのデータである場合、制御部11は、X軸の加速度センサのデータの平均、Y軸の加速度センサのデータの平均及びZ軸の加速度センサのデータの平均をそれぞれ算出する。
【0066】
制御部11は、受信した異常データの生成方法を取得する(ステップS12)。制御部11は、取得した生成方法を用いて、算出した複数の時系列データの平均に基づいて異常データを生成する(ステップS13)。例えば、異常データの生成方法が第1生成方法である場合、制御部11は第1生成方法を用いて、複数の時系列データの平均に所定のタイミングで周期的な変動を加えて異常データを生成する。制御部11は、異常データの生成処理のサブルーチンを終了してリターンする。
【0067】
なお、本実施形態では、正常データと、正常データに基づいて生成された異常データとを用いる異常検知モデル161の生成処理の例を説明したが、これに限るものではない。例えば、コンピュータ1はユーザから複数の異常データを直接取得した場合、取得した複数の異常データと正常データとに基づいて訓練データを作成しても良い。または、コンピュータ1は、ユーザから取得された複数の異常データと、正常データに基づいて生成された異常データとを併用し、正常データと合わせて訓練データを作成しても良い。異常検知モデル161の生成または学習の際には、作成された訓練データを用いる。
【0068】
本実施形態によると、時系列データを入力した場合に異常に関する情報を出力する異常検知モデル161を生成することが可能となる。
【0069】
本実施形態によると、正常と判定された時系列データに基づいて異常データを生成することが可能となる。
【0070】
本実施形態によると、異常データの生成方法を示す複数の生成方法、または各生成方法を組み合わせた組み合わせ方法を利用することにより、多様な異常データを生成することが可能となる。
【0071】
本実施形態によると、正常データしか取得できない場合または異常データの取得が困難である場合に、異常データを自動的に生成することにより、異常検知モデル161の生成に役立つことが可能となる。
【0072】
(実施形態2)
実施形態2は、複数の時系列データの代表データに対して補正処理を行う形態に関する。なお、実施形態1と重複する内容については説明を省略する。なお、本実施形態では、代表データが複数の時系列データの平均である例を説明するが、ほかの種類の代表データ、その代表データが複数ある場合にも同様に適用することができる。
【0073】
図9は、補正処理を行う処理を説明する説明図である。
図9Aは、複数の時系列データの平均を説明する説明図である。時系列データは、例えば3軸加速度センサのデータである。コンピュータ1は、複数の3軸加速度センサのデータに基づき、各軸の加速度センサのデータの平均を取得する。なお、加速度センサのデータの平均を求める処理に関しては、
図3と同様であるため、説明を省略する。図示のように、X軸の加速度センサのデータの平均、Y軸の加速度センサのデータの平均及びZ軸の加速度センサのデータの平均がグラフ14aに示されている。グラフ14aの横軸は、時間を示す。グラフ14aの縦軸は加速度の大きさを示す。
【0074】
図9Bは、第1補正後の加速度センサのデータを説明する説明図である。コンピュータ1は、各軸の複数の加速度センサのデータの平均に対して補正処理を行う。具体的には、先ず、コンピュータ1は、各軸の複数の加速度センサのデータの平均に対し、平均を0に揃える処理を行い、平均を0にした各軸の第1補正後の加速度センサのデータを生成する。図示のように、生成されたX軸の第1補正後の加速度センサのデータ、Y軸の第1補正後の加速度センサのデータ及びZ軸の第1補正後の加速度センサのデータが、グラフ14bに示されている。なお、グラフ14bの横軸及び縦軸は、グラフ14aと同様であるため、説明を省略する。
【0075】
図9Cは、第2補正後の加速度センサのデータを説明する説明図である。コンピュータ1は、各軸の第1補正後の加速度センサのデータに対し、実効値に基づいて各軸の第2補正後の加速度センサのデータを生成する。
【0076】
先ず、コンピュータ1は、各軸の最大実効値と平均実効値との比を算出する。
図10は、最大実効値と平均実効値との比を算出する説明図である。実効値は、二乗平均平方根(RMS:root mean square)であり、時間と共に変化する信号の実効的な大きさを示す値である。図示のように、変量xのデータであるxi(i=1,2,…,n)に対して、xの二乗平均平方根RMS(x)は式15aで定義される。変量xは、例えばX軸の加速度センサのデータである。
【0077】
コンピュータ1は、異なる時間帯(例えば、t0~t1、t2~t3及びt4~t5)でのX軸の加速度センサのデータを複数取得する。図示のように、取得された各時間帯の加速度センサのデータがグラフ15bに表示される。グラフ15bの横軸は、時間を示す。グラフ15bの縦軸は、X軸の加速度の大きさを示す。コンピュータ1は、取得した各時間帯の加速度センサのデータの実効値をそれぞれ算出する。具体的には、コンピュータ1は、「t0~t1」時間帯の加速度センサのデータの実効値を算出し、「t2~t3」時間帯の加速度センサのデータの実効値を算出し、「t4~t5」時間帯の加速度センサのデータの実効値を算出する。コンピュータ1は、算出したそれぞれの実効値から最大の実効値を取得する。
【0078】
コンピュータ1は、取得した各時間帯の加速度センサのデータの平均を算出する。図示のように、算出された各時間帯の加速度センサのデータの平均が、グラフ15cに示されている。なお、グラフ15cの横軸及び縦軸は、グラフ15bと同様であるため、説明を省略する。コンピュータ1は、各時間帯の加速度センサのデータの平均の実効値を算出する。
【0079】
コンピュータ1は、取得したX軸の加速度センサのデータの最大実効値と、算出したX軸の加速度センサのデータの平均実効値との比を算出する。例えば、最大実効値と平均実効値との比が「1:0.978」である。なお、
図10では、X軸の加速度センサのデータの例を説明するが、Y軸の加速度センサのデータ及びZ軸の加速度センサのデータにも同様に適用することができる。
【0080】
続いて、
図9Cに戻り、コンピュータ1は、各軸の第1補正後の加速度センサのデータ(
図9B)に対し、算出した各軸の最大実効値と平均実効値との比を乗算する。コンピュータ1は乗算処理を通じて、各軸の第1補正後の加速度センサのデータ(
図9B)の位置(平均を0にした)を、元の各軸の複数の加速度センサのデータの平均(
図9A)の位置に戻し、第2補正後の加速度センサのデータを生成する。図示のように、生成されたX軸の第2補正後の加速度センサのデータ、Y軸の第2補正後の加速度センサのデータ及びZ軸の第2補正後の加速度センサのデータが、グラフ14cに示されている。なお、グラフ14cの横軸及び縦軸は、グラフ14aと同様であるため、説明を省略する。
【0081】
図11は、実施形態2の異常データを生成する処理のサブルーチンの処理手順を示すフローチャートである。コンピュータ1の制御部11は、複数の時系列データの平均を算出する(ステップS21)。なお、複数の時系列データの平均の算出処理に関しては、
図8のステップS11の処理と同様であるため、説明を省略する。
【0082】
制御部11は、算出した複数の時系列データの平均に対し、平均を0に揃える処理を行い、第1補正後の時系列データを生成する(ステップS22)。制御部11は、各時系列データの実効値を算出し(ステップS23)、算出した各実効値から最大の実効値を取得する(ステップS24)。制御部11は、複数の時系列データの平均の実効値を算出する(ステップS25)。
【0083】
制御部11は、取得した最大実効値と、算出した平均実効値との比を算出する(ステップS26)。制御部11は、第1補正後の時系列データに対し、算出した最大実効値と平均実効値との比を乗算することにより、第2補正後の時系列データを生成する(ステップS27)。
【0084】
制御部11は、受信した異常データの生成方法を取得する(ステップS28)。制御部11は、取得した生成方法を用いて、生成した第2補正後の時系列データに基づいて異常データを生成する(ステップS29)。制御部11は、異常データの生成処理のサブルーチンを終了してリターンする。
【0085】
本実施形態によると、実効値を用いて、複数の時系列データの代表データ、または代表データの集合に対して補正処理を行うことが可能となる。
【0086】
(実施形態3)
実施形態3は、人工知能を用いて、正常と判断された時系列データ(以下、正常データという)から、異常用の時系列データ(以下、異常データという)を生成する形態に関する。なお、実施形態1~2と重複する内容については説明を省略する。
【0087】
図12は、実施形態3のコンピュータ1の構成例を示すブロック図である。なお、
図1と重複する内容については同一の符号を付して説明を省略する。大容量記憶部16には、生成モデル165が記憶されている。生成モデル165は、正常データに基づいて異常データを生成する生成器であり、機械学習により生成された学習済みモデルである。
【0088】
コンピュータ1は、複数の正常データ及び複数の異常データを取得した場合、取得した複数の正常データ及び複数の異常データを用いて生成モデル165を生成する。
【0089】
図13は、生成モデル165の学習処理に関する説明図である。本実施の形態でコンピュータ1は、GAN(Generative Adversarial Network)の手法を用いて正常データ及び異常データを学習し、生成モデル165を生成する。
図13では、GANの構成を概念的に図示している。
【0090】
GANは、入力データから出力データを生成する生成器(Generator)16aと、生成器16aが生成したデータの真偽を識別する識別器(Discriminator)16bとから構成される。生成器16aは、ランダムなノイズ(潜在変数)の入力を受け付け、出力データを生成する。識別器16bは、学習用に与えられる真のデータと、生成器16aから与えられるデータとを用いて、入力データの真偽を学習する。GANでは生成器16a及び識別器16bが競合して学習を行い、最終的に生成器16aの損失関数が最小化し、かつ、識別器16bの損失関数が最大化するようにネットワークを構築する。
【0091】
なお、本実施の形態では、生成モデル165の生成(学習)手法としてGANを用いるが、生成モデル165はGANに係る学習済みモデルに限定されず、その他U-NET(U字型のニューラルネットワーク)等の深層学習、決定木等の学習手法による学習済みモデルであっても良い。
【0092】
コンピュータ1は、正常データと異常データとを含む訓練データに基づいて、生成モデル165を生成(構築)する。具体的には、コンピュータ1は、正常と判断された時系列データまたはランダムなノイズデータを生成器16aに入力する。生成器16aは、偽の異常データを生成する。さらに、コンピュータ1は、予め入手した複数の真の異常データまたは偽の異常データを識別器16bに入力する。これにより、生成器16a及び識別器16bに深層学習を行わせる。
【0093】
コンピュータ1は、生成器16aと識別器16bを交互に学習させる。まず、これら2つのネットワークのパラメータを乱数で初期化する。そして、コンピュータ1は、生成器16aに入力した時系列データまたはランダムなノイズデータを用いて、生成器16aに偽の異常データを生成させる。コンピュータ1は、真の異常データか、生成器16aで生成された偽の異常データのいずれかを識別器16bに入力して識別を行う。
【0094】
学習の初期段階では、逆誤差伝播法を用いて、識別器16bの学習が行われ、識別器16bのパラメータが調整される。誤差逆伝搬法は、入力層、中間層、出力層からなるネットワークに対し、出力層から入力層にかけて誤差の勾配を逆伝搬させることで各層の重みフィルタとバイアスといったパラメータを更新する教師付き学習アルゴリズムである。
【0095】
識別器16bの識別誤差が小さくなると、コンピュータ1は、同じように逆誤差伝播法を用いて、生成器16aの学習を行う。コンピュータ1は、生成器16aの学習と識別器16bの学習とを繰り返し行うことで、識別器16bの識別力を向上させつつ、生成器16aの偽の異常データの生成能力も向上させる。このように、正常と判断された時系列データを入力した場合に異常データを出力することが可能な生成モデル165が生成される。
【0096】
なお、学習の初期段階では、予め入手した複数の真の異常データ、正常と判断された時系列データに基づいて生成された異常データ(実施形態1)、または両者の組み合わせが利用されても良い。生成器16aの偽の異常データの生成能力の向上に伴い、予め入手した複数の真の異常データのみが利用されても良い。
【0097】
図14は、生成モデル165を生成する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、学習用の訓練データ群であって、複数の正常データ及び複数の異常データを入力部13により取得する(ステップS111)。制御部11は、取得した複数の正常データ及び複数の異常データを用いて、正常データを入力した場合に異常データを出力する生成モデル165を生成する(ステップS112)。具体的には上述の如く、制御部11は、GANの手法を用いて生成モデル165を生成する。制御部11は、生成した生成モデル165を大容量記憶部16の学習モデル管理DB163に記憶し(ステップS113)、一連の処理を終了する。
【0098】
図15は、実施形態3の異常検知モデル161を生成する際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、複数の正常データを入力部13により取得する(ステップS121)。制御部11は、正常データを入力した場合に異常データを出力する生成モデル165を用いて、取得した各正常データに対して異常データを生成する(ステップS122)。制御部11は、ステップS123~S127の処理を実行する。なお、ステップS123~S127の処理に関しては、
図7のステップS104~108の処理と同様であるため、詳細な説明を省略する。
【0099】
本実施形態によると、生成モデル165を用いて、正常と判断された時系列データから異常データを生成することが可能となる。
【0100】
本実施形態によると、生成モデル165を用いて生成された異常データを用いて、異常検知モデル161を生成することが可能となる。なお、本実施形態における異常データの生成方法も実施形態1で述べた複数の異常データの生成方法の選択肢の一つとして、利用することができる。
以上の実施の形態1乃至3を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
データを入力した場合に、異常データを生成するよう学習された生成モデルに、データを入力して異常データを生成する。
(付記2)
前記生成モデルは、前記データ及び予め入手した真の異常データを用いて学習されている。
【0101】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0102】
1 情報処理装置(コンピュータ)
11 制御部
12 記憶部
13 入力部
14 表示部
15 読取部
16 大容量記憶部
161 異常検知モデル
162 訓練データ管理DB
163 学習モデル管理DB
164 訓練データファイル
165 生成モデル
1a 可搬型記憶媒体
1b 半導体メモリ
1P 制御プログラム
【要約】
【課題】異常訓練データの準備負担を軽減することが可能な学習モデルの生成方法等を提供すること。
【解決手段】一つの側面に係る学習モデルの生成方法は、正常と判断された時系列データを取得し、取得した時系列データに基づいて異常データを生成し、正常と判断された時系列データ及び前記時系列データに対しラベル付けされた正常ラベルと、生成した異常データ及び前記異常データに対しラベル付けされた異常ラベルとに基づき、時系列データを入力した場合に、異常に関する情報を出力する学習モデルを生成する処理を実行させることを特徴とする。
【選択図】
図7