IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローム株式会社の特許一覧

特開2025-99163異常度生成装置、プログラム、および異常度生成方法
<>
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図1
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図2
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図3
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図4
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図5
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図6
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図7
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図8
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図9
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図10
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図11
  • 特開-異常度生成装置、プログラム、および異常度生成方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025099163
(43)【公開日】2025-07-03
(54)【発明の名称】異常度生成装置、プログラム、および異常度生成方法
(51)【国際特許分類】
   G06F 18/213 20230101AFI20250626BHJP
   G06N 3/02 20060101ALI20250626BHJP
【FI】
G06F18/213
G06N3/02
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023215602
(22)【出願日】2023-12-21
(71)【出願人】
【識別番号】000116024
【氏名又は名称】ローム株式会社
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】浜地 健次
(57)【要約】      (修正有)
【課題】異常を効果的に検知するための新規な指標としての異常度を生成可能とする異常度生成装置を提供する。
【解決手段】異常度生成装置1は、機械学習モデルにおける中間層の中間層ベクトルから、中間層平均ベクトルを求め、前記中間層平均ベクトルに対する前記中間層ベクトルの正規化距離を表す第1異常度を算出するように構成される第1異常度算出部4を備える。前記正規化距離は、共分散行列を用いて正規化された距離である。さらに、前記中間層ベクトルを算出するためのパラメータに関する乱数行列を生成する乱数行列生成部と、生成された前記乱数行列と、正常データおよび異常データに基づいて前記第1異常度算出部によって算出される前記第1異常度に基づき前記乱数行列を評価し、前記乱数行列を初期値として決定するように構成される初期値決定部と、を備える、
【選択図】図4
【特許請求の範囲】
【請求項1】
入力層と出力層との間に配置される少なくとも1つの中間層を含む機械学習モデルにおける前記中間層の中間層ベクトルを
【数24】

とし、
中間層平均ベクトルを
【数25】

【数26】

として、
前記中間層平均ベクトルに対する前記中間層ベクトルの正規化距離を表す第1異常度を算出するように構成される第1異常度算出部を備える、異常度生成装置。
【請求項2】
前記正規化距離は、
【数27】

で表される共分散行列を用いて正規化された距離である、請求項1に記載の異常度生成装置。
【請求項3】
前記第1異常度算出部は、下記式で表される前記第1異常度を算出する、請求項2に記載の異常度生成装置。
【数28】
【請求項4】
前記中間層ベクトルを算出するためのパラメータに関する乱数行列を生成するように構成される乱数行列生成部と、
生成された前記乱数行列と、正常データおよび異常データに基づいて前記第1異常度算出部によって算出される前記第1異常度に基づき前記乱数行列を評価し、前記乱数行列を初期値として決定するように構成される初期値決定部と、
を備える、請求項1に記載の異常度生成装置。
【請求項5】
前記初期値決定部は、前記乱数行列生成部による所定回数の前記乱数行列の生成によって生成された前記乱数行列のうち、最も適切と評価した前記乱数行列を前記初期値として決定する、請求項4に記載の異常度生成装置。
【請求項6】
前記第1異常度算出部は、複数の前記中間層のそれぞれについて前記第1異常度を算出する、請求項1に記載の異常度生成装置。
【請求項7】
コンピュータにおけるソフトウェア処理によって実現される、請求項1から請求項6のいずれか1項に記載の異常度生成装置。
【請求項8】
前記コンピュータを請求項7に記載の異常度生成装置として機能させるためのプログラム。
【請求項9】
前記機械学習モデルを保持するように構成されるモデル保持部と、
入力データを記憶するように構成されるデータ記憶部と、
前記機械学習モデルと前記入力データに基づいて教師なし学習を実行するように構成される学習演算部と、
前記機械学習モデルと前記入力データに基づいて推論を実行するように構成される推論演算部と、
前記推論演算部による推論結果と前記入力データに基づいて損失関数による第2異常度を算出するように構成される第2異常度算出部と、
前記第1異常度と第1閾値との比較、および前記第2異常度と第2閾値との比較に基づいて異常を検知するように構成される異常検出部と、
を備える、請求項1に記載の異常度生成装置。
【請求項10】
コンピュータを用いて実行される異常度生成方法であって、
入力層と出力層との間に配置される少なくとも1つの中間層を含む機械学習モデルにおける前記中間層の中間層ベクトルを
【数29】

として算出する第1ステップと、
中間層平均ベクトルを
【数30】

【数31】

として算出する第2ステップと、
前記中間層平均ベクトルに対する前記中間層ベクトルの正規化距離を表す異常度を算出する第3ステップと、
を備える異常度生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異常度生成装置に関する。
【背景技術】
【0002】
従来、産機分野の工場設備保全に関して、機械システムの状態管理保全(Condition Based Maintenance)に対してAI(人工知能)の適用が進んでいる(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2019/035279号
【0004】
[概要]
機械システム等の異常を検知するための指標として、従来、AIが生成する損失関数(誤差関数)の値が異常度として用いられる。しかしながら、従来の損失関数による指標では、検知しにくい異常が存在する場合があった。
【0005】
上記状況に鑑み、本開示は、異常を効果的に検知するための新規な指標としての異常度を生成可能とする異常度生成装置を提供することを目的とする。
【0006】
本開示の一態様に係る異常度生成装置は、
入力層と出力層との間に配置される少なくとも1つの中間層を含む機械学習モデルにおける前記中間層の中間層ベクトルを
【数1】

とし、
中間層平均ベクトルを
【数2】

【数3】

として、
前記中間層平均ベクトルに対する前記中間層ベクトルの正規化距離を表す第1異常度を算出するように構成される第1異常度算出部を備える構成としている。
【0007】
また、本開示の一態様に係る異常度生成方法は、
コンピュータを用いて実行される異常度生成方法であって、
入力層と出力層との間に配置される少なくとも1つの中間層を含む機械学習モデルにおける前記中間層の中間層ベクトルを
【数4】

として算出する第1ステップと、
中間層平均ベクトルを
【数5】

【数6】

として算出する第2ステップと、
前記中間層平均ベクトルに対する前記中間層ベクトルの正規化距離を表す異常度を算出する第3ステップと、を備える。
【図面の簡単な説明】
【0008】
図1図1は、3層ニューラルネットワークを示す図である。
図2図2は、隠れ層ベクトルhを第1主成分軸hp1と第2主成分軸hp2において示した模式図である。
図3図3は、コンピュータの構例成を示す図である。
図4図4は、異常度生成装置の構成例を示す図である。
図5図5は、初期値決定部による初期値決定処理に関するフローチャートである。
図6図6は、正常データと異常データの時系列データの例を示す図である。
図7図7は、正常データと異常データの時系列データと、異常度の例を示す図である。
図8図8は、正常データと異常データの時系列データと、異常度の例を示す図である。
図9図9は、本開示の例示的な実施形態に係る機械学習装置の構成を示す図である。
図10図10は、第1変形例に係る機械学習装置の構成を示す図である。
図11図11は、第2変形例に係る機械学習装置の構成を示す図である。
図12図12は、4層ニューラルネットワークを示す図である。
【0009】
[詳細な説明]
以下、本開示の例示的な実施形態について、図面を参照して説明する。
【0010】
<異常度について>
ここでは、本開示に係る新規な指標である異常度について説明する。図1は、機械学習モデルの一例としての3層ニューラルネットワーク50を示す図である。
【0011】
図1に示すように、3層ニューラルネットワーク50は、入力層50Aと、隠れ層50Bと、出力層50Cと、を有するAIモデルである。隠れ層は、中間層とも称される。一般に、3層ニューラルネットワーク50において、バッチサイズkのn次元の入力データx∈Rk×nに対して、n’次元の推論結果y∈Rk×n’は、y=G(x・α+b)βとして得られる。ここで、α∈Rn×mは入力層50Aと隠れ層50Bとを結合する重みであり、β∈Rm×n’は隠れ層50Bと出力層50Cとを結合する重みである。また、b∈Rは、隠れ層50Bのバイアスであり、Gは隠れ層50Bの活性化関数である。活性化関数は、例えばSigmoidあるいはReLUなどを用いることが可能である。
【0012】
本実施形態では、3層ニューラルネットワーク50を任意のバッチサイズで逐次的に学習できるアルゴリズムを用いる。バッチサイズkのi番目の学習データ{x∈Rki×n, t∈Rki×n’}が得られた場合、下記(1)式で示される誤差を最小化するβを求める必要がある。
【数7】

なお、i番目の隠れ層行列H=G(x・α+b)である。また、tは、推論結果yに対応する教師データである。
【0013】
最適化された重みβは、下記(2)式により計算される。
=Pi-1-Pi-1 T(I+Hi-1 T-1i-1
β=βi-1+P T(t-Hβi-1) (2)
【0014】
ここで、Pとβについては、下記(3)式により得られる。
=(H T-1
β=P T (3)
【0015】
学習のアルゴリズムは次のようになる。
(1)重みα、およびバイアスbの値を乱数により初期化する。
(2)xに対するHを算出し、Pおよびβを算出する。
(3)バッチサイズkのi番目の学習データが得られるたびに、Pおよびβを逐次算出する。なお、(3)式におけるβの算出式を用いずに、乱数により初期化した値をβとしてもよい。
【0016】
上記(2)式における計算量的ボトルネックは、(I+Hi-1 T-1であるが、(I+Hi-1 T)の行列サイズはk×kであるため、k=1の場合、逆行列演算を逆数演算に置き換えることができる。従って、バッチサイズをk=1に固定することで、マイコン程度の演算装置であっても演算が容易となる。
【0017】
また、本実施形態では、オートエンコーダを用いた学習を行う。オートエンコーダは、入力データをそのまま教師データとして流用し、入力データを推論結果として再構成できるように学習する。すなわち、上記でいえば、t=xとして学習する。オートエンコーダは、別個に教師データを作成する必要がないので、教師なし学習アルゴリズムの一種となる。また、隠れ層のノード数を入力層と出力層のノード数よりも小さくすることで、入力データと推論結果との誤差が収束した場合に隠れ層行列を入力データの次元圧縮形式とみなすことができる。すなわち、入力データxのエンコード結果はH=G(x・α+b)であり、Hのデコード結果はy=H・βとして得られる。
【0018】
このようなアルゴリズムによれば、エッジデバイスにおいてマイコン程度の演算装置により学習が可能となる。すなわち、オンデバイス学習が可能となる。オートエンコーダでは学習したことがない特徴を有する入力データに対しては誤差が増加するため、異常検知モデルとして用いることができる。すなわち、まずオートエンコーダで正常データのみを入力データとして学習を行う。すると、正常データとは異なる特徴のデータ(異常データ)が入力されると、誤差が増加するため、誤差に対して閾値を設ければ異常を検知できる。
【0019】
3層ニューラルネットワーク50では、推論結果yと教師データtとの誤差を表す損失関数L(y,t)により異常度が計算される。損失関数には、例えばMAE(Mean Absolute Error)あるいはMSE(Mean Squared Error)が用いられる。損失関数がMAEの場合、損失関数Lは、下記(4)式のように表される。
【数8】

また、損失関数がMSEの場合、損失関数Lは、下記(5)式のように表される。
【数9】
【0020】
オートエンコーダを用いて学習を行うので、損失関数L(y,t)=L(y,x)として異常度が計算される。学習完了後の推論時に異常度を算出して閾値と比較することで異常を検知できる。
【0021】
隠れ行列Hに含まれる1バッチ分のm次元の隠れ層ベクトルを
【数10】

とする。
図2は、学習または推論において算出される隠れ層ベクトルhを第1主成分軸hp1と第2主成分軸hp2において示した模式図であり、ここでは種々の入力データごとの隠れ層ベクトルhのデータDTを示す。なお、厳密には図2に示す平面は活性化関数のために紙面奥行/手前方向に非線形に歪んでいるが、それは無視して紙面を真上から視ている。
【0022】
上記のような損失関数による異常度が大きい場合は、データDTから第1主成分軸hp1への垂線の長さが長くなる。例えば、図2に示すデータDTの一つであるデータDTAのような場合に、データDTAに対する垂線VLが長くなる。データDTAは異常な入力データに対して得られるため、上記異常度によって異常を検知できる。しかしながら、z2に示すデータDTBのように、第1主成分軸hp1への垂線の第1主成分軸hp1との交点と、正常な入力データに対して得られるデータDTの平均のデータDTCとの間の距離Lが長いが、第1主成分軸hp1への垂線は短い場合、上記異常度ではデータDTBに対応する異常を検知できない。
【0023】
そこで、本開示では下記のような新規の指標である異常度を提供する。
【数11】

ただし、
【数12】

【数13】
【0024】
上記の異常度TAE は、主成分分析(PCA)またはそれを利用した多変量統計プロセス管理(MSPC)などで用いられるT(Tスクエア)を隠れ層に適用した統計的指標である。異常度TAE の算出式において、hhは共分散行列であり、m-1は自由度である。なお、自由度で除算することは必須ではない。また、
【数14】

は、活性関数による非線形のため、中心化を行っている。
【0025】
上記の異常度TAE は、隠れ層ベクトルhの下記隠れ層平均ベクトル(中間層平均ベクトル)
【数15】

に対する距離を正規化した正規化距離とも表現できる。
【0026】
このような異常度TAE を正常データに対して算出した値からの乖離が大きい場合を異常度TAE が大きいと表現するとする。損失関数による異常度が小さく、かつ異常度TAE が小さい場合は、データDTが平均データDTCの近くに位置するありふれたデータであることを示す。損失関数による異常度が小さく、かつ異常度TAE が大きい場合は、データDTBのように学習したデータ(正常データ)の傾向はあるが、かなりイレギュラーなデータであることを示す。従って、例えば、正常データの時系列データに対して少しのトゲのようなノイズが生じた場合、または正常データの時系列データが異常な倍率で振幅が増加されたような場合などに、損失関数による異常度では異常を検知しにくいが、異常度TAE では異常を検知できる場合がある。
【0027】
<初期乱数行列の評価>
上記のように、3層ニューラルネットワーク50によるオンライン学習では、入力層と隠れ層とを結合する重みαの初期値を乱数行列によって決定する。しかしながら、初期値を乱数によって決めているため、適切な乱数があてがわれていない場合が生じる。そのような場合に、AIのパラメータ設定(活性化関数、隠れ層のノード数、入力層のノード数、忘却率など)を検討し、学習データを吟味するなど、最適解のない検討を繰り返すこととなり、非効率である。
【0028】
そこで、本開示では、AIのパラメータの初期値を乱数行列によって決定した段階で、その乱数行列の良し悪しを判断できる評価方法を上記の異常度TAE を利用することで提供する。
【0029】
図3は、上記評価方法に用いるコンピュータ100の構成を示す図である。コンピュータ100は、後述する異常度生成装置として機能する。コンピュータ100は、例えばPC(パソコン)である。コンピュータ100がPCである場合、デスクトップ型であるかノート型であるかなどは問わない。
【0030】
コンピュータ100は、CPU(Central Processing Unit)100Aと、メモリ100Bと、補助記憶装置100Cと、操作入力部100Dと、表示部100Eと、を備える。
【0031】
CPU100Aは、制御装置と演算装置(いずれも図示せず)を有する。制御装置は、プログラムの指令を解釈し、コンピュータ100の各部を制御する。演算装置は、演算処理を行う装置である。
【0032】
メモリ100Bは、プログラムあるいはデータを一時的に格納する半導体記憶装置である。メモリ100Bに記憶された情報は、コンピュータ100の電源がオフとされると消去される。
【0033】
補助記憶装置100Cは、HDD(Hard Disk Drive)あるいはSSD(Solid State Drive)などにより構成され、プログラムあるいはデータが格納される。補助記憶装置100Cに格納されたプログラムは、メモリ100Bに読み込まれる。CPU100Aは、メモリ100Bに読み込まれたプログラムを実行する。
【0034】
操作入力部100Dは、キーボードあるいはマウスなどにより構成され、コンピュータ100に操作入力を与える装置である。操作入力部100Dから入力された情報は、メモリ100Bに送られる。
【0035】
表示部100Eは、例えば液晶ディスプレイなどにより構成され、メモリ100Bから取得された情報を画像に変換して出力する。
【0036】
図4は、コンピュータ100によって実現される異常度生成装置1の構成を示す図である。
【0037】
異常度生成装置1は、データ記憶部2と、乱数行列生成部3と、異常度算出部4と、初期値決定部5と、を備える。コンピュータ100の補助記憶装置100Cに格納されたプログラムP(図3)は、コンピュータ100を異常度生成装置1として機能させるためのプログラムである。
【0038】
データ記憶部2は、正常データ21および異常データ22を記憶し、補助記憶装置100C(図3)により構成される。乱数行列生成部3は、AIパラメータである上記重みαの初期値としての乱数行列を生成する。なお、乱数行列生成部3は、重みαに加えてバイアスbの初期値としての乱数行列を生成してもよい。
【0039】
異常度算出部4は、乱数行列生成部3によって生成された乱数行列、および正常データ21または異常データ22に基づいて異常度TAE を算出する。具体的には、乱数行列生成部3によって生成された乱数行列としての重みαと、正常データ21または異常データ22による入力データxに基づいて隠れ層ベクトルhを算出する。そして、算出された隠れ層ベクトルhと、上記の算出式に基づいて異常度TAE を算出する。異常度TAE の算出には逆行列の演算が必要であるが、ソフトウェアによって演算するため、演算が容易となる。
【0040】
初期値決定部5は、異常度算出部4によって算出された異常度TAE に基づいて乱数行列の良し悪しを判断し、乱数行列(初期値)を決定する。ここで、図5は、初期値決定部5による初期値決定処理に関するフローチャートである。ステップS1で、乱数行列生成部3によって乱数行列が生成される。ステップS2に進み、異常度算出部4によって異常度TAE が算出される。異常度TAE は、正常データ21と異常データ22のそれぞれに対して算出される。
【0041】
ステップS3に進み、初期値決定部5は、乱数発生が所定回数に達したかを判定する。もし達していない場合は(ステップS3のN)、ステップS1に戻り、再度、乱数行列が生成される。ステップS3で、所定回数に達している場合は(ステップS3のY)、ステップS4に進み、所定回数分生成された異常度TAE のうち、最も適切な異常度TAE となる乱数行列を初期値として決定する。具体的には、正常データ21に対して算出された異常度TAE と異常データ22に対して算出された異常度TAE の乖離量が最も大きければ、乱数行列は最も適切であると判断する。例えば、正常データ21に対して算出された異常度TAE と異常データ22に対して算出された異常度TAE のそれぞれの平均値の乖離量が大きければ、乱数行列は適切であると判断する。ステップS4の後、処理終了となる。
【0042】
このように異常度生成装置1によれば、異常度TAE に基づいて適切な初期値を自動的に決定できる。なお、このような実施形態に限らず、初期値決定部5は設けず、異常度算出部4によって算出された異常度TAE をグラフ表示などにより表示部100E(図3)に表示させ、ユーザが確認することで乱数行列が適切でないと判断した場合は、ユーザが操作入力部100Dによる指令によって乱数行列生成部3に乱数を新たに生成させてもよい。このようにすれば、ユーザが異常度TAE を確認しながら適切な初期値を決定できる。また、ユーザは、操作入力部100Dによる指令によって活性化関数の設定を変更して異常度TAE を異常度算出部4に算出させてもよい。これにより、適切な活性化関数の設定が可能となる。
【0043】
<データ例>
図6は、上方に正常データと異常データの時系列データの一例を示す図である。前半が正常データであり、後半が異常データである。図6の下方には、正常データの拡大図(左方)と異常データの拡大図(右方)を示す。正常データは、Sin波に近い信号波形において周期ごとに振幅が変化する。異常データは、正常データと同様の信号波形において、振幅に対して同じ比率でノイズNが生じるデータである。
【0044】
図7は、上段に図6と同様の正常データと異常データを示す。中段には或る乱数行列(初期値)での算出される損失関数による異常度を示し、下段には同じ乱数行列での算出される異常度TAE を示す。正常データの途中まで学習を行い、そこから推論を行っている。
【0045】
図7の場合は、損失関数による異常度と異常度TAE ともに、異常データに対して反応している。ただし、損失関数による異常度は、データの特徴/異常モードをとらえているのではなく、最終的な出力層での推論結果と入力データの乖離をみている。すなわち、振幅が小さいと相対的に異常の特徴による乖離も小さくなり、異常度が小さくなる。逆に振幅が大きいと同じ程度の特徴であっても異常度が大きくなる。これに対し、異常度TAE は、特徴/異常モードに対しての値を出すので、特徴が検知されれば、一気に値が跳ね上がっている。
【0046】
図8は、上段に図7と同様の時系列データを示し、中段及び後段にはそれぞれ図7とは別の乱数行列によって算出された損失関数による異常度と異常度TAE を示す。図8では、損失関数による異常度が正常データに対して大きな値となっており、学習が適切に行われていない。また、異常度TAE は正常データと異常データとにわたってフラットであり、乱数行列が適切でないことがわかる。
【0047】
<機械学習装置>
図9は、本開示の例示的な実施形態に係る機械学習装置6の構成を示す図である。機械学習装置6は、MCU(マイコン)により構成される。先述したように異常度TAE の算出には逆行列の演算が必要なため、ソフトウェアによってコンピュータ100(異常度生成装置1)によって適切な乱数行列(初期値)を決定し、決定された乱数行列がMCUによる機械学習装置6に設定される。
【0048】
機械学習装置6は、例えば機械システム(モータ装置など)の異常をリアルタイムに検知可能である。機械学習装置6は、データ記憶部7と、モデル保持部8と、演算部9と、異常検出部10と、を備える。なお、機械学習装置6は、異常度生成装置と捉えることもできる。
【0049】
データ記憶部7は、入力データ71および初期値データ72を記憶している。入力データ71については、例えば機械システムなどから出力される時系列データが入力データ71として機械学習装置6に入力される。上記時系列データには、必要に応じて正規化処理またはFFTなどの前処理を行ってもよい。初期値データ72には、先述したようにコンピュータ100(異常度生成装置1)において決定された初期値が設定される。
【0050】
モデル保持部8は、機械学習モデル80を保持する。機械学習モデル80は、3層ニューラルネットワーク50(図1)として構成される。
【0051】
演算部9は、学習演算部91と、推論演算部92と、異常度算出部93と、を有する。学習演算部91は、機械学習モデル80と、入力データ71および初期値データ72を用いて学習(教師なし学習)を行う。推論演算部92は、機械学習モデル80と、入力データ71および初期値データ72を用いて推論を行う。推論は、学習時と学習完了後に行うことができる。
【0052】
異常度算出部93は、入力データ71と推論結果に基づいて損失関数による異常度AS1を算出する。異常検出部10は、異常度AS1を閾値と比較することで異常の有無を判断する。適切な初期値データ72が設定されるため、異常度AS1を適切な値に算出することができる。
【0053】
図10は、図9に示す構成の変形例に係る機械学習装置60の構成を示す図である。図10に示す構成では、演算部9において、異常度算出部94が追加されている。異常度算出部94は、機械学習モデル80と、入力データ71および初期値データ72を用いて異常度TAE である異常度AS2を算出する。異常検出部10は、異常度AS2を閾値と比較することで異常を検知できる。これにより、異常度AS1では検知しにくい特徴/異常モードを検知できる。なお、異常度AS2(TAE )は、正負の値をとりうる指標であり、異常モードが異なると、異なる値をとる場合がある。そこで、異常検出部10で設定される閾値を異なる異常モードごとに異なる値に設定してもよい。
【0054】
図11は、図10に示す構成の変形例に係る機械学習装置600の構成を示す図である。図11に示す機械学習装置600は、図10に示す構成に加えて、先述した図4に示す異常度生成装置1の構成を組み込んでいる。すなわち、異常度生成装置1による初期値決定の機能をMCUに内蔵させている。具体的には、機械学習装置600は、初期値決定部5と、乱数行列生成部3を備える。
【0055】
データ記憶部7には、正常データ73と異常データ74が記憶されている。これにより、異常度算出部94は、乱数行列生成部3で生成された乱数行列と、機械学習モデル80と、正常データ73および異常データ74に基づいて異常度AS2を算出する。初期値決定部5は、算出された異常度AS2に基づいて乱数行列の良し悪しを判断する。初期値決定部5によって決定された初期値は、初期値データ72として設定される。
【0056】
このような構成により、1つのMCUによって初期値の決定と、学習/推論と、異常度AS1,AS2の算出による異常検知が可能となる。
【0057】
<AIモデルの変形例>
図12は、変形例に係るAIモデルの構成を示す図である。図12に示すAIモデルは、4層ニューラルネットワーク500である。4層ニューラルネットワーク500は、先述した3層ニューラルネットワーク50の構成に加えて、隠れ層50Dを有する。すなわち、隠れ層として50Bと50Dの複数の隠れ層を有する。
【0058】
隠れ層50Bにおいてはバイアスb1と活性化関数G1が定義され、隠れ層50Dにおいてはバイアスb2と活性化関数G2が定義される。また、隠れ層50Bと50Dの間を結合する重みγが定義される。
【0059】
これにより、隠れ層50Bにおける隠れ層ベクトルはH1=G1(x・α+b1)に含まれ、隠れ層50Dにおける隠れ層ベクトルはH2=G2(H1・γ+b2)に含まれる。すなわち、複数の隠れ層50B,50Dのそれぞれについて隠れ層ベクトルが算出される。これにより、それぞれの隠れ層ベクトルに基づいてそれぞれの異常度TAE が算出可能である。隠れ層50B,50Dのそれぞれの異常度TAE によって、異なる異常モードを検知できる場合がある。
【0060】
<その他>
なお、本明細書中に開示されている種々の技術的特徴は、上記実施形態のほか、その技術的創作の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態に限定されるものではなく、特許請求の範囲と均等の意味および範囲内に属する全ての変更が含まれると理解されるべきである。
【0061】
例えば、本開示に係る異常検知技術は、機械システムの状態保全などに限らず、製品の品質解析などに適用してもよい。
【0062】
<付記>
以上のように、本開示の一態様に係る異常度生成装置(1)は、
入力層(50A)と出力層(50C)との間に配置される少なくとも1つの中間層(50B)を含む機械学習モデル(50)における前記中間層の中間層ベクトルを
【数16】

とし、
中間層平均ベクトルを
【数17】

【数18】

として、
前記中間層平均ベクトルに対する前記中間層ベクトルの正規化距離を表す第1異常度を算出するように構成される第1異常度算出部(4)を備える構成としている(第1の構成、図4)。
【0063】
また、上記第1の構成において、前記正規化距離は、
【数19】

で表される共分散行列を用いて正規化された距離である構成としてもよい(第2の構成)。
【0064】
また、上記第2の構成において、前記第1異常度算出部は、下記式で表される前記第1異常度を算出する構成としてもよい(第3の構成)。
【数20】
【0065】
また、上記第1から第3のいずれかの構成において、前記中間層ベクトルを算出するためのパラメータに関する乱数行列を生成するように構成される乱数行列生成部(3)と、
生成された前記乱数行列と、正常データ(21)および異常データ(22)に基づいて前記第1異常度算出部によって算出される前記第1異常度に基づき前記乱数行列を評価し、前記乱数行列を初期値として決定するように構成される初期値決定部(5)と、を備える構成としてもよい(第4の構成)。
【0066】
また、上記第4の構成において、前記初期値決定部は、前記乱数行列生成部による所定回数の前記乱数行列の生成によって生成された前記乱数行列のうち、最も適切と評価した前記乱数行列を前記初期値として決定する構成としてもよい(第5の構成)。
【0067】
また、上記第1から第5のいずれかの構成において、前記第1異常度算出部は、複数の前記中間層(50B,50D)のそれぞれについて前記第1異常度を算出する構成としてもよい(第6の構成、図12)。
【0068】
また、上記第1から第6のいずれかの構成の異常度生成装置は、コンピュータ(100)におけるソフトウェア処理によって実現されることとしてもよい(第7の構成)。
【0069】
また、本開示の一態様に係るプログラム(P)は、前記コンピュータを上記第7の構成の異常度生成装置として機能させるためのプログラムである(第8の構成)。
【0070】
また、上記第1から第7のいずれかの構成とした異常度生成装置(60)は、前記機械学習モデル(80)を保持するように構成されるモデル保持部(8)と、
入力データ(71)を記憶するように構成されるデータ記憶部(7)と、
前記機械学習モデルと前記入力データに基づいて教師なし学習を実行するように構成される学習演算部(91)と、
前記機械学習モデルと前記入力データに基づいて推論を実行するように構成される推論演算部(92)と、
前記推論演算部による推論結果と前記入力データに基づいて損失関数による第2異常度(AS1)を算出するように構成される第2異常度算出部(93)と、
前記第1異常度と第1閾値との比較、および前記第2異常度と第2閾値との比較に基づいて異常を検知するように構成される異常検出部(10)と、を備える構成としている(第9の構成、図10)。
【0071】
また、本開示の一態様は、コンピュータを用いて実行される異常度生成方法であって、
入力層と出力層との間に配置される少なくとも1つの中間層を含む機械学習モデルにおける前記中間層の中間層ベクトルを
【数21】

として算出する第1ステップと、
中間層平均ベクトルを
【数22】

【数23】

として算出する第2ステップと、
前記中間層平均ベクトルに対する前記中間層ベクトルの正規化距離を表す異常度を算出する第3ステップと、を備える(第10の構成)。
【産業上の利用可能性】
【0072】
本開示は、例えば、各種用途の異常検知に利用することができる。
【符号の説明】
【0073】
1 異常度生成装置
2 データ記憶部
3 乱数行列生成部
4 異常度算出部
5 初期値決定部
6 機械学習装置
7 データ記憶部
8 モデル保持部
9 演算部
10 異常検出部
21 正常データ
22 異常データ
50 3層ニューラルネットワーク
50A 入力層
50B 隠れ層
50C 出力層
50D 隠れ層
60 機械学習装置
71 入力データ
72 初期値データ
73 正常データ
74 異常データ
80 機械学習モデル
91 学習演算部
92 推論演算部
93 異常度算出部
94 異常度算出部
100 コンピュータ
100A CPU
100B メモリ
100C 補助記憶装置
100D 操作入力部
100E 表示部
500 4層ニューラルネットワーク
600 機械学習装置
P プログラム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12