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

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

▶ 株式会社Preferred Networksの特許一覧

<>
  • 特開-データ処理装置およびプログラム 図1
  • 特開-データ処理装置およびプログラム 図2
  • 特開-データ処理装置およびプログラム 図3A
  • 特開-データ処理装置およびプログラム 図3B
  • 特開-データ処理装置およびプログラム 図4
  • 特開-データ処理装置およびプログラム 図5
  • 特開-データ処理装置およびプログラム 図6
  • 特開-データ処理装置およびプログラム 図7
  • 特開-データ処理装置およびプログラム 図8
  • 特開-データ処理装置およびプログラム 図9
  • 特開-データ処理装置およびプログラム 図10
  • 特開-データ処理装置およびプログラム 図11
  • 特開-データ処理装置およびプログラム 図12
  • 特開-データ処理装置およびプログラム 図13
  • 特開-データ処理装置およびプログラム 図14
  • 特開-データ処理装置およびプログラム 図15
  • 特開-データ処理装置およびプログラム 図16
  • 特開-データ処理装置およびプログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024153954
(43)【公開日】2024-10-30
(54)【発明の名称】データ処理装置およびプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241023BHJP
   G05B 19/18 20060101ALI20241023BHJP
【FI】
G06N20/00 130
G05B19/18 W
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021113695
(22)【出願日】2021-07-08
(71)【出願人】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】伊藤 克哉
(72)【発明者】
【氏名】佐藤 元紀
【テーマコード(参考)】
3C269
【Fターム(参考)】
3C269AB01
3C269BB12
3C269MN44
3C269QE37
(57)【要約】
【課題】異常原因の推論精度を向上させるための技術を提供する。
【解決手段】データ処理装置は、少なくとも1つのメモリと、少なくとも1つのプロセッサと、を有し、異常発生時の装置において測定されたデータに対して前記少なくとも1つのプロセッサは、当該異常の原因が特定の原因であることを示す肯定ラベルを付与することも、当該異常の原因が前記特定の原因でないことを示す否定ラベルを付与することも、実行可能に構成される。
【選択図】図1
【特許請求の範囲】
【請求項1】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を有し、
異常発生時の装置において測定されたデータに対して前記少なくとも1つのプロセッサは、当該異常の原因が特定の原因であることを示す肯定ラベルを付与することも、当該異常の原因が前記特定の原因でないことを示す否定ラベルを付与することも、実行可能に構成される、
データ処理装置。
【請求項2】
前記肯定ラベル又は前記否定ラベルを含むラベルの付与が行われたデータは、訓練用データセットとして訓練モデルを訓練するために用いられる、請求項1に記載のデータ処理装置。
【請求項3】
前記少なくとも1つのプロセッサは、更に、
生成された訓練用データセットにおいて、否定ラベルを肯定ラベルに変更し、変更した肯定ラベルが付与されたデータを含む訓練用データセットを用いて、訓練モデルを訓練すること、
を実行可能に構成される、請求項2に記載のデータ処理装置。
【請求項4】
前記少なくとも1つのプロセッサは、更に、
生成された訓練用データセットを、肯定ラベルが付与されたデータにより構成される肯定訓練用データセットと、否定ラベルが付与されたデータにより構成される否定訓練用データセットとに分類することと、
前記肯定訓練用データセットに含まれるデータを入力することで、肯定ラベルが出力されるように訓練モデルを訓練し、前記否定訓練用データセットに含まれるデータを入力することで、否定ラベルが出力されるように訓練モデルを訓練することと、
を実行可能に構成される、請求項2又は3に記載のデータ処理装置。
【請求項5】
前記肯定訓練用データセットに含まれるデータを入力することで算出される潜在変数から、入力したデータが復元され、かつ、肯定ラベルが出力されるように、訓練モデルを訓練し、前記否定訓練用データセットに含まれるデータを入力することで算出される潜在変数から、入力したデータが復元され、かつ、否定ラベルが出力されるように、訓練モデルを訓練する、請求項4に記載のデータ処理装置。
【請求項6】
前記少なくとも1つのプロセッサは、更に、
生成された訓練用データセットにおいて、異常の原因が同じ肯定ラベルがそれぞれ付与されたデータのペアにより構成される第1の部分訓練用データセットと、異常の原因が異なる肯定ラベルがそれぞれ付与されたデータのペア、または、異常の原因が異なる肯定ラベル及び否定ラベルがそれぞれ付与されたデータのペアにより構成される第2の部分訓練用データセットとを生成することと、
前記第1の部分訓練用データセットに含まれるデータを入力した場合に、入力したデータが復元され、かつ、算出される潜在変数の類似度が高くなるように訓練モデルを訓練し、前記第2の部分訓練用データセットに含まれるデータを入力した場合に、入力されたデータが復元され、かつ、算出される潜在変数の類似度が低くなるように訓練モデルを訓練することと、
を実行可能に構成される、請求項2に記載のデータ処理装置。
【請求項7】
前記少なくとも1つのプロセッサは、異常の原因が前記特定の原因でないことを示す否定ラベルを、異常の原因が前記特定の原因であることを示す前記肯定ラベルに基づいて、自動的に生成する、請求項1に記載のデータ処理装置。
【請求項8】
少なくとも1つのプロセッサに、
異常発生時の装置において測定されたデータに対して、当該異常の原因が特定の原因であることを示す肯定ラベルを付与することも、当該異常の原因が前記特定の原因でないことを示す否定ラベルを付与することも、実行可能にさせるための、プログラム。
【請求項9】
前記肯定ラベル又は前記否定ラベルを含むラベルの付与が行われたデータは、訓練用データセットとして訓練モデルを訓練するために用いられる、請求項8に記載のプログラム。
【請求項10】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を有し、
前記少なくとも1つのプロセッサは、
異常発生時に監視対象の装置において測定されたデータであって、異常の原因が特定されたデータには、異常の原因を示す肯定ラベルが付与され、異常の原因が特定の原因でないことが特定されたデータには、異常の原因が前記特定の原因でないことを示す否定ラベルが付与された訓練用データセットを用いて訓練された訓練済みモデルに、推論対象のデータを入力し、
前記訓練済みモデルから出力されるデータに基づいて前記推論対象のデータの異常の原因が推論される、
データ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理装置およびプログラムに関する。
【背景技術】
【0002】
監視対象の装置(例えば、工作機械等)から取得した時系列のセンサデータを入力データとし、該装置において発生した異常の原因を示すラベルを正解データとして訓練モデルを訓練し、異常の原因を推論する推論技術が知られている。当該推論技術によれば、あらゆる異常の原因について訓練モデルを訓練することで、高い推論精度を実現することができる。
【0003】
一方で、監視対象の装置によっては、異常の原因が一意に特定できない場合や、訓練時に発生しなかった異常が発生する場合もあり、このような場合には、十分な推論精度を得ることが難しい。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-141395号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、異常原因の推論精度を向上させるための技術を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様によるデータ処理装置は、例えば、以下のような構成を有する。即ち、
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を有し、
異常発生時の装置において測定されたデータに対して前記少なくとも1つのプロセッサは、当該異常の原因が特定の原因であることを示す肯定ラベルを付与することも、当該異常の原因が前記特定の原因でないことを示す否定ラベルを付与することも、実行可能に構成される。
【図面の簡単な説明】
【0007】
図1】異常原因推論システムのシステム構成の一例を示す図である。
図2】訓練装置または推論装置のハードウェア構成の一例を示す図である。
図3A】ラベル付与部の処理の具体例を示す図である。
図3B】ラベル付与部のユーザインタフェースの一例を示す図である。
図4】訓練部の処理の具体例を示す第1の図である。
図5】推論部の処理の具体例を示す第1の図である。
図6】異常原因推論処理の流れを示す第1のフローチャートである。
図7】訓練部の処理の具体例を示す第2の図である。
図8】訓練部の処理の具体例を示す第3の図である。
図9】推論部の処理の具体例を示す第2の図である。
図10】異常原因推論処理の流れを示す第2のフローチャートである。
図11】訓練部の処理の具体例を示す第4の図である。
図12】部分訓練用データセットの一例を示す第1の図である。
図13】訓練部の処理の具体例を示す第5の図である。
図14】部分訓練用データセットの一例を示す第2の図である。
図15】比較/更新部において用いられる関数の一例を示す図である。
図16】推論部の処理の具体例を示す第3の図である。
図17】異常原因推論処理の流れを示す第3のフローチャートである。
【発明を実施するための形態】
【0008】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0009】
[第1の実施形態]
<異常原因推論システムのシステム構成>
はじめに、第1の実施形態に係る訓練装置または推論装置を備える異常原因推論システムのシステム構成について説明する。図1は、異常原因推論システムのシステム構成の一例を示す図である。
【0010】
このうち、図1(a)は、訓練フェーズにおける異常原因推論システム100Aのシステム構成の一例である。図1(a)に示すように、訓練フェーズにおける異常原因推論システム100Aには、工作機械110と、訓練装置120とが含まれる。訓練装置120はデータ処理装置でもある。
【0011】
工作機械110は、監視対象の装置であり、稼働中、各部の状態を示す時系列のセンサデータを測定して、訓練装置120に送信する。
【0012】
訓練装置120には、訓練プログラムがインストールされており、訓練フェーズにおいては、当該プログラムが実行されることで、訓練装置120は、ラベル付与部121、訓練部122として機能する。
【0013】
ラベル付与部121は付与部の一例であり、不図示のユーザからの指示に基づいて、時系列データ格納部123から、異常発生時に測定された所定の時間範囲の時系列のセンサデータを順次読み出し、異常原因を示すラベルを付与する。なお、時系列データ格納部123には、工作機械110から送信された、工作機械110の各部の状態を示す時系列のセンサデータが、予め格納されているものとする。
【0014】
また、ラベル付与部121は、ラベルを付与した時系列のセンサデータを、訓練用データセットとして、訓練用データ格納部124に格納する。
【0015】
訓練部122は、訓練用データ格納部124から、訓練用データセットを読み出し、読み出した訓練用データセットを用いて、訓練モデルを訓練する。なお、訓練部122により訓練された訓練済みのモデルは、推論装置130に通知される。
【0016】
一方、図1(b)は、推論フェーズにおける異常原因推論システム100Bのシステム構成の一例である。図1(b)に示すように、推論フェーズにおける異常原因推論システム100Bには、工作機械110と、推論装置130とが含まれる。推論装置130はデータ処理装置でもある。
【0017】
このうち、工作機械110は、図1(a)と同じであるため、説明を割愛する。推論装置130には、推論プログラムがインストールされており、推論フェーズにおいては、当該プログラムが実行されることで、推論装置130は、推論部131として機能する。
【0018】
推論部131には、訓練フェーズにおいて訓練部122により訓練された訓練済みモデルが適用される。また、推論部131は、時系列データ格納部132から、時系列データを読み出し、読み出した時系列データを訓練済みモデルに入力することで訓練済みモデルを実行させて、異常原因推論結果を出力する。なお、モデルに入力される時系列データは、当該時系列データに対して高速フーリエ変換(FFT)を行って得られるデータや、当該時系列データに対して他の前処理を行って得られるデータでもよい。
【0019】
<訓練装置または推論装置のハードウェア構成>
次に、訓練装置120または推論装置130のハードウェア構成について説明する。図2は、訓練装置または推論装置のハードウェア構成の一例を示す図である。図2に示すように、訓練装置120または推論装置130は、構成要素として、プロセッサ201、主記憶装置(メモリ)202、補助記憶装置203、ネットワークインタフェース204、デバイスインタフェース205を有する。訓練装置120または推論装置130は、これらの構成要素がバス206を介して接続されたコンピュータとして実現される。
【0020】
なお、図2の例では、訓練装置120または推論装置130が、各構成要素を1個ずつ備えるものとして示しているが、訓練装置120または推論装置130は、同じ構成要素を複数備えていてもよい。また、図2の例では、1台の訓練装置120または推論装置130が示されているが、訓練プログラムまたは推論プログラムが複数台の訓練装置または推論装置にインストールされて、当該複数台の訓練装置または推論装置それぞれが訓練プログラムまたは推論プログラムの同一のまたは異なる一部の処理を実行するように構成してもよい。この場合、訓練装置または推論装置それぞれがネットワークインタフェース204等を介して通信することで全体の処理を実行する分散コンピューティングの形態をとってもよい。つまり、訓練装置120または推論装置130は、1または複数の記憶装置に記憶された命令を1台または複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、工作機械110から送信された各種データをクラウド上に設けられた1台または複数台の訓練装置または推論装置で処理し、処理結果を顧客に送信する構成であってもよい。
【0021】
訓練装置120または推論装置130の各種演算は、1または複数のプロセッサを用いて、または、通信ネットワーク210を介して通信する複数台の訓練装置または推論装置を用いて並列処理で実行されてもよい。また、各種演算は、プロセッサ201内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部または全部は、通信ネットワーク210を介して訓練装置120または推論装置130と通信可能なクラウド上に設けられた外部装置220(プロセッサ及び記憶装置の少なくとも一方)により実行されてもよい。このように、訓練装置120または推論装置130は、1台または複数台のコンピュータによる並列コンピューティングの形態をとってもよい。
【0022】
プロセッサ201は、電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA、又はASIC等)であってもよい。また、プロセッサ201は、専用の処理回路を含む半導体装置等であってもよい。なお、プロセッサ201は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ201は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0023】
プロセッサ201は、訓練装置120または推論装置130の内部構成の各装置等から入力された各種データや命令に基づいて各種演算を行い、演算結果や制御信号を各装置等に出力する。プロセッサ201は、OS(Operating System)や、アプリケーション等を実行することにより、訓練装置120または推論装置130が備える各構成要素を制御する。
【0024】
また、プロセッサ201は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいはデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0025】
主記憶装置202は、プロセッサ201が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置202に記憶された各種データがプロセッサ201により読み出される。補助記憶装置203は、主記憶装置202以外の記憶装置である。なお、これらの記憶装置は、各種データを格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。訓練装置120または推論装置130において各種データを保存するための記憶装置は、主記憶装置202又は補助記憶装置203により実現されてもよく、プロセッサ201に内蔵される内蔵メモリにより実現されてもよい。
【0026】
また、1つの主記憶装置202に対して、複数のプロセッサ201が接続(結合)されてもよいし、単数のプロセッサ201が接続されてもよい。あるいは、1つのプロセッサ201に対して、複数の主記憶装置202が接続(結合)されてもよい。訓練装置120または推論装置130が、少なくとも1つの主記憶装置202と、この少なくとも1つの主記憶装置202に接続(結合)される複数のプロセッサ201とで構成される場合、複数のプロセッサ201のうち少なくとも1つのプロセッサが、少なくとも1つの主記憶装置202に接続(結合)される構成を含んでもよい。また、複数台の訓練装置120または推論装置130に含まれる主記憶装置202とプロセッサ201とによって、この構成が実現されてもよい。さらに、主記憶装置202がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0027】
ネットワークインタフェース204は、無線又は有線により、通信ネットワーク210に接続するためのインタフェースである。ネットワークインタフェース204には、既存の通信規格に適合したもの等、適切なインタフェースが用いられる。ネットワークインタフェース204により、通信ネットワーク210を介して接続された工作機械110やその他の外部装置220と各種データのやり取りが行われてもよい。なお、通信ネットワーク210は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等のいずれか、又は、それらの組み合わせであってもよく、コンピュータと工作機械110やその他の外部装置220との間で情報のやり取りが行われるものであればよい。WANの一例としてインタネット等があり、LANの一例としてIEEE802.11やイーサネット等があり、PANの一例としてBluetooth(登録商標が)やNFC(Near Field Communication)等がある。
【0028】
デバイスインタフェース205は、外部装置230と直接接続するUSB等のインタフェースである。
【0029】
外部装置230はコンピュータと接続されている装置である。外部装置230は、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、又はタッチパネル等のデバイスであり、取得した情報をコンピュータに与える。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の入力部とメモリとプロセッサとを備えるデバイス等であってもよい。
【0030】
また、外部装置230は、一例として、出力装置であってもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の出力部とメモリとプロセッサとを備えるデバイス等であってもよい。
【0031】
また、外部装置230は、記憶装置(メモリ)であってもよい。例えば、外部装置230はネットワークストレージ等であってもよく、外部装置230はHDD等のストレージであってもよい。
【0032】
また、外部装置230は、訓練装置120または推論装置130の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータは、外部装置230の処理結果の一部又は全部を送信または受信してもよい。
【0033】
<ラベル付与部の処理の具体例>
次に、ラベル付与部121の処理の具体例を示す図である。図3Aは、ラベル付与部の処理の具体例を示す図である。図3Aに示すように、ラベル付与部121は、不図示のユーザからの指示に基づいて、時系列データ格納部123から、所定の時間範囲の時系列のセンサデータを順次読み出す。
【0034】
図3Aにおいて時系列データ300は、ラベル付与部121が時系列データ格納部123から読み出す時系列データの一例である。図3Aに示すように、時系列データ300には、情報の項目として、少なくとも"識別子"、"データ"、"ラベル"が含まれる。
【0035】
"識別子"には、異常発生時に測定された所定の時間範囲の時系列のセンサデータを識別する識別子が格納される。"データ"には、異常発生時に測定された所定の時間範囲の時系列のセンサデータが読み出され、格納される。図3Aの例は、所定の時間範囲の時系列のセンサデータとして、「波形データ1a」、「波形データ2a」、「波形データ3a」、・・・「波形データna」が読み出され、格納された様子を示している。
【0036】
"ラベル"には、ラベル付与部121において付与されるラベルが格納される。時系列データ300は、ラベル付与部121によってラベルが付与される前の時系列データであるため、"ラベル"の項目は空欄となっている。
【0037】
ラベル付与部121は、時系列データ300の"データ"に格納されている時系列のセンサデータに、異常原因を示すラベルを付与する。なお、本実施形態では、説明の簡略化のため、工作機械110において発生する異常のうち、原因が特定されている異常は3種類であるとし、それぞれ、「異常X」、「異常Y」、「異常Z」と称す。
【0038】
このため、ラベル付与部121では、異常原因が特定されている場合には、ラベルとして、
・「異常Xである」、
・「異常Yである」、
・「異常Zである」、
等の異常の原因が特定の異常原因であることを示す肯定ラベルが付与可能である。また、本実施形態に係る訓練装置120の場合、ラベル付与部121は、異常原因が特定されていない場合には、肯定ラベルに加えて、
・「異常Xではない」、
・「異常Yではない」、
・「異常Zではない」、
等の否定ラベル(既に特定されている特定の異常原因でないことを示すラベル)も付与可能であるとする。
【0039】
否定ラベルは、この他、「異常Xでも異常Yでもない」というような、既に特定されている複数の特定の異常原因のいずれでもないことを示すラベルを含んでもよい。すなわち、否定ラベルは、1つの特定の異常原因でないこと示すラベルであっても、2以上の特定の異常原因のいずれでもないことを示すラベルであってもよい。なお、例えば「異常Xでも異常Yでもない」ことを示すラベルは、「異常Xでない」ことも示すので、特定の異常Xでないことを示すラベルに概念的に含まれ、同様に、特定の異常Yでないことを示すラベルに概念的に含まれる。このように、2以上の特定の異常原因のいずれでもないことを示すラベルは、その2以上の特定の異常原因のうちの1つの特定の異常原因でないことも示すため、1つの特定の異常原因でないことを示すラベルでもある。
【0040】
ラベル付与部121は、各肯定ラベルの論理否定をとることで、これら否定ラベルを肯定ラベルから自動的に生成してもよいし、複数の否定ラベルを組み合わせて複数の異常原因のいずれでもないことを示す否定ラベルを自動的に生成してもよい。ラベル付与部121は、自動的に生成された否定ラベルを、後述のラベル選択エリアに表示してもよい。
【0041】
図3Aの訓練用データセット310は、「波形データ1a」にラベル=「異常Xである」が付与され、「波形データ2a」にラベル=「異常Yである」が付与され、「波形データ3a」にラベル=「異常Xではない」が付与された様子を示している。また、図3Aの訓練用データセット310は、「波形データna」にラベル=「異常Yではない」が付与された様子を示している。
【0042】
続いて、ラベル付与部121がラベルを付与する際に、ユーザに提供する表示画面について説明する。図3Bは、ラベル付与部121のユーザインタフェースの一例を示す図である。この図3Bは、「センサデータ1」という名前の時系列のセンサデータに対してラベルを付与する様子を示す。
【0043】
図3Bに示すように、表示画面320は、複数のラベルを表示し、ユーザからのラベル選択を受け付けるラベル選択エリアを含む。本実施形態のラベル選択エリアは、肯定ラベルを表示するエリア321-1と、否定ラベルを表示するエリア321-2とを含む。表示画面320は、ラベル付与対象であるセンサデータが取得された機器名や期間(開始時刻、終了時刻)を含んでもよい。ユーザは、表示画面320を介して時系列のセンサデータから異常発生時に測定された所定の時間範囲の時系列のセンサデータを読み出し、対応する異常原因を入力する。これにより、ラベル付与部121は、入力された異常原因を示すラベルを、異常発生時に測定された所定の時間範囲の時系列のセンサデータに付与する。
【0044】
ラベル選択エリアは、工作機械110内の異常が発生した箇所や異常の症状(つまり、異常原因に対応するラベル)を指定するためのチェックボックスを含む。上述したように、本実施形態において異常原因は3種類であり、付与可能なラベルは6種類であることから、「異常Xである」、「異常Yである」、「異常Zである」、「異常Xではない」、「異常Yではない」、「異常Zではない」の6つのラベルが表示される。各否定ラベルは、ラベル付与部121が各肯定ラベルの論理否定をとることで自動的に生成したものでもよい。訓練部はこれらラベルを「X」、「Y」、「Z」、「NOTX」、「NOTY」、「NOTZ」として扱う。ユーザは、センサデータに付与したいラベル(異常原因)を、これら複数のラベルの中から選択し、設定ボタンを押す。これにより、ラベル付与部121では、選択されたいずれかのラベルを付与することができる。図3Bでは、ラベル「異常Zではない」が選択されているため、そのチェックボックスがオンとなっている。
【0045】
なお、本実施形態のラベル選択は、複数のラベル選択を許容する。すなわち、ラベル「異常Xである」とラベル「異常Yである」の選択によって、ラベル付与部121は、センサデータにラベル「異常」Xか異常Yである」という意味のラベルを付与してもよい。また同様に、ラベル「異常Yではない」とラベル「異常Zではない」の選択によって、ラベル付与部121は、センサデータにラベル「異常Yでも異常Zでもない」という意味のラベルを付与してもよい。また、本実施形態のラベル選択は、上述の肯定ラベルおよび否定ラベルの他、異常の原因が不明であることを示す不明ラベルをセンサデータに対して付与してもよい。不明ラベルが付与されたセンサデータは、後述の訓練モデル422の訓練に用いなくてもよいし、後述のように不明ラベルを肯定ラベルに置き換える等して訓練に用いてもよい。
【0046】
<訓練部の処理の具体例>
次に、訓練部122の処理の具体例について説明する。図4は、訓練部の処理の具体例を示す第1の図である。図4に示すように、訓練部122は、肯定ラベル生成部421、訓練モデル422、比較/更新部423を有する。
【0047】
肯定ラベル生成部421は、訓練用データ格納部124から、訓練用データセット310を読み出し、訓練用データセット310に基づいて、拡張訓練用データセット410を生成する。
【0048】
具体的には、肯定ラベル生成部421は、訓練用データセット310に含まれる"ラベル"のうち、否定ラベルを抽出し、肯定ラベルに変更する。すなわち、肯定ラベル生成部421は、否定ラベルが付与されていた訓練用データに、否定ラベルに代えて、対応する1以上の肯定ラベルを付与しなおす。例えば、否定ラベルとして、「波形データ3a」に付与された「異常Xではない」を抽出した場合、肯定ラベル生成部421では、肯定ラベルとして、「異常Yである」と、「異常Zである」とを生成し、「波形データ3a」に付与する。また、否定ラベルとして、「波形データna」に付与された「異常Yではない」を抽出した場合、肯定ラベル生成部421では、肯定ラベルとして、「異常Xである」と、「異常Zである」とを生成し、「波形データna」に付与する。また、肯定ラベル生成部421は、訓練用データセット310に含まれる"ラベル"のうち、不明ラベルを抽出し、肯定ラベルに変更してもよい。すなわち、肯定ラベル生成部421は、不明ラベルが付与されていた訓練用データに、不明ラベルに代えて、各肯定ラベルを付与しなおしてもよい。例えば、肯定ラベル生成部421は、肯定ラベルとして、「異常Xである」と、「異常Yである」と、「異常Zである」とを生成し、不明ラベルが付与されていた波形データに付与してもよい。
【0049】
これにより、拡張訓練用データセット410に含まれる"ラベル"を、全て肯定ラベルに変更することができる。
【0050】
また、肯定ラベル生成部421は、生成した拡張訓練用データセット410のうち、"データ"に格納された時系列のセンサデータを訓練モデル422に入力するとともに、"ラベル"に格納された肯定ラベルを、比較/更新部423に入力する。
【0051】
訓練モデル422は、例えば、CNN(Convolutional Neural Network)により構成され、時系列のセンサデータを入力として処理を実行し、出力データを出力する。本実施形態において、訓練モデル422が出力する出力データは、異常Xの確率、異常Yの確率、異常Zの確率である。
【0052】
比較/更新部423は、訓練モデル422から出力された出力データと、拡張訓練用データセット410の"ラベル"に格納された肯定ラベルとを比較し、誤差を算出する。また、比較/更新部423は、算出した誤差に基づいて、訓練モデル422のモデルパラメータを更新する。
【0053】
なお、比較/更新部423では、例えば、「波形データ1a」が入力されることで訓練モデル422から出力される出力データのうち、異常Xの確率が、1.0に近づくように、訓練モデル422のモデルパラメータを更新する。
【0054】
同様に、比較/更新部423では、例えば、「波形データ2a」が入力されることで訓練モデル422から出力される出力データのうち、異常Yの確率が、1.0に近づくように、訓練モデル422のモデルパラメータを更新する。
【0055】
また、比較/更新部423では、例えば、「波形データ3a」が入力されることで訓練モデル422から出力される出力データのうち、
・異常Yの確率が、1.0に近づくように、訓練モデル422のモデルパラメータを更新した後、
・異常Zの確率が、1.0に近づくように、訓練モデル422のモデルパラメータを更新する。
【0056】
同様に、比較/更新部423では、例えば、「波形データna」が入力されることで訓練モデル422から出力される出力データのうち、
・異常Xの確率が、1.0に近づくように、訓練モデル422のモデルパラメータを更新した後、
・異常Zの確率が、1.0に近づくように、訓練モデル422のモデルパラメータを更新する。
【0057】
ただし、比較/更新部423によるモデルパラメータの更新方法はこれに限定されない。例えば、「波形データ3a」の場合、比較/更新部423では、訓練モデル422から出力される出力データのうち、異常Yの確率及び異常Zの確率が、それぞれ、0.5に近づくように、訓練モデル422のモデルパラメータを更新してもよい。
【0058】
同様に、「波形データna」の場合、比較/更新部423では、訓練モデル422から出力される出力データのうち、異常Xの確率及び異常Zの確率が、それぞれ、0.5に近づくように、訓練モデル422のモデルパラメータを更新してもよい。
【0059】
<推論部の処理の具体例>
次に、推論部131の処理の具体例について説明する。図5は、推論部の処理の具体例を示す第1の図である。図5に示すように、推論部131は、訓練済みモデル521、出力部522を有する。
【0060】
訓練済みモデル521は、訓練フェーズにおいて、訓練部122が拡張訓練用データセット410を用いて訓練モデル422を訓練することで生成されたモデルである。推論部131が、時系列データ格納部132に格納されている時系列のセンサデータを読み出し、推論用データ510として、訓練済みモデル521に入力することで、訓練済みモデル521は、異常原因を推論する。
【0061】
なお、図5に示すように、推論用データ510には、情報の項目として、少なくとも"識別子"、"データ"が含まれる。"識別子"には、異常原因の推論対象となる時系列のセンサデータを識別する識別子が格納される。また、"データ"には、異常原因の推論対象となる時系列のセンサデータが格納される。
【0062】
図5の例は、推論部131が、推論用データ510の"データ"に含まれる、「波形データ1b」、「波形データ2b」、「波形データ3b」、・・・「波形データnb」を、順次、訓練済みモデル521に入力した様子を示している。
【0063】
出力部522は、訓練済みモデル521より出力された異常原因推論結果を、推論結果データ530として出力する。図5に示すように、推論結果データ530には、推論用データ510の情報の項目に、"異常原因推論結果"が付加され、出力部522より出力された異常原因推論結果が格納される。
【0064】
図5の例は、「波形データ1b」の異常原因が「異常Xである」と推論され、「波形データ2b」の異常原因が「異常Yである」と推論され、「波形データ3b」の異常原因が「異常Yである」と推論された様子を示している。また、図5の例は、「波形データnb」の異常原因が「異常Zである」と推論された様子を示している。
【0065】
<異常原因推論処理の流れ>
次に、異常原因推論システム100A、100Bによる異常原因推論処理の流れについて説明する。図6は、異常原因推論処理の流れを示す第1のフローチャートであり、訓練フェーズにおいては、ステップS601~S606が実行され、推論フェーズにおいては、ステップS607~S610が実行される。
【0066】
ステップS601において、訓練装置120は、工作機械110より異常発生時に測定された所定の時間範囲の時系列のセンサデータを取得する。
【0067】
ステップS602において、訓練装置120は、取得した時系列のセンサデータに、異常原因を示すラベルを付与し、訓練用データセットを生成する。
【0068】
ステップS603において、訓練装置120は、生成した訓練用データセットにおいて、否定ラベルを肯定ラベルに変更し、拡張訓練用データセットを生成する。
【0069】
ステップS604において、訓練装置120は、生成した拡張訓練用データセットを用いて、訓練モデルを訓練する。
【0070】
ステップS605において、訓練装置120は、訓練処理の終了条件が成立したか否かを判定する。ステップS605において、訓練処理の終了条件が成立していないと判定した場合には(ステップS605においてNOの場合には)、ステップS604に戻り、訓練処理を継続する。
【0071】
一方、ステップS605において、訓練処理の終了条件が成立したと判定した場合には(ステップS605においてYESの場合には)、ステップS606に進む。
【0072】
ステップS606において、訓練装置120は、生成した訓練済みモデルを、推論装置130に送信する。
【0073】
続いて、ステップS607において、推論装置130は、工作機械110より推論対象の時系列のセンサデータを取得する。
【0074】
ステップS608において、推論装置130は、取得した時系列のセンサデータを推論用データとして、訓練済みモデルに入力することで、異常原因を推論する。
【0075】
ステップS609において、推論装置130は、異常原因推論結果を出力する。
【0076】
ステップS610において、推論装置130は、推論処理を終了するか否かを判定し、推論処理を継続すると判定した場合には(ステップS610においてNOの場合には)、ステップS607に戻る。
【0077】
一方、ステップS610において、推論処理を終了すると判定した場合には(ステップS610においてYESの場合には)、異常原因推論処理を終了する。
【0078】
<まとめ>
以上の説明から明らかなように、第1の実施形態に係る訓練装置120は、
・異常発生時に監視対象の工作機械110において測定された時系列のセンサデータを取得する。
・取得した時系列のセンサデータに対して、異常原因が特定されている場合には、異常原因を示す肯定ラベルを付与し、異常原因が特定されていない場合には、既に特定されている異常原因のいずれかでないことを示す否定ラベルを付与する。
・否定ラベルが付与された時系列のセンサデータについて、肯定ラベルに変更してから訓練モデルを訓練する。
【0079】
これにより、第1の実施形態に係る訓練装置120によれば、異常原因がわからない時系列のセンサデータについても訓練することが可能になる。
【0080】
また、第1の実施形態に係る推論装置130は、
・否定ラベルが付与された時系列のセンサデータを肯定ラベルに変更して訓練された訓練済みモデルに、新たに時系列のセンサデータを入力し、異常原因推論結果を出力する。
【0081】
これにより、第1の実施形態に係る推論装置130によれば、訓練時に発生しなかった異常が発生した際の時系列のセンサデータが入力された場合でも、異常原因を精度よく推論することが可能となる。
【0082】
つまり、第1の実施形態によれば、異常原因の推論精度を向上させることができる。
【0083】
[第2の実施形態]
上記第1の実施形態では、訓練用データセット310に含まれる否定ラベルを、複数の肯定ラベルに変更し、時系列のセンサデータを入力した際の各肯定ラベルの確率が適切な値になるように、訓練モデルを訓練する場合について説明した。これに対して、第2の実施形態では、訓練用データセット310に含まれる各ラベル(肯定ラベル、否定ラベル)の確率がそれぞれ適切な値になるように、訓練モデルを訓練する。以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
【0084】
<訓練部の処理の具体例>
はじめに、第2の実施形態に係る訓練装置120の訓練部122の処理の具体例について説明する。第2の実施形態に係る訓練装置120の訓練部122では、訓練用データセット310に含まれる肯定ラベルに基づいて訓練モデルを訓練する場合と、訓練用データセット310に含まれる否定ラベルに基づいて訓練モデルを訓練する場合とにわけて処理を行う。
【0085】
図7は、訓練部の処理の具体例を示す第2の図であり、訓練用データセット310に含まれる肯定ラベルに基づいて訓練モデルを訓練する場合の処理の具体例を示す図である。図7に示すように、訓練部122は、分類部721、訓練モデル722、比較/更新部723を有する。
【0086】
分類部721は、訓練用データ格納部124から、訓練用データセット310を読み出すと、読み出した訓練用データセット310に基づいて、肯定訓練用データセット710を生成する。
【0087】
具体的には、分類部721は、訓練用データセット310に含まれる"ラベル"のうち、肯定ラベルを抽出し、対応する"識別子"及び"データ"とともに、肯定訓練用データセット710に格納する。図7の例は、肯定ラベルとして「波形データ1a」に付与された「異常Xである」と、「波形データ2a」に付与された「異常Yである」とが抽出され、肯定訓練用データセット710に格納された様子を示している。
【0088】
また、分類部721は、生成した肯定訓練用データセット710のうち、"データ"に格納された時系列のセンサデータを訓練モデル722及び比較/更新部723に入力するとともに、"ラベル"に格納された肯定ラベルを、比較/更新部723に入力する。
【0089】
訓練モデル722は、例えば、Autoencoderにより構成される。訓練モデル722は、時系列のセンサデータを入力として処理を実行することで潜在変数(z)を算出し、算出した潜在変数に基づいて、
・復元した時系列のセンサデータ(z→x')と、
・各異常原因(異常Xである、異常Yである、異常Zである)の確率(z→X,z→Y,z→Z)と、
・各異常原因(異常Xではない、異常Yではない、異常Zではない)の確率(z→NOTX、z→NOTY、z→NOTZ)と、
を出力する。
【0090】
比較/更新部723は、訓練モデル722から出力された、
・復元された時系列のセンサデータ(z→x')と、
・肯定訓練用データセット710のうち、"データ"に格納された時系列のセンサデータと、
を比較する。また、比較/更新部723は、訓練モデル722から出力された、
・各異常原因(異常Xである、異常Yである、異常Zである)の確率(z→X,z→Y,z→Z)と、
・肯定訓練用データセット710のうち、"ラベル"に格納された肯定ラベルと、
を比較する。
【0091】
更に、比較/更新部723は、それぞれの比較の結果に基づいて誤差を算出し、算出した誤差に基づいて、訓練モデル722のモデルパラメータを更新する。
【0092】
なお、比較/更新部723では、例えば、「波形データ1a」が入力された場合、訓練モデル722から出力される、
・復元された時系列のセンサデータが「波形データ1a」に近づくように、かつ、
・「異常Xである」の確率が1.0に近づくように、
訓練モデル722のモデルパラメータを更新する。
【0093】
同様に、比較/更新部723では、例えば、「波形データ2a」が入力された場合、訓練モデル722から出力される、
・復元された時系列のセンサデータが「波形データ2a」に近づくように、かつ、
・「異常Yである」の確率が1.0に近づくように、
訓練モデル722のモデルパラメータを更新する。
【0094】
一方、図8は、訓練部の処理の具体例を示す第3の図であり、訓練用データセット310に含まれる否定ラベルに基づいて訓練モデルを訓練する場合の処理の具体例を示す図である。図8に示すように、訓練部122は、分類部821、訓練モデル722、比較/更新部823を有する。
【0095】
分類部821は、訓練用データ格納部124から、訓練用データセット310を読み出すと、読み出した訓練用データセット310に基づいて、否定訓練用データセット810を生成する。
【0096】
具体的には、分類部821は、訓練用データセット310に含まれる"ラベル"のうち、否定ラベルを抽出し、対応する"識別子"及び"データ"とともに、否定訓練用データセット810に格納する。図8の例は、否定ラベルとして「波形データ3a」に付与された「異常Xではない」と、「波形データna」に付与された「異常Yではない」とが抽出され、否定訓練用データセット810に格納された様子を示している。
【0097】
また、分類部821は、生成した否定訓練用データセット810のうち、"データ"に格納された時系列のセンサデータを訓練モデル722及び比較/更新部823に入力するとともに、"ラベル"に格納された否定ラベルを、比較/更新部823に入力する。
【0098】
訓練モデル722は、図7を用いて説明したように、例えば、Autoencoderにより構成される。訓練モデル722は、時系列のセンサデータを入力として処理を実行することで潜在変数(z)を算出し、算出した潜在変数に基づいて、
・復元した時系列のセンサデータ(z→x')と、
・各異常原因(異常Xである、異常Yである、異常Zである)の確率(z→X,z→Y,z→Z)と、
・各異常原因(異常Xではない、異常Yではない、異常Zではない)の確率(z→NOTX,z→NOTY,z→NOTZ)と、
を出力する。
【0099】
比較/更新部823は、訓練モデル722から出力された、
・復元された時系列のセンサデータ(z→x')と、
・否定訓練用データセット810のうち、"データ"に格納された時系列のセンサデータと、
を比較する。また、比較/更新部823は、
・訓練モデル722から出力された、各異常原因(異常Xではない、異常Yではない、異常Zではない)の確率(z→NOTX,z→NOTY,z→NOTZ)と、
・否定訓練用データセット810のうち、"ラベル"に格納された否定ラベルと、
を比較する。更に、比較/更新部823は、それぞれの比較の結果に基づいて誤差を算出し、算出した誤差に基づいて、訓練モデル722のモデルパラメータを更新する。
【0100】
なお、比較/更新部823では、例えば、「波形データ3a」が入力された場合、訓練モデル722から出力される、
・復元された時系列のセンサデータが「波形データ3a」に近づくように、かつ、
・「異常Xではない」の確率が1.0に近づくように、
訓練モデル722のモデルパラメータを更新する。
【0101】
同様に、比較/更新部823では、例えば、「波形データna」が入力された場合、訓練モデル722から出力される、
・復元された時系列のセンサデータが、「波形データna」に近づくように、かつ、
・「異常Yではない」の確率が1.0に近づくように、
訓練モデル722のモデルパラメータを更新する。
【0102】
なお、上記説明では、訓練用データセット310を、肯定訓練用データセット710と否定訓練用データセット810とに分けたうえで、それぞれを用いて、順次、訓練モデル722を訓練する場合について説明した。しかしながら、訓練モデル722の訓練方法はこれに限定されず、肯定訓練用データセット710と否定訓練用データセット810とに分けることなく、訓練用データセット310を用いて訓練モデル722を訓練してもよい。
【0103】
<推論部の処理の具体例>
次に、推論部131の処理の具体例について説明する。図9は、推論部の処理の具体例を示す第2の図である。図9に示すように、推論部131は、訓練済みモデル921、出力部922を有する。
【0104】
訓練済みモデル921は、訓練フェーズにおいて、訓練部122が肯定訓練用データセット710及び否定訓練用データセット810を用いて訓練モデル722を訓練することで生成されたモデルである。推論部131は、時系列データ格納部132に格納されている時系列のセンサデータを読み出し、推論用データ510として、訓練済みモデル921に入力する。これにより、訓練済みモデル921は、復元した時系列のセンサデータを出力する。また、訓練済みモデル921は、各異常原因(異常Xである、異常Xではない、異常Yである、異常Yではない、異常Zである、異常Zではない)の確率(z→X,z→NOTX,z→Y,z→NOTY,z→Z,z→NOTZ)を出力する。
【0105】
出力部922は、訓練済みモデル921により出力された各異常原因の確率のうち、最大の確率を示す異常原因を、異常原因推論結果として、推論結果データ530を出力する。
【0106】
図9の例は、「波形データ1b」の異常原因推論結果として「異常Xである」が出力され、「波形データ2b」の異常原因推論結果として「異常Yである」が出力され、「波形データ3b」の異常原因推論結果として「異常Xではない」が出力された様子を示している。また、図9の例は、「波形データnb」の異常原因推論結果として「異常Yではない」が出力された様子を示している。
【0107】
<異常原因推論処理の流れ>
次に、異常原因推論システム100A、100Bによる異常原因推論処理の流れについて説明する。図10は、異常原因推論処理の流れを示す第2のフローチャートである。図6を用いて説明した第1のフローチャートとの相違点は、ステップS1001~S1003である。
【0108】
ステップS1001において、訓練装置120は、生成した訓練用データセットにおいて、肯定ラベルを抽出し、肯定訓練用データセットを生成する。
【0109】
ステップS1002において、訓練装置120は、生成した訓練用データセットにおいて、否定ラベルを抽出し、否定訓練用データセットを生成する。
【0110】
ステップS1003において、訓練装置120は、生成した肯定訓練用データセット及び否定訓練用データセットを用いて、訓練モデルを訓練する。
【0111】
<まとめ>
以上の説明から明らかなように、第2の実施形態に係る訓練装置120は、
・肯定ラベルが付与された時系列のセンサデータと、否定ラベルが付与された時系列のセンサデータとを含む訓練用データセットを読み出し、肯定訓練用データセット及び否定訓練用データセットに分類する。
・肯定訓練用データセットに含まれる時系列のセンサデータを入力することで潜在変数を算出し、算出した潜在変数から、入力した時系列のセンサデータを復元して出力するとともに、肯定ラベルを出力する訓練モデルを訓練する。
・否定訓練用データセットに含まれる時系列のセンサデータを入力することで潜在変数を算出し、算出した潜在変数から、入力した時系列のセンサデータを復元して出力するとともに、否定ラベルを出力する訓練モデルを訓練する。
【0112】
これにより、第1の実施形態に係る訓練装置120によれば、異常原因がわからない時系列のセンサデータについても訓練することが可能になる。
【0113】
また、第2の実施形態に係る推論装置130は、
・肯定訓練用データセット及び否定訓練用データセットを用いて訓練された訓練済みモデルに、新たに時系列のセンサデータを入力し、異常原因推論結果を出力する。
【0114】
これにより、第2の実施形態に係る推論装置130によれば、訓練時に発生しなかった異常が発生した際の時系列のセンサデータが入力された場合でも、異常原因を精度よく推論することが可能となる。
【0115】
つまり、第2の実施形態によれば、異常原因の推論精度を向上させることができる。
【0116】
[第3の実施形態]
上記第1及び第2の実施形態では、訓練済みモデルより出力される各異常原因の確率に基づいて、異常原因推論結果を出力する構成とした。これに対して、第3の実施形態では、訓練済みモデルより潜在変数を抽出し、いずれの異常原因の潜在変数に類似するかを判定することで、異常原因推論結果を出力する構成とする。以下、第3の実施形態について、上記第1及び第2の実施形態との相違点を中心に説明する。なお、不明ラベルが付与されたセンサデータは、訓練モデル1122の訓練に用いなくても、後述のように各部分訓練用データセットに含めることで訓練に用いてもよい。不明ラベルが付与されたセンサデータの訓練モデル1122の訓練への利用の仕方は目的に応じて選択すればよい。
【0117】
<訓練部の処理の具体例>
はじめに、第3の実施形態に係る訓練装置120の訓練部122の処理の具体例について説明する。図11は、訓練部の処理の具体例を示す第4の図である。図11に示すように、訓練部122は、部分ラベル生成部1121、訓練モデル1122、類似度関数算出部1123、比較/更新部1124を有する。
【0118】
部分ラベル生成部1121は、訓練用データセット310に含まれる"ラベル"のうち、肯定ラベルであって、かつ、同じ異常原因を示すラベルが付与された時系列のセンサデータを抽出し、部分訓練用データセット1110_1~1110_3を生成する。なお、部分訓練用データセット1110_1~1110_3の詳細は、図12を用いて後述する。
【0119】
また、部分ラベル生成部1121は、生成した部分訓練用データセットのうち、"データ"に格納された時系列のセンサデータのペアを抽出し、訓練モデル1122に順次入力するとともに、比較/更新部1124に順次入力する。また、部分ラベル生成部1121は、生成した部分訓練用データセットのうち、"ラベル"に格納された肯定ラベルを、比較/更新部1124に入力する。なお、図11の例では、部分訓練用データセットの"データ"に格納された時系列のセンサデータのうち、抽出された時系列のセンサデータのペアの一方をx_i、他方をx_jと表している。
【0120】
訓練モデル1122は、時系列のセンサデータx_i、時系列のセンサデータx_jが順次入力されると、潜在変数(x_i→z_i)、潜在変数(x_j→z_j)のペアを算出する。また、訓練モデル1122は、時系列のセンサデータx_i、時系列のセンサデータx_jが順次入力されると、復元した時系列のセンサデータ(z_i→x'_i)、復元した時系列のセンサデータ(z_j→x'_j)を順次出力する。
【0121】
類似度関数算出部1123は、訓練モデル1122より潜在変数(x_i→z_i)、潜在変数(x_j→z_j)のペアを抽出し、類似度を算出する。本実施形態の類似度は、2つの潜在変数(ベクトル)が類似するほど1に近づき、相違するほど0に近づくように設計されるが、一例であることに注意されたい。また、類似度関数算出部1123は、算出した類似度を比較/更新部1124に出力する。
【0122】
比較/更新部1124は、部分訓練用データセットの"ラベル"に格納された異常原因を示すラベルが同じである場合、正解データとして、類似度が"1"であると認識する。また、比較/更新部1124は、類似度関数算出部1123から出力された類似度と、正解データの類似度とを比較する。
【0123】
また、比較/更新部1124は、
・訓練モデル1122から出力された、復元された時系列のセンサデータ(z_i→x'_i)、復元された時系列のセンサデータ(z_j→x'_j)と、
・部分訓練用データセットのうち、"データ"に格納された時系列のセンサデータのペアと、
を比較する。更に、比較/更新部1124は、それぞれの比較の結果に基づいて誤差を算出し、算出した誤差に基づいて、訓練モデル1122のモデルパラメータを更新する。
【0124】
なお、比較/更新部1124では、例えば、「波形データ1a」、「波形データ5a」が順次入力され、訓練モデル1122から順次出力される、
・潜在変数(x_i→z_i)と潜在変数(x_j→z_j)との類似度が"1"に近づくように、かつ、
・復元された時系列のセンサデータ(z_i→x'_i)、復元された時系列のセンサデータ(z_j→x'_j)が、それぞれ、元の「波形データ1a」、「波形データ5a」に近づくように、
訓練モデル1122のモデルパラメータを更新する。
【0125】
図12は、部分訓練用データセットの一例を示す第1の図である。図12の例は、部分ラベル生成部1121により、部分訓練用データセット1110_1~1110_3(第1の部分訓練用データセットの一例)が生成された様子を示している。
【0126】
このうち、部分訓練用データセット1110_1は、肯定ラベルであって、かつ、ラベル=「異常Xである」が付与された時系列のセンサデータが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1110_1は、不明ラベルが付与されたセンサデータを含んでもよい。
【0127】
同様に、部分訓練用データセット1110_2は、肯定ラベルであって、かつ、ラベル=「異常Yである」が付与された時系列のセンサデータが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1110_2は、不明ラベルが付与されたセンサデータを含んでもよい。
【0128】
同様に、部分訓練用データセット1110_3は、肯定ラベルであって、かつ、ラベル=「異常Zである」が付与された時系列のセンサデータが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1110_3は、不明ラベルが付与されたセンサデータを含んでもよい。
【0129】
図13は、訓練部の処理の具体例を示す第5の図である。図13に示すように、訓練部122は、部分ラベル生成部1321、訓練モデル1122、類似度関数算出部1123、比較/更新部1124を有する。
【0130】
部分ラベル生成部1321は、訓練用データセット310に含まれる"ラベル"のうち、異なる異常原因を示すラベルが付与された時系列のセンサデータのペアを抽出し、部分訓練用データセット1310_1~1310_6を生成する。なお、部分訓練用データセット1310_1~1310_6の詳細は、図14を用いて後述する。
【0131】
また、部分ラベル生成部1321は、生成した部分訓練用データセットのうち、"データ"に格納された時系列のセンサデータのペア(x_i、x_j)を訓練モデル1122に順次入力するとともに、比較/更新部1124に順次入力する。また、部分ラベル生成部1321は、生成した部分訓練用データセットのうち、"ラベル"に格納された異常原因を示すラベルを、比較/更新部1124に入力する。
【0132】
訓練モデル1122は、時系列のセンサデータx_i、時系列のセンサデータx_jが順次入力されると、潜在変数(x_i→z_i)、潜在変数(x_j→z_j)のペアを算出する。また、訓練モデル1122は、時系列のセンサデータx_i、時系列のセンサデータx_jが順次入力されると、復元した時系列のセンサデータ(z_i→x'_i)、復元した時系列のセンサデータ(z_j→x'_j)を順次出力する。
【0133】
類似度関数算出部1123は、訓練モデル1122より潜在変数(x_i→z_i)、潜在変数(x_j→z_j)のペアを抽出し、類似度を算出する。また、類似度関数算出部1123は、算出した類似度を比較/更新部1124に出力する。
【0134】
比較/更新部1124は、部分訓練用データセットの"ラベル"に格納された異常原因を示すラベルが異なる場合、正解データとして、類似度が"0"であると認識する。また、比較/更新部1124は、類似度関数算出部1123から出力された類似度と、正解データの類似度とを比較する。
【0135】
また、比較/更新部1124は、
・訓練モデル1122から出力された、復元された時系列のセンサデータ(z_i→x'_i)、復元された時系列のセンサデータ(z_j→x'_j)と、
・部分訓練用データセットのうち、"データ"に格納された時系列のセンサデータのペアと
を比較する。更に、比較/更新部1124は、それぞれの比較の結果に基づいて誤差を算出し、算出した誤差に基づいて、訓練モデル1122のモデルパラメータを更新する。
【0136】
なお、比較/更新部1124では、例えば、「波形データ1a」、「波形データ3a」が順次入力され、訓練モデル1122から順次出力される、
・潜在変数(x_i→z_i)と潜在変数(x_j→z_j)との類似度が"0"に近づくように、かつ、
・復元された時系列のセンサデータ(z_i→x'_i)、復元された時系列のセンサデータ(z_j→x'_j)が、それぞれ、元の「波形データ1a」、「波形データ3a」に近づくように、
訓練モデル1122のモデルパラメータを更新する。
【0137】
図14は、部分訓練用データセットの一例を示す第2の図である。図14の例は、部分ラベル生成部1321により、部分訓練用データセット1310_1~1310_6(第2の部分訓練用データセットの一例)が生成された様子を示している。
【0138】
このうち、部分訓練用データセット1310_1は、肯定ラベル=「異常Xである」と、否定ラベル=「異常Xではない」がそれぞれ付与された時系列のセンサデータのペアが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1310_1は、不明ラベルが付与されたセンサデータを含んでもよい。
【0139】
同様に、部分訓練用データセット1310_2は、肯定ラベル=「異常Yである」と、否定ラベル=「異常Yではない」がそれぞれ付与された時系列のセンサデータのペアが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1310_2は、不明ラベルが付与されたセンサデータを含んでもよい。
【0140】
同様に、部分訓練用データセット1310_3は、肯定ラベル=「異常Zである」と、否定ラベル=「異常Zではない」がそれぞれ付与された時系列のセンサデータのペアが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1310_3は、不明ラベルが付与されたセンサデータを含んでもよい。
【0141】
同様に、部分訓練用データセット1310_4は、肯定ラベル=「異常Xである」と、肯定ラベル=「異常Yである」がそれぞれ付与された時系列のセンサデータのペアが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1310_4は、不明ラベルが付与されたセンサデータを含んでもよい。
【0142】
同様に、部分訓練用データセット1310_5は、肯定ラベル=「異常Xである」と、肯定ラベル=「異常Zである」がそれぞれ付与された時系列のセンサデータのペアが抽出されることで生成された部分訓練用データセットを示している。この部分訓練用データセット1310_5は、不明ラベルが付与されたセンサデータを含んでもよい。
【0143】
同様に、部分訓練用データセット1310_6は、肯定ラベル=「異常Yである」と、肯定ラベル=「異常Zである」がそれぞれ付与された時系列のセンサデータのペアが抽出有れることで生成された部分訓練用データセットを示している。この部分訓練用データセット1310_6は、不明ラベルが付与されたセンサデータを含んでもよい。
【0144】
なお、図14の例では、紙面の関係上、時系列のセンサデータのペアを3ペアずつ示しているが、時系列のセンサデータのペアは、3ペア以上であってもよいことはいうまでもない。
【0145】
<比較/更新部の具体例>
次に、図11及び図13の訓練部122に含まれる比較/更新部1124の詳細について説明する。図11及び図13で説明したとおり、訓練部122は、類似度関数算出部1123から出力される類似度と、部分訓練用データセットの"ラベル"に基づいて認識した正解データとを比較する。
【0146】
ここで、比較/更新部1124では、類似度関数算出部1123から出力される類似度を、高い(1)か、低い(0)かという2値分類問題に帰着させることで、損失関数として、2値分類で用いられる2値クロスエントロピーを適用する。
【0147】
訓練モデル1122より出力される潜在変数(x_i→z_i)と潜在変数(x_j→z_j)との類似度をsigmoid(t)とし(tはη-|z_i-z_j|、ηは例えば2.0などの定数)、正解データをy_ij(異常原因が同じであれば"1"、異常原因が異なれば"0")とすると、本実施形態の損失関数は、下式1により表すことができる。
(式1)
損失関数=-(y_ij×log(sigmoid(t))+(1-y_ij)×log(sigmoid(-t)))
なお、log(sigmoid(x))は、図15に示すような、log(1/(1+exp(―x)))で定義される関数である。図15は、比較/更新部において用いられる関数の一例を示す図であり、横軸に入力(x)を、縦軸に出力(log(sigmoid(x)))を表している。なお、上式1は、損失関数の一例である。損失関数は、同じ異常原因に分類されるべきセンサデータx_i、x_jの潜在変数z_i、z_jが類似するときには小さな値を持ち、相違するときには大きな値を持ち、異なる異常原因に分類されるべきセンサデータx_i、x_jの潜在変数z_i、z_jが類似するときには大きな値を持ち、相違するときには小さな値を持つように設計されればよい。
【0148】
<推論部の処理の具体例>
次に、第3の実施形態に係る推論装置130の推論部131の処理の具体例について説明する。図16は、推論部の処理の具体例を示す第3の図である。図16に示すように、推論部131は、訓練済みモデル1621、判定部1622を有する。
【0149】
訓練済みモデル1621は、訓練部122が部分訓練用データセット1110_1~1110_3、1310_1~1310_6を用いて処理を実行することで生成されたモデルである。推論部131が、時系列データ格納部132に格納されている時系列のセンサデータを読み出し、推論用データ510として、訓練済みモデル1621に入力することで、訓練済みモデル1621は、潜在変数(x→z)を算出する。
【0150】
判定部1622は、訓練済みモデル1621より抽出された潜在変数(x→z)が、潜在空間1610のいずれの位置にプロットされるかを判定する。なお、潜在空間1610には、異常原因が特定された時系列のセンサデータの潜在変数が分布しており、判定部1622では、プロットした位置が、いずれの異常原因が分布している位置に近いかを判定することで、異常原因を特定する。また、判定部1622は、特定した異常原因を、異常原因推論結果として出力する。
【0151】
なお、判定部1622による異常原因の特定方法は任意である。例えば、予め訓練用データセット310を訓練済みモデル1621に入力することで、潜在変数(x→z)を潜在空間1610にプロットし、異常原因ごとにクラスタリングを行ってもよい。そして、判定部1622は、推論用データ510が訓練済みモデル1621に入力されることで抽出される潜在変数(x→z)が、いずれのクラスに分類されるかを判定することで異常原因を特定してもよい。
【0152】
<異常原因推論処理の流れ>
次に、異常原因推論システム100A、100Bによる異常原因推論処理の流れについて説明する。図17は、異常原因推論処理の流れを示す第3のフローチャートである。図6を用いて説明した第1のフローチャートとの相違点は、ステップS1701~S1703、S1704~S1705である。
【0153】
ステップS1701において、訓練装置120は、生成した訓練用データセットから、同じ異常原因を示すラベルが付与された時系列のセンサデータ、または、異なる異常原因を示すラベルが付与された時系列のセンサデータを抽出する。また、訓練装置120は、抽出した時系列のセンサデータに基づいて、部分訓練用データセットを生成する。
【0154】
ステップS1702において、訓練装置120は、生成した部分訓練用データセットを用いて、潜在変数の類似度が、所定の類似度に近づくように、かつ、復元された時系列のセンサデータが入力された時系列のセンサデータに近づくように訓練モデルを訓練する。
【0155】
ステップS1703において、訓練装置120は、訓練処理の終了条件が成立したか否かを判定する。ステップS1703において、訓練処理の終了条件が成立していないと判定した場合には(ステップS1703においてNOの場合には)、ステップS1702に戻り、訓練処理を継続する。
【0156】
一方、ステップS1703において、訓練処理の終了条件が成立したと判定した場合には(ステップS1703においてYESの場合には)、ステップS606に進む。
【0157】
ステップS1704において、推論装置130は、取得した時系列のセンサデータを推論用データとして、訓練済みモデルに入力することで、潜在変数を算出する。
【0158】
ステップS1705において、推論装置130は、算出した潜在変数がプロットされる潜在空間内の位置に応じて、異常原因を特定する。
【0159】
<まとめ>
以上の説明から明らかなように、第3の実施形態に係る訓練装置120は、
・訓練用データセットを読み出し、同じ異常原因を示すラベルが付与された時系列データと、異なる異常原因を示すラベルが付与された時系列データとを含む、部分訓練用データセットを生成する。
・部分訓練用データセットに含まれる時系列のセンサデータを入力することで潜在変数のペアを算出し、算出した潜在変数のペアの類似度が、部分訓練用データセットに応じた正解データに近づくように、訓練モデルを訓練する。
【0160】
これにより、第1の実施形態に係る訓練装置120によれば、異常原因がわからない時系列のセンサデータについても訓練することが可能になる。
【0161】
また、第3の実施形態に係る推論装置130は、
・部分訓練用データセットを用いて訓練された訓練済みモデルに、新たに時系列のセンサデータを入力し、潜在変数を算出する。
・算出した潜在変数が、潜在空間のいずれの位置にプロットされるかに基づいて、異常原因を特定する。
【0162】
これにより、第3の実施形態に係る推論装置130によれば、訓練時に発生しなかった異常が発生した際の時系列のセンサデータが入力された場合でも、異常原因を精度よく推論することが可能となる。
【0163】
つまり、第3の実施形態によれば、異常原因の推論精度を向上させることができる。
【0164】
[その他の実施形態]
本明細書(請求項を含む)において、「a、bおよびcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c、又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0165】
また、本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、原因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0166】
また、本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0167】
また、本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
【0168】
また、本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0169】
また、本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0170】
また、本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の原因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の原因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0171】
また、本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでよい。
【0172】
また、本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置(メモリ)のうち個々の記憶装置(メモリ)は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。
【0173】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
図1
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17