以下、本開示の実施の形態に係る処理システムについて、図面を参照しつつ詳細に説明する。
実施の形態1.
本実施の形態に係る処理システム1000は、図1に示されるように、生産現場100aで生産される同一機種の処理装置10a,10bのうちの処理装置10bが工場100に設置されることで構築される。処理システム1000は、処理装置10bを含む。以下では、処理装置10a,10bを区別することなく処理装置10と表記することがある。
処理装置10は、工作機械のような、対象物20,21を処理するFA装置又は設備である。対象物20は、生産現場100aにおける処理対象であって、対象物21は、工場100における処理対象である。処理装置10による処理は、例えば、工作物である対象物20,21に対する切削加工又は研削加工、製品である対象物20,21の組み立て、又は、製品の一部である対象物20,21の他の部材への組み付けである。処理装置10は、ユーザによって入力される設定データに基づいて対象物20,21を処理する。設定データは、処理装置10に対象物21,22を処理させるために処理装置10に設定されるパラメータであって、例えば、工作物を支持するステージ及び工具の位置及び速さ、並びに、工具の回転速度を示す。
ただし、処理装置10は、生産現場100aにおいて生産された段階で、機差を有する。すなわち、処理装置10a,10bはそれぞれ、固有の特性を有し、この特性により生産現場100aにおける対象物20の処理結果には目標値からの誤差が生じ得る。図1では、処理装置10aが特性Aを有し、処理装置10bが特性Bを有することが示されている。処理結果は、例えば、対象物20の切削結果であって、処理結果の誤差は、切削された対象物20の寸法誤差である。目標値は、設定データにより直接的に示される仕様値であってもよいし、設定データに対応するものとしてユーザにより意図された値であってもよい。目標値は、設定データに含まれていてもよいし含まれていなくともよい。ただし、目標値が設定データに含まれない場合においても、目標値は通常、設定データに対応しており、ユーザによって処理装置10に別途入力されてもよい。
処理装置10に固有の特性による処理結果の誤差が生じ得るため、生産現場100aでは、この誤差を抑制するための第1モデルを学習して、学習した第1モデルを処理装置10に組み込むことにより、生産現場100aから搬出される処理装置10の能力が均一化される。
その後、処理装置10が工場100に設置されると、工場100における処理装置10の設置環境に起因して、対象物21の処理結果に誤差が生じ得る。設置環境は、例えば、気温、湿度、又は、処理装置10に挿入される材料の種類である。そこで、処理装置10は、設置環境に起因する誤差を抑制するための第2モデルを学習し、学習した第2モデルを用いて対象物21を処理することにより、設置環境に適応した処理を実行する。処理装置10a,10bはそれぞれ、第2モデルを学習して用いることにより、異なる環境下であっても対象物21の処理結果に生じるバラつきを低減して、均一化された能力を発揮することとなる。なお、図1では処理装置10bに関する学習について代表的に示されているが、処理装置10aに関しても、処理装置10bと同様に学習がなされる。
処理装置10は、コンピュータとして機能するためのハードウェア要素によって構成される。詳細には、図2に示されるように、処理装置10は、プロセッサ101と、主記憶部102と、補助記憶部103と、入力部104と、出力部105と、通信部106と、を有する。主記憶部102、補助記憶部103、入力部104、出力部105及び通信部106はいずれも、内部バス107を介してプロセッサ101に接続される。
プロセッサ101は、処理回路としてのCPU(Central Processing Unit)を含む。プロセッサ101は、補助記憶部103に記憶されるプログラムP1を実行することにより、種々の機能を実現して、後述の処理を実行する。
主記憶部102は、RAMを含む。主記憶部102には、補助記憶部103からプログラムP1がロードされる。そして、主記憶部102は、プロセッサ101の作業領域として用いられる。
補助記憶部103は、EEPROM(Electrically Erasable Programmable Read-Only Memory)及びHDD(Hard Disk Drive)に代表される不揮発性メモリを含む。補助記憶部103は、プログラムP1の他に、プロセッサ101の処理に用いられる種々のデータを記憶する。補助記憶部103は、プロセッサ101の指示に従って、プロセッサ101によって利用されるデータをプロセッサ101に供給する。また、補助記憶部103は、プロセッサ101から供給されたデータを記憶する。
入力部104は、ハードウェアスイッチ、入力キー、キーボード及びポインティングデバイスに代表される入力デバイスを含む。入力部104は、処理装置10のユーザによって入力された情報を取得して、取得した情報をプロセッサ101に通知する。
出力部105は、LED(Light Emitting Diode)、LCD(Liquid Crystal Display)及びスピーカに代表される出力デバイスを含む。出力部105は、プロセッサ101の指示に従って種々の情報をユーザに提示する。
通信部106は、外部の装置と通信するための通信インタフェース回路を含む。通信部106は、外部から信号を受信して、この信号により示されるデータをプロセッサ101へ出力する。また、通信部106は、プロセッサ101から出力されたデータを示す信号を外部の装置へ送信する。
上述のハードウェア構成が協働することにより、処理装置10は、工場100において種々の機能を発揮する。詳細には、処理装置10は、図3に示されるように、その機能として、設定データが入力される入力部11と、設定データに基づく処理を実行する処理部12と、生産現場100aにおいて学習された第1モデル41を示すモデル情報を取得するモデル情報取得部13と、設置環境を示す環境情報を取得する環境情報取得部14と、第1モデル41を用いて対象物21を処理したときの誤差を示す誤差情報を取得する誤差情報取得部15と、環境情報及び誤差情報から、誤差を抑制するための第2モデル42を学習する学習部16と、を有する。図3において、実線の矢印は、第2モデルの学習前における情報の流れを示し、破線の矢印は、第2モデルの学習後における情報の流れを示す。
入力部11は、主として入力部104又は通信部106によって実現される。入力部11は、ユーザによって入力される設定データを受け付ける。設定データに基づいて処理される対象物21,22のうちの対象物21は、第2モデル42の学習前における処理対象であって、対象物22は、第2モデル42の学習後における処理対象である。入力部11は、設定データが入力される入力手段の一例に相当する。
処理部12は、主としてプロセッサ101及び対象物21,22を処理するための処理モジュールによって実現される。処理モジュールは、例えば工具及びステージを移動させるためのモータを含む。処理部12は、第2モデル42の学習前においては、入力部11に入力された設定データに第1モデル41を適用して対象物21を処理する。対象物21の処理により第2モデル42が学習部16によって学習されると、処理部12は、設定データに第1モデル41及び第2モデル42を順に適用して対象物22を処理する。なお、第2モデル42の学習のために、処理部12は、第1モデル41の出力を学習部16に提供する。
モデル情報取得部13は、プロセッサ101、入力部104及び通信部106のうちの少なくとも1つによって実現される。モデル情報取得部13は、生産現場100aから搬出される処理装置10の補助記憶部103に登録されたモデル情報を読み出してもよいし、搬出時に処理装置10に添付されるメモリーカードのような記録媒体からモデル情報を読み出してもよい。また、モデル情報取得部13は、ユーザによって直接入力されるモデル情報を取得してもよいし、通信線又はネットワークを介してモデル情報を受信してもよい。
図4には、第1モデル41のモデル情報の簡単な例が示されている。図4のモデル情報は、設定データの値がゼロ以上10未満であるときには、当該設定データに第1モデル41を適用して得るモデル出力を、設定データの値に1を可算して得る和として、設定データの値が10以上20未満であるときには、設定データの値に2を可算して得る和をモデル出力とすることを示す。なお、第1モデル41は、図4に示されるような変換表には限定されず、数式によって関数として表されるモデルであってもよい。モデル情報取得部13は、工場に設置される前における処理装置に固有の特性による処理装置の第1処理結果が含む第1誤差を抑制するために設定データに適用される第1モデルを示すモデル情報を取得するモデル情報取得手段の一例に相当する。ここで、第1処理結果及び第1誤差は、生産現場における処理結果及び誤差を、後述の工場100における第2処理結果及び第2誤差と区別するものである。
図3に戻り、環境情報取得部14は、プロセッサ101、入力部104及び通信部106のうちの少なくとも1つによって実現される。環境情報取得部14は、処理部12が第2モデル42を用いることなく第1モデル41を用いて対象物21を処理したときにおける処理装置10の設置環境を示す環境情報を取得する。環境情報取得部14は、主記憶部102、補助記憶部103又は記録媒体から環境情報を読み出してもよいし、ユーザによって直接入力される環境情報を取得してもよいし、通信線又はネットワークを介して環境条件を計測するセンサから環境情報を受信してもよい。環境情報によって示される環境は、上述のような気温、湿度及び材料の種類であってもよいし、工場100において処理装置10に提供される電力環境、エアー若しくはガスの品質、又は、処理装置10に接続される他の装置の出力物であってもよい。環境情報取得部14は、工場に設置された処理装置の環境を示す工場環境情報を取得する環境情報取得手段の一例に相当する。
誤差情報取得部15は、プロセッサ101、入力部104及び通信部106のうちの少なくとも1つによって実現される。誤差情報取得部15は、処理部12によって処理された対象物21の処理結果を計測する計測装置30から、処理結果としての計測値と目標値との差異としての誤差を取得する。なお、誤差情報取得部15は、処理結果と目標値とを別個に取得することにより、誤差情報を取得してもよい。すなわち、誤差情報は、処理結果の実測値と目標値との双方を示す情報であってもよい。誤差情報取得部15は、計測装置30との通信により誤差情報を取得してもよいし、記録媒体から誤差情報を読み出してもよいし、ユーザによって直接入力される誤差情報を取得してもよい。誤差情報取得部15は、工場において入力される設定データに基づいて第1モデルを用いて工場において対象物を処理する処理装置の第2処理結果の目標値との第2誤差を示す第1誤差情報を取得する誤差情報取得手段の一例に相当する。
学習部16は、主としてプロセッサ101によって実現される。学習部16は、第1モデル41の出力、この出力を用いて対象物21を処理した結果としての誤差、及び、この出力を用いて対象物21を処理したときの設置環境に基づいて、誤差を抑制するための第2モデル42を学習する。図5には、学習される第2モデル42の簡単な例が示されている。図5の第2モデル42は、第1モデル41の出力が1以上11未満である場合において、設置環境としての気温が15℃未満であるときには、第1モデル41の出力に0.4を加算して得る和を第2モデル42の出力として、気温が15℃以上であるときには、第1モデル41の出力に0.3を加算して得る和を第2モデル42の出力とすることを示す。また、第1モデル41の出力が12以上22未満である場合において、気温が20℃未満であるときには、第1モデル41の出力から0.2を減じて得る差を第2モデル42の出力として、気温が20℃以上であるときには、第2モデル42の出力から0.3を減じて得る差を第2モデル42の出力とすることを示す。なお、第2モデル42は、図5に示されるような変換表には限定されず、数式によって関数として表されるモデルであってもよい。図3に戻り、第2モデル42を学習すると、学習部16は、第2モデル42を処理部12に提供する。学習部16は、環境情報及び誤差情報から、第2誤差を抑制するための第2モデルを学習する学習手段の一例に相当する。第2モデル42は、第1モデル41の出力値及び環境情報から、当該出力値が補正された値を得るためのモデルの一例に相当する。
続いて、処理装置10によって実行されるモデル適用処理について図6を参照して説明する。図6に示されるモデル適用処理は、処理装置10が工場100に設置されてから通常運転を開始する前の、調整運転又は初期化処理として実行される。
モデル適用処理では、モデル情報取得部13が、モデル情報を取得する(ステップS1)。そして、入力部11が、入力される設定データを受け付けて(ステップS2)、処理部12が、設定データに第1モデル41を適用して対象物21を処理し(ステップS3)、誤差情報取得部15が誤差情報を取得し(ステップS4)、環境情報取得部14が環境情報を取得する(ステップS5)。
次に、学習部16は、ステップS2~S5の実行により、互いに関連付けられた第1モデル41の出力、誤差情報及び環境情報を含むレコードの蓄積されたデータ量が閾値を超えるか否かを判定する(ステップS6)。データ量が閾値を超えないと判定された場合(ステップS6;No)、処理装置10は、ステップS2以降の処理を繰り返す。これにより、第1モデル41の出力、誤差情報、及び環境情報の組合せであるデータが蓄積される。
データ量が閾値を超えると判定した場合(ステップS6;Yes)、学習部16は、蓄積したデータを用いて第2モデル42を学習する(ステップS7)。例えば、学習部16は、第1モデル41の出力、誤差、及び設置環境の関係を表す仮モデルを回帰分析により生成してから、誤差が小さくなるような第1モデル41の出力の変換式を第2モデル42として得る。ただし、学習部16による第2モデル42の学習はこれに限定されず、ニューラルネットワークに代表される教師あり学習であってもよいし、強化学習であってもよい。
次に、入力部11は、新たに入力される設定データを受け付けて(ステップS8)、処理部12は、新たな設定データに対して第1モデル41及び第2モデル42を適用して対象物22を処理する(ステップS9)。これにより、第2モデルが適用されて誤差の小さい処理を実施することができる。
以上、説明したように、モデル情報取得部13が、工場100に設置される前における処理装置10に固有の特性による処理装置10の処理結果の誤差を抑制するために設定データに適用される第1モデル41を示すモデル情報を取得する。また、学習部16が、工場100において対象物21を処理する処理装置10の処理結果の誤差を抑制するための第2モデル42を学習する。これにより、工場100に設置される前に生じる能力差を抑制する第1モデル41とは別に、工場100に設置された処理装置10の環境により生じる能力差を抑制する第2モデル42が学習される。このため、装置の能力に影響を及ぼし得る要因を切り分けて、その一部の要因による能力差に対処するための第2モデル42が工場100で学習される。したがって、装置の能力差を抑制するモデルを学習するための演算負荷を軽減することができる。
すなわち、学習部16が第2モデル42を学習するために用いる情報からは、処理装置10に固有の特性を示す情報が除外される。このため、生産現場100a及び工場100の双方で同種の学習が行われることによる無駄な演算処理の発生を回避することができる。
なお、第1モデル41の出力から処理装置10の出力を得るための第2モデル42について説明したが、これには限定されない。図7に示されるように、設定データに対して、第1モデル41及び第2モデル42が並列に適用されて、第2モデル42の学習後においては、第1モデル41の出力と第2モデル42の出力との和が、対象物21,22を加工する加工部17に入力されてもよい。第1モデル41に基づく対象物21に対する処理を補正するために用いられれば、第2モデル42を適用する形態は任意である。なお、図7の例では、第2モデル42を学習するために、学習部16は、設定データを収集してもよい。
実施の形態2.
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、図8に示されるように、処理装置10が第1モデルを学習する能力を有する点で、実施の形態1と異なる。また、本実施の形態は、学習部16が、設置環境をさらに工場100において固定される固定環境と時間的に変動し得る変動環境とに切り分けて第2モデルを学習する点で、実施の形態1とは異なる。
本実施の形態に係る処理装置10は、図9に示されるように、処理装置10に固有の特性を示す特性情報取得部18と、第1モデル41を生成するモデル生成部19と、を有する。図9においては、生産現場100aにおける情報の流れが太線の矢印で示されている。
特性情報取得部18は、プロセッサ101、入力部104及び通信部106のうちの少なくとも1つによって実現される。特性情報取得部18は、生産現場100aにおける処理装置10に固有の特性を示す特性情報を取得する。特性情報取得部18は、補助記憶部103又は外部の記録媒体から特性情報を読み出してもよいし、ユーザによって直接入力される特性情報を取得してもよいし、通信線又はネットワークを介して特性情報を受信してもよい。特性情報は、例えば、生産現場100aにおいて複数の処理装置10に対して実行される品質検査の結果を示す。特性情報取得部18は、処理装置10に固有の特性を示す特性情報を取得する特性情報取得手段の一例に相当する。
モデル生成部19は、主としてプロセッサ101によって実現される。モデル生成部19は、入力部11に入力された設定データを取得し、当該設定データに基づいて第1モデル41を用いることなく処理部12によって処理された対象物20の誤差を示す誤差情報を、当該誤差情報を取得した誤差情報取得部15から取得する。この誤差情報は、上述の第1誤差を示す第2誤差情報の一例に相当する。また、モデル生成部19は、処理装置10が生産される生産現場における生産環境を示す環境情報を、当該環境情報を取得した環境情報取得部14から取得し、処理装置10自体の特性を示す特性情報を特性情報取得部18から取得する。そして、モデル生成部19は、取得したこれらの情報から第1モデル41を学習により生成してモデル情報取得部13に提供する。例えば、モデル生成部19は、設定データを目的変数とし、誤差情報、環境情報及び特性情報を説明変数とする回帰分析あるいは教師あり学習によって、誤差を最小化する設定データを得るための第1モデル41を生成する。また、環境条件に応じた設定データの補正値が統計的に予め定められているような場合において、処理装置の特性によるバラつきが発生するときに、モデル生成部19は、そのようなバラつきを低減する第1モデル41を、特性情報を用いて学習してもよい。また、モデル生成部19は、誤差情報を目的変数とし、設定データ、環境情報及び特性情報を説明変数とする回帰分析あるいは教師あり学習によって第1モデル41を生成してもよい。モデル生成部19は、特性情報、生産環境の環境情報及び第2誤差情報から第1モデルを生成するモデル生成手段の一例に相当する。
なお、モデル生成部19による第1モデル41の生成手法を任意に変更してもよい。例えば、第1モデル41を生成するために用いられる情報から、特性情報及び環境情報の一方又は双方が省略されてもよい。特性情報及び環境情報の一方又は双方が省略された場合であっても、モデル生成部19によって生成される第1モデル41は、結果的に、処理装置10の特性により発生する誤差を抑制するためのモデルとなる。また、モデル生成部19は、生産現場100aにおいて外部から提供されるテンプレートモデルに対して、特性情報及び環境情報を適用することにより第1モデル41を生成してもよい。
続いて、処理装置10によって生産現場100aにおいて実行される第1モデル生成処理、及び、工場100において実行されるモデル適用処理について、順に説明する。
第1モデル生成処理では、図10に示されるように、特性情報取得部18が、特性情報を取得する(ステップS11)。そして、入力部11が、入力される設定データを受け付けて(ステップS12)、処理部12が、設定データに基づいて対象物20を処理し(ステップS13)、誤差情報取得部15が誤差情報を取得し(ステップS14)、環境情報取得部14が生産環境の環境情報を取得する(ステップS15)。生産環境の環境情報は、設置環境と同種の情報であってもよいし、異なる情報であってもよい。生産環境の環境情報は、処理装置10の品質に影響する環境的な要因を示す情報であればよい。生産環境の環境情報は、生産環境情報の一例に相当する。
次に、モデル生成部19は、ステップS12~S15で得たデータのデータ量が予め定められた閾値を超えるか否かを判定する(ステップS16)。データ量が閾値を超えないと判定された場合(ステップS16;No)、処理装置10は、ステップS12以降の処理を繰り返す。これにより、第1モデル41の生成に必要なデータが蓄積される。
データ量が閾値を超えると判定した場合(ステップS16;Yes)、モデル生成部19は、ステップS11~S15で得た情報に基づいて、第1モデル41を学習により生成する(ステップS17)。次に、処理部12は、ステップS12で取得した設定データに、生成された第1モデル41を適用して対象物21を処理し(ステップS18)、誤差情報取得部15が誤差情報を取得する(ステップS19)。そして、モデル生成部19は、第1モデル41を設定データに適用して対象物21を処理したときの誤差が予め定められた範囲内であるか否かを判定する(ステップS20)。
誤差がこの範囲内でないと判定された場合(ステップS20;No)、ステップS12に戻り、ステップS12~S16の再実行によるデータの追加と、ステップS17~S19による第1モデルの生成が繰り返される。これにより、モデル生成部19は、第1モデル41の学習を継続する。なお、学習を繰り返す際に、過去に収集したデータを用いることなく、新たに収集したデータに基づいて第1モデル41を学習してもよい。また、ステップS17の第1モデル41の学習において、例えば深層学習における各層の重みの更新のような予め定められた処理の反復が切り上げられている場合には、ステップS20の判定が否定されたときに(ステップS20;No)、データを追加収集することなく、ステップS17に戻って、学習における反復を継続してもよい。ステップS20にて誤差が範囲内であると判定された場合(ステップS20;Yes)、処理装置10は、第1モデル生成処理を終了する。
図11に示されるように、本実施の形態に係るモデル適用処理では、実施の形態1と同様にステップS1が実行されてから、環境情報取得部14が、設置環境の固定環境を示す環境情報を取得する(ステップS21)。固定環境は、処理装置10の据え付け、又は、据え付け時の調整によってその後において固定される環境である。具体的には、固定環境は、外部から印加される電圧に対するA/D変換の実行の有無、又は、スペースに応じて選択された装着部材の種別である。
次に、処理装置10は、実施の形態1と同様にステップS2~S4を実行してから、設置環境の変動環境を示す環境情報を取得する(ステップS22)。変動環境は、対象物21,22を処理するたびに変動し得る環境であって、例えば、気温又は湿度である。そして、学習部16は、データ量が閾値を超えるか否かを判定し(ステップS6)、データ量が閾値を超えないと判定された場合(ステップS6;No)、ステップS2以降の処理が繰り返される。
一方、データ量が閾値を超えると判定した場合(ステップS6;Yes)、学習部16は、ステップS11で取得された環境情報により示される固定環境に基づいて第2モデル42を学習する(ステップS23)。ここで、学習部16は、ステップS22で取得された環境情報により示される変動環境を加味することなく、第2モデル42を学習する。すなわち、学習部16は、変動環境をパラメータとして含まない第2モデル42を学習し、又は、ステップS22で取得された情報に関わらず変動環境のパラメータを固定した状態で第2モデル42を学習する(ステップS23)。
そして、学習部16は、ステップS23で学習された第2モデル42を設定データに適用したときの誤差が予め定められた第1範囲内にあるか否かを判定する(ステップS24)。学習部16は、この誤差を、新たに入力される設定データに対して適用することにより得てもよいし、繰り返し実行されたステップS2~S4,S22で蓄積されたデータの交差検証により得てもよい。
誤差が第1範囲内にないと判定した場合(ステップS24;No)、ステップS2に戻り、ステップS2~S4,S22,S6の再実行によるデータの追加と、ステップS23における第2モデル42の学習と、が再度実行される。なお、ステップS23の第2モデル42の学習において、予め定められた処理の反復が切り上げられている場合には、ステップS24の判定が否定されたときに(ステップS24;No)、データを追加収集することなく、ステップS23に戻って、学習における反復を継続してもよい。ステップS24にて、誤差が第1範囲内にあると判定した場合(ステップS24;Yes)、学習部16は、ステップS22で取得された環境情報により示される変動環境に基づいて第2モデル42を学習する(ステップS25)。
そして、学習部16は、ステップS25で学習した第2モデル42を設定データに適用したときの誤差が予め定められた第2範囲内にあるか否かを判定する(ステップS26)。第2範囲は、第1範囲より広い範囲として規定される。固定環境については変動がないため、当該固定環境に対して、よりフィッティングさせた第2モデル42をステップS23~S24で得るために、第1範囲が比較的狭い範囲として規定される。これに対して、第2範囲は、変動環境が変動することを考慮して、比較的広い範囲として規定される。
誤差が第2範囲内にないと判定した場合(ステップS26;No)、ステップS2に戻り、ステップS2~S4,S22,S6の再実行によるデータの追加と、ステップS23,S25における第2モデル42の学習と、が再度実行される。なお、ステップS25の第2モデル42の学習において、予め定められた処理の反復が切り上げられている場合には、ステップS26の判定が否定されたときに(ステップS26;No)、データを追加収集することなく、ステップS25に戻って、学習における反復を継続してもよい。
ステップS26にて、誤差が第2範囲内にあると判定した場合(ステップS26;Yes)、学習部16は、誤差が収縮したか否かを判定する(ステップS27)。具体的には、学習部16は、ステップS26にて第2範囲内にあると判定された誤差の大きさが、ステップS24にて第1範囲内にあると判定された誤差の大きさから収縮しているか否かを判定する。
誤差が収縮していないと判定した場合(ステップS27;No)、ステップS2に戻り、ステップS2~S4,S22,S6の再実行によるデータの追加と、ステップS23,S25における第2モデル42の学習と、が再度実行される。なお、ステップS23,S25の第2モデル42の学習において、予め定められた処理の反復が切り上げられている場合には、ステップS27の判定が否定されたときに(ステップS27;No)、データを追加収集することなく、ステップS23に戻って、学習における反復を継続してもよい。ステップS27にて、誤差が収縮したと判定された場合(ステップS27;Yes)、モデル適用処理が終了する。
以上、説明したように、学習部16は、固定環境に基づく学習をしてから変動環境に基づく学習を実行した。このため、処理装置10の能力に影響を及ぼし得る要因をさらに切り分けて、その一部の要因による能力差を吸収するためのモデルの学習が順に実行される。これにより、モデルの学習による演算負荷をより軽減することができる。
実施の形態3.
続いて、実施の形態3について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、図12に示されるように、学習に用いた情報を記憶しておき、新たな対象物を処理する際に当該情報を利用する点で、実施の形態1とは異なる。
本実施の形態に係る処理装置10は、学習部16によって用いられた情報を記憶する記憶部110と、記憶部110の情報を提供する提供部111と、新たに入力すべき設定データに相当する特定データを記憶部110の情報に基づいて特定する特定部112と、を有する。
記憶部110は、主として補助記憶部103によって実現される。記憶部110は、入力部11に入力された設定データを繰り返し取得し、学習部16によって用いられた情報に関連付けて蓄積する。詳細には、記憶部110は、図13に示されるようなレシピバンクを記憶する。
レシピバンクは、設定データと、当該設定データが入力されたときの目標値と、当該設定データに基づいて対象物21,22が処理されたときの環境を示す環境情報、当該設定データに適用された第1モデル及び第2モデル、並びに誤差情報と、を互いに関連付けたレコードが蓄積されたデータベースである。レシピバンクの目標値は、誤差情報の一部として含まれるものであってもよいし、設定データの一部として、又は設定データとは異なるものとして入力部11に入力されたものであってもよい。記憶部110は、複数の設定データそれぞれを、目標値と、設定データに対して第1モデル及び第2モデルを適用して対象物を処理する処理装置の第3処理結果の当該目標値との第3誤差と、に関連付けて蓄積データとして蓄積する蓄積手段の一例に相当する。
提供部111は、プロセッサ101及び出力部105の少なくとも一方によって実現される。提供部111は、ユーザの要求に応じて記憶部110からレシピバンクを読み出して当該ユーザにレシピバンクを提供してもよい。ユーザは、提供されたレシピバンクを参照して、ユーザの望む目標値に対応する設定データを特定してもよい。また、ユーザは、ユーザの望む目標値に対応する設定データが比較的大きい誤差を示す誤差情報に関連付けられている場合には、設定データを若干変更してから入力部11に入力してもよい。さらに、ユーザは、ユーザの望む目標値を含むレコードがレシピバンクに含まれない場合には、複数のレコードを参照して適当な設定データを推測してもよい。また、提供部111は、特定部112にレシピバンクの情報を提供してもよい。
特定部112は、主としてプロセッサ101によって実現される。特定部112は、入力部11を介してユーザによって目標値が指定された場合に、当該指定された目標値に対応する設定データに相当する特定データをレシピバンクに基づいて特定する。詳細には、特定部112は、ユーザによって指定された目標値に、レシピバンクにおいて関連付けられている設定データを特定データとして特定してもよい。また、特定部112は、ユーザによって指定された目標値とレシピバンクにおいて関連付けられている設定データが比較的大きい誤差を示す誤差情報にも関連付けられている場合、及び、ユーザによって指定された目標値を含むレコードがレシピバンクに含まれない場合には、複数のレコードの線形補間のような推定手法によって目標値に対応して入力されるべき設定データに相当する特定データを特定してもよい。特定部112は、複数の設定データと、各設定データに対して第1モデル及び第2モデルを適用して対象物を処理する処理装置の第3処理結果と、に基づいて、指定された指定目標値に対応する設定データに相当する特定データを特定する特定手段の一例に相当する。
以上、説明したように、レシピバンクを利用すれば、新たな設定データの決定が容易になる。入力部11は、新たな対象物を処理する際の新目標値の入力を受け付ける入力手段の一例に相当し、特定部112は、新目標値に対応する設定データに相当する特定データを特定する特定手段の一例に相当する。処理装置は、新目標値に対応して特定された特定データに対して第1モデル及び第2モデルを適用した結果に基づいて新たな対象物を処理する。
実施の形態4.
続いて、実施の形態4について、上述の実施の形態3との相違点を中心に説明する。なお、上記実施の形態3と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、図14に示されるように、特定部112が、設定データを推定するための推定モデルを生成する点で、実施の形態3と異なる。
本実施の形態に係る特定部112は、目標値から適当な設定データを推定するための推定モデル43を生成する推定モデル生成部1121と、入力部11に入力された目標値を取得する目標値取得部1122と、を有する。図14では、推定モデルを利用するときの情報の流れが太い破線で示されている。
推定モデル生成部1121は、図13に示されるようなレシピバンクを読み出して、このレシピバンクに基づいて、推定モデル43を生成する。ここで、推定モデル43は、図15に示されるように、レシピバンクに含まれる既知の目標値から、当該目標値を小さい誤差で達成するための設定データを特定データとして特定するとともに、未知の目標値についても、小さい誤差で当該目標値を達成するための特定データを特定するモデルである。ここで、小さい誤差は、予め定められた閾値より小さい誤差を意味する。
例えば、切削加工における加工時間の長さを2倍にした場合であっても、切削量は刃の形状に依存するため必ずしも2倍にはならない。このように設定データと目標値との関係がユーザにとって自明ではないときに、推定モデルが利用される。図16には、推定モデルの簡単な例が示されている。推定モデル生成部1121は、例えば、設定データを目的変数とし、目標値、環境情報、第1モデル41、第2モデル及び誤差情報を説明変数とする回帰分析あるいは教師あり学習により、目標値との誤差を最小化する設定データを特定データとして得るための推定モデルを生成する。
特定部112は、目標値取得部1122によって取得された目標値に対して推定モデル43を適用することにより、当該目標値を達成するための設定データである特定データを特定して、入力部11に入力する。ユーザが設定データの選択を意識することなく目標値を入力すれば、当該目標値を達成するような対象物23の処理が実行されることとなる。
推定モデルは、第1モデル及び第2モデルを適用して対象物を処理する処理装置の第3処理結果の目標値との第3誤差を抑制する特定データであって指定目標値に対応する設定データに相当する特定データを推定するモデルの一例に相当する。特定部112は、推定モデルを蓄積データに基づいて生成して、新目標値に推定モデルを適用することにより、新目標値に対応する設定データに相当する特定データを特定する特定手段の一例に相当する。
続いて、処理装置10によって実行される推定モデル適用処理について、図17~18を参照して説明する。この推定モデル適用処理は、図6に示されたようなモデル適用処理の後に実行される。すなわち、推定モデル適用処理は、第2モデル42の学習後に実行される。
図17に示される推定モデル適用処理において、特定部112は、推定モデル生成処理を実行する(ステップS41)。推定モデル生成処理では、図18に示されるように、特定部112は、第1モデル41及び第2モデル42を固定して(ステップS411)、記憶部110のレシピバンクからデータを読み出す(ステップS412)。ここで、ステップS411における第1モデル41及び第2モデル42の固定は、第1モデル41及び第2モデル42のいずれも新たに学習しないことを意味する。このため、レシピバンクにおいて、設定データ又は環境情報のような条件に応じて異なる第1モデル41又は第2モデル42が登録されている場合には、異なる第1モデル41及び第2モデル42を示すレコードがステップS412で読み出されてもよい。
次に、推定モデル生成部1121は、ステップS412で読み出されたデータから推定モデル43を学習により生成する(ステップS413)。そして、推定モデル生成部1121は、ステップS413で生成した推定モデル43を新たな目標値に対して適用したときの誤差が予め定められた範囲内であるか否かを判定する(ステップS414)。推定モデル生成部1121は、ステップS414の誤差を、ユーザによって新たに入力された目標値を用いて得てもよいし、ステップS412で読み出されたデータの交差検証により得てもよい。
誤差が範囲内でないと判定した場合(ステップS414;No)、推定モデル生成部1121は、ステップS413以降の処理を繰り返して、推定モデルの学習を継続する。具体的には、前回のステップS413の推定モデル43の学習において、予め定められた処理の反復が切り上げられたところから、推定モデル生成部1121は、当該処理の反復を開始する。なお、ステップS412にてレシピバンクからすべてのデータが読み出されていない場合には、ステップS414の判定が否定されたときに(ステップS414;No)、ステップS412に戻って、特定部112が新たなデータを読み出してもよい。ステップS414にて、誤差が範囲内であると判定した場合(ステップS414;Yes)、処理装置10による処理は、推定モデル生成処理から、図17の推定モデル適用処理に戻る。
図17に戻り、ステップS41の推定モデル生成処理に続いて、目標値取得部1122は、入力部11に入力された新たな目標値を取得し(ステップS42)、特定部112は、新たな目標値に推定モデル43を適用することで特定データを特定する(ステップS43)。
次に、処理部12は、特定された特定データに基づいて第1モデル41及び第2モデル42を用いて対象物23を処理する(ステップS44)。そして、記憶部110のレシピバンクには、新たに対象物23を処理したときのレコードが登録される(ステップS45)。レコードの登録は、学習部16によってなされてもよいし、処理部12によってなされてもよい。
以上、説明したように、特定部112によれば、ユーザは、目標値を入力するだけで、適当な特定データに基づく対象物23の処理を実行することができる。また、記憶部110のレシピバンクに情報を追加して充実化させることで、特定部112が、より適当な特定データを特定することが期待される。
実施の形態5.
続いて、実施の形態5について、上述の実施の形態4との相違点を中心に説明する。なお、上記実施の形態4と同一又は同等の構成については、同等の符号を用いる。本実施の形態は、第2モデル42の学習と推定モデル43の学習とが交互に反復される。
図19には、本実施の形態に係る処理装置10によって実行されるモデル改善処理の流れが示されている。モデル改善処理では、図6に示されるようなモデル適用処理が実行される(ステップS51)。これにより、第2モデル42が初期化される。
次に、レシピバンクにデータが蓄積される(ステップS52)。具体的には、新たに入力される設定データに基づいて第2モデル42を用いた対象物22の処理が複数回実行されて、対象物22を処理したときの情報が記憶部110に蓄積される。
次に、図17に示されたような推定モデル適用処理が実行される(ステップS53)。これにより、推定モデル43が初期化される。
次に、レシピバンクにデータが蓄積される(ステップS54)。具体的には、新たに入力される目標値に推定モデル43を適用することにより特定データを特定して、特定された特定データに基づいて第2モデル42を用いた対象物23の処理が複数回実行される。そして、対象物23を処理したときの情報が記憶部110に蓄積される。
次に、学習部16が、ステップS54で蓄積されたデータに基づいて第2モデル42を学習する(ステップS55)。これにより、第2モデル42が改善される。そして、推定モデル生成部1121が、推定モデル43を生成する(ステップS56)。これにより、推定モデル43が改善される。その後、処理装置10は、ステップS54以降の処理を繰り返す。
これにより、図20に模式的に示されるように、特定の目標値に対する誤差が最小となる第2モデル42及び推定モデル43の組合せが探索されることとなる。図20において、点P2は、第2モデル42及び推定モデル43の初期値の組合せを示す。この点P2が第2モデル42の改善によって横軸に沿った矢印により示されるように移動し、さらに推定モデル43の改善によって縦軸に沿った矢印により示されるように移動する。このような移動を反復することによって、誤差が最小となる組合せに対応する点P3に向かって第2モデル42及び推定モデル43が近付くことが期待される。
以上、本開示の実施の形態について説明したが、本開示は上記実施の形態によって限定されるものではない。
例えば、処理システム1000が処理装置10に等しい例について説明したが、これには限定されない。例えば、図21に示されるように、入力部11、処理部12、モデル情報取得部13、環境情報取得部14、誤差情報取得部15及び学習部16を有する端末50と、工作機械である処理装置10と、によって処理システム1000が構成されてもよい。ここで、端末50は、処理装置10を操作するためのUI(User Interface)端末であって、例えば産業用PC(Personal Computer)である。図21の例においても、処理装置10は、設定データに対して第1モデル41及び第2モデル42を適用した結果に基づいて対象物を処理することとなる。
また、図22に示されるように、レシピバンクは、処理装置10の記憶部110ではなく、外部の記憶装置110aに記憶されてもよい。
上述の各実施形態を任意に組み合わせてもよい。例えば、実施の形態2に係る特性情報取得部18及びモデル生成部19、並びに、実施の形態3,4に係る記憶部110、提供部111及び特定部112を、図21に示される端末50が有してもよい。
また、第1モデル41及び第2モデル42が、設定データから、設定データの補正値を得るために利用される例について説明したが、これには限定されない。例えば、図23に示されるように、対象物を処理する加工部17に与えられる、設定データとは異なる制御出力値を、設定データに基づいて出力する単純処理が予め規定されているような場合において、第1モデル41は、単純処理よりも適当な制御出力値を、設定データに基づいて出力してもよい。ここで、設定データは、例えば、切削加工における工具の移動速度であって、制御出力値は、工具を回転させる主軸及びステージを移動させる移動軸それぞれのモータに流入させる電流値である。第2モデル42は、第1モデル42の出力値を得て、当該出力値の補正値を出力してもよいし、設定データを得て、第1モデル41の出力の補正値を出力してもよい。図23の例において、第1モデル41を生成するモデル生成部19は、制御出力値の履歴を含む学習データを利用してもよい。また、第2モデル42を学習する学習部16は、制御出力値の履歴を含む学習データを利用してもよい。
第1モデル41及び第2モデル42は、ユーザによって入力される設定データを起点とし、当該設定データに基づく対象物の処理を終点とするフローに含まれるような入力と出力を有していればよい。処理装置10は、設定データに対して第1モデル41及び第2モデル42を適用した結果に基づいて対象物を処理すればよい。
上述の実施の形態に係る処理システム1000の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
例えば、プログラムP1を、フレキシブルディスク、CD-ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto-Optical disk)に代表されるコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムP1をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
また、プログラムP1をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロードするようにしてもよい。
また、インターネットに代表されるネットワークを介してプログラムP1を転送しながら起動実行することによっても、上述の処理を達成することができる。
さらに、プログラムP1の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムP1を実行することによっても、上述の処理を達成することができる。
なお、上述の機能を、OS(Operating System)が分担して実現する場合又はOSとアプリケーションとの協働により実現する場合には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
また、処理システム1000の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア又は回路によって実現してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。つまり、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。