(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】モデル更新装置、方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231205BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2020032223
(22)【出願日】2020-02-27
【審査請求日】2022-12-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】阿部 泰明
(72)【発明者】
【氏名】上山 勇樹
(72)【発明者】
【氏名】稲本 修治
(72)【発明者】
【氏名】伊藤 喜輝
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2019-28824(JP,A)
【文献】特開2018-129033(JP,A)
【文献】特開2018-45559(JP,A)
【文献】特開平4-299444(JP,A)
【文献】特開平2-98771(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
説明変数に対する目的変数を出力するモデルに入力する説明変数を取得する取得部と、
説明変数空間を分割した各領域に、各領域に含まれる説明変数が前記取得部により取得された頻度を対応付けると共に、前記モデルの学習に利用された学習データに含まれる説明変数が属する領域であって、前記取得部により取得された説明変数の頻度が所定値以下の領域を特定する特定部と、
前記特定部により特定された領域に属する説明変数を含む学習データを忘却させるように前記モデルを更新する更新部と、
を含むモデル更新装置。
【請求項2】
前記更新部は、前記モデルにおいて、忘却させる学習データで学習された部分を除去することにより、前記モデルを更新する請求項1に記載のモデル更新装置。
【請求項3】
前記更新部は、忘却させる学習データを除いた学習データを利用して前記モデルを再学習することにより、前記モデルを更新する請求項1に記載のモデル更新装置。
【請求項4】
前記モデルの推論精度を判定する判定部を含み、
前記取得部は、前記説明変数を前記モデルへ入力した際の目的変数、及び前記説明変数に対する期待値を取得し、
前記判定部は、前記取得部により取得された前記目的変数と前記期待値とに基づいて、前記推論精度が所定の精度を満たしているか否かを判定し、
前記更新部は、前記判定部により前記推論精度が前記所定の精度を満たしていないと判定された場合に、前記取得部により取得された説明変数に対応する期待値を、前記説明変数に対する新たな目的変数とする学習データを利用して前記モデルを追加学習することにより、前記モデルを更新する
請求項1~請求項3のいずれか1項に記載のモデル更新装置。
【請求項5】
前記更新部は、前記新たな目的変数に対応する説明変数であって、前記新たな目的変数以外の目的変数と対応付けられている説明変数を含む学習データを忘却させるように前記モデルを更新する請求項4に記載のモデル更新装置。
【請求項6】
前記モデルから出力された目的変数から、制御対象を制御するための制御信号を生成して出力する制御部を含む請求項1~請求項5のいずれか1項に記載のモデル更新装置。
【請求項7】
取得部が、説明変数に対する目的変数を出力するモデルに入力する説明変数を取得し、
特定部が、説明変数空間を分割した各領域に、各領域に含まれる説明変数が前記取得部により取得された頻度を対応付けると共に、前記モデルの学習に利用された学習データに含まれる説明変数が属する領域であって、前記取得部により取得された説明変数の頻度が所定値以下の領域を特定し、
更新部が、前記特定部により特定された領域に属する説明変数を含む学習データを忘却させるように前記モデルを更新する
モデル更新方法。
【請求項8】
コンピュータを、
説明変数に対する目的変数を出力するモデルに入力する説明変数を取得する取得部、
説明変数空間を分割した各領域に、各領域に含まれる説明変数が前記取得部により取得された頻度を対応付けると共に、前記モデルの学習に利用された学習データに含まれる説明変数が属する領域であって、前記取得部により取得された説明変数の頻度が所定値以下の領域を特定する特定部、及び、
前記特定部により特定された領域に属する説明変数を含む学習データを忘却させるように前記モデルを更新する更新部
として機能させるためのモデル更新プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデル更新装置、モデル更新方法、及びモデル更新プログラムに関する。
【背景技術】
【0002】
入力された説明変数に対する目的変数を推論して出力するように予め学習されたモデルに対して、追加学習や再学習を行うことにより、モデルの推論精度を維持又は向上させることが行われている。
【0003】
例えば、機械設備の故障予知精度を向上させる技術が提案されている。この技術は、機械設備に設けられた複数のセンサのセンサデータを収集し、センサデータのうち、機械設備が正常状態にあった所定期間分、及び、任意の評価時における評価分を抽出する。また、この技術は、正常期間分を用いた機械学習の実行によって、機械設備における相関モデルを生成し、正常期間分を相関モデルへの入力によって得られる相関モデルの出力値より正常期間分のサンプルデータを導出する。そして、この技術は、評価分を相関モデル入力によって得られる相関モデル出力値により機械設備の正常状態からの乖離度を評価し、乖離度に基づいて機械設備の故障予兆を判定する。さらに、この技術は、抽出される誤検知に対応するセンサデータを含む追加学習分、及び、正常期間分のサンプルデータがともに反映されるよう機械学習の実行によって、相関モデルを更新する(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、モデルが想定している推論対象の全体的な状態に変化があった場合などには、新たな学習データを追加学習するだけでは、推論精度が向上しない場合がある。
【0006】
本発明は、上記の点に鑑みてなされたものであり、モデルの推論精度を効果的に向上させるように、モデルを更新することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明に係るモデル更新装置は、説明変数に対する目的変数を出力するモデルに入力する説明変数を取得する取得部と、説明変数空間を分割した各領域に、各領域に含まれる説明変数が前記取得部により取得された頻度を対応付けると共に、前記モデルの学習に利用された学習データに含まれる説明変数が属する領域であって、前記取得部により取得された説明変数の頻度が所定値以下の領域を特定する特定部と、前記特定部により特定された領域に属する説明変数を含む学習データを忘却させるように前記モデルを更新する更新部と、を含んで構成されている。
【0008】
また、前記更新部は、前記モデルにおいて、忘却させる学習データで学習された部分を除去することにより、前記モデルを更新することができる。
【0009】
また、前記更新部は、忘却させる学習データを除いた学習データを利用して前記モデルを再学習することにより、前記モデルを更新することができる。
【0010】
また、モデル更新装置は、前記モデルの推論精度を判定する判定部を含み、前記取得部は、前記説明変数を前記モデルへ入力した際の目的変数、及び前記説明変数に対する期待値を取得し、前記判定部は、前記取得部により取得された前記目的変数と前記期待値とに基づいて、前記推論精度が所定の精度を満たしているか否かを判定し、前記更新部は、前記判定部により前記推論精度が前記所定の精度を満たしていないと判定された場合に、前記取得部により取得された説明変数に対応する期待値を、前記説明変数に対する新たな目的変数とする学習データを利用して前記モデルを追加学習することにより、前記モデルを更新することができる。
【0011】
また、前記更新部は、前記新たな目的変数に対応する説明変数であって、前記新たな目的変数以外の目的変数と対応付けられている説明変数を含む学習データを忘却させるように前記モデルを更新することができる。
【0012】
また、モデル更新装置は、前記モデルから出力された目的変数から、制御対象を制御するための制御信号を生成して出力する制御部を含んで構成することができる。
【0013】
また、本発明に係るモデル更新方法は、取得部が、説明変数に対する目的変数を出力するモデルに入力する説明変数を取得し、特定部が、説明変数空間を分割した各領域に、各領域に含まれる説明変数が前記取得部により取得された頻度を対応付けると共に、前記モデルの学習に利用された学習データに含まれる説明変数が属する領域であって、前記取得部により取得された説明変数の頻度が所定値以下の領域を特定し、更新部が、前記特定部により特定された領域に属する説明変数を含む学習データを忘却させるように前記モデルを更新する方法である。
【0014】
また、本発明に係るモデル更新プログラムは、コンピュータを、説明変数に対する目的変数を出力するモデルに入力する説明変数を取得する取得部、説明変数空間を分割した各領域に、各領域に含まれる説明変数が前記取得部により取得された頻度を対応付けると共に、前記モデルの学習に利用された学習データに含まれる説明変数が属する領域であって、前記取得部により取得された説明変数の頻度が所定値以下の領域を特定する特定部、及び、前記特定部により特定された領域に属する説明変数を含む学習データを忘却させるように前記モデルを更新する更新部として機能させるためのプログラムである。
【発明の効果】
【0015】
本発明に係るモデル更新装置、方法、及びプログラムによれば、モデルの推論精度を効果的に向上させるように、モデルを更新することができる。
【図面の簡単な説明】
【0016】
【
図1】本実施形態に係る予測制御システムの概略構成を示すブロック図である。
【
図2】本実施形態に係るPLCのハードウェア構成を示すブロック図である。
【
図3】モデル生成装置及びPLCの機能的構成を示すブロック図である。
【
図4】学習データ分布情報を概念的に示す図である。
【
図5】モデル更新の概要を説明するための図である。
【
図8】学習データ忘却時のモデル更新の様子を概念的に示す図である。
【
図9】追加学習時のモデル更新の様子を概念的に示す図である。
【
図10】学習データを追加した際の元の学習データの忘却を説明するための図である。
【
図11】本実施形態における制御処理の流れを示すフローチャートである。
【
図12】本実施形態におけるモデル更新処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。本実施形態では、本発明に係るモデル更新装置を搭載したPLC(Programmable Logic Controller)を含む予測制御システムを例に説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0018】
図1に示すように、本実施形態に係る予測制御システム100は、モデル生成装置30と、PLC20と、製造装置50とを含む。PLC20は、モデル生成装置30で生成されたモデルを用いて、制御対象である製造装置50の動作を制御する。製造装置50は、例えば、搬送装置、プレス機等である。各PLC20による制御対象の製造装置50は、1つであってもよいし、複数であってもよい。PLC20及び製造装置50の各組は、異なる複数の製造現場の各々に設置されてもよい。
【0019】
図2は、本実施形態に係るPLC20のハードウェア構成を示すブロック図である。
図2に示すように、PLC20は、CPU(Central Processing Unit)41、メモリ42、記憶装置43、入出力I/F(Interface)44、記憶媒体読取装置45、及び通信I/F46を有する。各構成は、バス47を介して相互に通信可能に接続されている。
【0020】
記憶装置43には、後述する制御処理を実行するための制御プログラム、モデル更新処理を実行するためのモデル更新プログラムを含む各種プログラムが格納されている。CPU41は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU41は、記憶装置43からプログラムを読み出し、メモリ42を作業領域としてプログラムを実行する。CPU41は、記憶装置43に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0021】
メモリ42は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置43は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0022】
入出力I/F44は、製造装置50からのデータの入力、及び製造装置50へのデータの出力を行うインタフェースである。また、例えば、キーボードやマウス等の、各種の入力を行うための入力装置、及び、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための出力装置が接続されてもよい。出力装置として、タッチパネルディスプレイを採用することにより、入力装置として機能させてもよい。
【0023】
記憶媒体読取装置45は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。
【0024】
通信I/F46は、モデル生成装置30等の他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0025】
モデル生成装置30のハードウェア構成は、PLC20のハードウェア構成と同様であるため、説明を省略する。
【0026】
図3に、モデル生成装置30及びPLC20の機能的構成を示す。
【0027】
図3に示すように、モデル生成装置30は、機能的には、収集部31と、生成部32と、分析部33とを含む。
【0028】
収集部31は、製造装置50において観測されるデータに基づく情報(以下、「観測情報」という)を収集し、収集データDB36に記憶する。観測情報は、例えば、製造装置50内のモーターの回転数、製造装置50に設けられた各種センサにより検出されたセンサ値、これらの値に基づいて判定処理等を行った処理結果等の時系列の情報である。
【0029】
生成部32は、説明変数に対する目的変数を出力するモデル37であって、学習データを用いて、PLC20により製造装置50を制御するために利用されるモデル37のパラメータを予め学習することによりモデル37を生成する。
【0030】
本実施形態では、説明変数は、収集部31により収集された観測情報に基づく情報であり、目的変数は、説明変数が示す観測情報が得られてから所定時間後の製造装置50の状態を示す値である。すなわち、モデル37は、観測情報に基づいて、製造装置50の所定時間後の状態を推論するものである。
【0031】
したがって、生成部32は、収集データDB36に記憶された観測情報を取得し、観測情報に基づく説明変数を抽出する。また、生成部32は、その観測情報が観測された場合における製造装置50の所定時間後の正解の状態を示す目的変数を抽出する。生成部32は、抽出した説明変数と目的変数とのペアを学習データとして、モデル37のパラメータを学習することにより、モデル37を生成する。生成部32は、パラメータが学習されたモデル37を、各PLC20に配布する。
【0032】
分析部33は、説明変数空間において、モデル37の学習に利用した学習データに含まれる説明変数が属する領域の分布を示す学習データ分布情報38を生成する。
図4に、学習データ分布情報38を概念的に示す。
図4の例では、説明変数がx
1及びx
2の2つの場合を示している。分析部33は、x
1及びx
2の各々を各軸とする説明変数空間を、例えば
図4に示すようなメッシュ状の領域に分割する。そして、モデル37の学習に利用された学習データの各々について、その学習データに含まれる説明変数(
図4中の白丸)が属する領域に、学習データが存在することを示す値を付与する。
図4の例では、学習データが存在する領域を網掛けの領域で、学習データが存在しない領域を白の領域で表している。分析部33は、生成した学習データ分布情報38を、各PLC20に配布する。
【0033】
次に、本実施形態に係るPLC20の機能構成について説明する。
【0034】
図3に示すように、PLC20は、機能構成として、収集部21と、推論部22と、制御部23と、モデル更新部10とを含む。なお、モデル更新部10は、本発明のモデル更新装置の一例である。また、PLC20の所定の記憶領域には、モデル生成装置30から配布されたモデル37及び学習データ分布情報38が記憶される。
【0035】
収集部21は、モデル生成装置30の収集部31と同様に、PLC20が制御する製造装置50から観測情報を収集して、収集データDB26に記憶する。
【0036】
推論部22は、収集データDB26に記憶された観測情報を取得し、観測情報に基づく説明変数を抽出し、説明変数をモデル37へ入力し、推論結果である目的変数を取得する。推論部22は、取得した目的変数を制御部23へ受け渡す。また、推論部22は、モデル37へ入力した説明変数、及びモデル37の出力として取得した目的変数を、後述するモデル更新部10の取得部11へ受け渡す。
【0037】
制御部23は、推論部22から受け渡された目的変数に基づいて、製造装置50を制御するための制御信号を生成して出力する。例えば、制御部23は、モデル37で予測された製造装置50の状態に応じて、ローラーの角度を調整したり、モーターの回転速度を変更したりするための制御信号を生成する。
【0038】
モデル更新部10は、機能的には、さらに、取得部11と、特定部12と、判定部13と、更新部14とを含む。
【0039】
まず、モデル更新部10の概略について説明する。
図5の上段に、運用開始時のモデル37、すなわち、モデル生成装置30で生成された直後のモデル37を概念的に示す。目的変数と説明変数とで表される空間における正例の学習データ(
図5中の実線の〇印)と、負例の学習データ(
図5中の実線の×印)とを切り分けるように、モデル37の境界が設定される。
【0040】
モデル37を用いた製造装置50の制御の運用が開始されると、例えば装置状態が経年的に劣化するなどして、観測される観測情報がゆるやかに変化する場合、すなわち、製造装置50の状態が変化する場合がある。このような場合、
図5中の下段に示すように、モデル37の学習に利用された学習データの周辺で、実際の運用では発生し難いデータが存在する(
図5中の点線の○印及び×印)。また、モデル37の学習に利用された学習データでは存在しなかったデータが、実際の運用時に発生し易い場合もある(
図5中の網掛の○印及び×印)。
【0041】
一般的には、運用開始後に、モデルの推論精度に課題が生じた場合、モデルの学習に利用された当初の学習データセットを一度呼び出す。そして、当初の学習データセットに、追加学習用に新たに得られた学習データを追加した学習データセットを利用して学習することにより、モデルが更新される。すなわち、新たに製造装置50から得られたデータを、PLC20に搭載済みのモデル37に追加して更新する仕組みである。しかし、この場合、上述のように、経年劣化等により製造装置50の状態が変化している場合などには、最新のデータで追加学習を行うだけでは、モデル37において、元の学習データでモデリングされた振る舞いが残り続ける。そのため、推論精度の課題が残ってしまう場合がある。
【0042】
そこで、モデル更新部10は、周辺で推論が発生し難い学習データを忘却させるようにモデル37を更新する。また、新たな推論が発生したデータについては、新たな学習データで追加学習を行ってモデル37を更新する。これにより、
図5の下段に示すように、モデル37の境界が、点線で示す状態から実線で示す状態に更新される。したがって、製造装置50の状態の変化に応じて、モデル37の状態もシフトさせることができる。
【0043】
以下、モデル更新部10の各機能部について詳述する。
【0044】
取得部11は、モデル37に入力する説明変数を推論部22から取得する。取得部11は、取得した説明変数を特定部12へ受け渡す。
【0045】
また、取得部11は、推論部22から受け渡された目的変数、すなわち、モデル37に説明変数を入力した際に出力される目的変数を取得し、説明変数と対応付けて判定部13へ受け渡す。さらに、取得部11は、所定時間後に収集された観測情報から、説明変数に対する期待値、すなわち、その説明変数に対する正解となる目的変数を抽出し、説明変数と対応付けて判定部13へ受け渡す。
【0046】
特定部12は、学習データ分布情報38と同様に、説明変数空間を分割した各領域に、各領域に含まれる説明変数が取得部11により取得された頻度を対応付けた推論発生頻度情報16を生成する。説明変数が取得部11により取得された頻度は、該当の領域に含まれる説明変数による推論が発生した頻度である。
【0047】
図6に、推論発生頻度情報16を概念的に示す。
図6の例では、学習データ分布情報38に重畳して、推論発生頻度情報16を表している。
図6において、太枠で示す領域は、学習データ分布情報38により示される、モデル37の学習に利用された学習データが存在する領域である。また、
図6の例では、各領域に属する説明変数による推論が発生した頻度を、領域の濃度で表しており、濃度が濃いほど頻度が高いことを表している。
【0048】
具体的には、特定部12は、取得部11から説明変数を受け渡される都度、推論発生頻度情報16において、取得された説明変数が属する領域に保持されている頻度に1加算する。また、特定部12は、推論発生頻度情報16内の頻度の最大値が所定値となるように、各領域の頻度を正規化してもよい。
【0049】
特定部12は、モデル37の学習に利用された学習データに含まれる説明変数が属する領域であって、推論が発生した頻度が所定値以下の領域を特定する。所定値は予め定めた値とすることができる。また、頻度順の下から所定番目の頻度を所定値としてもよい。この場合、頻度が他の領域よりも相対的に低い領域を特定することができる。特定部12は、特定した領域の情報を更新部14へ受け渡す。特定された領域に属する説明変数を含む学習データは、
図5で説明した、周辺で推論が発生し難い学習データに相当し、忘却の対象となる学習データである。
【0050】
判定部13は、モデル37の推論精度を判定する。具体的には、判定部13は、取得部11から受け渡された説明変数に対応する目的変数と期待値とを比較して、モデル37の推論精度が所定の精度を満たしているか否かを判定する。例えば、
図7に示すように、モデル37が、所定時間L後の状態を推論する場合を考える。この場合、判定部13は、時間tに取得された説明変数(x
1(t),x
2(t))に対するモデル37からの出力である目的変数y^(
図7中では、「y」の上に「^」)と、時間t+Lに取得された観測情報から抽出された期待値y(t+L)とを取得する。そして、判定部13は、y^とy(t+L)との誤差や、y^の所定の信頼区間にy(t+L)が含まれるか否かに基づいて推論精度を判定する。
【0051】
例えば、判定部13は、目的変数と期待値との誤差が所定値以下の場合には、推論精度が所定の精度を満たしていると判定する。一方、判定部13は、目的変数と期待値との誤差が所定値を超えている場合には、製造装置50の状態が当初のモデル37の学習時から変化したことを示しており、推論精度が所定の精度を満たしていないと判定する。判定部13は、判定結果を更新部14へ受け渡す。
【0052】
更新部14は、特定部12から、特定された領域の情報を受け渡されると、モデル37の学習に利用された学習データのうち、特定された領域に属する説明変数を含む学習データを忘却させるようにモデル37を更新する。
【0053】
具体的には、更新部14は、モデル37において、忘却させる学習データで学習された部分を除去することにより、モデル37を更新する。この処理には、当初のモデル37の学習時の学習データセットを必要とせず、直接モデルに対するデータの追加及び削除を可能とするアルゴリズムを用いることができる。
図8に、このアルゴリズムによる学習データ忘却時のモデル37の更新の様子を概念的に示す。
図8に示すように、モデル37が、複数のノードを含む木構造で表される場合、モデル更新により、忘却させる学習データで学習された部分に相当するノードが除去される(
図8中の破線の楕円部分)。この処理の場合、モデル37において、除去されたノード以外のノード部分による推論結果は変化しない。
【0054】
また、更新部14は、当初の学習データセットのうち、忘却させる学習データを除去した学習データを利用して、モデル37を再学習することにより、モデル37を更新してもよい。この場合、モデル更新部10は、当初の学習データセットをモデル生成装置30から取得して保持しておけばよい。
【0055】
また、更新部14は、判定部13により推論精度が所定の精度を満たしていないと判定された場合、モデル37を追加学習することにより、モデル37を更新する。具体的には、更新部14は、取得部11から受け渡された説明変数に対応する期待値を、その説明変数に対する正解の目的変数とする新たな学習データを作成する。そして、上述の、直接モデルに対するデータの追加及び削除を可能とするアルゴリズムを用いて追加学習を行う。
図9に、このアルゴリズムによる追加学習時のモデル37の更新の様子を概念的に示す。
図9に示すように、モデル更新により、新たなノードが追加される(
図9中の破線の楕円部分)。この処理の場合、モデル37の既存部分による推論結果は変化しない。
【0056】
なお、更新部14は、当初の学習データセットから忘却させる学習データを除去すると共に、新たな学習データを追加した新たな学習データセットを利用して再学習することにより、モデル37を更新してもよい。
【0057】
また、更新部14は、新たな目的変数に対応する説明変数であって、新たな目的変数以外の目的変数と対応付けられている説明変数を含む学習データを忘却させるようにモデル37を更新する。例えば、
図10に示すように、当初の学習データとして説明変数xと目的変数y
oldとのペアが存在した場合において、新たな学習データとして説明変数xと目的変数y
newとのペアが追加されたとする。この場合、更新部14は、説明変数xと目的変数y
oldとのペアである学習データを忘却させるようにモデル37を更新する。
【0058】
次に、本実施形態に係る予測制御システム100の作用について説明する。
【0059】
まず、モデル生成装置30において、モデル37及び学習データ分布情報38が生成され、PLC20に配布される。
【0060】
PLC20では、モデル37を用いた運用が開始される。具体的には、PLC20が、モデル37の出力を用いて製造装置50を制御する処理である制御処理を実行する。
図11は、PLC20のCPU41により実行される制御処理の流れを示すフローチャートである。CPU41が記憶装置43から制御プログラムを読み出して、メモリ42に展開して実行することにより、CPU41がPLC20の各機能構成として機能し、
図11に示す制御処理が繰り返し実行される。
【0061】
ステップS12で、制御部23が、製造装置50を制御するための制御信号を出力する。これにより、製造装置50が、制御信号に基づいて制御されて動作する。製造装置50の動作に伴い、製造装置50において観測情報が観測され、PLC20に出力される。
【0062】
次に、ステップS14で、収集部21が、製造装置50から観測情報を取得し、収集データDB26に記憶する。
【0063】
次に、ステップS16で、推論部22が、収集データDB26から観測情報を取得し、観測情報に対して必要な処理を行って、説明変数に加工し、説明変数をモデル37に入力する。観測情報がそのままモデル37に入力する説明変数となる場合には、推論部22は、観測情報をそのまま説明変数としてモデル37に入力する。
【0064】
次に、ステップS18で、制御部23が、モデルから出力された目的変数に基づいて、製造装置50を制御するための制御信号を生成する。そして、処理はステップS12に戻る。
【0065】
次に、モデル37を更新するモデル更新処理について説明する。
図12は、PLC20のCPU41により実行されるモデル更新処理の流れを示すフローチャートである。CPU41が記憶装置43からモデル更新プログラムを読み出して、メモリ42に展開して実行することにより、CPU41がPLC20の各機能構成として機能し、
図12に示すモデル更新処理が実行される。モデル更新処理は、製造装置50から観測情報が収集される都度実行される。
【0066】
ステップS22で、取得部11が、モデル37に入力する説明変数を推論部22から取得する。取得部11は、取得した説明変数を特定部12へ受け渡す。
【0067】
次に、ステップS24で、特定部12が、推論発生頻度情報16において、取得部11から受け渡された説明変数が属する領域に保持されている頻度に1加算する等して、推論発生頻度情報16を更新する。
【0068】
次に、ステップS26で、特定部12が、学習データ分布情報38と推論発生頻度情報16とを比較して、モデル37の学習に利用された学習データに含まれる説明変数が属する領域であって、推論が発生した頻度が所定値以下の領域が存在するか否かを判定する。領域が存在する場合には、特定部12がその領域の情報を更新部14へ受け渡し、処理はステップS28へ移行し、領域が存在しない場合には、処理はステップS30へ移行する。
【0069】
ステップS28では、更新部14が、モデル37の学習に利用された学習データのうち、特定部12により特定された領域に属する説明変数を含む学習データを忘却させるようにモデル37を更新する。
【0070】
次に、ステップS30で、取得部11が、推論部22から受け渡された目的変数、すなわち、モデル37に説明変数を入力した際に出力される目的変数を取得し、説明変数と対応付けて判定部13へ受け渡す。
【0071】
次に、ステップS32で、取得部11が、所定時間後に収集された観測情報から、説明変数に対する期待値、すなわち、その説明変数に対する正解となる目的変数を抽出し、説明変数と対応付けて判定部13へ受け渡す。
【0072】
次に、ステップS34で、判定部13が、取得部11から受け渡された説明変数に対応する目的変数と期待値とを比較して、モデル37の推論精度が所定の精度を満たしているか否かを判定する。所定の精度を満たしていない場合には、処理はステップS36へ移行し、満たしている場合には、モデル更新処理は終了する。
【0073】
ステップS36では、更新部14が、取得部11から受け渡された説明変数に対応する期待値を、その説明変数に対する正解の目的変数とする新たな学習データを作成する。
【0074】
次に、ステップS38で、更新部14が、作成した新たな学習データを利用して追加学習を行うことによりモデル37を更新する。さらに、更新部14が、新たな目的変数に対応する説明変数であって、新たな目的変数以外の目的変数と対応付けられている説明変数を含む学習データを忘却させるようにモデル37を更新する。そして、モデル更新処理は終了する。
【0075】
以上説明したように、本実施形態に係る予測制御システムによれば、PLCに含まれるモデル更新部が、説明変数に対する目的変数を出力するモデルに入力する説明変数を取得する。また、モデル更新部が、説明変数空間を分割した各領域に、各領域に含まれる説明変数を用いた推論が発生した頻度を対応付けた推論発生頻度情報を更新する。また、モデル更新部が、モデルの学習に利用された学習データに含まれる説明変数が属する領域を示す学習データ分布情報と推論発生頻度情報とを比較する。そして、モデル更新部が、モデルの学習に利用された学習データに含まれる説明変数が属する領域であって、推論の発生頻度が所定値以下の領域を特定する。さらに、モデル更新部が、特定された領域に属する説明変数を含む学習データを忘却させるようにモデルを更新する。
【0076】
これにより、モデルにおいて、元の学習データでモデリングされた振る舞いが残り続けることを回避して、モデルの推論精度を効果的に向上させるように、モデルを更新することができる。その結果、PLC側、すなわち、現場において、直近の製造装置50の状態に応じてモデルを更新することができる。
【0077】
また、さらに、モデルの推論精度を判定した上で、追加学習及び学習データの忘却による更新を行うことで、より推論精度を向上させることができる。
【0078】
また、モデルの更新に、直接モデルに対するデータの追加及び削除を可能とするアルゴリズムを用いた場合には、PLC側で当初の学習データセットを保持しておく必要がない。
【0079】
なお、上記実施形態では、本発明のモデル更新装置をPLCに搭載した例について説明したが、これに限定されない。モデルの出力を制御対象の制御に利用する場合に限らず、様々なモデルに対して、本発明を適用可能である。
【0080】
また、上記実施形態では、推論発生頻度情報として、説明変数空間をメッシュ状に区切る場合について説明したが、これに限定されない。例えば、説明変数空間における各学習データの位置からの距離に基づいて、領域を区切ってもよい。
【0081】
また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したモデル更新処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、モデル更新処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0082】
また、上記実施形態では、モデル更新プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0083】
10 モデル更新部
11 取得部
12 特定部
13 判定部
14 更新部
16 推論発生頻度情報
20 PLC
21 収集部
22 推論部
23 制御部
26 収集データDB
30 モデル生成装置
31 収集部
32 生成部
33 分析部
36 収集データDB
37 モデル
38 学習データ分布情報
41 CPU
42 メモリ
43 記憶装置
44 入出力I/F
45 記憶媒体読取装置
46 通信I/F
47 バス
50 製造装置
100 予測制御システム