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

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

▶ 学校法人慶應義塾の特許一覧 ▶ 国立大学法人 東京大学の特許一覧

特許7412699情報処理システム、情報処理装置、及びプログラム
<>
  • 特許-情報処理システム、情報処理装置、及びプログラム 図1
  • 特許-情報処理システム、情報処理装置、及びプログラム 図2
  • 特許-情報処理システム、情報処理装置、及びプログラム 図3
  • 特許-情報処理システム、情報処理装置、及びプログラム 図4
  • 特許-情報処理システム、情報処理装置、及びプログラム 図5
  • 特許-情報処理システム、情報処理装置、及びプログラム 図6
  • 特許-情報処理システム、情報処理装置、及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-04
(45)【発行日】2024-01-15
(54)【発明の名称】情報処理システム、情報処理装置、及びプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240105BHJP
【FI】
G06N20/00 130
【請求項の数】 8
(21)【出願番号】P 2020003865
(22)【出願日】2020-01-14
(65)【公開番号】P2021111219
(43)【公開日】2021-08-02
【審査請求日】2022-11-25
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業(チーム型研究(CREST))、「リアルタイム性と全データ性を両立するエッジ学習基盤」委託事業、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】598121341
【氏名又は名称】慶應義塾
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】松谷 宏紀
(72)【発明者】
【氏名】塚田 峰登
(72)【発明者】
【氏名】伊藤 怜
(72)【発明者】
【氏名】近藤 正章
【審査官】牛丸 太希
(56)【参考文献】
【文献】特開2019-215603(JP,A)
【文献】特開2018-195200(JP,A)
【文献】伊藤 怜 ほか,オンデバイス学習を用いた協調型モデル更新の高効率化,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2020年01月,第119巻、第371号,79-84頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数の情報処理装置を含む情報処理システムであって、
前記情報処理装置が、それぞれ、
互いに異なるデータの入力を逐次的に受け入れて、当該受け入れたデータに基づいて、所定の第1の推論器の第1のパラメータ情報を更新して、前記第1の推論器の機械学習処理を行う第1の学習処理手段と、
所定のタイミングごとに所定の第2の推論器の第2のパラメータ情報の初期化を行い、初期化の後に前記第1の学習処理手段が受け入れるデータと同じデータに基づいて、前記第2のパラメータ情報を更新して、第2の推論器の機械学習処理を行う第2の学習処理手段と、
他の情報処理装置の第2の学習処理手段が更新した第2のパラメータ情報に係るパラメータ更新情報を受け入れて、前記第1の推論器の第1のパラメータ情報の更新処理に供する追加学習処理手段と、
を含む情報処理システム。
【請求項2】
データの入力を逐次的に受け入れて、当該受け入れたデータに基づいて、所定の第1の推論器の第1のパラメータ情報を更新して、前記第1の推論器の機械学習処理を行う第1の学習処理手段と、
所定のタイミングごとに所定の第2の推論器の第2のパラメータ情報の初期化を行い、初期化の後に前記第1の学習処理手段が受け入れるデータと同じデータに基づいて、前記第2のパラメータ情報を更新して、第2の推論器の機械学習処理を行う第2の学習処理手段と、
他の情報処理装置の第2の学習処理手段が更新した第2のパラメータ情報に係るパラメータ更新情報を受け入れて、前記第1の推論器の第1のパラメータ情報の更新処理に供する追加学習処理手段と、を含む情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記第2の学習処理手段が更新した第2のパラメータ情報に係るパラメータ更新情報を生成する更新情報生成手段をさらに含み、
当該生成されたパラメータ更新情報が、他の情報処理装置へ送信されて前記追加学習手段による第1のパラメータ情報の更新処理に供される情報処理装置。
【請求項4】
請求項3に記載の情報処理装置であって、
前記更新情報生成手段がパラメータ更新情報を生成したときに、当該生成したパラメータ更新情報と、過去に送信したパラメータ更新情報とを比較し、当該比較の結果により、前記生成したパラメータ更新情報を送信するか否かを決定する情報処理装置。
【請求項5】
請求項3または4に記載の情報処理装置であって、
前記第1の推論器の推論精度を評価する手段をさらに有し、当該推論精度が所定の条件を満足する場合に、前記パラメータ更新情報を他の情報処理装置へ送信する情報処理装置。
【請求項6】
請求項3から5のいずれか一項に記載の情報処理装置であって、
前記更新情報生成手段がパラメータ更新情報を生成したときに、前記第1の推論器の第1のパラメータ情報と、送信先となる他の情報処理装置の第1の推論器の第1のパラメータ情報とを比較して、当該比較の結果により、前記生成したパラメータ更新情報を送信するか否かを決定する情報処理装置。
【請求項7】
請求項2から6のいずれか一項に記載の情報処理装置であって、
前記追加学習処理手段は、前記他の情報処理装置から当該他の情報処理装置の第1の推論器の第1のパラメータ情報を取得して、当該取得した第1のパラメータ情報と、自己の前記第1の推論器の第1のパラメータ情報とを比較し、当該比較の結果により、前記受け入れたパラメータ更新情報を、前記第1の推論器の第1のパラメータ情報の更新処理に供するか否かを決定する情報処理装置。
【請求項8】
コンピュータを、
データの入力を逐次的に受け入れて、当該受け入れたデータに基づいて、所定の第1の推論器の第1のパラメータ情報を更新して、前記第1の推論器の機械学習処理を行う第1の学習処理手段と、
所定のタイミングごとに所定の第2の推論器の第2のパラメータ情報の初期化を行い、初期化の後に前記第1の学習処理手段が受け入れるデータと同じデータに基づいて、前記第2のパラメータ情報を更新して、第2の推論器の機械学習処理を行う第2の学習処理手段と、
他の情報処理装置の第2の学習処理手段が更新した第2のパラメータ情報に係るパラメータ更新情報を受け入れて、前記第1の推論器の第1のパラメータ情報の更新処理に供する追加学習処理手段と、として機能させるプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、及びプログラムに関する。
【背景技術】
【0002】
近年、機械学習処理を利用した情報処理のシステムが広く利用されるようになってきている。具体的には、生産現場等での異常検知を行う情報処理装置などが開発されている。このような情報処理装置のうちには、予め収集された教師データを利用して機械学習処理を行っておき、機械学習後のモデルデータを利用して異常検知の動作を行うものがある。
【0003】
一方、機械学習機能を備えた情報処理装置を現場に配備したうえで、当該現場で逐次的に入力されるデータに基づいて機械学習処理を行う、オンデバイス学習と呼ばれる技術も近年広く研究されている。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許第10402469号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記オンデバイス学習では、リアルタイムで比較的高速なデータ処理が可能となっているが、単一の情報処理装置に入力されるデータは広く収集できるものではない。例えば生産現場のあるラインのある位置に配された情報処理装置Aに、当該情報処理装置Aが配された位置近傍の振動の振幅の情報を入力する場合、当該位置近傍より外の位置で異常な振動が発生したとしても、当該異常な振動のデータは情報処理装置Aには入力されない。つまり一つの情報処理装置が収集できるデータの範囲には制限があるのが実情である。
【0006】
そこで、特許文献1に開示されているように、他の情報処理装置にて機械学習したデータを取得する方法がある。この特許文献1に開示された方法を用いれば、ある情報処理装置で異常振動のデータを機械学習したモデルが生成できたときに、当該情報処理装置が機械学習したモデルを、他の情報処理装置のモデルに上書きして利用できる。
【0007】
しかしこの場合、モデルを上書きされた情報処理装置が、それぞれの位置で機械学習していた内容が破棄されてしまい、機械学習の効率を十分向上できない。
【0008】
本発明は上記実情に鑑みて為されたもので、機械学習処理を行う複数の情報処理装置を含む情報処理システムにおいて、その機械学習の効率を向上できる情報処理システム、及びそれに含まれる情報処理装置、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0009】
上記従来例の問題点を解決する本発明の一態様は、情報処理装置であって、データの入力を逐次的に受け入れて、当該受け入れたデータに基づいて、所定の第1の推論器の第1のパラメータ情報を更新して、前記第1の推論器の機械学習処理を行う第1の学習処理手段と、所定のタイミングごとに所定の第2の推論器の第2のパラメータ情報の初期化を行い、初期化の後に前記第1の学習処理手段が受け入れるデータと同じデータに基づいて、前記第2のパラメータ情報を更新して、第2の推論器の機械学習処理を行う第2の学習処理手段と、他の情報処理装置の第2の学習処理手段が更新した第2のパラメータ情報に係るパラメータ更新情報を受け入れて、前記第1の推論器の第1のパラメータ情報の更新処理に供する追加学習処理手段と、を含むこととしたものである。
【発明の効果】
【0010】
この情報処理装置によると、他の情報処理装置で生成されたパラメータ更新情報を用いた追加学習処理が行われるので、機械学習の効率を向上できる。
【図面の簡単な説明】
【0011】
図1】本発明の実施の形態に係る情報処理システムの例を表す構成ブロック図である。
図2】本発明の実施の形態に係る情報処理装置の例を表す構成ブロック図である。
図3】本発明の実施の形態に係る情報処理装置が用いる機械学習モデルの概要を表す説明図である。
図4】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
図5】本発明の実施の形態に係る情報処理装置の動作例を表す流れ図である。
図6】本発明の実施の形態に係る情報処理システムのもう一つの例を表す構成ブロック図である。
図7】本発明の実施の形態に係る情報処理システムの一例が処理の対象とする画像データの分割例を表す説明図である。
【発明を実施するための形態】
【0012】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システム1は、図1に例示するように、複数の情報処理装置10を含んで構成される。また、この情報処理システム1は、サーバ装置20をさらに含んでもよい。
【0013】
本実施の形態の例では、これら複数の情報処理装置10とサーバ装置20とは互いにネットワーク等の通信手段を介して通信可能に接続されているものとする。
【0014】
情報処理装置10は、図2に例示するように、制御部11と、記憶部12と、通信部13と、入出力部14とを含んで構成されている。
【0015】
制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態の一例では、この制御部11は、データの入力を逐次的に受け入れる。制御部11は、当該受け入れたデータに基づいて、所定の第1のパラメータ情報を更新する。ここで第1のパラメータ情報は、例えば記憶部12に格納された第1の機械学習モデルM1のパラメータ情報である。この第1の機械学習モデルM1が本発明の第1の推論器に相当する。
【0016】
またこの制御部11は、予め決められたタイミングごとに所定の第2のパラメータ情報を初期化する。また制御部11は、この初期化の後に入力される上記データに基づいて、第2のパラメータ情報を更新する。ここで第2のパラメータ情報は、例えば記憶部12に格納された第2の機械学習モデルM2のパラメータ情報である。この第2の機械学習モデルM2が本発明の第2の推論器に相当する。
【0017】
つまり、本実施の形態では制御部11は、逐次的に入力されるデータに基づいて第1の機械学習モデルM1のパラメータ情報を更新するとともに、同じデータに基づいて、所定のタイミングごとにパラメータ情報が初期化される、第2の機械学習モデルM2のパラメータ情報を更新する。
【0018】
制御部11は、さらに、他の情報処理装置10の第2の機械学習モデルM2のパラメータ情報に関するパラメータ更新情報を受け入れ、当該パラメータ更新情報に基づいて、第1のパラメータ情報を追加的に更新する。つまり、この制御部11は、他の情報処理装置10が生成したパラメータ更新情報を利用して、第1の機械学習モデルM1の機械学習を追加的に実行する。この制御部11の詳しい処理の内容については、後に説明する。
【0019】
記憶部12は、メモリデバイス等であり、制御部11によって実行されるプログラムを保持する。このプログラムは、DVD-ROM等のコンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。
【0020】
またこの記憶部12は、制御部11のワークメモリとしても動作する。本実施の形態の例では、この記憶部12には、制御部11によって機械学習処理が行われる複数の機械学習モデルのそれぞれのパラメータ情報が保持される。
【0021】
通信部13は、ネットワークインタフェース等であり、制御部11から入力される指示に従って、パラメータ更新情報を送信する。またこの通信部13は、他の情報処理装置10、あるいはサーバ装置20からパラメータ更新情報を受信すると、当該パラメータ更新情報を制御部11に出力する。
【0022】
入出力部14は、USB等のシリアルインタフェース、あるいはパラレルインタフェース等であり、センサS等が出力するデータの入力を受け入れる。例えばこのセンサSが加速度センサである場合、入出力部14は、このセンサSが出力する加速度のデータの入力を受け入れる。入出力部14は、こうして受け入れたデータを制御部11に出力する。
【0023】
次に、制御部11の動作について説明する。なお、以下の説明では、制御部11が機械学習処理を行う第1、第2の機械学習モデルM1,M2は、いずれも3層の全結合型のニューラルネットワークであるものとする。この例の3層の全結合型のニューラルネットワークは、図3に例示するように、機能的には、入力層21と、中間層(隠れ層)22と、出力層23とを含んで構成される。
【0024】
すなわちこの例では、第1の機械学習モデルM1は、入力データとなったベクトル値の各成分に対応する入力層21のノード21a,21b,…,21nと中間層22のノード22a,22b,…22Lとの間の結合重みをα(α1,α2,…,αL)(ここでαiは入力層21のノード数nに等しい次元のベクトル)、バイアスをb(b1,b2,…bL)とし、中間層22のノード22a,22b,…22Lと出力層23のノード23a,23b,…,23mとの間の結合重みをβ(β1,β2,…,βL)(ここでβiは出力層23のノード数mに等しい次元のベクトル)として設定したものである。本実施の形態の例では、後に説明するように、結合重みβのみが更新されるので、結合重みの値βが第1の機械学習モデルM1の第1のパラメータ情報に相当する。なお、第2の機械学習モデルM2についても結合重みβが第2のパラメータ情報に相当することは同様であるので、繰り返しての説明は省略する。もっとも、結合重みαやバイアスbも機械学習の際に更新する場合は、これらも第1のパラメータ情報(または第2のパラメータ情報)に含まれることとなる。
【0025】
本実施の形態の一例では、制御部11は、記憶部12に格納されたプログラムを実行することにより、図4に例示するように、機能的に、データ受入部31と、第1学習処理部32と、第2学習処理部33と、更新情報生成部34と、更新情報受入部35と、判定処理部36とを含む構成を実現する。
【0026】
データ受入部31は、データの入力を逐次的に受け入れる。本実施の形態の一例では、情報処理装置10は、例えば製品製造の現場等に配され、当該製品製造に用いる製造装置に取り付けられる。またこの情報処理装置10は、当該製造装置の振動や、温度等の種々の情報を検出して出力するセンサS(複数あってもよい)に接続される。情報処理装置10は、当該センサSの出力を所定のタイミングごと(例えば定期的なタイミングごと)に、繰り返しベクトルデータに変換して受け入れる。本実施の形態のある例では、データ受入部21は、当該センサSの出力を変換して得たベクトルデータを、第1、第2学習処理部32,33に出力する。なお、センサSの出力からベクトルデータを生成する方法は、機械学習を利用した種々の公知技術と同様の方法を採用できるため、ここでの詳しい説明は省略する。
【0027】
第1学習処理部32は、データ受入部31が受け入れたデータに基づいて、所定の、第1のパラメータ情報を更新する機械学習処理を行う。本実施の形態の一例では、第1学習処理部32は、記憶部12に格納された第1の機械学習モデルM1のパラメータ情報を更新して、その機械学習処理を行う。
【0028】
具体的に第1学習処理部32は、当初は入力層21と中間層22との結合重みα、及びバイアスbをランダムに決定する。なお、このとき、中間層22と出力層23との間の結合重みβもランダムに定めておいてもよい。そして第1学習処理部32は、結合重みαについては更新せず、中間層22と出力層23との間の結合重みβを機械学習の対象とする。つまり、ここでは第1の機械学習モデルM1と、第1学習処理部32とにより、ELM(Extreme Learning Machine)を実現している。このELMは、広く知られているので、ここでの詳細な説明は省略する。
【0029】
本実施の形態の例では、第1学習処理部32は、データ受入部31が受け入れた直近所定回数分(バッチサイズ分)のデータを、第1の機械学習モデルM1に対して入力データとして入力することとしてもよい。
【0030】
すなわち第1学習処理部32は、入力データをk個(kは1以上の自然数)だけ集めてバッチとし、このバッチを訓練データとする。
【0031】
ここで一つのバッチに含まれる入力データをxi(i=1,2,…,k)とし、入力層21と中間層22との間の結合重みをα(α=α1,α2,…,αL)、バイアスをb(b=b1,b2,…bL)、とするとき、中間層22の出力側の値を表す中間層行列Hを、
【数1】
と書くこととする。なお、この式でGは、中間層22の活性化関数を表す。
【0032】
第1学習処理部32は、バッチの入力データを入力したときの、第1の機械学習モデルM1の中間層22の出力側の値を表す中間層行列Hを求める。さらに第1学習処理部32は、この中間層行列Hと、バッチに含まれる入力データに対応する教師データtとを用いて、
【数2】
なる値(以下、中間データと呼ぶ)を求める。なお、本実施の形態の一例においてこの教師データは、センサSが検出した振動等が異常振動であるか否かを表す情報等であり、第1または第2の機械学習モデルM1,M2に対して入力データが入力されたときに、それぞれの出力層23が出力するべきデータを表すものである。この教師データは、入力データとなるデータとは別に入力されてもよい。
【0033】
第1学習処理部32は前回の機械学習の処理のときに求めた、これらU,Vの値が記憶部12に格納されているときには、当該記憶部12に格納されているU,Vの値に対して、新たに求めた中間データU,Vの値(便宜的にΔU,ΔVと書く)を加算して、中間データU,Vの値を更新する:
【数3】
【0034】
そして第1学習処理部32は、これらの中間データの値U′,V′を新たな中間データU,Vとして、これまでに格納されている中間データU,Vに置き換えて記憶部12に格納しておく。なお、第1学習処理部32は、前回の機械学習の処理のときに求めた中間データU,Vの値が記憶部12に格納されていなければ、新たに求めた中間データU,Vの値をそのまま記憶部12に格納する。
【0035】
また第1学習処理部32は、記憶部12に格納した中間データU,Vの値(求めた中間データU,Vの値、または新たな中間データU,Vとして置き換えて格納した中間データU′,V′の値)を用いて、中間層22と出力層23との間の結合重みβを、
【数4】
として求め、ここで求めたβの値(β1,β2,…,βL)に基づいて、中間層22と出力層23との間の結合重みを設定する。つまり、第i番目の中間層22から出力層23の各ノードへの結合重みをβiの対応する各成分によって定める。
【0036】
この演算により、結合重みを更新することの正当性については、後に説明することとする。
【0037】
また第1学習処理部32は、後に説明する更新情報受入部35から中間データU,Vが入力されると(便宜的に当該入力された中間データを、ΔU,ΔVと書く)を、現在記憶部12に格納している中間データ(第1学習処理部32自身が求めた中間データ)U,Vに加算して、既に述べた例と同様に中間データU,Vの値を更新する:
【数5】
ここで入力された中間データΔU,ΔVが、本発明のパラメータ更新情報に相当する。
【0038】
そして第1学習処理部32は、これらの中間データの値U′,V′を新たな中間データU,Vとして、これまでに格納されている中間データU,Vに置き換えて記憶部12に格納しておく。
【0039】
また第1学習処理部32は、記憶部12に格納した中間データU,Vの値(求めた中間データU,Vの値、または新たな中間データU,Vとして置き換えて格納した中間データU′,V′の値)を用いて、中間層22と出力層23との間の結合重みβを、
【数6】
として求め、ここで求めたβの値(β1,β2,…,βL)に基づいて、中間層22と出力層23との間の結合重みを設定する。つまり、第i番目の中間層22から出力層23の各ノードへの結合重みをβiの対応する各成分によって定める。このようにして、第1学習処理部32は、更新情報受入部35から入力される中間データに基づいて、第1の機械学習モデルM1の追加的機械学習を実行する。
【0040】
第2学習処理部33は、所定のタイミングごとに所定の第2のパラメータ情報の初期化を行い、初期化の後に第1学習処理部32が用いる入力データと同じ入力データに基づいて、所定の、第2のパラメータ情報を更新する機械学習処理を行う。すなわち、本実施の形態の一例では、第2学習処理部33は、初期化の後に、データ受入部31が受け入れた入力データに基づき、記憶部12に格納された第2の機械学習モデルM2のパラメータ情報を更新して、その機械学習処理を行う。また、所定のタイミングごとに、第2の機械学習モデルM2のパラメータ情報を初期化する。
【0041】
具体的に第2学習処理部33は、所定のタイミングごと(例えば予め定めた時間が経過するごと)に、第2の機械学習モデルM2の入力層21と中間層22との結合重みα、及びバイアスbをランダムに決定する(初期化)。なお、このとき、中間層22と出力層23との間の結合重みβもランダムに定めておいてもよい。そして第2学習処理部33は、結合重みαについては更新せず、中間層22と出力層23との間の結合重みβを機械学習の対象とする。つまり、ここでは第2の機械学習モデルM2と、第2学習処理部33とにより、ELM(Extreme Learning Machine)を実現している。
【0042】
また第2学習処理部33は、この初期化を行うタイミングが到来すると、後に説明する、記憶部12に格納した中間データU,Vを、更新情報生成部34に出力し、その後、初期化を行う際に、記憶部12から当該中間データU,Vを削除する。
【0043】
本実施の形態の例では、第2学習処理部33は、データ受入部31が受け入れた直近所定回数分(バッチサイズ分)のデータを、第2の機械学習モデルM2に対して入力データとして入力する。
【0044】
すなわち第2学習処理部33は、入力データをk個(kは1以上の自然数)だけ集めてバッチとし、このバッチを訓練データとする。
【0045】
第2学習処理部33は、第1学習処理部32における処理と同様に、バッチの入力データを入力したときの、第2の機械学習モデルM2の中間層22の出力側の値を表す中間層行列Hを求める。さらに第2学習処理部33は、この中間層行列Hと、バッチに含まれる入力データに対応する教師データt(第1学習処理部32が用いるものと同じ教師データ)とを用いて、
【数7】
なる中間データを求める。
【0046】
第2学習処理部33は前回の初期化の後、これまでに行った機械学習の処理のときに求めた、これら中間データU,Vの値が記憶部12に格納されているときには、当該記憶部12に格納されている中間データU,Vの値に対して、新たに求めた中間データU,Vの値(便宜的にΔU,ΔVと書く)を加算して、中間データU,Vの値を更新する:
【数8】
【0047】
そして第2学習処理部33は、これらの中間データU′,V′を新たな中間データU,Vとして、これまでに格納されている中間データU,Vに置き換えて記憶部12に格納しておく。なお、第2学習処理部33は、前回の機械学習の処理のときに求めた中間データU,Vの値が記憶部12に格納されていなければ、新たに求めた中間データU,Vの値をそのまま記憶部12に格納する。
【0048】
また第2学習処理部33は、記憶部12に格納した中間データU,Vの値(求めた中間データU,Vの値、または新たな中間データU,Vとして置き換えて格納した中間データU′,V′の値)を用いて、第2の機械学習モデルM2の中間層22と出力層23との間の結合重みβを、
【数9】
として求め、ここで求めたβの値(β1,β2,…,βL)に基づいて、第2の機械学習モデルM2の中間層22と出力層23との間の結合重みを設定する。つまり、第2の機械学習モデルM2の第i番目の中間層22から出力層23の各ノードへの結合重みをβiの対応する各成分によって定める。
【0049】
既に述べたように、この処理によって第2の機械学習モデルM2の結合重みβを更新することの正当性については、後に説明することとする。
【0050】
更新情報生成部34は、第2機械学習部33が第2の機械学習モデルM2を初期化するタイミングが到来するごとに出力する中間データU,Vを、更新情報として、予め定められた宛先に宛てて、送出する。ここで予め定められた宛先は、サーバ装置20であってもよいし、他の情報処理装置10であってもよい。
【0051】
更新情報受入部35は、サーバ装置20または他の情報処理装置10から中間データU,Vの入力を受け入れる。そして当該受け入れた中間データU,Vを、第1学習処理部32に出力する。
【0052】
判定処理部36は、第1学習処理部32によって機械学習処理が行われた第1の機械学習モデルM1を利用して、入力データに関する所定の判定処理を行う。具体的にこの判定処理部36は、データ受入部31に入力されたデータを入力データとして、第1の機械学習モデルM1に入力する。そして判定処理部36は、第1の機械学習モデルM1の出力層23が出力する出力データを得て、当該出力データに基づいて、判定結果を得る。
【0053】
例えば、上記教師データとして、センサSが検出した振動等が異常振動であるか否かを表す情報が用いられ、第1の機械学習モデルM1が、出力データとして、異常振動が生じたと判断される確率を表す情報を出力するよう、上記第1機械学習処理部32により機械学習された状態にあるとする。この場合、判定処理部36は、データ受入部31に入力されたデータを入力データとして、第1の機械学習モデルM1に入力したときに、第1の機械学習モデルM1が出力した確率の情報が予め定めたしきい値を超える場合に、製造装置等に異常が生じていると推定される旨を表す判定の結果を、図示しない出力手段であるディスプレイに出力するよう制御する等の処理を行う。
【0054】
[第1、第2の機械学習モデルのパラメータ更新の妥当性]
ここで、入力データxi(i=1,2,…,k)を含むバッチに基づいて、第1、第2学習処理部32,33が行う機械学習処理の正当性について説明する。
【0055】
以下では、機械学習の対象とする機械学習モデル(第1の機械学習モデルM1または第2の機械学習モデルM2)の入力層21と中間層22との間の結合重みをα(α=α1,α2,…,αL)、バイアスをb(b=b1,b2,…bL)、とする。
【0056】
ここで中間層22の出力側の値を表す中間層行列Hは、
【数10】
と書ける。なお、この式でGは、中間層22の活性化関数を表し、この中間層行列Hは、バッチの大きさkと、中間層22の次元Lとを用いてk×L行列となっている。
【0057】
このとき、このバッチに対する出力層23の出力は、次の行列で表される:
【数11】
なお、ここで中間層22と出力層23との間の結合重みの行列をβ(β=β1,β2,…,βL)としている。ここで、教師データをtとすると、結合重みβの最適解は、
【数12】
となる。
【0058】
ここで、
【数13】
は、Hの疑似逆行列であり、tは、バッチに含まれる各入力データに対する教師データ(対応する入力データが入力されたときに出力されるべき出力データ)を配列したものである。
【0059】
またこの(2)式において、行列Hのランクが中間層22の次元Lに一致し、かつ、
【数14】
が正則行列であるとすると、疑似逆行列は、
【数15】
と書くことができる。なお、右肩のTは転置を意味する(以下同じ)。
【0060】
従って、(2)式は、
【数16】
と表せる。ここで、
【数17】
とおくと、(3)式は、
【数18】
と表すことができる。
【0061】
第1学習処理部32は、各バッチが入力されるごとに、(3)式により
【数19】
を求めて結合重みβを上書きして更新することとしてもよいが、この場合、過去のバッチに含まれる入力データに基づく学習結果が失われることとなる。
【0062】
そこで本実施の形態の第1学習処理部32は、新たに入力されたk個の入力データを含むバッチを生成したときに次のような処理を行うこととする。なお、当該バッチと、中間層行列と、教師データとを、追加的に得られたバッチという意味で「Δ」を付して、
【数20】
と表記することとする。
【0063】
この例では、行列U,V(以下、これらの行列を中間結果行列と呼ぶ)に対応するΔU,ΔVは、
【数21】
となる。
【0064】
既に機械学習に供された入力データの全体をxと表記することとすると、新たに得られたバッチを追加した入力データは、
【数22】
と書くことができる。これに対する中間層行列、及び教師データを、それぞれH′,t′と書くと、対応する中間結果行列U′は、
【数23】
同様に、V′は、
【数24】
となる。
【0065】
つまり、中間結果行列U′,V′について、
【数25】
なる等式が成立する。
【0066】
従って、中間データについては、新たに得られた入力データ及び教師データに基づく中間データΔU,ΔVを、過去に得られた入力データ及び教師データに基づく中間データU,Vに加算することで、過去に得られた入力データ及び教師データと、新たに得られた入力データ及び教師データとの双方に基づく中間データとすることができる。これより、既に述べた第1、第2の機械学習モデルのパラメータ更新の妥当性が理解される。
【0067】
[OS(On-Line Sequential)-ELMを用いる例]
また、第1学習処理部32は、ここまでに説明した例に代えて、次のようにして機械学習処理を実行してもよい(第2学習処理部33における第2の機械学習モデルM2の機械学習処理についても同様)。
【0068】
すなわち第1学習処理部32は、複数のバッチ(それぞれが任意の自然数ki(i=1,2,…)個の入力データを含む)と、対応する教師データとの組
【数26】
が得られたとき、次のようにβを更新してもよい。ここで、上記(xi,ti)は、i番目のバッチにおける入力データと、対応する教師データとの組を表す。
【0069】
まず第1学習処理部32は、損失を求める。損失は、各バッチに対応する中間層行列Hi(i=1,2,…)を列方向に配列した中間層行列と、各パッチに対応する教師データtiを列方向に配列した教師データとを用いて、
【数27】
と表すことができる。ここで|X|は、ベクトルXの大きさを意味する。そしてこの損失を最小とするよう重みβiを更新する。具体的な演算のため、上記損失を最小(「0」)とする結合重みβを、
【数28】
ただし、
【数29】
と、漸化式の形としておく。さらに、
【数30】
を用いると、この漸化式は、
【数31】
と表すことができる。ただし、
【数32】
である。
【0070】
この(5)式で理解される通り、重みβと、P(以下では演算予備値と呼ぶ)とは、前回までに入力されたバッチに対応するβ、Pの値で表すことができる。このうち、(5)式での疑似逆行列
【数33】
の演算が比較的負荷が大きいが、バッチサイズを「1」(バッチに含まれる入力データの数を「1」)とすると、この
【数34】
はベクトルとなるので、当該ベクトルの各成分を、その逆数で置き換えることで疑似逆行列とすることができる。
【0071】
また、既に述べた、中間データU,Vと、上記演算予備値Pとは、既に述べたそれぞれの定義から明らかなように、
【数35】
の関係を有する。
【0072】
そこで、このOS-ELMを利用する例では、第1学習処理部32は、データ受入部31が受け入れる各入力データをバッチサイズ「1」のバッチとし、このバッチを訓練データとする。
【0073】
ここでi番目に入力するバッチに含まれる入力データ(一つの入力データ)をxiとし、入力層21と中間層22との間の結合重みをα、バイアスをbとして、i番目のバッチに対応する中間層22の出力側の値を表す中間層行列Hiを、
【数36】
と書くこととする。なお、この式でGは、中間層22の活性化関数を表す。この中間層行列Hiは、実質的には1×L次元の行列、つまりL次元のベクトルとなる。
【0074】
第1学習処理部32は、i番目のバッチの入力データを入力したときの、第1の機械学習モデルM1の中間層22の出力側の値を表す中間層行列Hiを求める。さらに第1学習処理部32は、この中間層行列Hiと、前回の(i-1番目までのバッチを入力したときの)演算予備値Pi-1とを用いて、(5)式により今回の演算予備値Piを求める。また第1学習処理部32は、さらに、第1の機械学習モデルM1の結合重みβiを、求めたPiと、i番目のバッチに含まれる入力データに対応する教師データtiと、現在(i-1番目までのバッチを入力したときに更新した)βi-1とを用いて(5)式により求める。そして第1学習処理部32は、演算予備値Piを記憶部12に格納しておく。
【0075】
なお、i=0(最初のバッチ)であったときには、前回の演算予備値Pi-1がないので、(6)式によりP0とβ0とを求めることとする。そして第1学習処理部32は、演算予備値P0を記憶部12に格納しておく。
【0076】
そして第1学習処理部32は、ここで求めたβiの値に基づいて、中間層22と出力層23との間の結合重みを更新して設定する。つまり、第j番目の中間層22から出力層23の各ノードへの結合重みをβiの対応する各第j番目の成分によって定める。
【0077】
また第1学習処理部32は、後に説明する更新情報受入部35から中間データとしてU,Vが入力されたとき(便宜的に当該入力された中間データをそれぞれΔU,ΔVと書く)には、(7)式の関係を用いて、
【数37】
を得る。なお、P,Vは、記憶部12に格納されている現在の演算予備値及び中間データであり、βは、現在の結合重みである。
【0078】
そして第1学習処理部32は、ここから、
【数38】
として、更新後の演算予備値P′と、更新した結合重みβ′とを求める。
【0079】
そして第1学習処理部32は、求めた演算予備値P′及び中間データV′を新たな演算予備値P及び中間データVとして、これまでに格納されている演算予備値P及び中間データVに置き換えて記憶部12に格納しておく。
【0080】
また第1学習処理部32は、ここで求めたβ′の値に基づいて、中間層22と出力層23との間の結合重みを設定する。このようにして、第1学習処理部32は、更新情報受入部35から入力される中間データであるΔU,ΔVに基づいて、第1の機械学習モデルM1の追加的機械学習を実行する。
【0081】
またこの例でも、第2学習処理部33は、所定のタイミングごとに所定の第2のパラメータ情報の初期化を行い、初期化の後に第1学習処理部32が用いる入力データと同じ入力データに基づいて、所定の、第2のパラメータ情報を更新する機械学習処理を行う。
【0082】
本実施の形態のこの例では、第2学習処理部33は、所定のタイミングごと(例えば予め定めた時間が経過するごと)に、第2の機械学習モデルM2の入力層21と中間層22との結合重みα、及びバイアスbをランダムに決定する(初期化)。なお、このとき、中間層22と出力層23との間の結合重みβもランダムに定めておいてもよい。
【0083】
また第2学習処理部33は、この初期化を行うタイミングが到来したとき、後に説明する、記憶部12に格納した中間データであるU,Vを、更新情報生成部34に出力し、その後、初期化の処理を行うときに記憶部12から当該中間データU,Vを削除する。
【0084】
本実施の形態の例では、第2学習処理部33は、データ受入部31が受け入れた直近所定回数分(バッチサイズ分)のデータを、第2の機械学習モデルM2に対して入力データとして入力する。ここでは第1学習処理部32におけるのと同様、バッチサイズを「1」とする。
【0085】
第2学習処理部33は、前回第2の機械学習モデルM2を初期化してから、当該第2の機械学習モデルM2にi番目のバッチの入力データを入力したときの、第2の機械学習モデルM2の中間層22の出力側の値を表す中間層行列Hiを求める。さらに第2学習処理部33は、この中間層行列Hiと、前回の(第2の機械学習モデルM2にi-1番目までのバッチを入力したときの)演算予備値Pi-1とを用いて、(5)式により今回の第2の機械学習モデルM2に係る演算予備値Piを求める。また第2学習処理部33は、さらに、第2の機械学習モデルM2の結合重みβiを、求めたPiと、i番目のバッチに含まれる入力データに対応する教師データtiと、現在(i-1番目までのバッチを入力したときに更新した)βi-1とを用いて(5)式により求める。そして第2学習処理部33は、演算予備値Piを第2の機械学習モデルM2に係る演算予備値として記憶部12に格納しておく。
【0086】
なお、i=0(最初のバッチ)であったときには、前回の演算予備値Pi-1がないので、(6)式によりP0とβ0とを求めることとする。そして第2学習処理部33は、第2の機械学習モデルM2に係る演算予備値として、当該演算予備値P0を記憶部12に格納しておく。
【0087】
そして第2学習処理部33は、ここで求めたβiの値に基づいて、第2の機械学習モデルM2の中間層22と出力層23との間の結合重みを更新して設定する。つまり、第2の機械学習モデルM2の第j番目の中間層22から出力層23の各ノードへの結合重みをβiの対応する各第j番目の成分によって定める。
【0088】
また第2学習処理部33は、(7)式により、第2の機械学習モデルM2に係る演算予備値P及び結合重みをβに対応する、第2の機械学習モデルM2に係る中間データU,Vを生成する。そして前回の初期化の後、これまでに行った機械学習の処理のときに求めた、これら第2の機械学習モデルM2に係る中間データU,Vの値が記憶部12に格納されているときには、当該記憶部12に格納されている第2の機械学習モデルM2に係る中間データU,Vの値に対して、新たに求めた第2の機械学習モデルM2に係る中間データU,Vの値(便宜的にΔU,ΔVと書く)を加算して、第2の機械学習モデルM2に係る中間データU,Vの値を更新する。
【0089】
そして第2学習処理部33は、これら更新後の、第2の機械学習モデルM2に係る中間データU,Vを、新たな第2の機械学習モデルM2に係る中間データU,Vとして、これまでに格納されている第2の機械学習モデルM2に係る中間データU,Vに置き換えて記憶部12に格納しておく。なお、第2学習処理部33は、初期化後に求めた、第2の機械学習モデルM2に係る中間データU,Vの値が記憶部12に格納されていなければ、新たに求めた第2の機械学習モデルM2に係る中間データU,Vの値をそのまま記憶部12に格納する。
【0090】
また第2学習処理部33は、記憶部12に格納した第2の機械学習モデルM2に係る中間データU,Vの値(求めた第2の機械学習モデルM2に係る中間データU,Vの値、または新たな第2の機械学習モデルM2に係る中間データU,Vとして置き換えて格納した中間データU,Vの値)を用いて、第2の機械学習モデルM2の中間層22と出力層23との間の結合重みβを(4)式により求め、ここで求めたβの値に基づいて、第2の機械学習モデルM2の中間層22と出力層23との間の結合重みを設定する。
【0091】
なお、更新情報生成部34、更新情報受入部35、判定処理部36の動作は既に説明した例と同様であるので、繰り返しての説明は省略する。
【0092】
[オートエンコーダとする例]
また、ここまでに説明した例では、教師データtが、入力データxとは別に提供される場合を含んでいたが、教師データtは、入力データxそのものであってもよい。この場合、第1、第2の機械学習モデルM1,M2における入力層21の次元nと、出力層23の次元mとは一致(n=m)させておき、入力層21に入力したデータxを、そのまま教師データtとする。つまり、第1学習処理部32及び第2学習処理部33は、入力データxがそのまま出力層23に出力されるよう、第1、第2の機械学習モデルM1,M2の結合重みβを更新することとなる。この例においても、既に述べた方法をそのまま利用できる。
【0093】
この例では、判定処理部36は、データ受入部31に入力されたデータを入力データとして、第1の機械学習モデルM1に入力した際、第1の機械学習モデルM1の出力層23が出力する出力データと入力データとの差(損失に相当するもので、二乗平均誤差でよい)が予め定めた値より大きい場合に、異常が生じていると推定される旨を表す判定の結果を、図示しない出力手段であるディスプレイに出力するよう制御する等の処理を行う。
【0094】
[動作]
本実施の形態は以上の構成を備えており、次のように動作する。以下の例では、情報処理システム1には、複数の情報処理装置10a,10b…が含まれるものとする。ここでの例では、各情報処理装置10a,b…は、例えば同一の機種の空調機A,B…にそれぞれ取り付けられた加速度センサSa,Sb…が出力するデータを、入力データとして受け入れるものとする。
【0095】
またここでは情報処理装置10同士が互いに直接、他の情報処理装置10との間で中間データを送受するものとする。さらに以下の例では、バッチサイズは「1」であるものとする。
【0096】
情報処理装置10aは、図5に例示するように、空調機Aに取り付けられたセンサSaから入力データを受け入れる(S11)。そして入力データを受け入れるごとに情報処理装置10aは、第1の機械学習モデルM1に対して当該入力データを入力する。そして情報処理装置10aは、第1の機械学習モデルM1の中間層22の出力側の値を表す中間層行列Hを求める。
【0097】
情報処理装置10aは、i番目の入力データを受け入れたときには、それに対応する中間層行列Hiを求める。そしてこの、中間層行列Hiと、前回までの演算予備値Pi-1とを用いて演算予備値Piを、(5)式を利用して求める。なおi=0の場合(最初の場合)は、(6)式により最初の演算予備値P0を定める。
【0098】
また、情報処理装置10aは、バッチに含まれる入力データに対応する教師データt(ここでは入力データそのものであるとする)と、上記求めた演算予備値Piとを用いて、(5)式により第1の機械学習モデルM1の中間層22と出力層23との間の結合重みの更新値β′を求め、当該求めた結合重みの更新値β′を、第1の機械学習モデルM1の中間層22と出力層23との間の結合重みβとして設定する(第1の機械学習処理:S12)。
【0099】
一方、情報処理装置10は、処理S11で空調機Aに取り付けられたセンサSaから入力データを受け入れるごとに、第2の機械学習モデルM2に対して当該入力データを入力する。そして情報処理装置10aは、第2の機械学習モデルM2の中間層22の出力側の値を表す中間層行列Hを求める。
【0100】
そして情報処理装置10aは、この第2の機械学習モデルM2に係る中間層行列Hと、前回第2の機械学習モデルM2を初期化してからj-1番目のバッチの入力に基づく機械学習処理で得られた演算予備値Pj-1とを用いて演算予備値Pjを、(5)式を利用して求める。なおj=0の場合(初期化後、最初の場合)は、(6)式により最初の演算予備値P0を定める。
【0101】
また、情報処理装置10aは、バッチに含まれる入力データに対応する教師データt(ここでは入力データそのもの)と、上記求めた第2の機械学習モデルM2に係る演算予備値Pjとを用いて、(5)式により第2の機械学習モデルM2の中間層22と出力層23との間の結合重みの更新値β′を求め、当該求めた結合重みの更新値β′を、第2の機械学習モデルM2の中間層22と出力層23との間の結合重みβとして設定する(第2の機械学習処理:S13)。
【0102】
情報処理装置10aは、さらに、(7)式により、第2の機械学習モデルM2に係る演算予備値Pjと、第2の機械学習モデルM2の中間層22と出力層23との間の結合重みβとに基づいて、中間データUj,Vjを求めておく(中間データ演算:S14)。
【0103】
一方、情報処理装置10aは、前回初期化した時点より予め定めた時間が経過したか否かを判断し(S15)、経過したと判断したときに(S15:Yes)、記憶部12に格納している第2の機械学習モデルM2に係る中間データUj,Vjを、他の情報処理装置10に対して送出する(S16)。なお、どの情報処理装置10に対して送出するかは予め設定により定めておくものとする。ここでは情報処理装置10aは、情報処理装置10bに対して中間データを送出するものとする。
【0104】
そして情報処理装置10aは、第2の機械学習モデルM2の入力層21と中間層22との結合重みα、及びバイアスbをランダムに決定し、また中間層22と出力層23との間の結合重みβもランダムに定める(S17:第2の機械学習モデルの初期化)。
【0105】
さらに情報処理装置10aは、記憶部12に格納している第2の機械学習モデルM2に係る中間データUj,Vjを削除する(S18)。またはこの中間データを、過去に送出した中間データとして別途記録してもよい。
【0106】
また処理S15において前回初期化した時点より予め定めた時間が経過していなければ(S15:No)、情報処理装置10aは、処理S16からS18をスキップして処理を続ける。
【0107】
情報処理装置10bでは、情報処理装置10aから中間データを受け入れる。ここでは便宜的に受け入れた中間データを、ΔU,ΔVと表記する。情報処理装置10bは、この時点で情報処理装置10bの記憶部12に格納している、第1の機械学習モデルM1に係る演算予備値Pと、第1の機械学習モデルM1の中間層22と出力層23との間の結合重みβとに基づいて、(7)式により中間データU,Vを求める(中間データ演算:S19)。
【0108】
そしてこの処理S19で求めた、第1の機械学習モデルM1に係る中間データU,Vに、これらΔU,ΔVをそれぞれ加算して、中間データU,Vの値を更新する(中間データ更新:S20):
【数39】
【0109】
そして情報処理装置10bは、これらの中間データの値U′,V′を新たな中間データU,Vとして、これまでに格納されている中間データU,Vに置き換えて記憶部12に格納しておく。
【0110】
また情報処理装置10bは、記憶部12に格納した中間データU,Vの値(を用いて、第1の機械学習モデルM1の中間層22と出力層23との間の結合重みβを(5)式により求める。そして情報処理装置10bは、ここで求めたβの値に基づいて、第1の機械学習モデルM1の中間層22と出力層23との間の結合重みを設定する(追加学習処理:S21)。
【0111】
なお、情報処理装置10aでも同様に、他の情報処理装置10から中間データΔU,ΔVを受け入れると、情報処理装置10bにおけるものと同様に、情報処理装置10aの第1の機械学習モデルM1に係る中間データを更新し、情報処理装置10aの第1の機械学習モデルM1の中間層22と出力層23との間の結合重みβを(5)式により求める。そして情報処理装置10aは、情報処理装置10aの第1の機械学習モデルM1の中間層22と出力層23との間の結合重みを設定する追加学習処理を行う。
【0112】
この例によると、例えばセンサSaが取り付けられている空調機Aに異常が生じたとき、情報処理装置10aは、異常時の入力データを受け入れて第1の機械学習モデルM1を機械学習するので、第1の機械学習モデルM1は異常時のデータがどのようなものかを機械学習した状態となる。
【0113】
一方で、この異常時の入力データに係る機械学習は、その直前に初期化された第2の機械学習モデルM2においても機械学習されており、その際の中間データΔU,ΔVが得られている。そしてこの中間データは、その後、情報処理装置10b等、他の情報処理装置10に送出される。
【0114】
そして情報処理装置10bが、情報処理装置10aで得られた異常時の入力データに基づく中間データΔU,ΔVを受け入れて、この中間データを自己の第1の機械学習モデルM1の中間データU,Vに加算して、結合重みの更新に用いる。このことで、空調機Bに取り付けられたセンサSbが異常時の入力データを得ていなくても、情報処理装置10bは異常時の入力データを機械学習した状態となる。
【0115】
そのうえ、情報処理装置10bでは、空調機Bから得られる入力データの機械学習の成果もそのまま保持された状態となる。
【0116】
[中間データの送出タイミング]
以上の例では、情報処理装置10は、中間データを、第2の機械学習モデルM2の初期化の際、つまり中間データを初期化する直前に送出することとしていた。しかしながら本実施の形態はこれに限られるものではない。
【0117】
例えば情報処理装置10は、第2の機械学習モデルM2の初期化のタイミングでないタイミングでも、中間データを送出してもよい。このタイミングは例えばユーザが指示したタイミング、あるいは、第1の機械学習モデルM1の損失が比較的大きい値から小さい値に変化したタイミングであってもよい。後者は、すなわち、入力データが異常と判断される可能性が高い状況から、正常と判断される可能性が高い状況に変化したことを意味する。
【0118】
[初期化の方法]
また第1,第2の機械学習モデルM1,M2の初期化の方法として、上述の例では、結合重みα,β及びバイアスb(さらに利用する場合は演算予備値P)をランダムに初期化していたが、この初期化の方法は次のようなものであってもよい。
【0119】
情報処理装置10は、第1,第2の機械学習モデルM1,M2の初期化の際、当該機械学習モデルの結合重みα,β(さらに利用する場合は演算予備値P)をランダムに設定し、バイアスbをすべて「0」としてもよい。
【0120】
また、情報処理装置10は、第1,第2の機械学習モデルM1,M2の初期化の際、当該機械学習モデルの結合重みα,β(さらに利用する場合は演算予備値P)、並びにバイアスbを、例えば他の情報処理装置10で決定した対応する値など、予め設定された値を取得して、当該取得した値を設定してもよい。この場合もバイアスbは取得せず、バイアスbをすべて「0」に設定してもよい。
【0121】
また、情報処理装置10は、第1,第2の機械学習モデルM1,M2の初期化の際、当該機械学習モデルの結合重みαとバイアスbとをランダムに決定しておき、結合重みβと、演算予備値Pとを、OS(On-Line Sequential)-ELM等で標準的に用いられている方法で設定することとしてもよい。
【0122】
[サーバにおける中間データの蓄積]
また、ここまでの説明では、情報処理装置10は、情報処理装置10同士で中間データを送受することとしていたが、本実施の形態はこの例に限られない。
【0123】
すなわち情報処理装置10が、中間データΔU,ΔVを、サーバ装置20に送出して、サーバ装置20が中間データΔU,ΔVを蓄積して保持し、当該保持する中間データの送信元とは異なる情報処理装置10に対して、当該保持する中間データを送出することとしてもよい。
【0124】
本実施の形態の一例では、サーバ装置20は、情報処理装置10から中間データΔU,ΔVを受信すると、当該中間データと、受信した日時を表す情報と、中間データの送信元である情報処理装置10を特定する情報とを関連付けて、中間データベースとして、蓄積して格納する。
【0125】
そしてサーバ装置20は、所定のタイミングが到来するごとに、中間データベースを参照し、蓄積している中間データのうち、未送信の中間データの一つを選択して、当該中間データの送信元である情報処理装置10とは異なる情報処理装置10に対して当該中間データを送出する。
【0126】
なお、サーバ装置20は、蓄積している中間データごとに、送信先とする情報処理装置10を選択してもよい。この選択は例えば中間データの送信元である情報処理装置10を特定する情報に基づいて行われてもよい。
【0127】
一例として、サーバ装置20の管理者は、情報処理装置10を特定する情報に対応づけて、当該情報で特定される情報処理装置10が送信した中間データの送信先となる情報処理装置10を特定する情報のリストを設定してもよい。このような設定は、例えば製造ラインが複数ある場合に、情報処理装置10a,bが第1の製造ラインのデータを入力データとして用い、情報処理装置10c,dが第2の製造ラインのデータを入力データとして用い…というように学習の対象を共有するべき情報処理装置10が組となっているときに有効である。
【0128】
具体的には、情報処理装置10aを送信元とする中間データは、第1の製造ラインに関係する他の情報処理装置10である情報処理装置10bへは送出するが、第1の製造ラインに関係しない、情報処理装置10c,dへは送出しないことと設定してもよい。
【0129】
またサーバ装置20は既に送信した中間データについては、削除するか、送信済みとして記録しておいてもよい。
【0130】
またサーバ装置20に中間データを蓄積する際には、当該中間データがどのような入力データを学習したものであるかを表す索引情報が関連付けて記録されてもよい。この索引情報は人為的に入力されて記録されるものであってよい。この索引情報は例えば、「空調機Aの異常振動」といったような文字列情報でよい。このような索引情報を記録しておけば、ある情報処理装置10に「空調機Aの異常振動」に係る機械学習を施したい場合に、利用者の指示に従い、「空調機Aの異常振動」との索引情報に関連付けられた中間データを検索し、検索により見出された中間データを、送信先として指定された情報処理装置10へ送出する。
【0131】
このように中間データを、学習した内容を索引に含めて関連付けて検索可能にしておくことで、必要な内容を学習している中間データを利用して、目的の機械学習モデルを機械学習させることができる。
【0132】
[中間データの送信条件]
また、ここまでの説明では、各情報処理装置10は、第2の機械学習モデルM2を初期化する際に中間データΔU,ΔVを送出することとしていたが、本実施の形態では、これら中間データΔU,ΔVを送出するか否かを所定の送信条件により判断してもよい。
【0133】
具体的に情報処理装置10は、過去に送信した中間データΔU,ΔVの少なくとも一部を削除せずに記憶しておく。そして情報処理装置10は、送出しようとする中間データΔU,ΔV(区別のため、ΔUcur,ΔVcurと表記する)と、記憶している、過去に送信した少なくとも一組の中間データΔU,ΔV(区別のため、ΔUold,ΔVoldと表記する)のそれぞれとの間の距離(Earth Mover’s Distanceなどの距離尺度を利用すればよい)d1,d2,…を求める。情報処理装置10は、ここで求めた距離d1,d2,…が、いずれも予め定めたしきい値dthより大きいことを上記所定の送信条件として、d1>dthかつ、d2>dthかつ…との送信条件を満足する場合に、求めた中間データΔUcur,ΔVcurを、他の情報処理装置10(またはサーバ装置20)へ送出する。
【0134】
ここで記憶しておく過去の中間データΔUold,ΔVoldは、直近の所定数回分でもよい。情報処理装置10は、記憶している過去に送信した中間データΔUold,ΔVoldのいずれかと、求めた中間データΔUcur,ΔVcurとの上記距離dが予め定めたしきい値dthを越えない場合は、当該中間データΔUcur,ΔVcurを、他の情報処理装置10(またはサーバ装置20)へ送出しないよう制御する。
【0135】
本実施の形態のこの例によると、追加学習を行うことが有意であると考えられる中間データに限り、情報処理装置10間で交換されるため、追加学習にかかる処理負荷が軽減され、また中間データの送受信に係る通信負荷も軽減される。
【0136】
[送信元を選択する例]
さらに本実施の形態の情報処理システム1では、情報処理装置10のうち、中間データΔU,ΔVを送信する情報処理装置10を、予め定めた選択条件に基づいて選択するようにしてもよい。
【0137】
ここで選択条件は、情報処理装置10の判定処理の精度(推論精度)の評価結果に基づくものであってもよい。一例として、各情報処理装置10は推論精度に関する情報を生成し、当該推論精度が予め定めたしきい値を超える情報処理装置10を、中間データΔU,ΔVを送信する情報処理装置10としてもよい。
【0138】
具体的に推論精度の情報は、正解となる出力データ(正解データ)が用意されている入力データを、第1の機械学習モデルM1に入力し、その出力データと対応する正解データとを比較することで得られる。例えば出力データと正解データとの距離が予め定めた距離しきい値を下回る場合に推論精度が十分であると判断する。
【0139】
そして推論精度が十分であると判断された情報処理装置10に限って、第2機械学習処理33を動作させて中間データΔU、ΔVを生成させ、他の情報処理装置10に送出させることとしてもよい。
【0140】
この例によると、推論精度の比較的高い情報処理装置10が用いた入力データに基づく機械学習の成果を、他の情報処理装置10でも共有できるため、機械学習の効率を向上できる。
【0141】
[中間データの送信先の選択]
また、中間データの送信先となる情報処理装置10は、送信元となる情報処理装置10ごとに予め定められていてもよいし、次の方法で選択されてもよい。
【0142】
本実施の形態の一例では、中間データの送信元となる情報処理装置10は、結合重みβが自己の結合重みβと比較的近接している他の情報処理装置10に対して中間データを送信することとしてもよい。
【0143】
具体的に本実施の形態の一例では、各情報処理装置10は、追加学習処理の対象となる第1の機械学習モデルM1における結合重みβを、他の情報処理装置10との間で共有する。そして、中間データの送信元となる情報処理装置10は、他の情報処理装置10の第1の機械学習モデルM1における結合重みβ(便宜的にβotherと表記する)と、自己の第1の機械学習モデルM1における結合重みβ(便宜的にβselfと表記する)とを比較し、これらが比較的近接している場合に、当該他の情報処理装置10を中間データの送信先とする。ここで結合重みβotherとβselfとが近接しているか否かは、これらの距離(|βother-βself|)が予め定めた、重み距離しきい値を下回るか否かにより判断すればよい。
【0144】
つまり中間データの送信元となる情報処理装置10は、他の情報処理装置10の第1の機械学習モデルM1における結合重みβotherと、自己の第1の機械学習モデルM1における結合重みβselfとの距離が、上記重み距離しきい値を下回る場合に、当該他の情報処理装置10を中間データの送信先とする。
【0145】
あるいは、本実施の形態では、情報処理装置10が中間データを送信する際、中間データとともに、当該送信元となった情報処理装置10の第1の機械学習モデルM1における結合重みβ(βother)を併せて送信することとしてもよい。
【0146】
この場合、当該中間データの送信元となった情報処理装置10から中間データと結合重みβotherを受信した情報処理装置10は、自己の第1の機械学習モデルM1における結合重みβselfと当該受信した結合重みβotherとの距離が、上記重み距離しきい値を下回る場合に、受信した中間データに基づく、第1の機械学習モデルM1に対する追加学習の処理を実行する。
【0147】
また、中間データと結合重みβotherを受信した情報処理装置10は、自己の第1の機械学習モデルM1における結合重みβselfと当該受信した結合重みβotherとの距離が、上記重み距離しきい値を下回らないときには、受信した中間データを破棄して、これに基づく第1の機械学習モデルM1の結合重みβselfの更新を行わないよう制御する。
【0148】
また、ここでは第1の機械学習モデルM1の結合重みβを互いに比較しているが、結合重みβに代えて、第1の機械学習モデルM1に係る中間データU,V同士を比較してもよい。この場合、上記のように結合重みβを共有する代わりに第1の機械学習モデルM1に係る中間データU,Vを共有するか、あるいは、中間データΔU,ΔVとともに結合重みβを送信する代わりに、第1の機械学習モデルM1に係る中間データU,Vを、中間データΔU,ΔVとともに送信すればよい。
【0149】
また中間データU,Vの比較も、中間データU間の距離と、中間データV間の距離とを演算することによって行うことができる。
【0150】
本実施の形態のこの例によると、機械学習の内容が比較的大きく相違する情報処理装置10間で中間データを交換して追加学習を行うことにより、機械学習の結果が不安定になる(経時的に大きく変動する)ことがないように制御できる。
【0151】
[中間データの共有方法の別の例]
また、本実施の形態の一例では、複数の情報処理装置10が、それぞれ生成した中間データを相互に共有することとしてもよい。この例では、当該複数の情報処理装置10を、仮想的にリング状のネットワーク上に配列する。
【0152】
具体的に情報処理装置10a,10b,10cの間で中間データを共有する場合、仮想的に情報処理装置10a→10b→10c→10a…というようにリング状のネットワークを形成する。
【0153】
そして情報処理装置10aは、送信の対象となった中間データを、このネットワークに従って隣接する情報処理装置10bに送出する。そして情報処理装置10bが当該受信した中間データに基づいて、その第1の機械学習モデルM1を追加学習する。一方、この情報処理装置10bは、自己が生成して送信の対象となった中間データを、上記ネットワーク上で隣接する情報処理装置10cに送出する。
【0154】
そして情報処理装置10cが当該受信した中間データに基づいて、その第1の機械学習モデルM1を追加学習する。以下、同様に情報処理装置10cが、自己が生成して送信の対象となった中間データを、上記ネットワーク上で隣接する情報処理装置10aに送出し…というように、中間データを順次循環させつつ共有することとしてもよい。
【0155】
[追加学習を行う情報処理装置の集中化]
また、ここまでの説明では、各情報処理装置10がそれぞれ中間データU,Vを送受して追加学習を行うこととしていたが、本実施の形態の一例では、一旦、特定の情報処理装置10が、複数の情報処理装置10を含む情報処理装置グループの代表として他の情報処理装置10が送出する中間データに基づく追加学習を行っておくこととしてもよい。そして、その後、当該代表となった情報処理装置10は、追加学習を行って生成した第1の機械学習モデルの結合重みβを、同じ情報処理装置グループに属する、他の(代表となった情報処理装置10以外の)情報処理装置10に対して送信して、それぞれの第1の機械学習モデルの結合重みβとして設定させることとしてもよい。
【0156】
この例は、複数の情報処理装置10で共通の結合重みβを用いた推論を行うこととする場合に有効である。
【0157】
[情報処理装置の統合]
さらに本実施の形態の一例では、各情報処理装置10の第1の機械学習モデルM1における結合重みβを互いに比較し、それぞれの結合重みβが予め定めた基準よりも近接していると判断される場合に、当該結合重みβが近接している情報処理装置10のうち一方の動作を停止させることとしてもよい。ここで結合重みが近接しているか否かの判断は、既に述べた例と同様、一対の結合重みβ1,β2の間の距離(|β1-β2|)が予め定めた、重み距離しきい値を下回るか否かにより判断すればよい。
【0158】
[行動分析の例]
また本実施の形態の情報処理装置10は、既に述べた例のように、製造装置に取り付けたセンサSの出力を入力データとするばかりでなく、他の種々の入力データについても適用できる。
【0159】
一例として本実施の形態の情報処理装置10は、撮像された人物の行動が異常な行動であるか否かを判断するシステムにも適用できる。ここで異常な行動とは例えば、転倒や、移動方向の急激な変更(Uターン等)などの行動を意味し、異常でない行動とは例えば、単なる通過(直線的移動)などの行動を意味するものとする。
【0160】
本実施の形態の一例では、情報処理システム1が、図6に例示するように、複数の情報処理装置10と、画像取得装置40とを含む。ここで画像取得装置40は、例えば通行人が往来する路上の所定の範囲(例えば路上の10メートル×20メートル程度の範囲)を撮像するカメラ41と、当該カメラが撮像した画像データを処理して、各情報処理装置10に対する入力データを生成するコントローラ42とを含む。
【0161】
このコントローラ42は、図7に例示するように、処理の対象とする、カメラ41が撮像した画像データを、例えば横4×縦3個の矩形状のブロックA,B,C…,Lに分割する。なお各ブロックは同一の形状であるものとする。また、分割の態様はこの例に限られない。この例では、コントローラ42は、各ブロック内の画像から得られるデータを、12個の情報処理装置10a,b,…,lのそれぞれの入力データとして、各情報処理装置10に出力する。図7では、ブロックごとに、対応する情報処理装置10を括弧書きで示している。なお、以下、あるブロックから得られたデータを処理する情報処理装置10と、当該ブロックを担当する情報処理装置10と呼ぶ。
【0162】
図7の例では、画像データの左上隅のブロックAから右方向へ順に、情報処理装置10a,b,c,dが処理を担当し、次の行では左側のブロックEから右へ順に、情報処理装置10e,f,g,hが処理を担当し…というように、いわゆるスキャンライン順に、各ブロックに関する処理を担当する情報処理装置10を定めている。
【0163】
またコントローラ42は、入力データを次の例のように生成する。すなわちコントローラ42は、処理の対象となった画像データから、人物が撮像されている領域を認識する。この認識の処理は、例えばYOLO(https://arxiv.org/abs/1506.02640)などのオブジェクト検出処理を適用して行う。
【0164】
コントローラ42は、認識した領域(複数の人物が認識されたときにはそれぞれの領域)の中心の位置を特定する。ここでは領域はいずれも人物に外接する矩形として認識されるものとし、その中心の位置は、矩形の頂点間を結ぶ対角線の交点とすればよい。
【0165】
コントローラ42は、上記ブロックごとに、認識した領域のそれぞれの中心の位置が当該ブロックに進入したときのブロックの外周上の位置を表す情報(座標情報)や進入方向(角度)と、当該中心の位置のブロック内の滞留時間と、当該中心の位置がブロックから退出するときのブロックの外周上の位置を表す情報(座標情報)や退出の方向(角度)と…などのデータを生成し、この生成したデータを、当該ブロックに対応する情報処理装置10の入力データとする。
【0166】
ここで座標情報は、ブロックごとにローカルな座標系によって定める。具体的にこの座標情報は、ブロック内の所定の点(例えばブロックの左上頂点の座標)を原点として表す。つまり、第1のブロックの中心点(ブロックの対角線の交点)と、第2のブロックの中心点とが互いに同じ座標情報となるようにしておく。
【0167】
コントローラ42は、人物を認識した領域の中心が含まれる(進入した場合を含む)か、あるいは退出したブロックについて、当該ブロックに対応する情報処理装置10に対し、上記生成した入力データを入力する。
【0168】
各情報処理装置10は、既に述べた方法でこの入力データを利用して、第1の機械学習モデルM1の機械学習処理を実行する。また、所定のタイミングごとに第2の機械学習モデルM2を初期化し、初期化してから次に初期化するまでに得られた入力データに基づいて第2の機械学習モデルM2の機械学習処理を行い、またその間に、中間データΔU,ΔVを生成する。
【0169】
各情報処理装置10は、得られた中間データΔU,ΔVを、自身とは異なる情報処理装置10に対して出力する。また、各情報処理装置10は、他の情報処理装置10から受け入れた中間データに基づいて第1の機械学習モデルM1の追加的な学習を実行する。この追加的な学習の処理では、既に述べたように、第1の機械学習モデルM1に係る中間データU,Vに、他の情報処理装置10から受け入れた中間データΔU,ΔVをそれぞれ加算する。そして情報処理装置10は、加算して得られた中間データに基づいて、第1の機械学習モデルM1の中間層22と出力層23との間の結合重みβの情報を演算する。
【0170】
なお、各情報処理装置10は、得られた中間データΔU,ΔVの送出先を例えば次のように定めてもよい。すなわち情報処理装置10は、処理の対象となる画像データの外周に沿って配列されたブロック(ブロックA,B,C,D,E,H,I,J,K,L)については、時計回り方向に隣接したブロック(例えばブロックAはブロックBへ、ブロックEはブロックAへ、ブロックJはブロックIへ…)へ送出することとしてもよい。また、画像データの内周に配列されたブロック(ブロックF,G)についてはそれぞれ相互に送出しあう(ブロックFはブロックGへ、ブロックGはブロックFへ送出する)ようにしてもよい。
【0171】
このように中間データの送出先を定めると、比較的類似する入力データを学習すると想定される、隣接したブロックのいずれか一つから中間データを受け入れることとなり、多数の中間データを処理する必要がないうえ、循環的に学習結果が共有されて、学習効率を向上できる。
【0172】
また別の例では、得られた学習データの数が十分でないブロックを担当する情報処理装置10に対して、他の情報処理装置10から中間データを送出するようにしてもよい。つまり、人物が通過せず、十分な学習データが得られないブロックを担当する情報処理装置10に対して、他のブロック(例えば隣接するブロック)を担当する情報処理装置10から中間データを提供することで、機械学習の不足を補うこととしてもよい。
【0173】
この例では、情報処理装置10は、予め定めた時間の間に第1の機械学習モデルM1の結合重みβを演算した回数をカウントしておく。ここで予め定めた時間は例えば起動時から所定の時間としてもよいし、第2の機械学習モデルを前回初期化した時点から次の初期化の時点までの時間であってもよい。
【0174】
また各情報処理装置10は、当該カウントして得たカウント値が予め定めたしきい値を下回る場合に、隣接するブロックを担当する情報処理装置10に対してカウント値を送出し、中間データを要求する。
【0175】
中間データの要求を受けた情報処理装置10は、当該要求とともに受信したカウント値(要求元のカウント値、以下要求側カウント値と呼ぶ)Crと、自己自身が予め定めた時間の間に第1の機械学習モデルM1の結合重みβを演算した回数をカウントして得たカウント値Csとを比較する。
【0176】
ここで例えばCs>Crであり、かつ、Csが予め定めたしきい値を超えるときに、情報処理装置10は、得られた中間データΔU,ΔVを、中間データの要求元の情報処理装置10へ送出する。
【0177】
この方法では、中間データを要求した情報処理装置10は、隣接する複数の情報処理装置10から中間データを受け取ることがあるが、複数の中間データを受信した場合には、受信した中間データのうちからランダムに選択するか、または自己が得ている中間データと、受信した、対応する中間データとを比較して、当該比較の結果に基づいて追加的な学習に用いる中間データを選択してもよい(複数の中間データを選択してもよい)。
【0178】
具体的には、例えば受信した中間データのうち、自己が得ている中間データと最も似ている(距離が最も小さい)中間データを選択することとしてもよいし、最も異なっている(距離が最も大きい)中間データを選択することとしてもよい。
【0179】
この例によると、例えばブロックGに相当する範囲を通過する人物が、他のブロックに比べて少なく、ブロックGを担当する情報処理装置10に入力される入力データの数が少ない場合に、ブロックGに隣接するブロックC,F,H,Kを担当する情報処理装置10から中間データΔU,ΔVを得ることができる。
【0180】
またここでは情報処理装置10自身が中間データの送信先を選択し、あるいは受信した中間データのうち追加的な学習に用いる中間データを選択しているが、ブロックを担当する情報処理装置10のうち一つ、あるいは、ブロックを担当する情報処理装置10とは異なるコンピュータ(例えばコントローラ42でもよい)をスーパーバイザとして、このスーパーバイザが、各ブロックを担当する情報処理装置10の上記カウント値を得て、当該カウント値を参照して次の処理を行ってもよい。
【0181】
すなわち、カウント値が予め定めたしきい値を下回る情報処理装置10があるときには、スーパーバイザは、当該カウント値が予め定めたしきい値を下回る情報処理装置10(目標情報処理装置と呼ぶ)が担当するブロックの周囲のブロックを担当する情報処理装置10のうち、カウント値が最も大きい情報処理装置10に対して、目標情報処理装置に対し、中間データΔU,ΔVを送信するよう指示してもよい。そしてこの指示を受けた情報処理装置10は、中間データΔU,ΔVを、目標情報処理装置へ送出する。
【0182】
本実施の形態のこの例では、各情報処理装置10の第1、第2の機械学習モデルM1,M2を、オートエンコーダとして機械学習することとする。また、学習処理中の入力データとしては、単に画像データとして撮像されている範囲内を人物が直線的に通過していくだけの画像データを機械学習する。
【0183】
その後、機械学習結果を利用して判定の処理を行う際には、情報処理装置10は、それぞれが担当するブロック内に、例えば人物が撮像された領域の中心が長時間に亘って滞留する場合に、学習されたデータとは異なる入力があった(異常が生じた)ものと判定する。そして情報処理システム1は、例えば異常が生じたと判定した情報処理装置10が担当するブロック内に中心が存在する人物の領域を、他の人物の領域とは区別可能な態様で(例えば領域の外周線をそれぞれ互いに違う色で)描画する等して、利用者に対し、異常の発生を報知する。
【0184】
これにより、例えば人物が撮像された範囲内で立ち止まった、あるいは転倒して動かなくなった、という状態にある場合に、警告を発することが可能となる。
【符号の説明】
【0185】
1 情報処理システム、10 情報処理装置、11 制御部、12 記憶部、13 通信部、14 入出力部、20 サーバ装置、21 入力層、22 中間層、23 出力層、31 データ受入部、32 第1学習処理部、33 第2学習処理部、34 更新情報生成部、35 更新情報受入部、36 判定処理部、40 画像取得装置、41 カメラ、42 コントローラ。

図1
図2
図3
図4
図5
図6
図7