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

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

▶ 富士電機株式会社の特許一覧

特許7435866情報処理装置、判定装置、モデルの学習方法
<>
  • 特許-情報処理装置、判定装置、モデルの学習方法 図1
  • 特許-情報処理装置、判定装置、モデルの学習方法 図2
  • 特許-情報処理装置、判定装置、モデルの学習方法 図3
  • 特許-情報処理装置、判定装置、モデルの学習方法 図4
  • 特許-情報処理装置、判定装置、モデルの学習方法 図5
  • 特許-情報処理装置、判定装置、モデルの学習方法 図6
  • 特許-情報処理装置、判定装置、モデルの学習方法 図7
  • 特許-情報処理装置、判定装置、モデルの学習方法 図8
  • 特許-情報処理装置、判定装置、モデルの学習方法 図9
  • 特許-情報処理装置、判定装置、モデルの学習方法 図10
  • 特許-情報処理装置、判定装置、モデルの学習方法 図11
  • 特許-情報処理装置、判定装置、モデルの学習方法 図12
  • 特許-情報処理装置、判定装置、モデルの学習方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】情報処理装置、判定装置、モデルの学習方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240214BHJP
【FI】
G06N20/00 130
【請求項の数】 3
(21)【出願番号】P 2023037292
(22)【出願日】2023-03-10
(62)【分割の表示】P 2019049848の分割
【原出願日】2019-03-18
(65)【公開番号】P2023065698
(43)【公開日】2023-05-12
【審査請求日】2023-03-10
【新規性喪失の例外の表示】特許法第30条第2項適用 発行日:平成30年9月11日 集会名:平成30年計測自動制御学会年次大会(SICE Annual Conference 2018) 公開者:アダモ サンタナ、村上 賢哉、飯坂 達也、松井 哲郎、福山 良和 公開された発明の内容:アダモ サンタナ、他4名が、ショーケースの異常検知技術について公開した。
(73)【特許権者】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】アダモ サンタナ
(72)【発明者】
【氏名】村上 賢哉
【審査官】▲はま▼中 信行
(56)【参考文献】
【文献】特開2019-36112(JP,A)
【文献】特開2016-170518(JP,A)
【文献】特開2015-185149(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 3/12
G06N 7/08-99/00
(57)【特許請求の範囲】
【請求項1】
正常なデータを示す属性に属する複数のデータの夫々に対し、第1の値または第2の値を割り当てる割当部と、
前記複数のデータのうち前記第1の値が割り当てられた第1データと、前記複数のデータのうち前記第2の値が割り当てられた第2データと、を教師データとして、入力データが前記正常なデータを示す属性に属するか否かを判定するためのモデルの学習を行う学習部と、
を含み、
前記割当部は、
前記複数のデータの夫々に対し、前記第1の値または前記第2の値をランダムに割り当てること、
を特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記モデルは、非線形の分類モデルまたは非線形の回帰モデルであること、
を特徴とする情報処理装置。
【請求項3】
コンピュータが、
正常なデータを示す属性に属する複数のデータの夫々に対し、第1の値または第2の値を割り当てる割当処理と、
前記複数のデータのうち前記第1の値が割り当てられた第1データと、前記複数のデータのうち前記第2の値が割り当てられた第2データと、を教師データとして、入力データが前記正常なデータを示す属性に属するか否かを判定するためのモデルの学習を行う学習処理と、
を実行し、
前記割当処理は、
前記複数のデータの夫々に対し、前記第1の値または前記第2の値をランダムに割り当てる、
モデルの学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、判定装置、およびモデルの学習方法に関する。
【背景技術】
【0002】
複数のデータから異常値を検出する際には、正常値と、異常値とを教師データとして構築されたモデルが用いられることがある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-16209号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、異常値を教師データとして用いるためには、異常値のサンプルを多く収集する必要がある。しかしながら、一般に異常値は、例えば、機器やシステムが正常に動作していない場合に出力される値等であるため、異常値のサンプルを多く収集することは難しい。
【0005】
本発明は、上記のような従来の問題に鑑みてなされたものであって、異常値のサンプルを学習に用いることなく、異常値を検出するための技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
前述した課題を解決する主たる本発明は、所定の属性に属する複数のデータの夫々に対し、第1の値または第2の値を割り当てる割当部と、前記複数のデータのうち前記第1の値が割り当てられた第1データと、前記複数のデータのうち前記第2の値が割り当てられた第2データと、を教師データとして、入力データが前記所定の属性に属するか否かを判定するためのモデルの学習を行う学習部と、を含むこと情報処理装置である。
【発明の効果】
【0007】
本発明によれば、異常値のサンプルを学習に用いることなく、異常値を検出するための技術を提供することができる。
【図面の簡単な説明】
【0008】
図1】異常検知システム10の構成を示す図である。
図2】学習装置20のハードウェア構成の一例を示す図である。
図3】データセット41の一例を示す図である。
図4】学習装置20に実現される機能ブロックの一例を示す図である。
図5】学習装置20で実行される処理の一例を示すフローチャートである。
図6】データセット43の一例を示す図である。
図7】関数yについて説明するための図である。
図8】関数yについて説明するための図である。
図9】判定装置21のハードウェア構成の一例を示す図である。
図10】判定装置21に実現される機能ブロックの一例を示す図である。
図11】判定装置21で実行される処理の一例を示すフローチャートである。
図12】判定処理S202で実行される内容を説明するための図である。
図13】ショーケース300の異常検知の実証例を示す図である。
【発明を実施するための形態】
【0009】
本明細書及び添付図面の記載により、少なくとも以下の事項が明らかとなる。
【0010】
=====本実施形態=====
<<<異常検知システム10の構成>>>
図1は、本発明の一実施形態である異常検知システム10の構成を示す図である。異常検知システム10は、例えば、商業施設に設置されたショーケース300の異常を検知するためのシステムであり、学習装置20、判定装置21を含む。
【0011】
ショーケース300は、例えば、食品等を冷却し、保管するためのケースである。ショーケース300には、ショーケース300の状態を観測するセンサ310が、例えば10個取り付けられている。なお、図1では、便宜上、10個のセンサ310は、1つのブロックとして描かれている。
【0012】
そして、異常検知システム10は、10個のセンサの夫々から出力されるデータx1~x10の値が、異常値となると、ショーケース300の異常を検知する。なお、ここでは、「異常値」の例として、物理的な異常を要因とする異常の値や数値的な異常の値、またセンサ異常を起因とした異常値、また、異常判定ではないようなシステムに適用する場合には、通常とは異なる挙動を表す値のことが挙げられる。また、以下、ショーケース300の動作が正常である際のデータを、「正常データ」または「正常なデータ」と称し、ショーケース300の動作が異常である際のデータを、「異常データ」または「異常なデータ」と称する。
【0013】
学習装置20(情報処理装置)は、正常なデータx1~x10に基づいて、ショーケース300に異常が有るか否かを判定するためのモデル、つまり、データx1~x10の異常値を検出するためのモデルを機械学習によって構築する。
【0014】
判定装置21は、運転中のショーケース300から出力されるデータx1~x10と、学習装置20で構築されたモデルとに基づいて、ショーケース300に異常が有るか否かを判定する。なお、学習装置20と、判定装置21とは、ネットワーク25を介して接続されている。
【0015】
<<<学習装置20について>>>
==学習装置20の構成==
図2は、学習装置20のハードウェア構成の一例を示す図である。学習装置20は、CPU(Central Processing Unit)30、メモリ31、記憶装置32、入力装置33、表示装置34、及び通信装置35を含むコンピュータである。
【0016】
CPU30は、メモリ31や記憶装置32に格納されたプログラムを実行することにより、学習装置20における様々機能を実現する。
【0017】
メモリ31は、例えばRAM(Random-Aaccess Mmemory)等であり、プログラムやデータ等の一時的な記憶領域として用いられる。
【0018】
記憶装置32は、CPU30によって実行あるいは処理される制御プログラム40やデータセット41等の各種のデータを格納する不揮発性の記憶装置である。
【0019】
制御プログラム40は、学習装置20が有する各種機能を実現するためのプログラムを総称しており、例えば、OS(Operating System)等を含む。
【0020】
データセット41は、図3に示すように、ショーケース300からセンサで取得するデータx1~x10である。ここで、データx1は、例えば、ショーケース300の所定の場所に取り付けられた温度センサからの出力であり、データx2は、ショーケース300内のコンプレッサの圧力を計測する圧力センサからの出力である。また、データx10は、例えば、コンプレッサの冷媒の流量を計測する流量計からの出力である。なお、データx3~x9についても、x1,x2等と同様であるため、ここでは詳細な説明は省略する。また、データセット41は、予め記憶装置32に格納されていることとする。
【0021】
学習モデル42は、ショーケース300に異常が有るか否かを、データx1~x10から判別するための判別式、あるいは数式(以下、まとめて「関数y」と称する。)を含んで構成される。学習モデル42の学習が行われると、“関数y”の係数等が調整され、異常検出の精度が変化する。なお、本実施形態において、学習モデル42の“関数y”は、y=f(x1,x2,~,x10)と表される。
【0022】
入力装置33は、ユーザによるコマンドやデータの入力を受け付ける装置であり、キーボード、タッチパネルディスプレイ上でのタッチ位置を検出するタッチセンサなどの入力インタフェースを含む。
【0023】
表示装置34は、例えばディスプレイなどの装置であり、通信装置35は、ネットワーク25を介して、判定装置21や他のコンピュータと各種プログラムやデータの受け渡しを行う。
【0024】
==機能ブロック==
図4は、学習装置20に実現される機能ブロックの一例を示す図である。学習装置20のCPU30が、制御プログラム40を実行することにより、学習装置20には、取得部50、割当部51、及び学習部52が実現される。
【0025】
取得部50は、記憶装置32に格納されたデータセット41を取得し、割当部51は、データセット41に含まれるデータに、“0(第1の値)”または“1(第2の値)”の2値をランダムに割り当てる。ここで、“0”または“1”は、教師あり学習の機械学習を行うために必要な「ラベル」に相当する。つまり、割当部51は、データセット41に含まれるデータに対し、0”または“1”の“ラベル”をランダムに付与して教師データを生成していることになる。
【0026】
学習部52は、割当部51により“0”が割り当てられたデータD1と、“1”が割り当てられたデータD2とを教師データとし、学習モデル42の学習を行う。具体的には、学習部52は、データD1,D2に対し、例えば、サポートベクター回帰を実行することにより“関数f”を求める。
【0027】
なお、ここでは、学習部52は、サポートベクター回帰を実行することとしたが、他の非線形の回帰分析(例えば、非線形最小二乗法、多項式回帰)を用いても良く、非線形分類(例えば、サポートベクターマシン)を実行しても良い。また、例えば、学習モデル42としてニューラルネットワークモデルを用いても良く、そのような場合、学習部52は、ニューラルネットワークモデルのパラメータを、教師データ(データD1,D2)に基づいて定めることになる。この結果、本実施形態における学習モデル42は、非線形の回帰モデルまたは、非線形の分類モデルとなる。以下、各機能ブロックが実行する処理の一例を、図5を参照しつつ説明する。
【0028】
<<学習処理S10>>
まず、取得部50は、記憶装置32に格納されたデータセット41を取得する(S20)。そして、割当部51は、データセット41に含まれるデータに、“0”または“1”をランダムに割り当てる(S21:割当処理)。例えば、割当部51は、データセット41の時刻t1のデータ(x1,~,x10)に、“0”を対応させて記憶させ、データセット41を更新する。この結果、図6に示すように、記憶装置32において、値が割り当てられた後のデータセット43の時刻t1のデータは、ラベルとして“0”が付与されたデータ(x1,~,x10,y)=(30.1,~,35.2,0)となる。
【0029】
また、割当部51は、データセット41の時刻t2のデータ(x1,~,x10)に、“1”を対応させて記憶させ、データセット41を更新する。以下、他の時刻においても、時刻t1,t2と同様であるため、詳細な説明は省略する。
【0030】
そして、学習部52は、割当部51により“0”が割り当てられたデータD1(第1データ)と、“1”が割り当てられたデータD2(第2データ)とを教師データとし、学習モデル42の学習を行い、“関数f”を求める(S22:学習処理)。
【0031】
図7及び図8は、“関数f”について説明するための図である。なお、本実施形態では、データセット41の各時刻のデータは、10個のデータ(x1~x10)を含むが、便宜上、図7ではデータがx1の1個の場合の“関数f”を説明し、図8ではデータがx1,x2の2個の場合の“関数f”を説明する。
【0032】
図7において、変数x1の正常なデータは、例えば“a0”~“a1”の範囲Aに含まれることとする。また、範囲Aのデータx1のうち、“0”が割り当てられたデータD1は、y=0の直線上にプロットされ、“1”が割り当てられたデータD2は、y=1の直線上にプロットされる。
【0033】
このような場合に、学習部52により、非線形の回帰分析(または、非線形の分類)が実行されると、例えば、“関数ff(x1)”の出力(値)yは、データx1が“a0”~“a1”の範囲において、“0”~“1”の間で変化する。また、“関数f(x1)”の出力yは、データx1が“a0”より小さい領域では、“1”より大きくなり、データx1が“a1”より大きい領域では、“0”より小さくなる。
【0034】
図8では、正常なデータ(x1,x2)は、例えば、x1軸とx2軸とを含むx1-x2平面の領域Bに含まれることとする。領域Bのデータ(x1,x2)のうち、“0”が割り当てられたデータD1は、y=0のx1-x2平面の領域Cにプロットされ、“1”が割り当てられたデータD2は、y=1のx1-x2平面の領域Dにプロットされる。
【0035】
このような場合に、学習部52により、非線形の回帰分析(または、非線形の分離)が実行されると、例えば、領域C,Dの間で“0”~“1”の値で変化し、領域C,D以外の領域では大きく値が変化する“関数f(x1,x2)”が求められる。
【0036】
つまり、処理S22で求められる“関数f(x1,~,x10)”は、正常データが入力されると、例えば“0”~“1”の間の値を出力し、異常データが入力されると、“0”~“1”から大きく離れた値を出力する関数である。このような“関数f”を用いることにより、データx1~x10の“異常値”が把握できるため、ショーケース300の異常検知が可能となる。
【0037】
<<<判定装置21について>>>
==判定装置21の構成==
図9は、判定装置21のハードウェア構成の一例を示す図である。判定装置21は、CPU70、メモリ71、記憶装置72、入力装置73、表示装置74、及び通信装置75を含むコンピュータである。なお、判定装置21のハードウェア構成は、学習装置20のハードウェア構成と同様であるため、ここでは詳細な説明は省略する。
【0038】
記憶装置72(記憶部)は、学習モデル42、判定プログラム80、及び判定データ81を記憶する。学習モデル42は、学習装置20で構築されたモデルである。
【0039】
判定プログラム80は、制御プログラム40と同様に、判定装置21が有する各種機能を実現するためのプログラムを総称している。
【0040】
判定データ81は、ショーケース300に異常が有るか否かを判定した判定結果を示すデータである。
【0041】
==機能ブロック==
図10は、判定装置21に実現される機能ブロックの一例を示す図である。判定装置21のCPU70が、判定プログラム80を実行することにより、判定装置21には、取得部100、計算部101、及び判定部102が実現される。
【0042】
取得部100は、センサ310から出力されるデータx1~x10を、所定間隔毎(例えば、30秒毎)に取得する。
【0043】
計算部101は、取得部100が取得したデータ(以下、「取得データ」と称する。)と、記憶装置72に記憶された学習モデル42とに基づいて、学習モデル42を示す“関数f”の出力(関数fの値)を計算する。
【0044】
判定部102は、計算部101が計算した“関数f”の値が、例えば“0”より小さい閾値T1(第1閾値)と、“1”より大きい閾値T2(第2閾値)との間の範囲Fに入る場合、取得データが正常データであると判定し、範囲Fに入らない場合、取得データが異常データであると判定する。以下、各機能ブロックの詳細を、判定装置21で実行される判定処理とともに説明する。
【0045】
<<判定処理S100>>
まず、図11に示すように、取得部100は、センサ310からのデータx1~x10を取得する(S200)。そして、計算部101は、取得データ(x1,~,x10)と、学習モデル42として得られた関数f(x1,~,x10))と、に基づいて、“関数f”の出力yを計算する(S201)。
【0046】
判定部102は、“出力y”の値が、閾値T1~T2の範囲Fに入るか否かを判定する(S202)。図12は、処理S202で実行される内容を説明するための図である。なお、“関数f”の値は、10個のデータx1~x10に基づいて定まるが、図12では、便宜上、1つの変数(データx1)を用いて説明している。
【0047】
計算された“出力y”値が、例えば図12の“P1(T1<P1<T2)”である場合、つまり、“出力y”の値が範囲Fに入る場合(S202:Yes)、判定部102は、取得データは、正常データであると判定する(S203)。
【0048】
一方、計算された“関数f”値が、例えば図12の“P2(T1>P2”)である場合、つまり、“出力y”の値が範囲Fに入らない場合(S202:No)、判定部102は、取得データは、異常データであると判定する(S204)。そして、判定部102は、処理S203,204の判定結果を、記憶装置72に格納し、判定データ81を更新する(S205)。
【0049】
<<実証結果>>
図13は、ショーケース300に実際に故障(例えば、冷媒漏れ)が発生した際の、判定装置21の判定結果の一例である。
【0050】
まず、1月~2月においては、ショーケース300は正常に動作しているため、計算部101の計算結果である“出力y”の値は、基本的に範囲Fに入っている。このため、この期間においては、取得データ(x1~x10)が、異常データであるとの判定結果は基本的に出力されていない。なお、1月~2月の間に1回だけ“出力y”の値が閾値T1となり、異常検出がされているが、これはノイズ等の影響によるものである。
【0051】
そして、2月に入り、ショーケース300のコンプレッサー(不図示)から冷媒漏れが発生すると、計算部101の計算結果が、範囲Fを超える回数が増加する。この結果、特に2月中旬以降、判定部102が、取得データ(x1~x10)が、異常データであるとの判定結果を出力する回数も増加する。
【0052】
2月末に、冷媒漏れが修理されると、ショーケース300は再び正常に動作するため、計算部101の計算結果は、範囲Fに収まる。この結果、判定部102は、取得データ(x1~x10)は、正常データであるとの判定結果を出力する。
【0053】
===まとめ===
以上、本実施形態の異常検知システム10について説明した。学習装置20の割当部51は、正常なデータを含むデータセット(所定の属性に属する複数のデータ)に対し、“0”または“1”を割り当てて、教師データを生成する(例えば、処理S21)。そして、学習部52は、入力されるデータx1~x10(入力データ)が、正常なデータ(所定の属性のデータ)であるか否かを判定するための学習モデル42の学習を、教師データを用いて行う(例えば、処理S22)。このため、本実施形態では、異常なサンプルデータを用いることなく、異常なデータ(異常値)を検出するための学習モデル42を構築できる。さらに、本実施形態では、学習モデル42の学習を行う際に、様々な回帰、分類を用いることができる。このため、一般的な異常値検出方法(例えば、One Class SVM)を用いる場合と比較して、学習モデル42が適用される分野等に合わせ、最適な学習モデル42を構築できる。
【0054】
また、例えば、割当部51は、データセット41に含まれるデータに、“0”または“1”を割り当てる際、所定のパターンに従って2値を割り当てても良い。なお、「所定のパターン」とは、例えば、“0”を100個割り当てた後に、“1”を100個割り当てる等、割り当てる値の個数や順番を決めて割り当てることをいう。一般に、データセット41に含まれるデータは、例えば時系列で取得されたデータであることが多い。したがって、割り当てる値の個数や順番を決めると、ノイズ等の影響を受けたデータの多くに同じ値が割り当てられることがある。本実施形態では、割当部51は、ランダムに2値を割り当てるため、データがノイズの影響を受けることを抑制できる。
【0055】
また、学習モデル42は、線形の分類モデル、または線形の回帰モデルであっても良い。ただし、線形のモデルが用いられた場合、一般に、正常なデータが入力された際の“出力y”の値と、異常なデータが入力された際の“出力y”の値との差が小さくなる。本実施形態では、学習モデル42として、非線形の分類モデルまたは、非線形の回帰モデルを用いている。したがって、一般に、正常なデータが入力された際の“出力y”の値と、異常なデータが入力された際の“出力y”の値との差が大きくなるため、精度良く異常データ(異常値)を検出できる。
【0056】
また、判定装置21は、正常なデータで構築された学習モデル42を用いることにより、異常なデータの有無を判定できる。したがって、異常なデータを多く収集することが困難な場合であっても、異常なデータの検知が可能となる。
【0057】
上記の実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。また、本発明は、その趣旨を逸脱することなく、変更や改良され得るとともに、本発明にはその等価物が含まれるのはいうまでもない。
【0058】
例えば、本実施形態のデータは、ショーケース300のセンサ310から出力されるデータx1~x10であったが、これに限られない。例えば、2値を割り当てるデータは、他の機器に設けられたセンサの出力や、サーバのアクセスログ等のデータであっても良い。このようなデータであっても、モデルの学習を行うことにより、異常値を検出することができる。
【0059】
また、割当部51は、データセット41に含まれるデータに、“0”または“1”を割り当てることとしたが、これらの値に限られない。例えば、割当部51は、データに“-1”または“1”等、異なる2つの値を割り当てればよい。
【0060】
また、範囲Fを定める閾値T1は、“0”より小さく、閾値T2は“1”より大きいこととしたが、これに限られない。例えば、閾値T1は、“0”以上であり、閾値T2は“1”以下であっても良い。このような場合であっても、異常値を検出することは可能である。
【符号の説明】
【0061】
10 異常検知システム
20 学習装置
21 判定装置
25 ネットワーク
30,70 CPU
31,71 メモリ
32,72 記憶装置
33,73 入力装置
34,74 表示装置
35,75 通信装置
40 制御プログラム
41,43 データセット
42 学習モデル
50,100 取得部
51 割当部
52 学習部
80 判定プログラム
81 判定データ
101 計算部
102 判定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13