(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023172775
(43)【公開日】2023-12-06
(54)【発明の名称】予測システム、制御装置、および制御方法
(51)【国際特許分類】
G06Q 10/04 20230101AFI20231129BHJP
【FI】
G06Q10/04
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022084824
(22)【出願日】2022-05-24
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】但馬 慶行
(72)【発明者】
【氏名】望月 義則
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
(57)【要約】
【課題】予測を行う毎の処理の煩雑さを抑えて十分な予測精度を得ることを可能にする。
【解決手段】予測システムは記憶装置とプロセッサとを有し、プロセッサがソフトウェアプログラムを実行することにより、入力値から出力値を予測する第2予測モデルと、入力値に基づいて第2予測モデルのパラメータを算出する第1予測モデルとを管理し、第1予測モデルにより算出されたパラメータを適用した第2予測モデルを用いて入力値に対する出力値を予測し、第1予測モデルおよび第2予測モデルの生成に用いられた訓練データに含まれるある訓練データの近傍にある1つ以上の訓練データを近傍データとし、近傍データの入力変数の値から第1予測モデルおよび第2予測モデルによって算出される出力変数の値に生じる誤差を最小化するように前記第1予測モデルのパラメータを更新する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
予測対象の入力変数の値である入力値から出力変数の値である出力値を予測する予測システムであって、
ソフトウェアプログラムを格納する記憶装置と、
前記ソフトウェアプログラムを実行するプロセッサとを有し、
前記プロセッサが前記ソフトウェアプログラムを実行することにより、
前記入力値から前記出力値を予測する第2予測モデルと、前記入力値に基づいて前記第2予測モデルのパラメータを算出する第1予測モデルとを管理するモデル管理部と、
前記第1予測モデルにより算出された前記パラメータを適用した前記第2予測モデルを用いて前記入力値に対する前記出力値を予測する予測実行部と、
を実現し、
前記モデル管理部は、前記第1予測モデルおよび前記第2予測モデルの生成に用いられた訓練データに含まれるある訓練データの近傍にある1つ以上の訓練データを近傍データとし、前記近傍データの入力変数の値から前記第1予測モデルおよび前記第2予測モデルによって算出される出力変数の値に生じる誤差を最小化するように前記第1予測モデルのパラメータを更新する、
予測システム。
【請求項2】
前記第1予測モデルは、前記近傍データを入力とし、前記第2予測モデルのパラメータを出力する予測モデルであり、
前記第2予測モデルは、前記第1予測モデルで算出されたパラメータが適用され、前記入力値と前記近傍データとを入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである、
請求項1に記載の予測システム。
【請求項3】
前記モデル管理部は、前記近傍データを入力とし、第1の第2予測モデルのパラメータを算出する予測モデルである第1の第1予測モデルと、前記第1の第1予測モデルで算出されたパラメータが適用され、前記入力値と前記近傍データとを入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである第1の第2予測モデルと、前記入力値を入力とし、第2の第2予測モデルのパラメータを算出する予測モデルである第2の第1予測モデルと、前記第2の第1予測モデルで算出されたパラメータが適用され、前記入力値を入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである第2の第2予測モデルとを管理し、
前記予測実行部は、前記第1の第1予測モデルおよび前記第1の第2予測モデルを用いて前記入力値に対する前記出力値の第1の予測値を算出し、前記第2の第1予測モデルおよび前記第2の第2予測モデルを用いて前記入力値に対する前記出力値の第2の予測値を算出し、
前記第1の予測値と前記第2の予測値との差分を算出し、前記差分に基づく情報を提示するインタフェース管理部が更に実現される、
請求項1に記載の予測システム。
【請求項4】
前記モデル管理部は、前記近傍データの入力変数の値から前記第1予測モデルおよび前記第2予測モデルを用いて得られた出力変数の値と、前記近傍データにおける出力変数の値との差を最小化するように前記第1予測モデルのパラメータを更新する、
請求項2に記載の予測システム。
【請求項5】
前記モデル管理部は、前記差を最小化するように前記第1予測モデルのパラメータおよび前記第2予測モデルのパラメータを更新する、
請求項4に記載の予測システム。
【請求項6】
前記モデル管理部は、前記差に前記第2予測モデルのパラメータの正則化項や制約条件を加味した目的関数を最小化するように前記第1予測モデルのパラメータを更新する、
請求項4に記載の予測システム。
【請求項7】
前記プロセッサが前記ソフトウェアプログラムを実行することにより、
アテンション機構により選択した前記第2予測モデルの2つの入力変数と1つの出力変数とによる3次元の応答曲面を表示するための情報を生成するインタフェース管理部が更に実現される、
請求項1に記載の予測システム。
【請求項8】
前記第1予測モデルおよび前記第2予測モデルが一体的に微分可能な関数で表され、
前記モデル管理部は、誤差逆伝搬法によって前記第1予測モデルのパラメータを更新する、
請求項2に記載の予測システム。
【請求項9】
前記第1予測モデルは、前記入力値を入力とし、前記第2予測モデルのパラメータを出力する予測モデルであり、
前記第2予測モデルは、前記第1予測モデルで算出されたパラメータが適用され、前記入力値を入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである、
請求項1に記載の予測システム。
【請求項10】
前記第2予測モデルは、前記入力値から前記出力値のベイズ推定による確率分布を算出する予測モデルであり、
前記第1予測モデルは前記第2予測モデルの重みの事前分布のパラメータを予測する予測モデルである、
請求項1に記載の予測システム。
【請求項11】
前記プロセッサが前記ソフトウェアプログラムを実行することにより、
前記第1予測モデルと前記第2予測モデルとを用いて予測した出力変数の確率分布に基づく情報を提示するインタフェース管理部が更に実現される、
請求項10に記載の予測システム。
【請求項12】
被制御装置を制御する制御装置であって、
ソフトウェアプログラムを格納する記憶装置と、
前記ソフトウェアプログラムを実行するプロセッサとを有し、
前記プロセッサが前記ソフトウェアプログラムを実行することにより、
実績データを学習することにより構築された、予測対象の入力変数の値である入力値から予測対象の出力変数の値である出力値を予測する第2予測モデルと、前記入力値に基づいて前記第2予測モデルのパラメータを算出する第1予測モデルとを管理するモデル管理部と、
前記第1予測モデルにより算出された前記パラメータを適用した前記第2予測モデルを用いて前記入力値に対する前記出力値の予測値を算出する予測実行部と、
前記予測値に基づいて前記被制御装置に対する制御指令を生成し、該制御指令を前記被制御装置に適用する計画部と、
が実現され、
前記モデル管理部は、前記第1予測モデルおよび前記第2予測モデルの生成に用いられた訓練データに含まれるある訓練データの近傍にある1つ以上の訓練データを近傍データとし、前記近傍データの入力変数の値から前記第1予測モデルおよび前記第2予測モデルによって算出される出力変数の値に生じる誤差を最小化するように前記第1予測モデルのパラメータを更新する、
制御装置。
【請求項13】
前記被制御装置には、物品を搬送する搬送装置と、該搬送装置で搬送される前記物品に対して作業を行う作業装置とが含まれる、
請求項13に記載の制御装置。
【請求項14】
被制御装置を制御するための制御方法であって、
ソフトウェアプログラムを格納する記憶装置と前記ソフトウェアプログラムを実行するプロセッサとを有するコンピュータにおいて、前記プロセッサが前記ソフトウェアプログラムを実行することにより、
実績データを学習することにより構築された、予測対象の入力変数の値である入力値から予測対象の出力変数の値である出力値を予測する第2予測モデルと、前記入力値に基づいて前記第2予測モデルのパラメータを算出する第1予測モデルとを記憶し、
前記第1予測モデルにより算出された前記パラメータを適用した前記第2予測モデルを用いて前記入力値に対する前記出力値の予測値を算出し、
前記予測値に基づいて前記被制御装置に対する制御指令を生成し、該制御指令を前記被制御装置に適用し、
前記第1予測モデルおよび前記第2予測モデルの生成に用いられた訓練データに含まれるある訓練データの近傍にある1つ以上の訓練データを近傍データとし、前記近傍データの入力変数の値から前記第1予測モデルおよび前記第2予測モデルによって算出される出力変数の値に生じる誤差を最小化するように前記第1予測モデルのパラメータを更新する、
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、学習した予測モデルにより予測対象を予測する技術に関する。
【背景技術】
【0002】
生産ラインや物流現場など様々な現場でロボットによる自動化が求められており、そのための取り組みが行われている。複数のロボットが混在するような複雑な現場では、ロボットのアームとアームが衝突するといったような、ロボット同士の物理的な干渉が起こりうるので、複数のロボットを適切に協調させる複雑な制御が求められる。そのような複雑な制御を予め全て設計することは難しいのでデータ科学的アプローチが不可欠となる。しかし、データ科学的アプローチにおいても、自由度の大きなモデルを用いると未知領域や外挿領域で一定以上の予測精度が得られない場合がある。これに対し、未知領域や外挿領域での予測精度を高めるために局所回帰モデルを用いる手法がある。
【0003】
特許文献1には、局所回帰モデルを用いて製品の状態を予測する状態予測装置が開示されている。特許文献1の状態予測装置は、予測対象の製造条件と類似する製造条件を持つ実績データを近傍教師データとして抽出し、近傍教師データを用いて予測対象事項を予測するための局所重み付き回帰モデルを生成し、その局所重み付き回帰モデルにより誤差の予測値を算出する。また、その際に、状態予測装置は、予測対象のある製造条件が、近傍教師データの範囲外に存在する外挿の状態になっているとき、近傍教師データから当該製造条件を除外した上で、回帰計算を行う。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示された技術では、ある点の予測を行うときに、その予測したい点の近傍を決め、その近傍の実績データを近傍教師データとして抽出し、その近傍教師データから局所重み付き回帰モデルを生成し、その回帰モデルを用いて予測を実行する。すなわち、予測を行う毎に近傍の決定と近傍教師データの抽出と回帰モデルの生成を行う必要があり、処理が煩雑である。また、特許文献1の手法では近傍の決定方法も煩雑である。処理が煩雑であることは演算量を増大させることになるので制御の遅延の原因となり得る。
【0006】
本開示のひとつの目的は、予測を行う毎の処理の煩雑さを抑えて十分な予測精度を得ることを可能にする技術を提供することである。
【課題を解決するための手段】
【0007】
本開示に含まれるひとつの態様による予測システムは、予測対象の入力変数の値である入力値から出力変数の値である出力値を予測する予測システムであって、ソフトウェアプログラムを格納する記憶装置と、前記ソフトウェアプログラムを実行するプロセッサとを有し、前記プロセッサが前記ソフトウェアプログラムを実行することにより、前記入力値から前記出力値を予測する第2予測モデルと、前記入力値に基づいて前記第2予測モデルのパラメータを算出する第1予測モデルとを管理するモデル管理部と、前記第1予測モデルにより算出された前記パラメータを適用した前記第2予測モデルを用いて前記入力値に対する前記出力値を予測する予測実行部と、を実現し、前記モデル管理部は、前記第1予測モデルおよび前記第2予測モデルの生成に用いられた訓練データに含まれるある訓練データの近傍にある1つ以上の訓練データを近傍データとし、前記近傍データの入力変数の値から前記第1予測モデルおよび前記第2予測モデルによって算出される出力変数の値に生じる誤差を最小化するように前記第1予測モデルのパラメータを更新する。
【発明の効果】
【0008】
本開示に含まれるひとつの態様によれば、予測を行う毎の処理の煩雑さを抑えて十分な予測精度を得ることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施形態による制御システムを示すブロック図である。
【
図2】制御装置のハードウェア構成を示すブロック図である。
【
図3】予測システムが実行する全体処理のフローチャートである。
【
図4】モデル管理部が生成する予測モデルを説明するための概念図である。
【
図5】第1の実施形態における予測処理のフローチャートである。
【
図6】第2予測モデルの2つの入力変数が選択された様子を示す概念図である。
【
図8】第1実施例の現場システムを示す概念図である。
【
図9】第2実施例による制御システムのブロック図である。
【
図11】第3実施例による制御システムのブロック図である。
【
図12】自動物性探索ロボットの簡略化したブロック図である。
【
図13】第2の実施形態における予測処理のフローチャートである。
【
図14】変形例においてモデル管理部が生成する予測モデルを説明するための概念図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照して説明する。
【0011】
(第1の実施形態)
【0012】
図1は、第1の実施形態による制御システムを示すブロック図である。
【0013】
制御システム10には、制御装置11、管理端末12、被制御装置13、14、およびコントローラ15が含まれている。
【0014】
制御装置11は、現場の被制御装置13、14を制御するための演算を行う装置である。
【0015】
管理端末12は、制御装置11の画面表示、情報入力、操作を行うためのユーザインタフェースを提供する端末装置である。例えば、管理者は、実績データを基にして訓練データを作成したり、制御装置11での可視化処理の結果を画面上で確認したりすることができる。
【0016】
被制御装置13は、制御装置11からの制御指令に基づいて動作する装置である。被制御装置13は、一例として、逆キネマ計算および単純な軌道計画を行うコントローラを内包し、ライン上の物品に対して作業を行う作業装置であるロボットアーム装置である。被制御装置13は、制御装置11から指定された座標位置にアームを動かすことができる。
【0017】
被制御装置14は、制御装置11からの制御指令を受けたコントローラ15からの指令信号に基づいて動作する装置である。被制御装置14は、一例として、物品をライン上に搬送するライン搬送装置である。
【0018】
コントローラ15は、制御装置11から受信した制御指令に基づいて、被制御装置14への指令信号を出力する装置である。
【0019】
制御装置11は、予測システム20、収集部25、計画部26、および通信部27を有している。
【0020】
予測システム20は、訓練データを学習して予測モデルを生成し、予測モデルに予測対象とする入力変数の入力値を与え、予測結果である出力変数の出力値を算出するシステムである。
【0021】
収集部25は、被制御装置13、14からデータを収集する装置である。収集部25は、被制御装置13、14から実績データを収集し、その実績データを基に訓練データを作成し、訓練データを予測システム20に与える。
【0022】
計画部26は、予測システム20の予測結果に基づいて被制御装置13、14に対する制御指令を生成し、その制御指令を被制御装置13、14に適用する装置である。被制御装置13へは制御指令が直接適用され、被制御装置14へはコントローラ15を介して適用される。例えば、計画部26は、予め定められた計画に従った制御を実現するように、予測システム20による予測演算を複数回繰り返し用いて最良な制御指令を生成し、被制御装置13および/またはコントローラ15に送信する。
【0023】
通信部27は、管理端末12、被制御装置13、およびコントローラ15とのデータ通信を行う装置である。
【0024】
予測システム20は、モデル管理部21、予測実行部22、インタフェース管理部23、およびデータ管理部24を有している。
【0025】
モデル管理部21は、収集部25から与えられた訓練データを学習して予測モデルを生成し、予測実行部22は、その予測モデルを用いて、計画部26から与えれる入力変数の値を予測モデルに適用して出力変数の値を算出し、計画部26に返信する。また、モデル管理部21は、訓練データに基づいて予測モデルを更新する。モデル管理部21および予測実行部22が実行する処理の詳細は後述する。
【0026】
インタフェース管理部23は、管理端末12からの接続を受け付けて、管理端末12を操作する管理者に各種ユーザインタフェースを提供する。管理端末12を操作する管理者は、インタフェース管理部23が提供するユーザインタフェースから、訓練データの作成、各種パラメータの登録、学習結果のメトリックの画面上での確認、応答局面の画面上での確認などを行うことができる。
【0027】
データ管理部24は、制御実行により得られた実績データ、実績データを基に作成された訓練データ、予測モデルおよびそのパラメータなどの各種データを記録し、管理する。
【0028】
図2は、制御装置のハードウェア構成を示すブロック図である。
【0029】
制御装置11は、通信ネットワークに接続されたコンピュータであり、ハードウェアとして、プロセッサ31、メインメモリ32、記憶装置33、および通信装置34を有し、それらがバス35に接続されている。
【0030】
記憶装置33は、書込みおよび読み出しが可能にデータを記憶するものであって、この記憶装置33に、
図1に示したデータ管理部24の各種データが格納される。プロセッサ31は、記憶装置33に記憶されたデータをメインメモリ32に読み出し、メインメモリ32を利用してソフトウェアプログラムの処理を実行するプロセッサである。プロセッサ31がソフトウェアプログラムを実行することによって、
図1に示したモデル管理部21、予測実行部22、インタフェース管理部23、収集部25、計画部26が実現される。通信装置34は、プロセッサ31にて処理された情報を通信ネットワークを介して送信し、また通信ネットワークを介して受信した情報をプロセッサ31の処理に提供する。受信した情報はプロセッサ31にてソフトウェアの処理に利用される。
【0031】
図3は、予測システムが実行する全体処理のフローチャートである。
【0032】
ステップ101にて、モデル管理部21は学習処理を実行する。学習処理は、訓練データを学習して予測モデルを生成する処理である。
【0033】
図4は、モデル管理部が生成する予測モデルを説明するための概念図である。
図4に示すように、モデル管理部21は、第1予測モデルと第2予測モデルとを生成する。
【0034】
第1予測モデルは、入力変数の値(入力値)xに基づいて、第2予測モデルのパラメータθgを算出する予測モデルである。第2予測モデルは、入力変数xの値から、出力変数yの予測値y~を算出する予測モデルである。
【0035】
より具体的には、本実施形態の第1予測モデルは、予測対象の入力値の近傍にあるk個のデータ(近傍データ)を入力とし、第2予測モデルのパラメータを出力する予測モデルである。そして、第2予測モデルは、第1予測モデルで算出されたパラメータが適用され、入力値とそのk個の近傍データとを入力とし、入力値に対する出力値の予測値を算出する予測モデルである。近傍データは、入力変数と出力変数とが対をなす実績データにおける、入力変数の値が入力値に近いk個のデータである。kは任意に設定可能な自然数である。
【0036】
k=1とすると第1予測モデルと第2予測モデルをそれぞれ式(1)と式(2)のように表すことができる。なお、k=1は例示であり、これに限定されることはない。kは、管理者が管理端末12から任意に設定可能であってよく、2以上であってもよい。
【0037】
【0038】
xは入力変数である。yは出力変数である。y~は、入力値xに対する出力変数の予測値である。fは第1予測モデルを表す関数である。gは第2予測モデルを表す関数である。θfは第1予測モデルのパラメータである。Nx
k(x)はxのk近傍の入力である。式(1)および式(2)ではk=1となっている。θgは、第2予測モデルのパラメータである。一例として、第1予測モデルがニューラルネットワークであり、第2予測モデルが線形回帰モデルであってもよい。AとBは、第2予測モデルが線形回帰モデルの場合の回帰直線の傾きと切片であり、第2予測モデルのパラメータである。ただし、第1予測モデルおよび第2予測モデルのモデル構造は本例に限定されることはない。
【0039】
図3に戻り、ステップ102にて、予測実行部22は、予測処理を実行する。
【0040】
図5は、第1の実施形態における予測処理のフローチャートである。
【0041】
ステップ201にて、予測実行部22は、予測対象の入力値xの近傍データを第1予測モデルに入力することにより第2予測モデルのパラメータを算出する。続いて、ステップ202にて、予測実行部22は、第1予測モデルにより算出されたパラメータを第2予測モデルに適用し、その第2予測モデルに入力値xおよび近傍データを入力し、第2予測モデルで算出された出力変数の予測値を取得する。
【0042】
予測実行部22の予測結果は、計画部26で制御指令に変換され、被制御装置13、14に適用される。収集部25は、被制御装置13、14に適用された出力値と入力値との対を実績データとして取得する。
【0043】
上述の通り、ステップ102にて予測実行部22が予測を行うときには、ステップ101のモデル管理部21による学習処理は終了しており、予測処理に学習処理は含まれない。したがって、本実施形態においては予測を行う毎に予測モデルを生成する必要はない。
【0044】
続いて、ステップ103にて、モデル管理部21は、第1予測モデルおよび第2予測モデルの生成に用いた訓練データに基づいて、第1予測モデルのパラメータを更新する。このとき、モデル管理部21は、一例として誤差逆伝搬法によって第1予測モデルのパラメータを更新する。
【0045】
より具体的には、一例として、モデル管理部21は、蓄積されている訓練データに含まれるある訓練データに着目し、その訓練データの近傍にある他のk個の訓練データを近傍データとし、その近傍データの入力変数の値から第1予測モデルおよび第2予測モデルを用いて出力変数の値を算出し、その算出された得られた出力変数の値と、上記近傍データの出力変数の値との誤差(目的関数)を最小化するように第1予測モデルのパラメータを更新する。目的関数は式(3)のEのように表すことができる。式(3)において、着目した訓練データが(xi,yi)であり、その近傍データが(Nx
k(xi),Ny
k(yi))である。
【0046】
【0047】
本実施形態では、式(3)に示したように、MSE(Mean Squared Error)ベースで目的関数を構成したが、これに限定されることはない。他の例として、MAE(Mean Absolute Error)やヒンジロス誤差など他の手法で目的関数を構成してもよい。また、ここでは訓練データからk個の近傍データを抽出して目的関数に用いる例を示したが、これに限定されることはない。他の例として、訓練データから近傍データを抽出するのではなく、着目した訓練データに近いほど他の訓練データに大きく重みづけして誤差(目的関数)の算出に用いることにしてもよい。
【0048】
また、本実施形態では、モデル管理部21は、上記誤差に、第2予測モデルのパラメータの正則化項や制約条件(たとえば線形回帰モデルの場合、傾きが正となるような制約)を加味した目的関数を最小化するように第1予測モデルのパラメータを更新することにしてもよい。
【0049】
また、本実施形態の予測システム20は、管理者に様々なユーザインタフェースを提供する。インタフェース管理部23は、選択された第2予測モデルの2つの入力変数と1つの出力変数とによる3次元の応答曲面を表示することにしてもよい。例えば、アテンション機構により第2予測モデルへの貢献度の高い2つの入力変数を選択することにしてもよい。あるいは、管理者が第2予測モデルの2つの入力変数を任意に選択することにしてもよい。また、応答曲面と共に予測対象および近傍データのプロットを表示してもよい。
【0050】
図6は、第2予測モデルの2つの入力変数が選択された様子を示す概念図である。
図7は、応答曲面を表示した様子を示す図である。
【0051】
図6の例では、第2予測モデルにはx1、x2、x3という3つの入力変数が存在する。
図6中のハッチングされたマスは、選択された2つの入力変数を表す領域を示している。
図6の例では、3つの入力変数の中からx1、x2という2つの入力変数が選択されている。
図7を参照すると、その選択された2つの入力変数x1、x2と1つの出力変数yとを3軸とする3次元空間上に局所線形回帰モデルの応答局面P1が示されている。また、予測対象とその近傍の訓練データとがプロットによって示されている。
【0052】
また、本実施形態では、被制御装置13、14が製造ラインや物流倉庫の現場に配置されたロボットアーム装置およびライン搬送装置である例を示したが、これに限定されることはない。他の例として、加工ワークを搬送装置で搬送しながら圧延し、均一形状の金属板を製造する圧延装置を被制御装置13、14とし、制御装置11により形状制御を実現することにしてもよい。また、電力供給システムにおけるPSS(Power System Stabilizer)やマテリアルズインフォマティクスの自動物性探索ロボットなど様々な装置を被制御対象13、14とすることができる。
【0053】
以上、本実施形態によれば、例えば、ベルトコンベアによって作業エリア間で物品を移動させ、作業エリアにてロボットアームによって物品に対する作業を行うシステムにおいて、ベルトコンベアとロボットアームの動作を適切に制御し、作業エリアの直前で多数の物品をバッファに置いて置かなくても効率よく作業を行って、スループットを維持することが可能となる。それにより、作業エリアの直前に設けるバッファの物理的な領域を低減することができる。
【0054】
以下、第1実施形態におけるより具体的な幾つかの実施例を示す。
【0055】
(1)第1実施例
【0056】
第1実施例では、ベルトコンベアで搬送される物品に対してロボットアームで作業を行う現場での制御を実現する構成を例示する。上述した実施形態の制御システム10が、コントローラを内包するロボットアームと、外部のコントローラ15を介して制御されるベルトコンベアとを制御する。ロボットアームが行う作業は、製品の製造における部品の搬送、パレタイジング、組み立て、塗装などである。より具体的には、車載機器の基板への電子部品のはんだ付けや車載機器の組み立てなどがある。ベルトコンベアが部品、半製品、製品を搬送し、ロボットアームが、ベルトコンベアによって運ばれてきた部品をパレタイジングしたり、半製品に対して部品のはんだ付けあるは塗装(プリント)を行い、製品を組み立てる。
【0057】
本実施例では、制御装置10からロボットアームへは、先端座標および把持状態を制御指令として与え、ロボットアーム内のコントローラがロボットアームの軌道計画を行い、その軌道計画を制御装置10が修正してロボットアームに与え、ロボットアームのコントローラが関節角度等のPID制御を行うものとする。本実施例にてロボットアームが把持して移動させる対象物には、ロボットアームの動作に影響する程度の重量がある物品が含まれているものとする。単体のロボットアームは、把持した対象物の重量が大きい場合、重量による変位およびモーメントによる動作遅れによって、理想的な軌道計画の通りに動作しない。本実施例では、ロボットアームに力覚センサを設け、力覚センサで取得される力覚情報を基に予測モデルによって軌道計画に補正を加える。
【0058】
予測モデルは、最終的な目標とするロボットアームの先端座標および把持状態の最終状態と、ロボットアームのコントローラで行われた軌道計画の結果と、ロボットアームの実績として計測された先端座標および把持状態と、ロボットアームが作業を行う物品を搬送するベルトコンベアの実績として計測された状態とを入力として、次のロボットアームの先端座標および把持状態を予測結果として出力するものとして構築する。制御装置10は、ロボットアームのコントローラによる軌道計画を、予測モデルによる予測結果に基づいて補正し、補正後の軌道計画からロボットアームへの制御指令を生成する。予測モデルは第1予測モデルと第2予測モデルで構成され、第1予測モデルはニューラルネットワークであり、第2予測モデルは線形回帰式であるとする。
【0059】
図8は、第1実施例の現場システムを示す概念図である。現場システム50は、ロボットアーム13Aと、ベルトコンベア14Aと、コントローラ15Aとを含む。
【0060】
ロボットアーム13Aは、リンク59、関節51、グリッパ52、およびコントローラ53を有している。リンク59同士が関節51によって角度自在に接続されている。先端にはグリッパ52が接続されている。グリッパ52は、一例として、支点から相対角度を変化させて開閉する2本の爪を有し、爪の開閉により把持と非把持とを行う。各関節51およびグリッパ52には、サーボモータにより駆動されるアクチュエータが配設されている。
【0061】
ロボットアーム13Aは、アクチュエータにより関節51の角度を変化させることによって所望の姿勢を取ることができる。サーボモータはセンサを備え、センサでは、逐次、角度およびトルクが測定され、測定結果がコントローラ53に入力される。
【0062】
グリッパ52は、アクチュエータにより角度を変化させることによって掴む動作を行う。グリッパ52のサーボモータはセンサを備え、センサでは、逐次、角度およびトルクが測定される。また、先端側のリンク59とグリッパ52の間には力覚センサが取り付けられている。力覚センサでは逐次、反力とモーメントを含む力覚情報が測定される。角度、トルク、および力覚情報の測定結果はコントローラ53に入力される。
【0063】
制御装置11は、制御指令としてロボットアーム13Aの先端座標および把持状態をコントローラ53へ送信する。先端座標は、ロボットアーム13Aの先端に配置されたグリッパ52を移動させる位置を示す座標である。把持状態は、グリッパ52の状態を示し、物品59等を掴んた把持と、何も掴んでいない非把持の2つの状態がある。
【0064】
コントローラ53には、制御装置11から制御指令としての先端座標および把持状態が入力され、関節51のサーバモータのセンサから測定結果の角度およびトルクが入力され、グリッパ52のセンサから測定結果の角度およびトルクが入力され、グリッパ52の力覚センサから測定結果の反力およびモーメントが入力される。
【0065】
コントローラ53は、制御指令の先端座標を基に逆キネマ計算および軌道計画を行って、ロボットアーム13Aの先端を現在の位置から制御指令に示された位置に移動させるための各関節51の角度の時間遷移を決定する。軌道計画のアルゴリズムは特に限定されない。例えば、ロボットアーム13Aの先端が滑らかな軌道上を移動するように各関節51の角度の時間遷移を決定するとよい。コントローラ53は、決定した各関節51の角度の時間遷移と、各関節51のセンサで測定される角度およびトルクの測定結果と、を基にしたPID制御によって、各関節51の角度を制御する。具体的には、コントローラ53は、例えば、各関節51のアクチュエータを駆動するサーボモータに与える電圧および電流を制御する。
【0066】
更に、コントローラ53は、上記制御の結果として測定された実際の先端座標、把持状態、および力覚情報を制御装置11に送信する。
【0067】
一方、制御装置11には、コントローラ53から制御結果の先端座標、把持状態、および力覚情報が実績データとして入力される。制御装置11では、収集部25が、コントローラ53からの実績データを収集し、予測システム20に送る。実績データは、予測実行部22にて、第1予測モデルおよび第2予測モデルへの入力変数xの一部となる。
【0068】
また、実績データすなわち先端座標および把持状態は、データ管理部24によって蓄積される。そして、収集部25は、その蓄積された実績データを基に訓練データを作成する。ある時刻tにおける予測モデルへ入力された各種情報および予測モデルから出力された予測結果と、次の時刻t+1にて取得された実績データとを組み合わせて訓練データとすればよい。学習においては、予測結果と実績データとの誤差を前述した目的関数に従って最小化するように予測モデルを更新すればよい。
【0069】
制御装置11では、モデル管理部21が、訓練データを学習することにより、ロボットアーム用第1予測モデルと、ロボットアーム用第2予測モデルとを構築し、またロボットアーム用第1予測モデルを更新する。
【0070】
ロボットアーム用第1予測モデルおよびロボットアーム用第2予測モデルの入力変数xには、最終的な目標とするロボットアーム13Aの先端座標および把持状態の最終状態と、ロボットアーム13Aのコントローラ53で行われた軌道計画の結果と、コントローラ53から収集部25経由で与えられたロボットアーム13Aの実績データと、コントローラ15Aから与えらえたベルトコンベア14Aの実績データと、が含まれる。ロボットアーム13Aへの制御指令には、計画されたロボットアーム13Aの先端座標および把持状態が含まれる。ロボットアーム13Aの実績データには、実際のロボットアーム13Aの先端座標、把持状態、および力覚情報が含まれる。ベルトコンベア14Aの実績データには、ベルトコンベア14Aの制御結果としての回転数が含まれる。
【0071】
ロボットアーム用第2予測モデルの出力y~は、次のロボットアーム13Aの先端座標および把持状態の予測結果である。ロボットアーム用第2予測モデルを用いることで把持した対象物の重量を考慮した先端座標および把持状態の予測が可能となる。計画部26は、ロボットアーム用第2予測モデルを用いた予測演算を複数回用いて補正した軌道計画を作成し、補正した軌道計画を基にロボットアーム13Aへ与える制御指令を生成する。予測演算を複数回繰り返し用いて制御指令を生成する処理の具体例については後述する。
【0072】
一方、ベルトコンベア14Aは、ベルト54、モータ55、およびプーリ56を備え、環状のベルト54が巻き掛けられたプーリ56をモータ55が回転させることにより、ベルト54上に載置された物品59を直線的に運搬する装置である。ベルトコンベア14Aは、モータ55の回転数によってベルト54上の物品59を移動させる速度を制御することができる。
【0073】
制御装置11からコントローラ15Aへは、制御指令としてモータ55の回転数が与えられる。回転数は、単位時間当たりに回転する回数であり、例えば1分間に回転する回数である。コントローラ15Aは、PID制御により、モータ55をその制御指令で与えらえた回転数に制御するためのモータ55に印加する電圧および電流の値を算出し、操作量としてモータ55に与える。
【0074】
また、ベルトコンベア14Aには、エンコーダが備えられている。エンコーダはモータ55の実際の回転数を測定している。エンコーダで計測された回転数はコントローラ15Aに出力され、PID制御に利用されるとともに、コントローラ15Aから制御装置11に実績データとして送信される。
【0075】
コントローラ15Aは、与えられた制御指令に示された目標とするモータの回転数と、ベルトコンベア14Aのエンコーダで測定されるモータの回転数と、を基にしたPID制御によって、ベルトコンベア14Aのベルトの速度あるいはモータの回転数を制御する。具体的には、コントローラ15Aは、例えば、モータ55に与える電圧および電流を制御する。
【0076】
制御装置11には、コントローラ15Aから制御結果の回転数が実績データとして入力される。制御装置11では、収集部25が、コントローラ15Aからの実績データを収集し、予測システム20に送る。実績データは、予測実行部22にて、第1予測モデルおよび第2予測モデルへの入力変数xの一部となる。
【0077】
また、実績データすなわち回転数は、データ管理部24によって蓄積される。そして、収集部25は、その蓄積された実績データに、管理端末12から入力されたラベル情報を付加することにより訓練データを作成する。
【0078】
制御装置11では、モデル管理部21が、訓練データを学習することにより、ベルトコンベア用第1予測モデルと、ベルトコンベア用第2予測モデルとを構築し、また更新する。
【0079】
ベルトコンベア用第1予測モデルおよびベルトコンベア用第2予測モデルの入力変数xには、計画部26から与えられたベルトコンベア14Aへの制御指令と、コントローラ3から収集部25経由で与えられるベルトコンベア14Aの実績データと、ロボットアーム13Aのコントローラ53から与えられるロボットアーム13Aの実績データとが含まれる。計画部26から与えられるベルトコンベア14Aへの制御指令には、計画部26から与えられる計画されたベルトコンベア14Aのモータ55の回転数が含まれる。ベルトコンベア14Aの実績データには、実際のベルトコンベア14Aのモータ55の回転数が含まれる。ロボットアーム13Aの実績データには先端座標および把持状態が含まれる。
【0080】
ベルトコンベア用第2予測モデルの出力y~は、コントローラ15Aへ与える制御指令となる。コントローラ15Aへ与える制御指令は、計画部26から与えられる計画された制御指令に対して実績データが反映された制御指令であり、例えばベルト速度あるいはモータ55の回転数が指定される。ベルト速度はベルトコンベアのモータの回転数に対応する。
【0081】
ここで、上述した計画部26がロボットアーム13Aについて予測システム20による予測演算を複数回繰り返し用いて最良な制御指令を生成する処理の例を以下に示す。
【0082】
まず、計画部26は、各ロボットアームについて個々に先端位置の最適な解を算出し、軌道計画を実行する。続いて、計画部26は、軌道計画で得られた各アームの軌跡の情報を基に干渉が起こるか否か確認する。ここでいう干渉には、先端のグリッパ52だけでなくリンク59の干渉も含まれる。干渉が起こらないようであれば、計画部26は、現在の解を採用する。干渉が起こるようであれば、計画部26は、微修正のために再び軌道計画を実行する。上記微修正について以下に説明する。
【0083】
一例として、上記微修正において、計画部26は、現在の軌道計画では2つのアームが干渉を起こすようであれば、干渉を起こる2つのアームの組み合わせについて再び軌道計画を行い、干渉が起こらないような軌跡を探索することにしてもよい。なお、ここでは、干渉が起こる2つのアームの組み合わせについて再び軌道計画を実行するものとしたが、他の処理も可能である。例えば、干渉が起こる2つのアームの組み合わせを含むように特定した範囲の被制御装置について再び軌道計画を実行することにしてもよい。その際、再び軌道計画を実行する範囲に、アームだけでなく、ベルトコンベアを含んでもよい。また、ここでは、アーム同士の干渉について述べたが、アームとベルトコンベアとの干渉についても同様の処理で回避できる。また、他の例として、計画部26は、現在の軌道計画では干渉を起こる2つのアームのそれぞれについて再び軌道計画を実行してもよい。軌道計画がランダム探索を伴うものであれば、今回の軌道計画において前回と異なる軌跡が得られる。今回の軌道計画で得られたアームの軌跡の情報を基に干渉が起こるか否か確認し、干渉が起こるようであれば更に軌道計画を実行するということを干渉が起こらなくなるまで繰り返してもよい。
【0084】
上記微修正において、上述した軌道計画を再実行する方法の代わりにあるいはその方法と併用して、例えば、干渉するロボットアームの一方の動作を他方の動作が進むまで待たせることにしてもよい。計画部26は、各ロボットアームの軌跡の情報を基に所定の単位時間を所定個のブロックに分割し、ブロック単位でロボットアームの動作を進めて干渉が起こるかどうかを確認し、干渉が起こったら、一方のロボットアームの当該ブロックの動作を他方のロボットアームの当該ブロックの動作が終了するまで待たせることにすればよい。
【0085】
本実施例では、このようにして複数のロボットを適切に協調させる複雑な制御が可能となる。
【0086】
以上、本実施例では、物品を直線的に搬送するベルトコンベアを例示したが、これに限定されることはない。他の例として、制御装置11は、物品を3次元空間上で移動させることが可能なxyzテーブルであっても同様に制御することができる。
【0087】
また、本実施例では、コントローラ15Aから制御装置11へモータ55の回転数の実測データが送信される例を示したが、これに限定されることはない。他の例として、コントローラ15Aが、ベルトコンベア14Aのエンコーダで測定された回転数を基に、ベルトコンベア14Aの状態を算出し、その状態の情報を制御装置11に送信することにしてもよい。ベルトコンベア14Aの状態の形式は特に限定されないが、例えばベルトの速度によって示してもよい。
【0088】
また、本実施例では、2本の爪を開閉して物品を掴むグリッパを備えたロボットアームを例示したが、ロボットアームは、他の例として、吸引機構によって物品を吸着するグリッパを備えたものであってもよい。
【0089】
また、本実施例では、ロボットアーム用の予測モデルとベルトコンベア用の予測モデルを別個に構築する例を示したが、この構成に限定されることはない。ロボットアーム13Aとベルトコンベア14Aの制御を1つの予測モデルで実現してもよい。例えば、ロボットアーム13Aとベルトコンベア14Aが連携して物品59への作業を実現する用途においては、ロボットアームとベルトコンベアの制御を1つの予測モデルで実現するのが好適である場合もある。
【0090】
以上説明した第1実施例によれば、ロボットアームの干渉を低減して物品に対する作業を好適に制御することができる。また、現状では各社から提供されているロボットアームやベルトコンベアはAPI(Application Programming Interface)が各社あるいは各製品に独自の仕様となっている。そのため、複数の製品を横断的に扱う干渉チェックなどのシミュレーションおよび制御の実装が困難である。具体的には、複数のロボットの物理シミュレータを既存の軌道計画エンジンで動かすことは、APIの違いなどにより困難もしくは費用が掛かる場合があるという現実がある。これに対して、本実施例のように、各社各製品の独自APIを用いず、予測モデルという形でシミュレータを統一した統合的な制御システムを別途構築すれば、複数の製品の横断的なシミュレーションや制御の実装を実現できる。
【0091】
(2)第2実施例
【0092】
第2実施例では、冷間圧延を行う現場の制御を実現する構成を例示する。上述した実施形態の制御システム10が冷間圧延装置を制御する。
【0093】
本実施例は、人間が手動で行った冷間圧延装置への時系列の操作のデータが蓄積されており、制御装置10は、その蓄積されたデータを基に冷間圧延装置の制御の自動化を図ったものである。
【0094】
予測モデルは、目標とする板の形状と、冷間圧延装置に投入される被圧延材の形状と、現在の冷間圧延装置の状態と、次に行う操作とを入力とし、次の装置の状態と板の形状とを予測結果として出力するものとして構築する。予測モデルは第1予測モデルと第2予測モデルで構成され、第1予測モデルはニューラルネットワークであり、第2予測モデルは線形回帰式であるとする。
【0095】
図9は、第2実施例による制御システムのブロック図である。
図9に示す第2実施例の制御システムは、コントローラを内包する被制御装置が存在しない点で
図1に示した制御システムと異なる。実施例2では、現場の被制御装置として冷間圧延装置14Bがある。
【0096】
図10は、冷間圧延装置の簡略化した概念図である。冷間圧延装置14Bは、バックアップロール61、ワークロール62、レベリングロール63、クーラント噴射器64、および形状計65を有している。レベリングロール63は、図中に矢印で示した被圧延材66の進行方向およびその直交する板幅方向に並べて複数対が配置され、それぞれにレベリング位置が指定可能である。クーラント噴射器64は、板幅方向に複数が配置され、個々にクーラントの噴射量が指定可能である。
【0097】
冷間圧延装置14Bは、当接するバックアップロール61を介して所望のロールギャップに設定された対をなすワークロール62の間隙に被圧延材66を通過させ、被圧延材66に複数のレベリングロール63によってレベリングを行って、所望の形状の板を生成する。板の形状は板の曲がり具合を意味する。その間、クーラント噴射器64からワークロール62の適切な位置に適切なタイミングで適切な量のクーラントが噴射される。形状計65では加工後の板の形状が計測される。形状計65は板幅方向に並ぶ複数の距離計測器で構成される。冷間圧延装置14Bにおいては、板の形状を制御量とし、ワークローラ62の回転数と各レベリングローラ63のレベリング位置とクーラントの噴射量とを操作量として制御が行われる。
【0098】
制御装置11は、制御指令としてワークローラ62の回転数、レベリングローラ63のレベリング位置、およびクーラント噴射量をコントローラ15Bへ送信する。
【0099】
コントローラ15Bは、制御装置11からの制御指令を冷間圧延装置14Aの各部へ入力する。
【0100】
また、コントローラ15Bへは、形状計65で計測された板の形状が実測データとして入力され、その実測データはコントローラ15Bから制御装置11へ送られる。制御装置11では、収集部25が実績データを取得し、予測システム20に送る。実績データは、予測実行部22にて、第1予測モデルおよび第2予測モデルへの入力変数xの一部となる。
【0101】
また、実績データは、データ管理部24によって蓄積される。そして、収集部25は、その蓄積された実績データにラベル情報を付加することにより訓練データを作成する。このとき実測データに付加されるラベルは、例えば、板の目標とする形状と実際の形状との差異である。
【0102】
制御装置11では、モデル管理部21が、訓練データを学習することにより、第1予測モデルと第2予測モデルを構築し、また第1予測モデルを更新する。
【0103】
第1予測モデルおよび第2予測モデルの入力変数xには、計画部26から与えられた目標とする板の形状と、コントローラ15Bから収集部25経由で与えられた実績データと、現在の装置の状態と、次に行う操作の操作量とが含まれる。現在の装置の状態には、ワークローラ62の回転数と、レベリングローラ63のレベリング位置と、クーラント噴射器64のクーラントの噴射量とが含まれる。次に行う操作の操作量としても、ワークローラ62の回転数と、レベリングローラ63のレベリング位置と、クーラント噴射器64のクーラントの噴射量とが含まれる。
【0104】
第2予測モデルの出力y~は、冷間圧延装置14Bへ与える制御指令となる。コントローラ53へ与える制御指令は、次に行う操作の操作量としても、ワークローラ62の回転数と、レベリングローラ63のレベリング位置と、クーラント噴射器64のクーラントの噴射量とが含まれる。
【0105】
計画部26は、次に行う操作として、板の形状を目標の形状に最も近づけることのできる操作を選択し、その操作の操作量をコントローラ15Bへの制御指令とする。
【0106】
以上説明した第2実施例によれば、板の形状を好適に制御して精度の高い板の製造が可能となる。
【0107】
(3)第3実施例
【0108】
第3実施例では、材料を計量して混合容器に投入するロボットにより複数の材料を配合して得られた生成物の物性を測定し、所望の物性の生成物が得られる配合を探索する自動物性探索ロボットの制御を実現する構成を例示する。自動物性探索ロボットは、例えば、化学品、薬品、食品、油を生成するロボットである。化学品の好例として、高分子と樹脂と添加剤を混合して生成したプラスティックがある。プラスティックの例であれば、計測される物性としては、光沢,流動性,曲げ剛性,破壊伸び,軟化温度などである。
【0109】
本実施例では、過去に行われた材料の配合とそれにより得られた生成物の物性との関係を示すデータが蓄積されており、制御装置10は、その蓄積されたデータを基に自動物性探索ロボットの制御を実現するものである。
【0110】
予測モデルは、材料の配合を入力とし、それにより得られた生成物の物性を予測結果として出力するものとして構築する。予測モデルは第1予測モデルと第2予測モデルで構成され、第1予測モデルはニューラルネットワークであり、第2予測モデルは線形回帰式であるとする。
【0111】
図11は、第3実施例による制御システムのブロック図である。
図11に示す第3実施例の制御システムは、コントローラを内包しない被制御装置が存在しない点で
図1に示した制御システムと異なる。実施例3では現場の被制御装置として自動物性探索ロボット13Cがある。
【0112】
図12は、自動物性探索ロボットの簡略化したブロック図である。自動物性探索ロボット13Cは、複数の材料投入装置71と、混合装置72と、物性計測器73と、コントローラ74とを有している。材料投入装置71は、指定された材料を指定された分量だけ容器72に投入する装置である。混合装置72は、複数の材料投入装置71により投入された複数の材料を容器内で混合し、生成物を生成する装置である。物性計測器73は、容器内で生成された生成物の物性を計測する計測器である。コントローラ74は、制御装置10からの制御指令に従って材料投入装置71および混合装置72を制御して生成物を生成し、物性計測器73で計測された生成物の物性を実績データとして制御装置11に通知する。
【0113】
制御装置11は、制御指令として材料の配合をコントローラ74へ送信する。
【0114】
コントローラ74は、制御装置11からの制御指令を各部へ入力する。
【0115】
また、コントローラ74へは、物性計測器73で計測された生成物の物性が実測データとして入力され、その実測データはコントローラ74から制御装置11へ送られる。制御装置11では、収集部25が実績データを取得し、予測システム20に送る。
【0116】
また、実績データは、データ管理部24によって蓄積される。そして、収集部25は、その蓄積された実績データにラベル情報を付加することにより訓練データを作成する。このとき実測データに付加されるラベルは、例えば、生成物の目標とする物性と、実際の物性との差異である。
【0117】
制御装置11では、モデル管理部21が、訓練データを学習することにより、第1予測モデルと第2予測モデルを構築し、また第1予測モデルを更新する。
【0118】
第1予測モデルおよび第2予測モデルの入力変数xには、投入する材料の配合が含まれる。
【0119】
第2予測モデルの出力y~は、生成される生成物の物性である。コントローラ74へ与える制御指令は、目標とする物性に最も近い物性の生成物が生成されることが予測された材料の配合が含まれる。
【0120】
計画部26は、次に行う操作として、目標とする物性に最も近い物性の生成物が生成されることが予測された材料の配合での混合を可能にする操作を選択し、その操作の操作量をコントローラ74への制御指令とする。
【0121】
以上説明した第3実施例によれば、好適な材料の配合により所望の物性を持った生成物を生成することが可能となる。
【0122】
(第2の実施形態)
【0123】
第1の実施形態では、第1予測モデルと第2予測モデルとをそれぞれ独立した予測モデルとして構築する制御システムを例示したが、他の態様も可能である。第2の実施形態では、
図4の破線で示されているように、第1の実施形態における第1予測モデルと第2予測モデルとを一体的に構築する例を示す。
【0124】
第2の実施形態の制御システムの基本的な構成は、
図1に示した第1の実施形態のものと同様である。第2の実施形態における制御装置11のハードウェア構成は
図2に示した第1の実施形態のものと同様である。第2の実施形態における予測システム20が実行する全体処理は基本的に
図3に示した第1の実施形態のものと同様であるが、詳細において違いがある。
【0125】
以下、第2の実施形態が第1の実施形態と異なる点について説明する。
【0126】
ステップ101にて、モデル管理部21は、学習処理を実行し、第1予測モデルと第2予測モデルが一体化された予測モデルを構築する。内包される第1予測モデルと第2予測モデルは、第1の実施形態のものと基本的に同様である。ただし、本実施形態において一体化された予測モデルは微分可能な関数で表される。
【0127】
ステップ102にて、予測実行部22が実行する予測処理は第1の実施形態のものと同様である。
【0128】
ステップ103にて、モデル管理部21は、第1予測モデルおよび第2予測モデルの生成に用いた訓練データに基づいて第1予測モデルおよび第2予測モデルのパラメータを更新する。このとき、モデル管理部21は、誤差逆伝搬法によって第1予測モデルおよび第2予測モデルのパラメータを更新する。
【0129】
(第3の実施形態)
【0130】
第1の実施形態では、第1予測モデルは、予測対象の入力値の近傍データを入力とし、第2予測モデルのパラメータを算出する予測モデルであり、第2予測モデルは、第1予測モデルで算出されたパラメータが適用され、予測対象の入力値とその近傍データとを入力とし、入力値に対する出力変数の予測値を出力する予測モデルであった。しかし、第1、第2予測モデルの入出力がこれらに限定されることはない。第3の実施形態では他の例を示す。
【0131】
第3の実施形態の制御システムの基本的な構成は、
図1に示した第1の実施形態のものと同様である。第3の実施形態における制御装置11のハードウェア構成は
図2に示した第1の実施形態のものと同様である。第3の実施形態における予測システム20が実行する全体処理は基本的に
図3に示した第1の実施形態のものと同様であるが、詳細において違いがある。
【0132】
ステップ101にて、モデル管理部21は、訓練データを学習して予測モデルを生成する学習処理を実行する。第1予測モデルは、予測対象の入力値に基づいて、第2予測モデルのパラメータを算出する予測モデルである。本実施形態の第1予測モデルは一例として線形回帰モデルである。
【0133】
第3の実施形態では、第1の実施形態と異なり、第1予測モデルは、予測対象の入力値を入力とし、第2予測モデルのパラメータを出力とする予測モデルである。そして、第2予測モデルは、第1予測モデルで算出されたパラメータが適用され、予測対象の入力値とを入力とし、その入力値に対する出力変数の予測値を出力とする予測モデルである。
【0134】
第3の実施形態による第1予測モデルと第2予測モデルは、それぞれ式(4)と式(5)のように表すことができる。
【0135】
【0136】
xは入力変数である。yは出力変数である。y~は、出力変数の予測値である。fは第1予測モデルを表す関数である。gは第2予測モデルを表す関数である。θfは第1予測モデルのパラメータである。θgは、第2予測モデルのパラメータである。Bは定数である。
【0137】
ステップ102にて、予測実行部22は、予測処理を実行する。
【0138】
図13は、第3の実施形態における予測処理のフローチャートである。
【0139】
ステップ301にて、予測実行部22は、予測対象の入力値xを第1予測モデルに入力することにより第2予測モデルのパラメータを算出する。続いて、ステップ302にて、予測実行部22は、第1予測モデルにより算出されたパラメータを第2予測モデルに適用し、その第2予測モデルに入力値xを入力し、第2予測モデルで算出された出力変数の予測値を取得する。
【0140】
予測実行部22の予測結果は、計画部26で制御指令に変換され、被制御装置13、14に適用される。収集部25は、被制御装置13、14に適用された出力値と入力値との対を実績データとして取得する。
【0141】
続いて、ステップ103にて、モデル管理部21は、更新処理を実行し、第1予測モデルおよび第2予測モデルの生成に用いた訓練データに基づいて、第1予測モデルのパラメータ、あるいは第1予測モデルおよび第2予測モデルのパラメータを更新する。第3の実施形態における更新処理は第1の実施形態におけるものと同様である。
【0142】
上述のように、第3の実施形態は、第1予測モデルおよび第2予測モデルを構築する学習処理と、その第1予測モデルおよび第2予測モデルを用いた予測処理とが第1の実施形態とは異なっている。そこで、第1の実施形態または第3の実施形態の変形例として、それら2つの手法により学習処理および予測処理を行い、それら2つの手法による予測結果に基づく情報を提示することにしてもよい。
図14は、変形例においてモデル管理部が生成する予測モデルを説明するための概念図である。本変形例では、
図14に示すように、モデル管理部21は、第1の実施形態にて用いた第1予測モデル(第1の第1予測モデル)および第2予測モデル(第1の第2予測モデル)と、第2の実施形態にて用いた第1予測モデル(第2の第1予測モデル)および第2予測モデル(第2の第2予測モデル)とを生成して管理する。予測実行部22は、第1の第1予測モデルおよび第1の第2予測モデルを用いて入力値に対する出力値の予測値(第1の予測値)を算出し、第2の第1予測モデルおよび第2の第2予測モデルを用いて入力値に対する出力値の予測値(第2の予測値)を算出する。インタフェース管理部23は、第1の予測値と第2の予測値との差分を算出し、その差分に基づく情報を管理端末12に表示して管理者に提示する。
【0143】
(第4の実施形態)
【0144】
第1の実施形態では、第1予測モデルおよび第2予測モデルに線形回帰モデルを用いる例を示したが、これに限定されることはない。第4の実施形態では、第2予測モデルに、ベイズ線形回帰によるベイズ推定器を用いる例を示す。第1の実施形態における第2予測モデルが式(6)で表されるとすれば、第4の実施形態における第2予測モデルは式(7)で表すことができる。
【0145】
【0146】
【0147】
wは重みベクトルであり、εは誤差である。pは確率分布を表す関数であり、Xは入力変数のベクトルであり、Yは出力変数のベクトルであり、Nはデータ数である。
【0148】
第4の実施形態の制御システムの基本的な構成は、
図1に示した第1の実施形態のものと同様である。第4の実施形態における制御装置11のハードウェア構成は
図2に示した第1の実施形態のものと同様である。第4の実施形態における予測システム20が実行する全体処理は基本的に
図3に示した第1の実施形態のものと同様であるが、詳細において違いがある。
【0149】
ステップ101の学習処理においては、モデル管理部21は、第2予測モデルを、予測対象である入力値を基に、出力変数の予測値の確率分布を算出するベイズ線形回帰の予測モデルとし、第1予測モデルを、第2予測モデルの重みの事前分布をパラメータとして算出する予測モデルとして、それらの予測モデルを構築する。ステップ102の予測処理においては、予測実行部22は、その第1予測モデルおよび第2予測モデルを用いて予測を行う。まず、第1予測モデルを用いて入力値を基に重みの事前分布を算出し、その重みの事前分布をベイズ線形回帰の予測モデルである第2予測モデルに適用し、その第2予測モデルによって、出力値の確率分布を算出する。そして、例えば、最も確率の高い値を出力値とすることにしてもよい。その際、確率分布のばらつきの度合いから予測結果に関するリスクを得ることもできる。その予測結果のリスクは被制御装置13、14に対する制御のリスクにも結びつく。インタフェース管理部23は、確率分布のばらつきの度合いに基づいてリスクに関する情報を管理者に提示することにしてもよい。ステップ103の更新処理においては、モデル管理部21は、第1予測モデルおよび第2予測モデルの生成に用いた訓練データに基づいて、第1予測モデルのパラメータ、あるいは第1予測モデルおよび第2予測モデルのパラメータを更新する。
【0150】
なお、本実施形態では、ベイズ線形回帰による態様を例示したが、他の態様としてガウス過程回帰を用いることもできる。
【0151】
上述した第1から第4の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【0152】
また、第1から第4の実施形態には以下に示す事項が含まれる。ただし、第1から第4の実施形態に含まれる事項が以下に示すものに限定されることはない。
【0153】
(事項1)
予測対象の入力変数の値である入力値から出力変数の値である出力値を予測する予測システムであって、
ソフトウェアプログラムを格納する記憶装置と、
前記ソフトウェアプログラムを実行するプロセッサとを有し、
前記プロセッサが前記ソフトウェアプログラムを実行することにより、
前記入力値から前記出力値を予測する第2予測モデルと、前記入力値に基づいて前記第2予測モデルのパラメータを算出する第1予測モデルとを管理するモデル管理部と、
前記第1予測モデルにより算出された前記パラメータを適用した前記第2予測モデルを用いて前記入力値に対する前記出力値を予測する予測実行部と、
を実現し、
前記モデル管理部は、前記第1予測モデルおよび前記第2予測モデルの生成に用いられた訓練データに含まれるある訓練データの近傍にある1つ以上の訓練データを近傍データとし、前記近傍データの入力変数の値から前記第1予測モデルおよび前記第2予測モデルによって算出される出力変数の値に生じる誤差を最小化するように前記第1予測モデルのパラメータを更新する、
予測システム。
本事項によれば、入力値に対する出力値の算出を学習済みの第1予測モデルおよび第2予測モデルを用いて行うので、予測を行うごとに予測モデルを生成することなく、局所にて十分な予測精度が得られる。
【0154】
(事項2)
事項1に記載の予測システムにおいて、
前記第1予測モデルは、前記近傍データを入力とし、前記第2予測モデルのパラメータを出力する予測モデルであり、
前記第2予測モデルは、前記第1予測モデルで算出されたパラメータが適用され、前記入力値と前記近傍データとを入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである。
本事項によれば、入力値の近傍データを第1予測モデルの入力とすることで、入力値の近傍を局所的に適切に予測することが可能な第2予測モデルを構築することができる。
【0155】
(事項3)
事項1に記載の予測システムにおいて、
前記モデル管理部は、前記近傍データを入力とし、第1の第2予測モデルのパラメータを算出する予測モデルである第1の第1予測モデルと、前記第1の第1予測モデルで算出されたパラメータが適用され、前記入力値と前記近傍データとを入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである第1の第2予測モデルと、前記入力値を入力とし、第2の第2予測モデルのパラメータを算出する予測モデルである第2の第1予測モデルと、前記第2の第1予測モデルで算出されたパラメータが適用され、前記入力値を入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである第2の第2予測モデルとを管理し、
前記予測実行部は、前記第1の第1予測モデルおよび前記第1の第2予測モデルを用いて前記入力値に対する前記出力値の第1の予測値を算出し、前記第2の第1予測モデルおよび前記第2の第2予測モデルを用いて前記入力値に対する前記出力値の第2の予測値を算出し、
前記第1の予測値と前記第2の予測値との差分を算出し、前記差分に基づく情報を提示するインタフェース管理部が更に実現される。
本事項によれば、2つの方法での予測結果の差分に基づく情報が提示されるので、予測結果がどの程度信頼できるものであるかに関する情報を得ることができる。
【0156】
(事項4)
事項2に記載の予測システムにおいて、
前記モデル管理部は、前記近傍データの入力変数の値から前記第1予測モデルおよび前記第2予測モデルを用いて得られた出力変数の値と、前記近傍データにおける出力変数の値との差を最小化するように前記第1予測モデルのパラメータを更新する。
【0157】
(事項5)
事項4に記載の予測システムにおいて、
前記モデル管理部は、前記差を最小化するように前記第1予測モデルのパラメータのパラメータを更新する。
【0158】
(事項6)
事項4に記載の予測システムにおいて、
前記モデル管理部は、前記差に前記第2予測モデルのパラメータの正則化項を加えた量を最小化するように前記第1予測モデルのパラメータを更新する。
本事項によれば、パラメータの更新において正則化により過学習を抑制することができる。
【0159】
(事項7)
事項1に記載の予測システムにおいて、
前記プロセッサが前記ソフトウェアプログラムを実行することにより、
アテンション機構により選択した前記第2予測モデルの2つの入力変数と1つの出力変数とによる3次元の応答曲面を表示するための情報を生成するインタフェース管理部が更に実現される。
【0160】
(事項8)
事項2に記載の予測システムにおいて、
前記第1予測モデルおよび前記第2予測モデルが一体的に微分可能な関数で表され、
前記モデル管理部は、誤差逆伝搬法によって前記第1予測モデルのパラメータを更新する。
本事項によれば、第1予測モデルと第2予測モデルをまとめて全体として学習することができるので、パラメータの更新が容易である。
【0161】
(事項9)
事項1に記載の予測システムにおいて、
前記第1予測モデルは、前記入力値を入力とし、前記第2予測モデルのパラメータを出力する予測モデルであり、
前記第2予測モデルは、前記第1予測モデルで算出されたパラメータが適用され、前記入力値を入力とし、前記入力値に対する前記出力値の予測値を出力する予測モデルである。
【0162】
(事項10)
事項1に記載の予測システムにおいて、
前記第2予測モデルは、前記入力値から前記出力値のベイズ推定による確率分布を算出する予測モデルであり、
前記第1予測モデルは前記第2予測モデルの重みの事前分布のパラメータを予測する予測モデルである。
本事項によれば、ベイズ推定による予測値を得ることができる。
【0163】
(事項11)
事項10に記載の予測システムにおいて、
前記プロセッサが前記ソフトウェアプログラムを実行することにより、
前記第1予測モデルと前記第2予測モデルとを用いて予測した出力変数の確率分布に基づく情報を提示するインタフェース管理部が更に実現される。
本事項によれば、予測精度に関するリスクを知ることが可能となる。
【符号の説明】
【0164】
11…制御装置、12…管理端末、13…被制御装置、14…被制御装置、15…コントローラ、20…予測システム、21…モデル管理部、22…予測実行部、23…インタフェース管理部、24…データ管理部、25…収集部、26…計画部、27…通信部、31…プロセッサ、32…メインメモリ、33…記憶装置、34…通信装置、35…バス