(58)【調査した分野】(Int.Cl.,DB名)
前記第1サーバが、前記第1拠点の検査対象を診断する前記ニューラルネットワークに前記第3のモデルを適用し、適用後の前記第3のモデルによる推理結果の精度が所定の精度基準を満たした場合に、前記第3のモデルを前記複数の第2サーバと共有し、
各前記第2サーバが、前記第2拠点の検査対象を診断する前記ニューラルネットワークに前記第3のモデルを適用する
ことを特徴とする請求項4に記載の学習モデル作成システム。
各前記第2サーバは、自拠点で収集した検査データから自拠点の特徴的な情報を抽出したサンプルデータを、学習済みの前記第2のモデルから抽出した前記特徴量とともに、前記第1サーバに送信し、
前記第1サーバは、前記受信した前記サンプルデータ、及び前記受信した複数の特徴量と学習済みの前記第1のモデルの特徴量とを融合した特徴量に基づいて、前記第1のモデルを再構築し学習する
ことを特徴とする請求項3に記載の学習モデル作成システム。
前記特徴量送信ステップにおいて、各前記第2サーバは、自拠点で収集した検査データから自拠点の特徴的な情報を抽出したサンプルデータを、学習済みの前記第2のモデルから抽出した前記特徴量とともに、前記第1サーバに送信し、
前記共通モデル作成ステップにおいて、前記第1サーバは、前記受信した前記サンプルデータ、及び前記特徴量融合ステップで融合された特徴量に基づいて、前記第1のモデルを再構築し学習する
ことを特徴とする請求項11に記載の学習モデル作成方法。
【発明を実施するための形態】
【0014】
以下、図面を参照して、本発明の一実施形態を詳述する。
【0015】
(1)構成
図1は、本実施形態に係る学習モデル作成システムが適用される生産拠点の関係性を示す図である。
図1では、本実施形態に係る学習モデル作成システム1を適用可能な環境の一例として、工業製品の組立工程等の生産工程を行うために複数拠点に展開された生産拠点のイメージが示されており、1つのマザー工場(Mother Fab)10と、4つのチャイルド工場(Child Fab)20とが示されている。
【0016】
マザー工場10は、モデル工場として例えば本国に建設された生産拠点である。マザー工場10は、具体的には、量産化に向けた研究開発が行われる拠点、初期段階で生産が行われる拠点、最新設備が導入されて生産のノウハウが確立される拠点、またはコア部品等を生産する拠点、等が相当する。
【0017】
チャイルド工場20は、量産工場として例えば海外に建設された生産拠点である。なお、マザー工場10及びチャイルド工場20は、同じ工業製品に関する生産拠点という点で共通するが、各拠点で実施する生産工程(例えば組み付ける部品)や製造環境(例えば使用する機械)等は、異なるものであってよい。
【0018】
図1に示したように、マザー工場10は、中心的な役割を有しており、複数のチャイルド工場20から情報を収集するだけでなく、複数のチャイルド工場20に情報を展開したり、指示を出したりする。また、原則として、チャイルド工場20の間では直接に情報のやり取りを行わない。本実施形態では、このような上下関係を「Mother」と「Child」の語句を用いて表現する。
【0019】
例えば、
図1に示した「マザーモデル(Mother model)」は、Mother側の拠点に配置されたサーバ(マザーサーバ100)におけるニューラルネットワークのモデルを表すものであり、「チャイルドモデル(Child(n) model)」、Child側の拠点に配置されたサーバ(チャイルドサーバ200)におけるニューラルネットワークのモデルを表す。なお、「Child(n)」は個別のChildに対応した表現であって、
図1のようにチャイルド工場20が4つである場合、例えば「Child1」〜「Child4」と割り当てる。
【0020】
なお、複数拠点に展開される本実施形態に係る学習モデル作成システム1は、上記の各工場(マザー工場10、チャイルド工場20)をそれぞれ1つの拠点として適用することができる他、各工場内に設けられた生産ラインも拠点の単位とすることもできる。具体的には、
図1には、マザー工場10内に3本の生産ライン(ライン11〜13)が示され、各チャイルド工場20内にも3本の生産ライン(ライン21〜23)が示されている。各ラインは、例えば、実施される生産工程や製造環境、ラインの完成時期等が異なる場合に、別の生産ラインとして表すことができる。このとき、各ライン11〜13,21〜23がそれぞれ1拠点に相当すると考えてもよい。また、拠点の単位に工場及びラインを組み合わせてもよい。例えば、マザー工場10を1つの拠点とし、チャイルド工場20の各ライン21〜23を別の拠点とするとしてもよい。
【0021】
さらに、工場を拠点の単位とするときと同様に、ラインを拠点の単位とするときも、複数拠点の間にMother−Childの関係が成立する。例えば、マザー工場10に設けられたライン11〜13のうち、ライン11が最初に設置された生産ラインであって、残りのライン12,13はライン11で生産工程が確立された後に追加された生産ラインであるとすれば、ライン11がMother側となり、ライン12,13はChild側となる。なお、チャイルド工場20内の各ライン21〜23は何れもChild側である。
【0022】
このように本実施形態では、工場または工場内のラインを拠点の単位とすることができ、複数拠点の間にMother−Childの関係が成立する。以降の説明では、Mother側の拠点をマザー拠点と称し、Child側の拠点をチャイルド拠点と称する。
【0023】
図2は、学習モデル作成システムの概略構成例を示すブロック図である。
図2には、各拠点に1つのサーバが配置される場合の、学習モデル作成システム1の構成例が示されている。
【0024】
図2において、学習モデル作成システム1は、マザー拠点に配置されるマザーサーバ100と、複数のチャイルド拠点にそれぞれ配置されるチャイルドサーバ200と、を備えて構成される。各サーバは、ネットワーク300を介して通信可能に接続されるが、少なくともマザーサーバ100と各チャイルドサーバ200とが通信可能であればよく、チャイルドサーバ200同士の通信は制限されてもよい。詳細な構成は後述するが、学習モデル作成システム1が備える各拠点のサーバはそれぞれ、ニューラルネットワークを用いて、自拠点の生産工程における異常検知を行うことができる。具体的には、ニューラルネットワークのモデルは、生産工程のなかの工程検査において、自拠点で主に検査対象から取得された検査データを入力として、異常度を出力することにより、検査対象の状態を診断する。
【0025】
なお、
図2では、拠点ごとに1つのサーバが配置される場合の構成を示したが、学習モデル作成システム1が備えるサーバの構成はこれに限定されるものではなく、複数拠点の少なくとも一部について、2以上の拠点が1つのサーバで運用される構成であってもよい。具体的には例えば、生産ラインを拠点の単位とするときに、マザー工場10において、マザー拠点であるライン11とチャイルド拠点であるライン12,13を、1つのサーバで運用するようにしてもよい。但し、サーバの運用対象にマザー拠点が含まれる場合には、マザーサーバ100に相当する機能が必要である。また、学習モデル作成システム1は、マザー拠点かチャイルド拠点かによって配置されるサーバを使い分けるのではなく、マザーサーバ100が有する機能(
図5参照)とチャイルドサーバ200が有する機能(
図6参照)とを併せ持ったサーバを、両拠点で使用するようにしてもよい。なお、簡便のため、以降の説明では、
図2に示した構成を用いる。
【0026】
図3は、マザーサーバのハードウェア構成例を示すブロック図である。マザーサーバ100は、ニューラルネットワークを用いた学習を実行可能なGPUサーバであり、
図3に示したように、例えば、CPU(Central Processing Unit)31、ROM(Read Only Memory)32、RAM(Random Access Memory)33、補助記憶装置34、通信装置35、表示装置36、入力装置37、メディア取込装置38、及びGPU(Graphics Processing Unit)39を備える。各構成要素は一般に広く知られたデバイスであり、詳細な説明を省略する。
【0027】
なお、
図3に示すマザーサーバ100のハードウェア構成は、GPU39を備えている点で、後述するチャイルドサーバ200とは異なっている(
図4参照)。GPU39は、CPU31よりも高い演算性能を有するプロセッサであり、例えば特徴量の融合(
図13のステップS112)やマザーモデルの学習(
図12のステップS105、
図13のステップS114)等、大規模な並列計算が必要となる所定の処理の実行時に使用される。
【0028】
図4は、チャイルドサーバのハードウェア構成例を示すブロック図である。チャイルドサーバ200は、ニューラルネットワークを用いた学習を実行可能な汎用サーバであり(GPUサーバでもよい)、
図4に示したように、例えば、CPU41、ROM42、RAM43、補助記憶装置44、通信装置45、表示装置46、入力装置47、及びメディア取込装置48を備える。各構成要素は一般に広く知られたデバイスであり、詳細な説明を省略する。
【0029】
図5は、マザーサーバの機能構成例を示すブロック図である。
図5に示したように、マザーサーバ100は、外部システムインタフェース部101、データ取得部102、データ前処理部103、バージョン管理部104、モデル学習部105、モデル検証部106、モデル共有部107、特徴量取得部108、特徴量融合部109、モデル運用部110、検査データ保存部121、モデル保存部122、特徴量データ保存部123、及びモデル推理結果保存部124を備える。
【0030】
このうち、外部システムインタフェース部101は、
図3に示した通信装置35またはメディア取込装置38によって実現される。また、データを保存する機能を有する各機能部121〜124は、
図3に示したRAM33または補助記憶装置34によって実現される。また、その他の機能部102〜110は、
図3に示したCPU31(またはGPU39)が所定のプログラム処理を実行する等によって実現される。より具体的には、CPU31(またはGPU39)が、ROM32または補助記憶装置34に記憶されたプログラムをRAM33に読み出して実行することによって、所定のプログラム処理が適宜にメモリやインタフェース等を参照しながら実行される。
【0031】
外部システムインタフェース部101は、外部のシステム(例えばチャイルドサーバ200や生産工程の監視システム等)に接続するための機能を有する。外部システムインタフェース部101は、マザーサーバ100の他の機能部が外部のシステムとの間でデータを送受信するときに、当該システムと接続する、といった補助的な働きを行う。但し、簡略のため、以降では、外部システムインタフェース部101の記載を省略する。
【0032】
データ取得部102は、各工程検査において、工程検査で指定された種別の検査データを取得する機能を有する。工程検査は、検査対象における不良品の発生等を早期に検知するために、生産工程の所定時期で実施するように設定され、どのような検査データを取得するかは、工程検査ごとに予め指定することができる。
【0033】
データ前処理部103は、データ取得部102が取得した検査データに対して所定の加工処理を行う機能を有する。例えば、工程検査で測定された検査データが音響データ(波形データ)である場合に、波形データを画像に変換する処理(例えば、高速フーリエ変換(FFT:Fast Fourier Transform))を実行して、音響データをスペクトラム画像に変換する処理等が、上記加工処理に相当する。
【0034】
バージョン管理部104は、ニューラルネットワークのモデルのバージョンを管理する機能を有する。バージョン管理部104のバージョン管理に関連して、マザーモデルに関する情報はマザーモデル管理テーブル310としてモデル保存部122に保存され、各チャイルドモデルに関する情報は、チャイルドモデル管理テーブル320としてモデル保存部122に保存される。
【0035】
モデル学習部105は、マザーサーバ100のニューラルネットワークで用いるマザーモデルについて、ニューラルネットワークのモデル構築及びモデル学習を行う機能を有する。
【0036】
モデル学習部105によるマザーモデルのモデル構築は、収集したデータを学習用の学習データセット(または訓練用の訓練データセット)と評価用の検証データセットとに分け、学習データセットに基づいて、深層ニューラルネットワークモデルを構築する処理である。詳しく説明すると、モデル構築は、以下の処理ステップから構成される。
【0037】
まず、モデルのニューラルネットワーク構造(ネットワーク構造)が設計される。このとき、データ状況に応じて、畳み込みレイヤ、プーリングレイヤ、Recurrentレイヤ、活性化関数層、全統合レイヤ、Mergeレイヤ、Normalizationレイヤ(Batch Normalization等)などを最適に組み合わせて設計する。
【0038】
次に、モデルの損失関数の選定及び設計が行われる。損失関数は、測定データ(true data)とモデル予測値(predict data)間での誤差を計算する関数であり、その選定候補として、例えばカテゴリクロスエントロピーや2値交差エントロピー等が挙げられる。
【0039】
次に、モデルの最適化手法の選定及び設計が行われる。モデルの最適化手法は、ニューラルネットワークが学習するときに損失関数を最小にする、学習データ(または訓練データ)のパラメータ(重み)を見つけるための手法であり、その選定候補として、ミニバッチ勾配降下法、RMSprop、Adam等の勾配降下法(SGD:Stochastic Gradient Descent)が挙げられる。
【0040】
次に、モデルのハイパーパラメータが決定される。このとき、最適化手法で用いられるパラメータ(例えばSGDの学習率や学習率減衰)を決定し、また、モデルの過学習を抑えるために、所定のアルゴリズムのパラメータ(例えば、学習早期終了手法のepochの最小数や、Dropout手法のdropout rate等)を決定する。
【0041】
そして、最後に、モデル評価関数の選定及び設計が行われる。モデル評価関数は、モデルの性能を評価するために用いられる関数であり、精度を計算する関数が選定されることが多い。
【0042】
モデル学習部105によるマザーモデルのモデル学習は、GPU39を備えたGPUサーバ(マザーサーバ100)の環境下で行われ、モデル構築の段階で決定したネットワーク構造、損失関数、最適化手法、ハイパーパラメータ等に基づいて、GPU39の計算リソースを利用して、実際にモデル学習を行う処理である。モデル学習終了後のマザーモデル(学習済みモデル)は、モデル保存部122に保存される。
【0043】
モデル検証部106は、マザーモデルの学習済みモデルの精度検証を行う機能、及び、運用中のマザーモデルによる推理結果の精度検証を行う機能を有する。
【0044】
マザーモデルの学習済みモデルの精度検証を行う場合、モデル検証部106は、モデル構築の段階で決定されたモデル評価関数に基づいて、モデル保存部122に保存した学習済みモデルを読み出して、検証データセットを入力データとして、学習済みモデルで推論結果(推理結果)を計算し、その検証精度を出力する。検証データセットには例えば教師データを利用することができる。さらにモデル検証部106は、出力された検証精度を、事前に決めた所定の精度基準(モデル採用の精度基準)と比較することにより、当該学習済みモデル(マザーモデル)の採用可否を判定する。なお、精度検証の過程で計算された推理結果は、モデル推理結果保存部124に保存され、精度検証に用いた検証データセット及び精度検証で出力された検証精度(正解率)は、マザーモデル管理テーブル310に登録される。
【0045】
一方、運用中のマザーモデルによる推理結果の精度検証は、マザー拠点(マザーサーバ100)の本稼働環境にマザーモデルがデプロイされた後の所定のタイミングで実行される処理であって、マザー拠点において、運用中のモデルが運用可能な所定の精度基準(モデル運用の精度基準)を満たしているか否かを判定する。この精度検証の詳細は、
図13のステップS119の処理で後述する。
【0046】
モデル共有部107は、マザーモデルをチャイルドサーバ200と共有する機能を有する。マザーモデルを共有する場合、モデル共有部107は、各チャイルドサーバ200に、共有するモデルの設計情報(例えばネットワーク構造や特徴量等)を送信する。
【0047】
特徴量取得部108は、チャイルドサーバ200から受信したチャイルドモデルの特徴量及びデータ(小サンプル)を取得する機能を有する。詳細は後述するが、小サンプルは、各チャイルドサーバ200において収集した検査データから、チャイルド拠点の特徴的な情報が部分的に抽出されたデータであって、学習済みのチャイルドモデルの特徴量とともに、特徴量共有部207によってマザーサーバ100に共有されたとき、特徴量取得部108がこれを取得する。また、特徴量取得部108は、マザーサーバ100においてマザーモデルの特徴量を取得する機能も有する。特徴量取得部108が取得した特徴量及びデータは、特徴量データ保存部123に保存される。
【0048】
特徴量融合部109は、特徴量データ保存部123に保存された各モデルの特徴量を融合する機能を有する。特徴量融合部109による特徴量融合の具体的な手法例は、後で
図14及び
図15を参照しながら詳述する。特徴量融合部109によって融合された特徴量(融合特徴量)は、特徴量データ保存部123に保存される。
【0049】
モデル運用部110は、所定の学習済みモデルをマザー拠点(マザーサーバ100)の本稼働環境で運用する機能を有する。具体的には、モデル運用部110は、特徴量融合部109によって融合された融合特徴量を取り込んで構築されたマザーモデルがモデル採用の基準精度を達成した場合に、当該モデルをマザーサーバ100の本稼働環境(生産工程)にデプロイし、運用中は当該モデルを用いて入力データから推理(識別)を行い、その推理結果に対して監視を行う。
【0050】
検査データ保存部121は、データ取得部102が取得した検査データ、またはデータ前処理部103による加工処理が行われた後の検査データを保存する。
【0051】
モデル保存部122は、マザーモデル自体を保存する他、マザーモデル管理テーブル310、チャイルドモデル管理テーブル320、モデル運用管理テーブル340、及び教師データ管理テーブル350を保存する。
【0052】
特徴量データ保存部123は、マザーモデル及び各チャイルドモデルの特徴量、並びに、各チャイルド拠点の検査データから抽出されたデータ(小サンプル)を保存する。また、特徴量データ保存部123は、マザーモデル及び各チャイルドモデルの特徴量を融合した融合特徴量、及び、融合特徴量と融合特徴量を取り込んだマザーモデルとの対応を管理する特徴量管理テーブル330を保存する。
【0053】
モデル推理結果保存部124は、マザーモデルによる推理結果を保存する。
【0054】
なお、
図5に示した各機能部101〜124は、機能に応じて分類したものであり、必ずしも独立したモジュールで実現される必要はなく、複数の機能部が統合されてもよい。
【0055】
図6は、チャイルドサーバの機能構成例を示すブロック図である。
図6に示したように、チャイルドサーバ200は、外部システムインタフェース部201、データ取得部202、データ前処理部203、モデル学習部204、モデル検証部205、特徴量抽出部206、特徴量共有部207、モデル運用部208、検査データ保存部221、モデル保存部222、特徴量データ保存部223、及びモデル推理結果保存部224を備える。
【0056】
このうち、外部システムインタフェース部201は、
図4に示した通信装置45またはメディア取込装置48によって実現される。また、データを保存する機能を有する各機能部221〜224は、
図4に示したRAM43または補助記憶装置44によって実現される。また、その他の機能部202〜224は、
図4に示したCPU41が所定のプログラム処理を実行する等によって実現される。より具体的には、CPU41が、ROM42または補助記憶装置44に記憶されたプログラムをRAM43に読み出して実行することによって、所定のプログラム処理が適宜にメモリやインタフェース等を参照しながら実行される。
【0057】
以下、チャイルドサーバ200の各機能部201〜224について説明するが、マザーサーバ100の同名の機能部と同様の機能(マザーとチャイルドの語句を置き換えるだけのものを含む)を有するものについては、繰り返しの説明を省略する。
【0058】
モデル学習部204は、チャイルドサーバ200のニューラルネットワークで用いるチャイルドモデルについて、モデル構築及びモデル学習を行う機能を有する。
【0059】
モデル学習部204によるチャイルドモデルのモデル構築では、マザーサーバ100から共有されたマザーモデルの設計情報に基づいて、マザーモデルと同じネットワーク構造でチャイルドモデルが構築される。但し、精度向上のために、ハイパーパラメータ(例えば学習レートや学習回数等)は、チャイルド拠点に応じたチューニングが行われることが好ましい。その他のモデル構築の詳細は、マザーサーバ100によるモデル学習部105の処理と同様と考えてよい。
【0060】
また、モデル学習部204によるチャイルドモデルのモデル学習は、モデル構築の段階で決定したネットワーク構造、損失関数、最適化手法、ハイパーパラメータ等に基づいて、CPU41の計算リソースを利用して、能動学習(Active Learning)や転移学習(Transfer Learning)等を行う処理である。モデル学習終了後のチャイルドモデル(学習済みモデル)は、モデル保存部222に保存される。
【0061】
モデル検証部205は、チャイルドモデルの学習済みモデルの精度検証を行う機能、及び、運用中のチャイルドモデルによる推理結果の精度検証を行う機能を有する。このうち、チャイルドモデルの学習済みモデルの精度検証を行う処理は、モデル検証部106がマザーモデルの学習済みモデルの精度検証を行う処理と同様である。一方、運用中のチャイルドモデルによる推理結果の精度検証は、マザーサーバ100から共有されたマザーモデルがチャイルド拠点(チャイルドサーバ200)の本稼働環境にデプロイされた後の所定のタイミングで実行される処理であって、チャイルド拠点において、運用中のモデル(共有されたマザーモデル)が運用可能な所定の精度基準(モデル運用の精度基準)を満たしているか否かを判定する。この精度検証の詳細は、
図13のステップS213の処理で後述する。
【0062】
特徴量抽出部206は、チャイルドモデルの特徴量を抽出する機能、及び、チャイルド拠点で収集された検査データのうちから当該チャイルド拠点の特徴的なデータ(小サンプル)を抽出する機能を有する。特徴量抽出部206が抽出した特徴量及びデータ(小サンプル)は、特徴量データ保存部223に保存される。
【0063】
本実施形態において、モデルの特徴量は、当該モデルが運用される拠点または工程の特徴を表す情報であって、ニューラルネットワークを構成している階層の重み(係数)を組み合わせて表すことができる。例えば、あるモデルの特徴量を抽出する場合、当該モデルにおける複数層の階層構造のうち、当該モデルが運用される拠点の特徴を表す階層を選択し、選択した階層の重みを組み合わせた行列(ベクトル)によって、当該モデルの特徴量が抽出される。また、特徴量は教師データを用いて評価することができるため、例えば特徴量抽出部206は、最も良い評価結果が出る特徴量(チャイルド拠点の特徴を最も表す特徴量)を、チャイルドモデルの特徴量として抽出する。
【0064】
なお、モデルの特徴量を抽出する具体的な手法としては、例えば畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)の予測結果を視覚的に説明するGrad−CAM(Gradient-weighted Class Activation Mapping)という勾配手法を用いることができる。Grad−CAMを用いる場合、予測への影響重要度から特徴部位をヒートマップで強調して、特定情報を含めた階層の特徴量を特定することができる。
【0065】
また、本実施形態において小サンプルとは、チャイルドサーバ200において収集した検査データから、自チャイルド拠点に独自の特徴的な情報を部分的に抽出したデータである。自チャイルド拠点の特徴的な情報とは、チャイルド拠点で認識が間違っているデータ(チャイルド拠点だけで異常となったデータ)や、チャイルド拠点の生産工程に関する特徴的事項を示すデータ等である。特徴量抽出部206は、具体的には例えば、チャイルド拠点に騒音環境がある場合、その騒音環境下で生成されたデータを小サンプルとして抽出し、チャイルド拠点で他の拠点とは異なる材料や機械が用いられる場合は、その材料変更や機械変更を示すデータを小サンプルとして抽出する。
【0066】
なお、小サンプルの抽出件数は、抽出件数の範囲等を予め定めておいてもよいし(例えば数百件)、実際の生産状況に応じて抽出件数を変化させるようにしてもよいし、また、小サンプルの対象となるデータが非常に多い場合(例えば、誤認識となったデータが数千件に及ぶ等)には、対象となるデータからランダムに抽出するようにしてもよい。
【0067】
特徴量共有部207は、特徴量抽出部206によって抽出された特徴量及びデータ(小サンプル)をマザーサーバ100と共有する機能を有する。
【0068】
モデル保存部222は、自チャイルド拠点で用いるチャイルドモデル及び検証データセット、さらに、自チャイルド拠点に関するモデル管理テーブルを保存する。
【0069】
特徴量データ保存部223は、自チャイルド拠点で特徴量抽出部206が抽出した特徴量及びデータ(小サンプル)を保存する。特徴量データ保存部223に保存された特徴量及び小サンプルは、特徴量共有部207によってマザーサーバ100と共有される。
【0070】
(2)データ
本実施形態に係る学習モデル作成システム1で用いられるデータの一例を説明する。
【0071】
なお、本例ではテーブルデータ形式によるデータ構成を説明するが、本実施形態においてデータ形式はこれに限定されず、任意のデータ形式を採用することができる。また、各データの構成は、例示された構成例に限定されるものではない。例えば、
図7に例示するマザーモデル管理テーブル310や
図8に例示するチャイルドモデル管理テーブル320等において、各モデルに付されたバージョンの情報をさらに保持する等としてもよい。
【0072】
図7は、マザーモデル管理テーブルの一例を示す図である。マザーモデル管理テーブル310は、マザーサーバ100で構築されたマザーモデルを管理するためのテーブルデータであって、モデル保存部122に保存される。
【0073】
図7の場合、マザーモデル管理テーブル310は、対象モデル(マザーモデル)の識別子を示すモデルID311、対象モデルの学習期間の開始時期を示す学習開始期間312、対象モデルの学習期間の終了時期を示す学習終了期間313、対象モデルの精度検証を行う際に評価用に用いられたデータセット(検証データセット)を示す評価用データセット314、及び、精度検証において出力された検証精度を示す正解率315、等のデータ項目から構成される。
【0074】
本例では、
図7のモデルID311や
図8の親モデルID322に示したように、マザーモデルの識別子は、「MM」から始まる文字列で表される。一方、
図8のモデルID323に示したように、チャイルドモデルの識別子は、「Fab00n(チャイルド拠点の拠点IDと同じ)」から始まる文字列で表される。拠点IDについては、
図8の拠点ID321に示したように、チャイルド拠点の拠点IDを「Fab001」〜「Fab004」とし、マザー拠点の拠点IDを「Fab000」としている(
図11の拠点ID351参照)。
【0075】
図8は、チャイルドモデル管理テーブルの一例を示す図である。チャイルドモデル管理テーブル320は、マザーサーバ100が各チャイルド拠点(チャイルドサーバ200)で構築されたチャイルドモデルを管理するためのテーブルデータであって、モデル保存部122に保存される。
【0076】
図8の場合、チャイルドモデル管理テーブル320は、対象モデル(チャイルドモデル)が構築されたチャイルド拠点の識別子を示す拠点ID321、対象モデルを構築する際に元となった親モデル(マザーモデル)の識別子を示す親モデルID322、対象モデルの識別子を示すモデルID323、対象モデルの学習期間の開始時期を示す学習開始期間324、対象モデルの学習期間の終了時期を示す学習終了期間325、対象モデルの精度検証を行う際に評価用に用いられたデータセット(検証データセット)を示す評価用データセット326、精度検証において出力された検証精度を示す正解率327、及び、対象モデルから抽出された特徴量を示す特徴量328、等のデータ項目から構成される。評価用データセット326で示される検証データセットの実データも、モデル保存部122に保存される。
【0077】
なお、各チャイルドサーバ200のモデル保存部222でも、
図8のチャイルドモデル管理テーブル320と同様の構成を有するモデル管理テーブルが保存されるが、各チャイルドサーバ200では、自拠点以外で構築されたチャイルドモデルは管理する必要がないため、モデル保存部222は、チャイルドモデル管理テーブル320に含まれる各レコードのうち、自チャイルド拠点に関するレコードだけで構成されたモデル管理テーブルを保存すればよい。そしてモデル保存部222は、自チャイルド拠点で用いるチャイルドモデル及びその検証データセットの実データも保存する。
【0078】
図9は、特徴量管理テーブルの一例を示す図である。特徴量管理テーブル330は、マザーモデルを再構築した際に取り込んだ特徴量(融合特徴量)を管理するためのテーブルデータであって、特徴量データ保存部123に保存される。
【0079】
図9の場合、特徴量管理テーブル330は、再構築されたマザーモデルの識別子を示す融合先モデルID331と、当該マザーモデルの再構築に用いられた特徴量332との組み合わせを保持する。
図13のステップS112〜S113で後述するように、マザーサーバ100は、複数のチャイルドサーバ200から共有された特徴量を融合し、この融合した特徴量を取り込んでマザーモデルを再構築する。
【0080】
図10は、モデル運用管理テーブルの一例を示す図である。モデル運用管理テーブル340は、マザーサーバ100がモデルの運用及び監視に関する情報を管理するためのテーブルデータであって、モデル保存部122に保存される。
【0081】
図10の場合、モデル運用管理テーブル340は、モデルID341、拠点ID342、デプロイ日343、商品ID344、製品名345、製造番号346、予測確信度347、及び予測結果348、等のデータ項目から構成される。
【0082】
モデルID341には、対象モデル(運用されたモデル)の識別子が示され、拠点ID342には、対象モデルが運用された拠点の識別子が示され、デプロイ日343には、対象モデルが適用された日付が示される。また、商品ID344、製品名345、製造番号346には、工程検査の対象製品に関する情報として、製品が組み込まれる商品の識別子(商品ID)、製品名、シリアル番号(製造番号)が記録される。また、予測結果348には、上記製品に対する対象モデルを用いた異常検知の結果が示され、予測確信度347には、その結果の確信度が示される。
【0083】
なお、チャイルドサーバ200のモデル保存部222には、自拠点におけるモデル(チャイルドモデル)の運用及び監視に関して、モデル運用管理テーブル340と同様に構成されたモデル運用管理テーブルが保存される。
【0084】
図11は、教師データ管理テーブルの一例を示す図である。教師データ管理テーブル350は、マザーサーバ100によるマザーモデルのモデル更新判定時の精度検証(
図13のステップS119)に用いられる教師データを管理するためのテーブルデータであって、モデル保存部122に保存される。
【0085】
図11の場合、拠点ID351、商品ID352、製品名353、製造番号354、及び実績355等のデータ項目から構成される。拠点ID351の値は、
図8の拠点ID321や
図10の拠点ID342の値に対応する。また、商品ID352、製品名353、製造番号354の各値は、
図10の商品ID344、製品名345、製造番号345の値に対応する。また、実績355の値は、
図10の予測結果348の値に対応する。
【0086】
なお、教師データ管理テーブル350では、予め実績が明らかになっている教師データだけでなく、チャイルドサーバ200で抽出されてマザーサーバ100に共有された小サンプルのデータも、教師データとして管理することができる。このように小サンプルデータも教師データとすることにより、マザーサーバ100は、再構築したマザーモデルに対して、高精度な検証基準を課すことができる。
【0087】
(3)処理
図12は、主に初期モデルを構築するときの学習モデル作成システムによる処理手順例を示すフローチャートである。
図12のフローチャートは、マザーサーバ100側の処理とチャイルドサーバ200側の処理とに分かれているが、チャイルドサーバ200側の処理は、複数のチャイルド拠点のそれぞれで実行される。これは後述する
図13でも同様である。また、
図12に示した「A」、「B」は、後述する
図13に示す「A」、「B」と対応する。
【0088】
図12において、マザーサーバ100側の処理は、マザー拠点の生産工程における工程検査のタイミングで開始される。工程検査は生産工程のなかに複数回の実施タイミングが用意されてよい。また、マザーサーバ100側と同様に、チャイルドサーバ200側の処理も、自チャイルド拠点の生産工程における工程検査のタイミングで開始されるが、ステップS203以降の処理は、マザーサーバ100側のステップS108の処理が行われてから実行される。
【0089】
マザーサーバ100側の処理としては、まず、マザー拠点における工程検査のタイミングで、データ取得部102が、当該工程検査で指定された種別の検査データを収集し、収集した検査データを検査データ保存部121に保存する(ステップS101)。
【0090】
次に、データ前処理部103が、ステップS101で収集された検査データに対し、所定の加工処理を行う(ステップS102)。
【0091】
次に、バージョン管理部104が、モデル保存部122に格納されているマザーモデル管理テーブル310を参照して、初期モデルを構築する必要があるか否かを判定する(ステップS103)。初回処理時は、初期モデルとなるマザーモデル(Mother model v1.0)が構築されていないため、本ステップの判定結果はYESとなり、ステップS104に進む。一方、後述する
図13の処理を経て、「A」からステップS101の処理が再度行われた場合には、初期モデルとしてのマザーモデルがモデル保存部122に保存されている(すなわち、マザーモデル管理テーブル310に当該マザーモデルの管理情報が記録されている)ため、ステップS103の判定結果はNOとなる。この場合、ステップS108の処理後に進み、ステップS207でチャイルドサーバ200から特徴量及びデータが共有されるのを待ってから、再度、
図13の処理が行われる。
【0092】
そして、ステップS103で「YES」(初期モデルを構築する必要がある)と判定された場合、モデル学習部105が、初期モデルとなるマザーモデルを構築し(ステップS104)、構築したマザーモデル(初期モデル)にステップS102で加工処理を行った検査データを読み込んで、実際にモデル学習を行う(ステップS105)。そして、モデル学習部105は、学習済みのマザーモデル(Mother model v1.0)をモデル保存部122に保存するとともに、当該モデルに関する情報をマザーモデル管理テーブル310に登録する。
【0093】
次に、モデル検証部106が、ステップS105でモデル保存部122に保存した学習済みモデル(初期モデル)の精度検証を行う(ステップS106)。具体的には、モデル検証部106は、上記学習済みモデルを読み出して、所定の検証データセットを入力データとして当該モデルで推論結果(推理結果)を計算し、その検証精度を出力する。またこのとき、モデル検証部106は、精度検証に用いた検証データセットをマザーモデル管理テーブル310の評価用データセット314に登録するとともに、得られた検証精度を正解率315に登録する。
【0094】
次いで、モデル検証部106は、ステップS106で得られた検証精度が、モデルを採用可能な所定の精度基準を達成しているか否かを判定する(ステップS107)。上記精度基準は事前に定められており、例えば「精度90%」を基準値とする。この場合、モデル検証部106は、モデルの精度検証で得られた検証精度が90%以上であれば、当該モデルを採用してよいと判定し(ステップS107のYES)、ステップS108に進む。一方、モデルの精度検証で得られた検証精度が90%未満であれば、モデル検証部106は、当該モデルを採用できないと判定し(ステップS107のNO)、ステップS101に戻し、当該モデルを再学習させる処理に進む。なお、モデルを再学習させる場合には、モデルの検証精度を高めるために、ステップS101〜S105の処理内容を部分的に変更してもよく、例えば、ステップS101において収集する検査データを増やしたり、ステップS102において実施する加工処理を変更したり、ステップS106におけるモデル学習の学習方法を変更したりすることができる。
【0095】
そして、ステップS108では、モデル共有部107が、ステップS107で基準を達成した学習済みモデル(すなわち、ステップS104で初期モデルとして構築されたマザーモデルの学習済みモデル)を、各チャイルド拠点のチャイルドサーバ200と共有する。初期モデルの共有を行うとき、モデル共有部107は、各チャイルドサーバ200に学習済みの初期モデル(Mother model v1.0)の設計情報(例えばネットワーク構造や特徴量等)を送信する。そして、チャイルドサーバ200が、これら初期モデルの設計情報を受信して保存することにより、マザーサーバ100とチャイルドサーバ200との間で初期モデルが共有される。
【0096】
なお、
図12において、チャイルドサーバ200側では、自チャイルド拠点における工程検査のタイミングを契機として、データ取得部202が検査データを収集して検査データ保存部221に保存し(ステップS201)、さらにデータ前処理部203が検査データに対して所定の加工処理を行われている(ステップS202)。このステップS201〜S202の処理は、マザーサーバ100側のステップS101〜S102の処理と同様である。
【0097】
チャイルドサーバ200側では、ステップS102の処理が終了した後は、マザーサーバ100側でステップS108の処理が行われて初期モデルが共有されるまで、以降の処理を待機する。
【0098】
そして、ステップS108で初期モデルが共有されると、チャイルドサーバ200では、モデル学習部204が、マザーサーバ100から受け取った初期モデルの設計情報(例えばネットワーク構造や特徴量等)に基づいて、チャイルドモデルを構築する(ステップS203)。このとき例えば、構築するチャイルドモデルのネットワーク構造は、初期モデル(マザーモデル)と同じにしてよいが、チャイルドモデルの検証精度向上のために、ハイパーパラメータ(例えば学習レートや学習回数等)は、チャイルド拠点に応じたチューニングが行われることが好ましい。このようなチューニングが施されることによって、初期モデルをベースとしながらも、チャイルド拠点の特徴を加味したチャイルドモデルを構築することができる。
【0099】
次に、モデル学習部204が、ステップS203で構築したチャイルドモデルにステップS202で加工処理を行った検査データを読み込んで、モデル学習を行い、学習済みモデルをモデル保存部222に保存する(ステップS204)。ステップS204の学習では、具体的には例えば、能動学習(Active Learning)や転移学習(Transfer Learning)等を行う。また、モデル学習部204は、学習済みのチャイルドモデルについて、モデル保存部222に保存されているモデル管理テーブルを更新する。
【0100】
次に、モデル検証部205が、ステップS204でモデル保存部222に保存した学習済みのチャイルドモデルの精度検証を行う(ステップS205)。具体的には、モデル検証部205は、学習済みモデルを読み出して、所定の検証データセットを入力データとして当該モデルで推論結果(推理結果)を計算し、その検証精度を出力する。またこのとき、モデル検証部205は、精度検証に用いた検証データセットをモデル管理テーブルの評価用データセットとして登録するとともに、得られた検証精度を正解率として登録する。
【0101】
次に、特徴量抽出部206が、学習済みのチャイルドモデルの特徴量を抽出する(ステップS206)。ステップS206の処理が行われることにより、特徴量抽出部206の説明で詳述したように、チャイルド拠点の特徴を最も良く表す階層の係数の組み合わせが特徴量として抽出される。抽出された特徴量は、特徴量データ保存部223に保存される。
【0102】
また、ステップS206において特徴量抽出部206は、チャイルドサーバ200で収集された検査データ(データ取得部202が取得した検査データでもよいが、ステップS202で加工処理された後の検査データの方が好ましい)のうちから、自チャイルド拠点の特徴的な情報を小サンプルとして抽出する。抽出されたデータ(小サンプル)は、特徴量とともに特徴量データ保存部223に保存される。
【0103】
このように、特徴量抽出部206によって抽出される特徴量及び小サンプルは、各拠点における特徴を表すデータであり、チャイルドモデルの元になった初期モデル(マザーモデル)が共通であっても、各チャイルド拠点の生産工程や製造環境等が異なることから、チャイルド拠点(チャイルドサーバ200)ごとに、異なる特徴量及び小サンプルが抽出されることになる。
【0104】
次に、特徴量共有部207が、ステップS206で抽出された特徴量及びデータ(小サンプル)をマザーサーバ100と共有する(ステップS207)。
【0105】
特徴量共有部207は、特徴量及びデータを共有するとき、チャイルドサーバ200からマザーサーバ100に特徴量及びデータを送信する。その後、チャイルドサーバ200は、後述する
図13のステップS120でマザーサーバ100からモデルが共有されるまで、待機状態に移行する。
【0106】
一方、マザーサーバ100は、ステップS108で初期モデルを共有した後は、各チャイルドサーバ200でステップS207の処理が行われて、特徴量及びデータが共有されるまで待機し、その後、
図13のステップS111の処理が行われる。
【0107】
以上、
図12に示した一連の処理が行われることにより、マザー拠点(マザーサーバ100)で学習された初期モデルがそれぞれのチャイルド拠点(チャイルドサーバ200)で共有され、各チャイルド拠点においては、共有された初期モデルに基づいて構築されたチャイルドモデルの学習を経て、各チャイルド拠点の生産工程や製造環境等を反映した特徴量及び小サンプルが抽出される。さらに、各チャイルド拠点の特徴量及び小サンプルがマザー拠点(マザーサーバ100)共有されることで、各チャイルド拠点の特徴を表す十分な情報をマザー拠点にフィードバックすることができる。
【0108】
図13は、チャイルドサーバから特徴量及びデータが共有された後の学習モデル作成システムによる処理手順例を示すフローチャートである。
【0109】
図13において、マザーサーバ100側の処理は、
図12のステップS207において、チャイルドサーバ200による特徴量及びデータの共有が行われた後の、任意のタイミングで開始される。具体的な開始タイミングとしては例えば、半年に1回のような定期的な実行としてもよいし、所定数(1や全てを含む)のチャイルド拠点(チャイルドサーバ200)から特徴量及びデータの共有が行われたときに実行するとしてもよいし、特定のチャイルド拠点(チャイルドサーバ200)から特徴量及びデータの共有が行われるまで待ってから実行する、等としてもよい。
【0110】
マザーサーバ100側の処理としてはまず、
図12のステップS207の処理が行われたことを受けて、特徴量取得部108が、チャイルドサーバ200から送信された特徴量及びデータ(小サンプル)を受信し、特徴量データ保存部123に保存する(ステップS111)。このチャイルドサーバ200からの特徴量及びデータの共有は、複数展開されたチャイルド拠点のそれぞれのチャイルドサーバ200から実施される。また、ステップS111において、特徴量取得部108は、マザーサーバ100におけるマザーモデル(Mother model v1.0)の特徴量を取得し、チャイルドモデルの特徴量と同様に、特徴量データ保存部123に保存する。
【0111】
次に、特徴量融合部109が、ステップS111で取得した特徴量(マザーモデル及び各チャイルドモデルの特徴量)を融合する(ステップS112)。ここで、マザー拠点及び各チャイルド拠点において、初期モデルは共通であっても、各拠点で学習する特徴量は異なるものであり、ステップS112の処理では、これらの特徴量が融合される。
【0112】
次に、モデル学習部105が、ステップS112で融合された融合特徴量を取り込んで、マザーモデルを再構築する(ステップS113)。ステップS113でマザーモデルを再構築するときの手法は、
図12のステップS104で初期モデルを構築するときの手法と同様でよい。但し、ステップS113では、融合特徴量を取り込むために、例えば、従来のマザーモデル(Mother model v1.0)のネットワーク構造の一部階層の特徴量に対して融合特徴量によるフィードバックを掛けてから、マザーモデルを再構築する。また、ステップS111で取得した小サンプルに基づいて、再構築されるマザーモデルのハイパーパラメータの値を変更するようにしてもよい。
【0113】
次に、モデル学習部105は、ステップS113で再構築したマザーモデルに、検査データを読込んで実際にモデル学習を行う(ステップS114)。そしてモデル学習部105は、学習済みのマザーモデル(Mother model v1.1)の設計情報をモデル保存部122に保存するとともに、当該モデルに関する管理情報をマザーモデル管理テーブル310に登録する。また、モデル学習部105は、マザーモデルの識別子(融合先モデルID331)と、その再構築に用いた融合特徴量(特徴量332)とを紐付けて、特徴量管理テーブル330に登録する。
【0114】
ここで、
図14及び
図15に、上記したステップS111〜S114の具体的な処理イメージの一例を示す。
図14は、特徴量の抽出からモデル再学習にかけての具体的手法の一例を説明する図であり、
図15は、その別例を説明する図である。
【0115】
具体的には、
図14、
図15の何れの手法も、まず、総数nの拠点(マザー拠点及びチャイルド拠点)で用いられるn個のモデル(Mother model v1.0、Child1 model v1.0、…、Child(n-1) model v1.0)の中間層から、各モデルの特徴量をベクトルで抽出する(多次元特徴ベクトルの抽出)。抽出された特徴量は、「少量生産」、「ノイズが多い環境」、「電力不安定な環境」といったように、各拠点の特徴を表すものである。
【0116】
次に、
図14の手法では、抽出したn個m次元特徴ベクトルをN×Mの行列に変換する(特徴量融合)。そして、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)でモデルを再学習することにより、各拠点の特徴量がフィードバックされ学習済みマザーモデル(Mother model v1.1)を生成することができる。
【0117】
一方、
図15の手法では、抽出したn個の多次元特徴ベクトルを1つのベクトルに連結する(特徴量融合)。そして融合した特徴量を用いて、数回層の多層パーセプトロン(MLP:Multilayer Perceptron)でモデルを再学習することにより、各拠点の特徴量がフィードバックされ学習済みマザーモデル(Mother model v1.1)が生成される。
【0118】
図13の説明に戻る。ステップS114において再構築したマザーモデルの学習(再学習)が行われた後、モデル検証部106が、ステップS114でモデル保存部122に保存した学習済みモデル(Mother model v1.1)の精度検証を行う(ステップS115)。具体的には、モデル検証部106は、上記学習済みモデルを読み出して、所定の検証データセットを入力データとして当該モデルで推論結果(推理結果)を計算し、その検証精度を出力する。またこのとき、モデル検証部106は、精度検証に用いた検証データセットをマザーモデル管理テーブル310の評価用データセット314に登録するとともに、得られた検証精度を正解率315に登録する。
【0119】
次いで、モデル検証部106は、ステップS115で得られた検証精度が、モデルを採用可能な所定の精度基準を達成しているか否かを判定する(ステップS116)。ステップS116の処理は、
図12のステップS107の処理と同様であり、詳細な説明は省略する。ステップS116において、モデル検証部106が上記精度基準を達成していると判定した場合は(ステップS116のYES)、ステップS117に進み、上記精度基準を達成していないと判定した場合は(ステップS116のNO)、
図12のステップS101に戻る。
【0120】
ステップS117では、モデル運用部110が、再構築された学習済みモデル(Mother model v1.1)を、マザーサーバ100の本稼働環境に適用(デプロイ)し、運用を開始する。言い換えると、ステップS117のデプロイによって、再構築された学習済みモデルがマザー拠点の生産工程に載せられる。
【0121】
ステップS117の後、デプロイされたモデルの運用中に、モデル運用部110は、当該モデルを用いて、入力データから推理(識別)を行い、その推理結果に対して監視を行う(ステップS118)。
【0122】
そして、デプロイ後の所定のタイミング(例えば3か月後)で、モデル検証部106が、デプロイされたモデルによる推理結果の精度を検証し、モデルを運用可能な所定の精度基準を満たしているか否かを判定する(ステップS119)。
【0123】
ステップS119の処理について詳しく説明する。ステップS119の判定処理は、マザーモデルの性能を評価する処理であって、例えば、教師データが保持されている場合(教師データ管理テーブル350参照)には、モデル検証部106は、これを用いてモデルの推理結果の精度を計算するようにしてもよい。また、予め用意された教師データが存在しない場合には、モデル検証部106は、チャイルド拠点から収集した情報に基づいて、マザーモデルの性能を評価するようにしてもよい。この場合、具体的には例えば、定期的にチャイルド拠点の生産工程から一定少数のサンプルデータ(例えば数百件)をランダムに抽出し、現場エンジニアに判断させた結果を「True label」としてラベルを付け、これをマザーモデルの検証データセットとする。そして、この検証データセットを入力データとしてマザーモデルの推論結果(推理結果)を計算し、推理結果と上記現場エンジニアの判断結果とを比較することにより、モデルの推理結果の精度(現場エンジニアの判断結果との一致率)を計算することができる。
【0124】
そしてモデル検証部106は、上記のようにして算出されたモデルの推理結果の精度が、モデルの運用継続に関する所定の精度基準(モデル運用の精度基準)を満たしているか否かを判定する。モデル運用の精度基準は、生産拠点の現場責任者等との相談で決めてよく、例えば「精度90%」の基準値とすることができる。また、「現バージョンのモデル(Mother model v1.1)による推理結果の精度が、1つ前のバージョンのモデル(Mother model v1.0)による推理結果の精度よりも向上していること」をモデル運用の精度基準としてもよく、または、上記2つの精度基準を組み合わせる等してもよい。モデルの推理結果の精度がモデル運用の精度基準を満たす場合には(ステップS119のYES)、モデルの運用継続を許可し、ステップS120に進む。一方、モデルの推理結果の精度がモデル運用の精度基準を満たさない場合は(ステップS119のNO)、モデルの運用継続を否定し、ステップS101に戻ってマザーモデルを再学習させる処理に進む。マザーモデルを再学習させる場合には、
図12のステップS107のNOの場合と同様に、モデルの検証精度を高めるために、その後のステップS101〜S105の処理内容を部分的に変更してもよい。
【0125】
ステップS119においてモデルの運用継続が許可された場合、モデル共有部107は、ステップS119で基準を達成した学習済みモデル、すなわちマザーサーバ100で運用中のマザーモデル(Mother model v1.1)を、各チャイルド拠点のチャイルドサーバ200と共有する(ステップS120)。ステップS120におけるモデル共有の具体的な手法は、
図12のステップS108の処理と同様でよく、詳細な説明を省略する。
【0126】
そして、ステップS120のモデル共有を受けて、共有先のチャイルドサーバ200では、モデル運用部208が、共有したマザーモデル(Mother model v1.1)を、チャイルドサーバ200で異常検知に用いるチャイルドモデルとして適用(デプロイ)し、運用を開始する(ステップS211)。言い換えると、このデプロイによって、マザーサーバ100から配布された学習済みモデルがチャイルド拠点の生産工程に展開される。
【0127】
ステップS211の後、デプロイされたモデルの運用中に、モデル運用部208は、当該モデルを用いて、入力データから推理(識別)を行い、その推理結果に対して監視を行う(ステップS212)。
【0128】
そして、デプロイ後の所定のタイミング(例えば1か月後)で、モデル検証部205が、デプロイされたモデルによる推理結果の精度を検証し、モデルを運用可能な所定の精度基準を満たしているか否かを判定する(ステップS213)。ここで、ステップS213の判定処理は、チャイルドモデルの性能を評価する処理であって、例えば、教師データが保持されている場合には、モデル検証部205は、これを用いてモデルの推理結果の精度を計算するようにしてもよい。また、予め用意された教師データが存在しない場合には、モデル検証部205は、自チャイルド拠点から収集した情報に基づいて、チャイルドモデルの性能を評価するようにしてもよい。この場合、具体的には例えば、自チャイルド拠点から一定少数のサンプルデータ(例えば数百件)をランダムに抽出し、現場エンジニアに判断させた結果を「True label」としてラベルを付け、その「True label」に基づいて、モデルの推理結果の精度(現場エンジニアの判断結果との一致率)を計算することができる。そしてモデル検証部205は、上記のようにして算出されたモデルの推理結果の精度が、所定の基準値(生産拠点の現場責任者等との相談で決めてよく、例えば「精度90%」)を達成しているか否かを判定する。
【0129】
ステップS213において、デプロイされたモデルによる推理結果の精度が所定の基準値以上であった場合は(ステップS213のYES)、モデルの運用継続が許可される。この結果、マザーサーバ100とチャイルドサーバ200の双方において、同一のモデル(Mother model v1.1)について、所定の精度基準が達成されて、運用継続可能と判断される。したがって、学習モデル作成システム1は、マザーサーバ100またはチャイルドサーバ200が配置された複数拠点において、各拠点で異常検知を行うために用いられるニューラルネットワークのモデルに、各拠点で運用可能な精度を有するロバストな共通モデルを適用することができる。
【0130】
一方、ステップS213において、デプロイされたモデルによる推理結果の精度が所定の基準値未満であった場合は(ステップS213のNO)、モデルの運用継続が否定される。この場合は、
図12のステップS201に戻り、チャイルド拠点における検査データを再収集する処理に進む。ステップS201に戻った後は、新しい検査データを取得して、改めて特徴量及び小サンプルを再抽出し(ステップS206)、これをマザーサーバ100と共有することにより(ステップS207)、マザーサーバ100においてステップS112以降の処理が行われ、モデルを再構築させて再度学習させることができる。学習モデル作成システム1では、ステップS213においてチャイルドモデルの運用継続に関する精度基準が達成できなかった場合に、上記処理を繰り返すことにより、マザー拠点(マザーサーバ100)にチャイルド拠点における特徴を繰り返しフィードバックできるため、最終的には各拠点に適応するロバストな共通モデルの構築に期待できる。
【0131】
なお、
図13には示していないが、ステップS213で何れの判定結果が得られた場合でも、チャイルドサーバ200からマザーサーバ100にその判定結果を通知することが好ましい。このような判定結果が通知されることにより、マザーサーバ100は、共通モデル(Mother model v1.1)の展開が成功したか否かを早期に認識することができる。また、通知に基づいて、種々の管理テーブル等を更新すれば、マザーサーバ100は、最新の情報でモデル管理を行うことができる。また、ステップS213で精度基準を達成できなかった場合に、アラートを発生させる等すれば、チャイルド拠点において適切なモデル運用が行われていないことが報知されるため、必要に応じて、早急に検査データの再収集を行ってマザーモデルの再構築を依頼する等といった対策を行うことも支援できる。
【0132】
以上に説明した
図12及び
図13の一連の処理をまとめると、本実施形態に係る学習モデル作成システム1は、以下のような処理を行うものである。まず、マザー拠点(マザーサーバ100)で構築及び学習された学習済みモデルを初期モデルとして各チャイルド拠点と共有する(
図12のステップS108)。そして、各チャイルド拠点(チャイルドサーバ200)では、この共通する初期モデルに基づくチャイルドモデルの構築及び学習を経て、自拠点の特徴に起因する情報(特徴量及び小サンプル)を抽出し(
図12のステップS206)、マザー拠点に共有する(
図12のステップS207)。そして、マザー拠点では、マザー拠点を含む各拠点の特徴量を融合した特徴量を用いてマザーモデルを再構築し学習することにより、マザー拠点及び各チャイルド拠点の特徴をフィードバックした学習済みモデルを生成することができる(
図13のステップS110〜S114)。さらに、マザー拠点では、再構築したマザーモデルの学習済みモデルが運用可能な精度基準を満たす場合に、この学習済みモデルを共通モデルとして、自拠点だけでなく各チャイルド拠点の本稼働環境(生産工程)にも適用する。この結果、学習モデル作成システム1は、検査対象の状態を診断するニューラルネットワークにおいて、各拠点で得られた特徴的な情報を拠点間で早期に連携(学習モデルを共有)し、各拠点の周辺環境や加工条件に耐えられるロバストな共通モデルを早期に構築することができる。
【0133】
また、本実施形態に係る学習モデル作成システム1は、多様な環境や材料等が展開されるグローバルな複数のチャイルド拠点を対象として、様々な情報(特徴量及び小サンプル)を収集し、これを共通モデルに反映させることにより、より精度の高い共通モデルに反映させることができる。
【0134】
また、本実施形態に係る学習モデル作成システム1は、マザー拠点(マザーサーバ100)と複数のチャイルド拠点(チャイルドサーバ200)とで共通のモデルを適用することから、複数のチャイルド拠点の間でも学習結果が共有できる。すなわち、他の拠点で発生し、将来的には自拠点でも発生し得る事象(異常)を事前に学習できるため、各拠点の不良要因を早期に把握することに期待できる。
【0135】
また、従来技術では、チャイルド拠点の状況をマザー拠点に通知する場合、チャイルド拠点で収集された検査データの全てを送信しないと精度的に不十分となる可能性が高かったが、本実施形態に係る学習モデル作成システム1では、
図12のステップS206〜S207で説明したように、検査データの一部(小サンプル)とともに特徴量をマザーサーバ100に渡すようにしたことで、比較的少ないデータ量でマザー拠点(マザーサーバ100)に、チャイルド拠点(チャイルドサーバ200)に関する十分な情報を送信することができるため、通信負荷や処理負荷を低減する効果が期待できる。
【0136】
また、
図13に示した処理では、複数のチャイルドサーバ200から収集した特徴量及びデータ(小サンプル)に基づいて再構築したマザーモデルを、マザーサーバ100で先に適用してモデル監視を行い、その推理結果の精度が運用継続の基準を満たす場合に、チャイルドサーバ200と共有する、という処理進行を採用したことにより、マザー拠点の本稼働環境でモデルの安全性を確認してから、各チャイルド拠点に共通モデルを展開することができるため、各チャイルド拠点における運用継続の基準達成の未達を抑制する効果に期待できる。但し、本実施形態における学習モデルの共有方法は
図13に示した処理手順に限定されるものではなく、例えば別の処理進行として、上記再構築したマザーモデルを、マザーサーバ100側で運用継続の基準達成を確認する前に、チャイルドサーバ200と共有し、各チャイルドサーバ200側でモデル適用してモデル監視を行い、その推理結果の精度が運用継続の基準を満たすかを判定するようにしてもよい。具体的な処理の流れとしては、ステップS116でYESと判定された場合に、ステップS120に移行し、チャイルドサーバ200側でステップS211〜S213の処理を行う。そして、チャイルドサーバ200でステップS213の処理が終了した後に、マザーサーバ100のステップS117〜S119の処理を行うとすればよい。この場合、マザー拠点における安全性の確認は後回しになるが、各チャイルド拠点に共通モデルをより早期に展開できるという効果が得られる。
【0137】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0138】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0139】
また、図面において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。