(57)【要約】【課題】比較的簡易な構成で、準備工程を簡略化でき、環境に適合した判定を行うことのできるデータ処理装置、データ処理システム及びプログラムを提供する。【解決手段】繰り返し入力されるデータに基づく所定の判定処理を行うデータ処理装置であって、入力データと教師データとを受け入れて、逆数演算により機械学習可能な推定器を用い、入力されたデータを入力データ及び教師データとして、前記推定器を機械学習し、当該推定器の出力と、入力されたデータとの比較に基づいて判定処理を行い、当該判定処理の結果を出力するデータ処理装置である。【選択図】図１
2020009400.tif 000002
【特許請求の範囲】
【請求項１】
繰り返し入力されるデータに基づく所定の判定処理を行うデータ処理装置であって、
入力データと教師データとを受け入れて、逆数演算により機械学習可能な推測手段と、
前記入力されたデータを入力データ及び教師データとして、前記推測手段を機械学習する学習処理手段と、
前記推測手段の出力と、前記入力されたデータとの比較に基づいて、前記所定の判定処理を行い、当該判定処理の結果を出力する出力手段と、
を含むデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置であって、
前記推測手段は、入力層と中間層との結合重みをランダムに決定し、中間層と出力層との間の結合重みを機械学習するニューラルネットワークを含んで構成されるデータ処理装置。
【請求項３】
請求項１または２に記載のデータ処理装置であって、
前記学習処理手段は、前記データの入力を受け入れるごとに、前記推測手段の機械学習処理を行うデータ処理装置。
【請求項４】
請求項３に記載のデータ処理装置であって、
前記学習処理手段は、機械学習処理を行うごとに、前記推測手段の機械学習結果と、入力データとを関連付けて記録し、
予め定めた方法で決定した複数回の機械学習処理が行われるごとに、前記記録している入力データをその時点での推測手段に入力したときの推測手段の出力を参照し、当該出力が予め定めた条件を満足するときには、当該入力データに関連付けて記録している機械学習結果により、前記推測手段の機械学習状態を補正するデータ処理装置。
【請求項５】
請求項１から４のいずれか一項に記載のデータ処理装置であって、
前記推測手段を複数備え、
前記学習処理手段は、前記複数の推測手段を、すべての推測手段が一斉にリセットされることのないタイミングでそれぞれリセットし、
前記出力手段は、当該複数の推測手段のそれぞれの出力と、前記入力されたデータとの比較に基づいて、前記所定の判定処理を行い、当該判定処理の結果を出力するデータ処理装置。
【請求項６】
互いに木構造ネットワーク状に接続された、複数のデータ処理装置を含み、
前記データ処理装置がそれぞれ、
繰り返し入力されるデータに基づく所定の判定処理を行うデータ処理装置であって、
入力データと教師データとを受け入れて、逆数演算により機械学習可能な推測手段と、
前記入力されたデータを入力データ及び教師データとして、前記推測手段を機械学習する学習処理手段と、
前記推測手段の出力と、前記入力されたデータとの比較に基づいて、前記所定の判定処理を行い、当該判定処理の結果を出力する出力手段と、
を備える、データ処理システム。
【請求項７】
コンピュータを、
繰り返し入力されるデータに基づく所定の判定処理を行うデータ処理装置として機能させるためのプログラムであって、
入力データと教師データとを受け入れて、逆数演算により機械学習可能な推測手段、
前記入力されたデータを入力データ及び教師データとして、前記推測手段を機械学習する学習処理手段、及び
前記推測手段の出力と、前記入力されたデータとの比較に基づいて、前記所定の判定処理を行い、当該判定処理の結果を出力する出力手段、として、コンピュータを機能させるプログラム。
【請求項８】
請求項１または２に記載のデータ処理装置であって、
前記推測手段は、入力データを入力したときの出力と、教師データとの間の差に基づく損失の情報を用いて機械学習するニューラルネットワークを含んで構成され、
前記学習処理手段は、予め定めたＭ回数分（Ｍは自然数）の直近の入力データに対する前記損失を記録し、当該記録した損失に基づいて演算される統計値と、Ｍ回前の入力データを前記推測手段に入力したときの損失との比較に基づいて、当該Ｍ回前の入力データに基づく機械学習処理を行うか否かを判断し、機械学習処理を行うと判断したときに、当該Ｍ回前の入力データを、入力データかつ教師データとして、前記推測手段を機械学習するデータ処理装置。
【請求項９】
請求項１または２に記載のデータ処理装置であって、
前記推測手段を複数備えるとともに、前記入力データをクラスタに分類する手段をさらに備え、
前記学習処理手段は、前記複数の推測手段のそれぞれを、前記分類されたクラスタごとに対応づけて、入力データごとに属するクラスタを決定し、当該決定したクラスタに対応する推測手段を、当該入力データを用いて機械学習するデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理システム及びプログラムに関する。
【背景技術】
【０００２】
近年では、製品製造の現場等の種々の場所に適用可能な異常検知のシステムとして、機械学習を用いたシステムが開発されている。
【０００３】
例えば特許文献１には、予め現場で収集可能なログデータを記録しておき、当該ログデータを参照しつつ、ログデータの各記録時点での異常発生の有無を教師データとして学習処理を行い、異常判定を行う装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−７３２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば製品製造の現場では、振動等の情報を収集するセンサが出力するデータは、周辺のノイズの状況により、現場ごとに異なっているのが実情である。具体的には隣接して別の振動を生じる製造機械が動作している現場と、そうでない現場とでは出力は大きく異なっている。また、別の振動を生じる製造機械が停止している間と動作している間でも出力が異なるため、同じ現場であっても時間帯など種々の要因によって異常判断を行うための基礎となるデータに相当の相違があるのが一般的である。
【０００６】
このような状況のため、事前にログデータを収集して学習する装置では、現場ごとにログデータを収集する必要があり、装置構成が複雑となり、また、動作させるまでに多くの準備工程を要していた。またそうして学習処理を行っても、上述のように時間帯によって環境が異なる場合があるため、必ずしも適切な判定が行えない場合があった。
【０００７】
本発明は上記実情に鑑みて為されたもので、比較的簡易な構成で、準備工程を簡略化でき、環境に適合した判定を行うことのできるデータ処理装置、データ処理システム及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００８】
上記従来例の問題点を解決する本発明の一態様は、繰り返し入力されるデータに基づく所定の判定処理を行うデータ処理装置であって、入力データと教師データとを受け入れて、逆数演算により機械学習可能な推測手段と、前記入力されたデータを入力データ及び教師データとして、前記推測手段を機械学習する学習処理手段と、前記推測手段の出力と、前記入力されたデータとの比較に基づいて、前記所定の判定処理を行い、当該判定処理の結果を出力する出力手段と、を含むこととしたものである。
【発明の効果】
【０００９】
本発明によると、入力データを用いて機械学習を行いつつ判定を行い、また、逆数演算により機械学習を可能な推測手段を用いることで、比較的簡易な構成で、準備工程を簡略化でき、環境に適合した判定を行うことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係るデータ処理装置の例を表す構成ブロック図である。
【図２】本発明の実施の形態に係るデータ処理装置の一例に係る機能ブロック図である。
【図３】本発明の実施の形態に係るデータ処理装置が用いる推定器の例を表す構成ブロック図である。
【図４】本発明の実施の形態に係るデータ処理装置によるパラメータの記憶例を表す説明図である。
【図５】本発明の実施の形態に係るデータ処理装置のもう一つの例に係る機能ブロック図である。
【図６】本発明の実施の形態に係るデータ処理装置のさらにもう一つの例に係る機能ブロック図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るデータ処理装置１の例は、図１に示すように、制御部１１と、記憶部１２と、入力部１３と、出力部１４とを含んで構成されている。
【００１２】
ここで制御部１１は、ＣＰＵ等のプログラム制御デバイス、あるいはＦＰＧＡ（Field Programmable Gate Array）等のロジックデバイス、あるいはＡＳＩＣ（Application Specific Integrated Circuit）であり、本発明の推測手段、学習処理手段、及び出力手段を実現する。制御部１１として、ＣＰＵ等のプログラム制御デバイスを用いる場合は、この制御部１１は、記憶部１２に格納されたプログラムを実行することで、上記各部の動作を実現する。
【００１３】
また制御部１１としてＦＰＧＡ等のロジックデバイスを用いる場合は、プログラムされた論理に従って動作し、上記各部の動作を実現する。
【００１４】
すなわち本実施の形態ではこの制御部１１が、繰り返し入力されるデータを受け入れ、入力されたデータを入力データ及び教師データとして、逆数演算により機械学習可能な機械学習モデルの機械学習処理を実行する。また、この制御部１１は、当該入力されたデータを入力データとして、当該機械学習モデルが表す推定器に入力したときの、当該推定器の出力を得る。そして制御部１１は、当該得られた推定器の出力と、入力されたデータとの比較に基づいて、予め定めた判定処理を行い、当該判定処理の結果を出力する。この制御部１１の詳しい動作の例については後に述べる。
【００１５】
記憶部１２は、メモリデバイスやディスクデバイスを含んで構成される。この記憶部１２は、制御部１１がＣＰＵ等のプログラム制御デバイスである場合は、制御部１１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読、かつ非一時的な記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。
【００１６】
またこの記憶部１２は、推定器を機械学習する際の機械学習モデルのモデルパラメータ等、制御部１１の処理において必要となる情報を保持する、ワークメモリとしても動作する。
【００１７】
入力部１３は、外部のセンサ等から入力されるデータをディジタルデータに変換し、また予め定められた次元のベクトル情報に変換して制御部１１に出力する。出力部１４は、制御部１１から入力される指示に従って情報を出力する。この出力部１４は例えばディスプレイ等であり、制御部１１から入力される情報を表示出力する。
【００１８】
本実施の形態では制御部１１は、機能的には、図２に例示するように、データ受入部２１と、推定器２２と、学習処理部２３と、判定処理部２４と、出力処理部２５とを含んで構成される。
【００１９】
データ受入部２１は、入力部１３からデータの入力を受け入れる。本実施の形態の例では、データ処理装置１は、例えば製品製造の現場等に配され、当該製品製造に用いる装置に取り付けられ、当該装置の振動や、温度等の種々の情報を検出して出力するセンサに接続される。そして入力部１３は、これらのセンサの出力を所定のタイミングごと（例えば定期的なタイミングごと）に、繰り返しディジタル値に変換して制御部１１に対して出力する。また、入力部１３は複数のセンサの出力を変換して得たディジタル値を所定の順に配列したベクトル値をデータとして制御部１１に出力する。データ受入部２１は、この入力部１３が所定のタイミングごとに出力するデータを受け入れて、学習処理部２３に出力する。
【００２０】
推定器２２は、推測手段を実現するもので、機能的には図３に例示するように、入力層３１と、中間層（隠れ層）３２と、出力層３３とを含む、３層の全結合型のニューラルネットワークである。また、本実施の形態においてこの推定器２２は入力層３１のノードの数（入力データのベクトルの次元）と、出力層３３のノードの数（出力するデータのベクトルの次元）とが一致しているものとする。
【００２１】
すなわちこの推定器２２では、入力データとなったベクトル値の各成分に対応する入力層３１のノード３１ａ，３１ｂ，…，３１ｎと中間層３２のノード３２ａ，３２ｂ，…３２Ｌとの間の結合重みをＷ（ｗ1，ｗ2，…，ｗL）（ここでｗiは入力層３１のノード数ｎに等しい次元のベクトル）、バイアスをｂ（ｂ1,ｂ2，…ｂL）とし、中間層３２のノード３２ａ，３２ｂ，…３２Ｌと出力層３３のノード３３ａ，３３ｂ，…，３３ｎとの間の結合重みをＶ（ｖ1，ｖ2，…，ｖL）（ここでｖiは出力層３３のノード数ｎに等しい次元のベクトル）とするとき、これらの結合重みの値Ｗ，Ｖ及びバイアスｂが推定器２２の機械学習モデルのパラメータとなる。
【００２２】
推定器２２は、入力データが入力されると、当該入力データを入力層３１に入力し、この入力層３１に入力された入力データの各成分に、それぞれ対応する結合重みＷを乗じて総和するなど、入力層３１に入力された入力データの各成分と結合重みＷとに基づく所定の演算を行うことで中間層３２の各ノードの値を求める。また、中間層３２の各ノードの値ｈ1，ｈ2…，ｈLに、所定の非線形関数ｆを適用して求められる値ｆ（ｈi）（ｉ＝１，２，…Ｌ）に対し、対応する結合重みＶを乗じて出力層３３の各ノードの値を求める。この演算は、一般的なニューラルネットワークにおける演算と同様であるので、ここでの詳しい説明を省略する。
【００２３】
ここでの非線形関数は、シグモイド関数、ＲｅＬＵ等広く知られたものを採用してもよい。推定器２２は、出力層３３の各ノードの値を成分とするベクトルを、出力データとして出力する。
【００２４】
本実施の形態では、この推定器２２は、少なくとも学習処理の条件によっては、逆数演算により上記機械学習モデルのパラメータの機械学習が可能なものとなっている。このような推定器２２の例については後に詳しく説明する。
【００２５】
学習処理部２３は、データ受入部２１が受け入れたデータを入力データ及び教師データとして、推定器２２の機械学習処理を行う。具体的にこの学習処理部２３は、データ受入部２１が受け入れた直近所定回数分（バッチサイズ分）のデータを、推定器２２に対して入力データとして入力する。ここでバッチサイズを１とする場合は、学習処理部２３は、データ受入部２１が受け入れたデータを、推定器２２に対してそのまま入力データとして入力する。
【００２６】
学習処理部２３は、当該入力データを入力したときに推定器２２が出力した出力データと、データ受入部２１が受け入れたデータ（教師データ）とを比較し、その差（絶対誤差や二乗平均誤差等）を損失（ロス）として演算する。そして学習処理部２３は、当該損失が小さくなるよう、推定器２２のパラメータ（結合重みの値）を更新する。
【００２７】
つまり、本実施の形態の例では、学習処理部２３は、推定器２２をオートエンコーダとして機械学習することとなる。
【００２８】
判定処理部２４は、学習処理部２３が推定器２２に対し、入力データを入力したときに、推定器２２が出力する出力データに基づいて所定の判定処理を実行する。
【００２９】
具体的な例として、この判定処理部２４は、学習処理部２３が演算した損失を参照し、当該損失の大きさが予め定めたしきい値を超える場合に入力データが異常である旨（つまり、製造装置等に異常が生じている旨）を表す判定の結果を出力処理部２５に出力させる。また判定処理部２４は、損失の大きさが予め定めたしきい値を超えていないときには、入力データが正常である旨（つまり、製造装置等に異常がない旨）を表す判定の結果を出力処理部２５に出力させてもよい。
【００３０】
なお、この判定処理部２４は、学習処理部２３により推定器２２のパラメータが十分に学習されるまでは、判定の処理を行わないよう制御されてもよい。具体的には、判定処理部２４は、推定器２２が機械学習をしていない状態（リセットされた状態）から、推定器２２に入力データを入力した回数（学習処理部２３によりパラメータの更新が行われた回数）が予め定めた初期化しきい値を超えたか否かを比較し、当該初期化しきい値を超えている場合に、推定器２２のパラメータが十分に学習されたと判断してもよい。ここで初期化しきい値は例えば、中間層３２のノードの数Ｌ以上の数として予め定めておく。
【００３１】
この場合、判定処理部２４は、当該初期化しきい値として定められた回数だけ学習処理を実行するまでは（推定器２２が初期化しきい値の回数だけ入力データを受け入れてパラメータの更新を受けるまでは）判定の処理を行わない。
【００３２】
出力処理部２５は、判定処理部２４から入力される指示に従い、判定の結果を出力部１４に出力する。
【００３３】
ここで本実施の形態の例に係る推定器２２の具体的な機械学習モデルについて説明する。本実施の形態では、この推定器２２は、学習処理部２３の動作により、入力層３１と中間層３２との結合重みＷ、及びバイアスｂをランダムに決定し、中間層３２と出力層３３との間の結合重みＶを機械学習するニューラルネットワークとする。具体的にここでは推定器２２と学習処理部２３とにより、OS-ELM（Online Sequential - Extreme Learning Machine）を実現して用いる。このOS-ELMは、N.Y. Liang, G.B. Huang, P.Saratchandran, and N.Sundararajan,”A Fast and Accurate Online Sequential Learning Algorithm for Feedforward Networks,” IEEE Transactions on Neural Networks, Vol. 17, No.6, pp. 1411-1423, Nov. 2006等の文献に開示され、広く知られているので、ここでの詳細な説明は省略する。
【００３４】
このOS-ELMとする場合、学習処理部２３は、当初は推定器２２をリセットするため、入力層３１と中間層３２との結合重みＷとバイアスｂとをランダムに決定する（なお、このとき、結合重みＶもランダムに定めておいてもよい）。そして学習処理部２３は、データ受入部２１が受け入れたデータを推定器２２に対し、入力データとして入力する。学習処理部２３は、当該入力データを入力したときに推定器２２が出力した出力データと、データ受入部２１が受け入れたデータ（教師データ）とを比較し、その差（例えば二乗平均誤差とする）を損失として演算する。そして学習処理部２３は、当該損失が小さくなるよう、推定器２２の、中間層３２と出力層３３との間の結合重みＶを更新する。
【００３５】
OS-ELMでは学習処理は次のようにして行われる。学習処理部２３は、入力データを、ｎi（ｉ＝１，２…）個ずつに分けてバッチとし、各バッチを順次、訓練データとする。ここでｉ番目のバッチに含まれる入力データをｘi（ｉ＝１，２，…，）とし、入力層３１と中間層３２との間の結合重みをＷk（Ｗｋ＝ｗ1，ｗ2，…，ｗL）、バイアスをｂk（ｂk＝ｂ1,ｂ2，…ｂL）とするとき、このｉ番目のバッチに対する出力層３３の出力は、次の行列で表される。
【数１】
2020009400.tif 000003
なお、Ｇは、出力層３３の各ノードの出力を表し、ｘi（ｊ）は、ｉ番目のバッチに含まれるｊ番目の入力データであることを表す。なお、ｎiは、ｉ番目のバッチにおけるバッチサイズである。
【００３６】
また、ここで教師データは入力データに同じであるので、この教師データＴは、
【数２】
2020009400.tif 000004
となる。なお、右肩のＴは転置を意味する（以下同じ）。
【００３７】
学習処理部２３は、ｉ番目のバッチが入力された時点では、損失の大きさ
【数３】
2020009400.tif 000005
を最小とする結合重みβを求めて、これを推定器２２の中間層３２と出力層３３との間の結合重みＶとすることで、推定器２２を最適化することとなる。このとき、
【数４】
2020009400.tif 000006
を用い、ｉ＝２の場合を考慮すると、（１）式は、
【数５】
2020009400.tif 000007
と変形できる。なお、Ａ-1は、Ａの疑似逆行列を意味する。
【００３８】
これを一般化して、ｉ番目のバッチまでの学習が終了し、その時点での推定器２２の中間層３２と出力層３３との間の結合重みＶがＶ＝βiとなっているとすると、ｉ＋１番目のバッチに基づく機械学習の結果である結合重みβi+1を、
【数６】
2020009400.tif 000008
とすることができる（逐次更新式）。ただし、
【数７】
2020009400.tif 000009
である。
【００３９】
ここで、
【数８】
2020009400.tif 000010
とすると、これらの逐次更新式は、
【数９】
2020009400.tif 000011
として（ただしＩは単位行列）、
【数１０】
2020009400.tif 000012
と表現できる。
【００４０】
従って学習処理部２３は、ｉ番目のバッチが入力されたときに、中間層３２の出力Ｈiを得て、その時点で最適化された中間層３２と出力層３３との結合重みＶ＝βiと、中間結果としてのＰiとを得ておく。そしてｉ＋１番目のバッチが入力されると、（２）式により次の中間結果Ｐi+1を得て、中間層３２と出力層３３との結合重みＶを（３）式で演算されるβi+1に更新する。なお、逆行列を求める演算については、特異値分解を用いるのが一般的であるが、各バッチにおけるバッチサイズＮiをＮi＝１とする（バッチサイズを１とする）と、疑似逆行列を求めるべき行列である（２）式の
【数１１】
2020009400.tif 000013
は、スカラ値となり（（４）式は、Ｎi×Ｎiの行列であるため）、従ってこの疑似逆行列は、単なる逆数演算により求められることとなる。
【００４１】
すなわち、本実施の形態において逆数演算により機械学習可能な推測手段は、推定器２２及び学習処理部２３として、中間層と出力層との間の結合重みを疑似逆行列演算によって機械学習するニューラルネットワークを用い、その機械学習のバッチサイズを１とすることで（データを受け入れるごとに機械学習をすることで）実現される。このようなニューラルネットワークは、具体的には入力層と中間層との結合重みをランダムに決定するＥＬＭ（Extreme Learning Machine）及び、それから派生するニューラルネットワーク（FP（Forgetting Parameters）-ELM、OS（On-Line Sequential）-ELM、EOS（Ensemble of OS）-ELM、FOS-ELM（OS-ELM with forgetting mechanism））等が相当する。もっともこれら推定器２２と学習処理部２３とによって、逆数演算により機械学習可能な推測手段を実現するニューラルネットワークは、これらの例に限られるものではない。
【００４２】
［動作］
本実施の形態のデータ処理装置１は以上の構成を備えており、次のように動作する。以下の例では、制御部１１を、ＦＰＧＡを用いて実装するものとし、推定器２２として、バッチサイズを１とした、OS-ELMを用いるものとする。
【００４３】
またここではデータ処理装置１は、製品を製造する装置の近傍に配した複数の振動センサからの信号を受け入れるものとする。振動センサは、取り付けられた部位の振動の大きさを表すアナログの電気信号を出力する。
【００４４】
データ処理装置１は、当初は、推定器２２であるOS-ELMの入力層３１と中間層３２との結合重みＷ及びバイアスｂをランダムに決定する。そしてデータ処理装置１は、各センサが出力した電気信号をディジタル値に変換し、制御部１１に入力する。制御部１１はデータ受入部２１として機能して、複数のセンサの出力を変換して得たディジタル値を所定の順に配列したベクトル値を、学習処理部２３に出力する。
【００４５】
学習処理部２３は、データの入力を受け入れるごとに、つまりバッチサイズが１の入力データを受け入れるごとに、推定器２２に当該入力データを入力する。学習処理部２３は、推定器２２の出力データＨと、教師データとしての入力データＴと、その段階での推定器２２の中間層３２と出力層３３との結合重みＶ＝βiと、前回演算した中間結果としてのＰi（β，Ｐとも、初回の値は予め設定しておく）を得る。
【００４６】
そして学習処理部２３は、（２），（３）式により推定器２２の中間層３２と出力層３３との結合重みＶを更新する。また学習処理部２３は、推定器２２の出力と、入力データ（教師データ）との二乗平均誤差を損失として演算し、判定処理部２４に出力する。
【００４７】
判定処理部２４は、推定器２２のパラメータが十分に機械学習されたか否かを判断する。この判断は、データ処理装置１が推定器２２を初期化してから入力データを入力した回数が予め定めた初期化しきい値を超えたか否かにより判断する。判定処理部２４は、推定器２２のパラメータが十分に機械学習された状態にないと判断すると、判定処理部２４は、判定処理を行わない。
【００４８】
一方、推定器２２のパラメータが十分に機械学習された状態となっていると判断すると、判定処理部２４は、学習処理部２３から入力された損失の値の大きさが、予め定めたしきい値を超えたか否かを調べ、損失の値の大きさが当該予め定めたしきい値を超えている場合に、入力データが異常であり、製造装置等に異常が生じていると推定される旨を表す判定の結果を、出力部１４であるディスプレイに出力するよう制御する等の処理を行う。
【００４９】
このように本実施の形態のデータ処理装置１によると、実際の異常検知を行う現場に設置してから推定器の逐次的な機械学習をオートエンコーダとして（つまり別途、教師データを用意することなく）行い、当該機械学習の結果に基づいて異常検知を行うので、準備工程を簡略化でき、環境に適合した判定を行うことが可能となる。
【００５０】
また、機械学習の過程の演算を比較的簡素な逆数演算により行うことが可能な推定器を用いることで、比較的簡易な構成とすることができる。
【００５１】
なお、ここでは製品を製造する装置の異常検知を行う例について述べたが、本実施の形態はこの例に限られるものではなく、発熱する装置の温度データを入力データとして発熱に係る異常検知を行うこととしてもよいし、配線上の電流を入力データとした電流量に関する異常検知や、ある製品の熱分布（サーモグラフィー）のデータを入力データとした熱分布の異常検知、人の行動や装置の操作履歴を入力データとした異常検知、無人航空機（ドローン等）の動作に係る異常検知等、種々の例に適用可能である。
【００５２】
［忘却］
また、本実施の形態の例において、忘却処理を含めるべき場合は、忘却率をαとして、（３）式のＰi+1に１／α2を乗じることとすればよい。これによって簡易な方法で忘却効果を得ることが可能となる。
【００５３】
［学習結果の部分破棄］
また本実施の形態において、バッチサイズが１であるなど、比較的少数のバッチサイズの入力データ群により学習処理を行う場合は、異常なデータが連続することで生じる、異常なデータへの適合を防止するため、次のような学習結果の部分破棄の処理を行ってもよい。
【００５４】
本実施の形態の一例では、学習処理部２３はデータ受入部２１が受け入れたデータを、推定器２２に対してそのまま入力データとして入力する（バッチサイズを１として逐次的な学習処理を実行する）。具体的にこの推定器２２としては、OS-ELM のニューラルネットワークを用いることとすればよい。この場合、推定器２２と学習処理部２３とにより、バッチサイズを「１」とした、逐次的な学習処理を行うOS-ELMが実現される。
【００５５】
この例において学習処理部２３は、入力データＸを推定器２２に入力し、当該推定器２２が出力する出力データと入力データＸとを用いて機械学習処理を行うごとに、つまり推定器２２の中間層３２と出力層３３との結合重みＶを更新するごとに、推定器２２に入力した入力データＸと、更新のために求めた結合重みβ、及び機械学習処理で必要となるデータ（例えば上述のＰ）を互いに関連付けて記憶部１２に格納する。
【００５６】
またこのとき学習処理部２３は、過去Ｍ回より前に格納した、入力データＸ，結合重みβ及び中間結果Ｐを互いに関連付けた情報が記憶部１２に格納されていれば、当該情報を削除してもよい。
【００５７】
これにより記憶部１２には、最大で直近のＭ回分の推定器２２の機械学習結果である中間層３２と出力層３３との結合重みβjと、中間結果としてのＰjと、それぞれの結合重みを求めたときの入力データＸjとを互いに関連付けた情報Ｒj（ｊ＝１，２，…）が記憶されている状態となる（図４）。
【００５８】
学習処理部２３は、予め定めた方法で決定した複数回（ここではＭ回とする）の機械学習処理を行うごとに、記憶部１２に記憶したＭ回前の中間層３２と出力層３３との結合重みβ、中間結果Ｐ、及び入力データＸを読み出す。学習処理部２３は、ここで読み出した入力データＸを、推定器２２に入力する。
【００５９】
学習処理部２３は、推定器２２の出力を参照し、当該出力が予め定めた条件を満足するか否かを判断する。ここでは学習処理部２３は、当該推定器２２の出力と、入力データＸ（教師データに相当する）との差に基づく値（例えば二乗平均誤差）を損失として演算し、この損失の大きさが予め定めたしきい値を超えるか否かを調べる。ここで演算される損失の大きさが予め定めたしきい値を超えるとの条件が、例えば上記の予め定めた条件の一例に相当する。
【００６０】
学習処理部２３は、ここで損失の大きさが予め定めたしきい値を超えていたとき、つまり、上記予め定めた条件が満足されるときには、ここで入力した入力データに関連付けて記憶されている機械学習結果であるＭ回前の中間層３２と出力層３３との結合重みβを用いて、推定器２２の機械学習状態を補正する。具体的には、推定器２２の中間層３２と出力層３３との結合重みＶを、ここで読み出した結合重みβに設定する（この動作は、直近の機械学習の結果を部分的に破棄することに相当する）。
【００６１】
またこのときには、学習処理部２３は、この時点で記憶している中間結果を、ここで読み出した中間結果Ｐに設定し直す。
【００６２】
なお、学習処理部２３は、損失の大きさが予め定めたしきい値を超えていなかった場合は、推定器２２の機械学習状態を補正することなく、機械学習処理を続ける。
【００６３】
本実施の形態のこの例によると、予め定めた方法で決定した回数（例えば実験的に定めてもよい）だけの機械学習を行うごとに、過去の所定の時点での入力データを現在の推定器２２に入力して損失の大きさが大きくなっていないかを確認する。そして損失が大きくなっていれば、直近の機械学習の内容を破棄して、推定器２２のパラメータを、上記過去の所定の時点での推定器２２のパラメータに戻すこととなる。
【００６４】
これにより、バッチサイズが比較的大きい値となっている場合と同様に、時間的に平均化した機械学習が行われることとなる。
【００６５】
［遅延学習］
また本実施の形態の一例では、学習データを部分破棄する代わりに、学習を遅延して行ってもよい。この例では、学習処理部２３はデータ受入部２１が受け入れたデータを、推定器２２に対してそのまま入力データとして入力する（バッチサイズを１として逐次的な学習処理を実行する）。この推定器２２は、既に述べた例と同様にOS-ELM のニューラルネットワークを用いることとすればよい。すなわち、ここでも推定器２２と学習処理部２３とにより、バッチサイズを「１」とした、逐次的な学習処理を行うOS-ELMが実現されるものとする。
【００６６】
学習処理部２３は、入力データＸを受け入れて推定器２２に入力し、当該推定器２２が出力する出力データを得て、当該出力データと入力データＸとの差に基づく値（例えば二乗平均誤差）を損失として演算し、入力データＸと演算した損失とを関連付けて記憶部１２に格納する。この段階では学習処理部２３は、推定器２２の機械学習処理を行わない。
【００６７】
学習処理部２３は、予め定められた回数Ｍ（Ｍは２以上の自然数とする）だけ、上記の処理を繰り返して、過去Ｍ回分の入力データＸとそれに基づく推定結果の損失の値とを、記憶部１２に保持している状態となると、Ｍ回前の入力データＸを用いた機械学習処理を行うか否かを判断する。
【００６８】
具体的にこの判断は、次のようにして行うことができる。すなわち学習処理部２３は、保持している情報を参照して、直近Ｍ回分の損失の値に基づく統計値（例えばここでは平均Ｅavとする）を求める。そして学習処理部２３は、Ｍ回前の（機械学習処理を行うか否かを判断する対象となったＭ回前の入力データＸに対する）損失の値Ｅを参照し、この値Ｅが、上記統計値である平均Ｅavを用いた条件
Ｅ＜ａ・Ｅav
を満足するか否かを判断する。このａは予め定めた定数であり、例えばａ＝３．０などとしておく。なお、ここでは統計値として平均を用いたが、平均だけでなく、中間値としてもよい。またａは定数ではなく直近Ｍ回分の損失の値の分散や標準偏差に基づいて定められてもよい。
【００６９】
学習処理部２３は、上記の値Ｅが、Ｅ＜ａ・Ｅavを満足するときには、Ｍ回前の入力データＸを用いて機械学習処理を実行する。つまり、当該Ｍ回前の入力データＸと、対応する損失Ｅとを用いて、推定器２２の中間層３２と出力層３３との結合重みＶを更新する。
【００７０】
学習処理部２３は、そして当該Ｍ回前に格納した、入力データＸと損失の情報とを削除してもよい。
【００７１】
なお、学習処理部２３は、上記の判断において、値Ｅが、Ｅ＜ａ・Ｅavを満足しない場合は、Ｍ回前の入力データＸを用いた機械学習処理を実行することなく、当該Ｍ回前に格納した入力データＸと損失の情報とを削除する。
【００７２】
本実施の形態のこの例によると、予め定めた方法で決定した回数（例えば実験的に定めてもよい）だけ遅延して機械学習を行うか否かを判断し、大きく外れた入力データに基づく機械学習を行わないよう制御するので、条件に応じて直近の学習内容を破棄する上述の例と同様の効果を得ることができ、時間的に平均化した機械学習が行われることとなる。
【００７３】
［並列化］
さらに本実施の形態によると、推定器２２は複数あっても構わない。この例に係るデータ処理装置１の制御部１１は、機能的には、図５に例示するように、データ受入部２１と、複数の推定器４２-1，４２-2…と、各推定器４２に対応して設けられる複数の学習処理部４３-1，４３-2…と、判定処理部４４と、出力処理部２５とを含んで構成される。なお、図２に例示したものと同様の構成となるものについては、同じ符号を付して繰り返しての説明を省略する。
【００７４】
本実施の形態のこの例に係る推定器４２（ここで各推定器を区別する必要がない場合は、それぞれの推定器をまとめて推定器４２と表記する。また学習処理部についても同様とする）のそれぞれは、図２に例示した推定器２２と同じもので構わない。つまり、各推定器４２は、それぞれOS-ELMに対応するニューラルネットワークでよい。
【００７５】
また学習処理部４３は、対応する推定器４２のパラメータを、既に説明した学習処理部２３と同様にして機械学習処理により逐次的に更新する。学習処理部４３は、また推定器４２の出力データと、入力データ（教師データに相当する）との差に係る値（二乗平均誤差等）を損失として演算して出力する。さらに本実施の形態のこの例では、学習処理部４３は、損失の値を出力するとともに、対応する推定器４２をリセットしてからのパラメータの更新回数（入力データを入力した回数）を、学習状況情報として出力する。なお、ここでの例でも、それぞれの学習処理部４３は、学習結果の部分破棄の処理を実行してもよい。
【００７６】
本実施の形態のこの例において学習処理部４３-i（ｉ＝１，２，…）は、対応する推定器４２-i（ｉ＝１，２，…）を、学習処理部４３-iごとに定められる所定のタイミングＴiごとにリセットする。すなわち学習処理部４３-iは、前回推定器４２-iをリセット（入力層３１と中間層３２との結合重みＷ及びバイアスｂをランダムに決定）してから、タイミングＴiだけの時間が経過するごとに、推定器４２-iを再度リセットする。
【００７７】
ここでタイミングＴiは、入力データの入力回数により定めてもよい（例えばタイミングＴiは入力データがｑi回入力されるごととしてもよい）し、図示しない時計部（現在時刻を計時ないし取得する回路部）から時刻の情報を取得し、当該時刻の情報に基づいて判断される、実際の時間経過により定めてもよい。
【００７８】
またこのタイミングＴiは、すべての推定器４２が（少なくとも異常検知の処理に必要な時間の間は）一斉にリセットされないタイミングとしておくこととしてもよい。例えばタイミングＴiを入力データの入力回数により定める場合は、各タイミングＴiに係る入力回数を素数とする。一例として推定器４２を２つ用いる場合に、それぞれのリセットのタイミングを、Ｔ1＝２７４３７，Ｔ2＝２７４４９（いずれも素数）としておくと、７．５億回までは同じタイミングでリセットすることがなくなる。
【００７９】
またタイミングＴiを現実の時刻により定める場合は、Ｔ1を毎日午前０時０分０秒に、Ｔ2を毎週月曜日の午前１時０分０秒に…というように定めれば、同じタイミングでリセットされることがなくなる。
【００８０】
このように本実施の形態の一例では、学習処理部４３は、各推定器４２を、例えばそれぞれ互いに異なるタイミングでリセットすることで、すべての推定器４２が（少なくとも異常検知の処理に必要な時間の間は）一斉にリセットされないようにしておく。
【００８１】
また、この例の判定処理部４４は、複数の学習処理部４３から、それぞれ対応する推定器４２が出力した出力データに係る損失の演算結果と、学習状況情報（ここでは対応する推定器４２をリセットしてからのパラメータの更新回数）とを受け入れる。
【００８２】
そして判定処理部４４は、学習状況情報を参照して、パラメータが十分に学習されている推定器４２に対応する学習処理部４３が出力した損失を参照し、当該損失の大きさが予め定めたしきい値を超えるか否かを調べる。ここでパラメータが十分に学習されているか否かは、例えば学習状況情報が表すパラメータの更新回数が予め定めた初期化しきい値を超えているか否かにより判断すればよい。つまり判定処理部４４は、学習状況情報が表すパラメータの更新回数が予め定めた初期化しきい値を超えていればパラメータが十分に学習されていると判断する。
【００８３】
判定処理部４４は、パラメータが十分に学習されていると判断された推定器４２の数Ｑにより、パラメータが十分に学習されていると判断された推定器４２に対応する学習処理部４３のうち、出力した損失の大きさが予め定めたしきい値を超えるものの数ｑを除して、この値ｑ／Ｑが所定の値、例えば１／２を超えるか否かを調べる。そしてこの値ｑ／Ｑが例えば１／２を超える場合（この所定の値が１／２であるときには、過半数の推定器４２が異常を検知したと判断される場合）に、入力データが異常である旨（つまり、製造装置等に異常が生じている旨）を表す判定の結果を出力処理部２５に出力させる。
【００８４】
［クラスタリング］
また、このように推定器２２を複数設けて並列化するときには、次のように機械学習処理を行ってもよい。本実施の形態のここでの例に係るデータ処理装置１の制御部１１は、機能的には、図６に例示するように、図５に示した例と同様、データ受入部２１と、複数の推定器４２-1，４２-2…と、学習処理部４３′と、判定処理部４４′と、出力処理部２５と、第２学習処理部４５とを含んで構成される。なお、図５に例示したものと同様の構成となるものについては、同じ符号を付して繰り返しての説明を省略する。
【００８５】
本実施の形態のこの例に係る推定器４２（ここでも各推定器を区別する必要がない場合は、それぞれの推定器をまとめて推定器４２と表記する）のそれぞれは、図２に例示した推定器２２と同じもので構わない。つまり各推定器４２は、それぞれOS-ELMに対応するニューラルネットワークでよい。
【００８６】
学習処理部４３′は、データ受入部２１が受け入れた入力データＸを各推定器４２に入力する。そして学習処理部４３′は、各推定器４２の出力データと、入力データＸとの二乗平均誤差を損失として演算し、判定処理部４４′に出力する。学習処理部４３′は、入力データＸを記憶部１２に蓄積して保持する。
【００８７】
また学習処理部４３′は、推定器４２のうち、その出力データに係る損失に基づく判断の結果が、入力データＸが「正常」であることを表すものとなっている推定器４２を特定する情報を判定処理部４４′から受け入れ、当該情報で特定される推定器４２のパラメータを、既に説明した学習処理部２３と同様にして機械学習処理により更新する。
【００８８】
判定処理部４４′は、学習処理部４３′から各推定器４２の損失に係る情報の入力を受けて、当該損失に基づいて、各推定器４２による入力データＸの正常／異常判定の結果を出力する。具体的に、判定処理部４４′は、対応する損失の大きさが予め定めたしきい値を超える推定器４２については、当該推定器４２が入力データＸを異常と判定したとする。また、対応する損失の大きさが予め定めたしきい値を超えていない推定器４２については、当該推定器４２が入力データＸを正常と判定したものとする。判定処理部４４′は、すべての推定器４２が入力データＸを異常と判定した場合に、入力データＸが異常であったと判定して、その旨を出力するよう、出力処理部２５に指示する。
【００８９】
また判定処理部４４′は、少なくとも一つの推定器４２が入力データを正常と判定しているときには、入力データＸは正常であるとして、その旨を出力するよう、出力処理部２５に指示する。
【００９０】
さらに判定処理部４４′は、入力データＸを正常であると判断した推定器４２を特定する情報を、学習処理部４３′に出力する。
【００９１】
第２学習処理部４５は、予め定められたタイミングで起動し、推定器４２の機械学習処理を実行する。ここで予め定められたタイミングは、データ処理装置１の起動時点、あるいは所定の時間に１度、入力データＸが所定の回数だけ入力されるごと、異常と判断された入力データが所定の回数を超えて入力された時点、入力データの傾向に基づいて定めたクラスタ数ｍの値が妥当でないと判断した時点、利用者の指示による時点など、として定めておけばよい。クラスタ数の値が妥当であるか否かの判断は、クラスタ数を異ならせて試験的なクラスタリングを行い、その結果を参照して、クラスタ数を変更するか否かを判断する処理を予め定めた判断のタイミングごとに繰り返して実行することによって行う。ここでクラスタ数を変更するか否かの具体的な判断は、上記判断の処理の時点におけるクラスタ数でのクラスタリングの結果と、上記の試験的なクラスタリングの結果とにおける、同じクラスタに属する入力データ同士の距離（凝集性）や、互いに異なるクラスタに属する入力データ同士の距離（クラスタ間離散性）とに基づいて行うことができる。
【００９２】
この第２学習処理部４５による機械学習処理は、次のようにして行われる。第２学習処理部４５は、学習処理部４３′が記憶部１２に蓄積して記録した入力データをクラスタリングする。ここでのクラスタリングの方法は、教師なしのクラスタリングであれば、どのような方法であってもよく、例えばDBScan、SUBCLU、k-meansなど、種々の処理のいずれかを採用できる。
【００９３】
第２学習処理部４５は、推定器４２の数と同じ、またはより少ない数のクラスタに分類を行う。つまり推定器４２の数がｎであるとすると、クラスタの数をｍ≦ｎなるｍとする。あるいは、ここで得られるクラスタの数より多い推定器４２を予め用意しておくこととしてもよい（その場合は、入力データとなるべきデータを予め蓄積し、クラスタリング処理を行ってクラスタ数を決定する）。
【００９４】
第２学習処理部４５は、各推定器４２を、いずれかのクラスタに係る入力データを機械学習する推定器であるとして、各推定器４２をいずれかのクラスタに割り当てる。なお、以前に割り当てを行っている場合には、第２学習処理部４５は改めて割り当てを変更することなく、以前の割り当ての結果をそのまま利用する。
【００９５】
そして第２学習処理部４５は、記憶部１２に蓄積されている入力データを順次取り出し、取り出した入力データのクラスタリングの結果（属するクラスタを表す情報）を参照する。第２学習処理部４５は、当該情報で表されるクラスタに割り当てられている推定器４２に対して、当該入力データを入力し、その出力データを得て、既に述べた方法と同様の方法で、当該推定器４２を機械学習処理する。このとき、参照した情報で表されるクラスタに割り当てられていない推定器４２については、機械学習処理を行わない。
【００９６】
第２学習処理部４５は、記憶部１２に蓄積されている入力データのすべてについて上記の処理を終了すると、記憶部１２に蓄積している入力データを削除する（次回の学習には利用しないよう制御する）こととしてもよい。
【００９７】
そして第２学習処理部４５による機械学習処理後、学習処理部４３′と、判定処理部４４′と出力処理部２５とによる動作を継続する。
【００９８】
つまりこの例では、入力データをクラスタに分類し、分類されたクラスタごとに、対応する推定器４２を用意して、当該推定器４２を、対応するクラスタに属する入力データで機械学習する。
【００９９】
本実施の形態のこの例によると、各推定器４２が第２学習処理部４５の動作により、入力データの種類に特化した機械学習を行うこととなる。これにより、例えば製造装置の異常判定を行う例においては、製造装置が一時停止しているときの振動、動作中の振動、…といったように、複数の異なるタイプの振動をそれぞれ機械学習するようになる。
【０１００】
なお、本実施の形態のこの例においては、各クラスタに対して利用者が任意にラベルを付してもよい。この例では制御部１１は当該ラベルの情報を記憶する。
【０１０１】
そして判定処理部４４′は、少なくとも一つの推定器４２が入力データを正常と判定しているときには、当該推定器４２が割り当てられているクラスタに係るラベルの情報を、出力処理部２５に出力し、当該ラベルの情報を出力させる。これによると、利用者は、入力データの異常・正常の判断に加え、当該入力データがどのような状態に対応するものであるか（例えば上述の例であれば、「装置停止中」などといった状態）を識別可能となる。
【０１０２】
また、判定処理部４４′は、すべての推定器４２の判定結果を総合的に判断することで、当該入力データに対応するラベル（当該入力データがどのような状態に対応するものであるか）の確信度を出力してもよい。例えば、一つの推定器４２が正常と判定し、それ以外の推定器４２がすべて異常と判定したときは正常と判断した推定器４２が割り当てられているクラスタに係るラベルの情報に対する確信度（当該クラスタ分類に対する信頼度）は高くなる。一方、一つの入力データに対して、複数の推定器４２が一斉に正常と判定したときには、当該複数の推定器４２のそれぞれが割り当てられているクラスタに係るラベルの情報に対する確信度は低くなる。
【０１０３】
そこで判定処理部４４′は、複数の入力データのそれぞれに対して推定器４２ごとに、単独で正常と判断した（他の推定器４２が異常と判断しているときに、当該推定器４２のみが正常と判断した）割合、つまり単独で正常と判断した回数を、正常と判断した回数（他の推定器４２も正常と判断したときを含む回数）で除した値を、当該推定器４２に割り当てられているクラスタに係るラベルの確信度として出力してもよい。
【０１０４】
［行動異常の検出］
また既に述べたように、本実施の形態のデータ処理装置１は、被験者の行動の正常・異常を判断することにも用いることができる。
【０１０５】
この行動異常の検出を行う場合、被験者の行動（例えば車両を運転中の被験者であればハンドルを左に切る、右に切る、アクセルを踏む、などの行動であり、コンピュータ操作を行う被験者を対象とする場合は、入力したコマンドの種類等）を表す符号（例えばアルファベット一文字）を予め規定しておき、被験者の一連の行動を符号列（Ａ，Ｃ，Ｅ，Ｂ…といった列）として表現する。
【０１０６】
データ処理装置１のデータ受入部２１は、一定の期間ごとの被験者の一連の行動を表す符号列の入力を入力部１３から複数回受け入れる。そしてデータ受入部２１は、各期間に対応する符号列に基づいて各期間ごとの状態遷移表を生成する。具体的にデータ受入部２１は、Ｎ個の符号からなる符号列からｉ番目（ｉは、０＜ｉ＜Ｎの各整数）の符号Ｃiと、ｉ＋１番目の符号Ｃi+1とを取り出て順列（Ｃi，Ｃi+1）を作成し、この順列ごとの出現確率を演算する。
【０１０７】
データ受入部２１は、あり得るすべての順列について、その出現確率を関連付けたベクトル情報（符号列から取り出されなかった順列についての出現確率は０とする）を生成して状態遷移表とする。そしてデータ受入部２１は、この状態遷移表のベクトル情報を入力データとして学習処理部２３（あるいは学習処理部４３や学習処理部４３′）に出力し、正常・異常を判別する推定器を得る。
【０１０８】
もっとも、このようにして生成した状態遷移表は、スパース（ほとんどの要素が「０」）なベクトル情報となっていることが想定される。
【０１０９】
そこで本実施の形態のここでの例では、データ受入部２１は、複数の期間のそれぞれについて求められた状態遷移表について、広く知られた圧縮（複数の要素を統合して要素数を減少させる）処理を行った後、圧縮処理後のベクトル情報を入力データとすることとしてもよい。この処理としては、Candes-Taoの理論に基づく方法など、広く知られた方法を採用できるので、ここでの詳しい説明は省略する。
【０１１０】
あるいは、データ受入部２１は、第ｊ番目の期間に対応する状態遷移表Ｖjを求める際、第ｊ−１番目の期間に対応する状態遷移表Ｖj-1があれば、第ｊ番目の期間に対応して上記の方法で求めた状態遷移表Ｖ′jを用い、求める状態遷移表Ｖjを、
Ｖj＝Ｖ′j＋α・Ｖj-1
として求めてもよい。ここでαは任意の定数であり、例えばα＝０．８などとする。
【０１１１】
この例のデータ処理装置１は、図６に例示した構成を有するものであってもよい。この図６の構成を有するものとした場合は、車両を運転する被験者の行動の異常・正常を検出するときには、各推定器４２は、走行中に対応するもの、停車中に対応するもの…といったように分化して機械学習されることが期待される。そしてこの場合のデータ処理装置１は、どの推定器４２においても異常であると判断されたときに、行動の異常が検出されたことを表す情報を出力することとなる。
【０１１２】
［前処理］
さらに本実施の形態のデータ処理装置１のデータ受入部２１は、入力部１３が出力するデータに対して前処理を行ってもよい。この前処理は、処理の対象とするベクトルデータｘ（要素が（ｘ0,ｘ1，ｘ2…，ｘn）とする）に対して所定の変換を行うもので、変換後のベクトルｙ（要素が（ｙ0,ｙ1，ｙ2…，ｙn）とする）を、
ｙi＝Σαj・ｘj
（ただしΣは、ｊについての総和を求めることを意味する）などとして求めることを意味する。ここでαは、フィルタ関数（カーネル）であり、例えば、
αj＝０（ｊ＜ｉ−１，またはｊ＞ｉ＋１のとき）
αj＝１／３（ｉ−１≦ｊ≦ｉ＋１のとき）
としてもよい。
【０１１３】
また、
αj＝０（ｊ＜ｉ−１，またはｊ＞ｉ＋１のとき）
αj＝１／４（ｊ＝ｉ−１，またはｊ＝ｉ＋１のとき）
αj＝１／２（ｊ＝ｉのとき）
としてもよい。
【０１１４】
データ受入部２１は、入力部１３が出力するデータを受け入れて、当該データに対して上述のフィルタ関数を用いて変換処理を行ってから、変換処理後のデータを入力データとして学習処理部２３（あるいは学習処理部４３や学習処理部４３′）に出力することとしてもよい。
【０１１５】
このようにすると、例えば時系列に値を配列したベクトルデータを入力データとする場合に、時間変化に対する変動に対してロバストな判定を行うことが可能となる。
【０１１６】
また、上述のように、フィルタ関数の定め方は複数あるため、図５に例示した構成を用いることとしてもよい。この場合、各フィルタ関数に対応する推定器４２を定めておく。そしてこの場合のデータ受入部２１は複数のフィルタ関数をそれぞれ適用して変換したデータを複数得て、各フィルタ関数に対応する推定器４２を、対応するフィルタ関数で変換したデータを用いて機械学習させるよう、各学習処理部４３にそれぞれ対応する変換したデータを出力することとしてもよい。
【０１１７】
また変換処理の方法として、ＨＯＧ特徴量を用いる方法を採用してもよい。具体的には、ベクトルデータｘの各要素を所定サイズ（例えばｗ×ｈ）のマトリクス状に配列した上で、当該配列後のマトリクス内で予め定めたウインドウサイズＷｗ×Ｈｗ（Ｗｗ＜ｗ、Ｈｗ＜ｈ）の領域を設定し、当該領域（局所データとなる）の勾配方向と勾配強度とを演算して、それらのヒストグラムを変換後のベクトルｙとして、当該変換処理後のデータを入力データとして学習処理部２３（あるいは学習処理部４３や学習処理部４３′）に出力することとしてもよい。
【０１１８】
この処理は、ベクトルデータｘがもともと上記所定サイズ（ｗ×ｈ）の画像データである場合に有効である。この場合、ベクトルデータｘの各成分は当該画像データの各画素の輝度値となる。またそのＨＯＧ特徴量をベクトルｙとして表現する方法は、広く知られているため、ここでの詳しい説明は省略する。
【０１１９】
［多層化］
また、本実施の形態のデータ処理装置１を複数用い、各データ処理装置１を互いに、ＦＡＴツリー等の木構造ネットワーク状に接続して用いてもよい。
【０１２０】
この場合、データ処理装置１を、木構造ネットワークの各ノードに配する。そして親となるノードのないノード（ルートノード）に対応するデータ処理装置１を最上位とする。子のあるノードに対応するデータ処理装置１ｐは、子となっているノードに対応するデータ処理装置１ｆが出力する判定の結果（当該データ処理装置１ｆに入力された入力データが正常であるか否かを表す情報）を受け入れ、この判定の結果の情報を入力部１３から受け入れて、機械学習の対象（入力データ及び教師データ）として、OS-ELM等で構成した推定器をオートエンコーダとして学習処理し、入力データが正常であるか異常であるかの判定を行う。
【０１２１】
この例によると、より下位側（製品の製造機械の振動などの情報を入力とする）データ処理装置１において、異常検知の対象となったシステムの細部における異常を検知するとともに、例えば一つの作業室において、個々の製造機械の振動についての異常検知を行う複数のデータ処理装置１からの入力を受け入れる（親となっているノードに相当する）データ処理装置１は、この作業室全体（システムのより広域な部分）における集約的な異常検知を行うこととなる。
【０１２２】
このように本実施の形態のデータ処理装置１を多層的に接続することで、システムの種々のスケールで異常検知を行うことが可能となる。
【０１２３】
［要因推定］
また、本実施の形態のデータ処理装置１は、異常と判断された入力データと、その前後にデータ処理装置１に入力されていた複数の入力データとを入力とし、異常の原因を表す情報を正解として機械学習処理した、ディープラーニングのニューラルネットワークを用いた要因推定装置に接続されてもよい。
【０１２４】
この場合、データ処理装置１は、最近入力した入力データを少なくともＮ個蓄積して保持する。そして異常と判断される入力データが入力されると、その後、ｍ個（ｍ＜Ｎ，ｍ＝Ｎ−ｎとする）の入力データが入力されるまで待機し、異常と判断された入力データが入力された後、ｍ個の入力データが入力されたときに、保持しているＮ個の入力データ（異常発生前にｎ−１個、異常と判断された入力データが１個、異常と判断された後の入力データｍ個の合計Ｎ個）を、要因推定装置に送出する。
【０１２５】
なお、上述のような要因推定装置の構成は、広く知られたものを採用できるので、ここでの詳しい説明は省略する。
【符号の説明】
【０１２６】
１  データ処理装置、１１  制御部、１２  記憶部、１３  入力部、１４  出力部、２１  データ受入部、２２  推定器、２３  学習処理部、２４  判定処理部、２５  出力処理部、３１  入力層、３２  中間層、３３  出力層、４２  推定器、４３，４３′  学習処理部、４４，４４′  判定処理部、４５  第２学習処理部。
【図１】
2020009400.tif 000014
【図２】
2020009400.tif 000015
【図３】
2020009400.tif 000016
【図４】
2020009400.tif 000017
【図５】
2020009400.tif 000018
【図６】
2020009400.tif 000019