(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-08-21
(45)【発行日】2023-08-29
(54)【発明の名称】学習装置、学習方法及び学習プログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20230822BHJP
G06N 20/00 20190101ALI20230822BHJP
【FI】
G05B23/02 Z
G06N20/00
G05B23/02 X
G05B23/02 301V
(21)【出願番号】P 2022173728
(22)【出願日】2022-10-28
【審査請求日】2022-10-28
(73)【特許権者】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】泉谷 知範
(72)【発明者】
【氏名】伊藤 浩二
(72)【発明者】
【氏名】藤原 大悟
【審査官】田中 友章
(56)【参考文献】
【文献】特開2012-9064(JP,A)
【文献】特開2020-166421(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである履歴を収集する収集部と、
前記履歴に、制御装置による自動操作であるか否かを示す第1の付与情報を少なくとも付与し、前記機器の操作が操作者による手動操作である前記履歴には前記手動操作であることを示す第2の付与情報を付与してデータベースに登録する登録部と、
前記データベースに登録された履歴から、少なくとも、現時刻よりも所定期間以前の前記第1の付与情報が前記制御装置による自動操作ではない第1の履歴、及び、前記第1の付与情報が前記制御装置による自動操作であって前記第2の付与情報が付与された第2の履歴を取得する取得部と、
前記取得部によって取得された履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新する更新部と、
を有することを特徴とする学習装置。
【請求項2】
前記更新部は、前記第2の履歴を、前記第1の履歴よりも高い重要度で用いることを特徴とする請求項1に記載の学習装置。
【請求項3】
前記登録部は、前記履歴のうち、前記第2の付与情報が付与された履歴の前後所定期間内の履歴に第3の付与情報を付与し、
前記取得部は、前記データベースに登録された履歴から、前記制御装置による自動操作であることを示す前記第1の付与情報が付与された履歴であって、前記第3の付与情報が付与された第3の履歴を取得することを特徴とする請求項1に記載の学習装置。
【請求項4】
前記更新部は、前記第3の履歴を、他の履歴よりも高い重要度で用いることを特徴とする請求項3に記載の学習装置。
【請求項5】
学習装置が実行する学習方法であって、
製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである履歴を収集する工程と、
前記履歴に、制御装置による自動操作であるか否かを示す第1の付与情報を少なくとも付与し、前記機器の操作が操作者による手動操作である前記履歴には前記手動操作であることを示す第2の付与情報を付与してデータベースに登録する工程と、
前記データベースに登録された履歴から、少なくとも、現時刻よりも所定期間以前の前記第1の付与情報が前記制御装置による自動操作ではない第1の履歴、及び、前記第1の付与情報が前記制御装置による自動操作であって前記第2の付与情報が付与された第2の履歴を取得する工程と、
前記取得する工程において取得された履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新する工程と、
を含んだことを特徴とする学習方法。
【請求項6】
製品の生産ステップにおける状況を表す説明変数と、前記生産ステップにおける機器の操作を表す目的変数との組み合わせである履歴を収集するステップと、
前記履歴に、制御装置による自動操作であるか否かを示す第1の付与情報を少なくとも付与し、前記機器の操作が操作者による手動操作である前記履歴には前記手動操作であることを示す第2の付与情報を付与してデータベースに登録するステップと、
前記データベースに登録された履歴から、少なくとも、現時刻よりも所定期間以前の前記第1の付与情報が前記制御装置による自動操作ではない第1の履歴、及び、前記第1の付与情報が前記制御装置による自動操作であって前記第2の付与情報が付与された第2の履歴を取得するステップと、
前記取得するステップにおいて取得された履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新するステップと、
をコンピュータに実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【0002】
従来、人間の行動を機械学習モデルに学習させ、当該モデルを用いて人間又はロボット等に動作を教示する模倣学習という技術が知られている。
【0003】
また、観測されたデータを大量に蓄積しておき、蓄積されたデータの中から要求点の近傍のデータを抽出し、当該抽出したデータを用いてモデルの逐次学習を行うJust-In-Time(JIT)法という技術が知られている(例えば、非特許文献1を参照)。
【0004】
ここで、例えば化学プラントにおいては、時間の経過に応じて、機器の経年劣化、触媒の劣化、生産ロード計画の変更等の環境の変化が生じる。
【0005】
これに対し、化学プラントにおけるオペレータによる機器の操作を学習する模倣学習にJIT法を適用して、モデルを環境の変化に適応させることが考えられる。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【文献】山本 茂、「Just-In-Time予測制御:蓄積データに基づく予測制御」、計測と制御 第52巻 第10号 2013年10月号(https://www.jstage.jst.go.jp/article/sicejl/52/10/52_878/_pdf/-char/ja)
【発明の概要】
【発明が解決しようとする課題】
【0008】
模倣学習を行うモデルによるプラントの運転支援システムが提案されている。例えば、化学プラントにおいて実際にオペレータが行った操作をモデルに学習させることで、模倣学習を行う。具体的には、モデルは、特定の工程において、過去にオペレータが投入した原材料の投入量を学習する。そして、モデルは、操作推奨値として原材料の投入量を出力する。オペレータは、モデルの出力に従って原材料の投入量を設定することで、過去のオペレータの操作を模倣することができる。
【0009】
そして、このような模倣学習を行うモデルを用いて、プラントの運転支援だけでなく、操作のオートパイロットが可能になる。
【0010】
ここで、プラントの操作のオートパイロット中においても、操作のデータが蓄積される。しかしながら、オートパイロット中のデータは、オートパイロットのためにモデルが出力した操作に対するものであり、オートパイロット中のデータでモデルを逐次学習を行っても、今のモデルの補強に留まる。このため、オートパイロット中のデータを用いて逐次学習を行うと、モデルの精度が劣化するおそれがあり、実際のプラントの状況が変わった場合に対応できない。
【0011】
本発明は、上記に鑑みてなされたものであって、模倣学習においてJIT法による逐次学習に適する学習データを用い、モデルの精度の向上を図ることができる学習装置、学習方法及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決し、目的を達成するために、学習装置は、製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである履歴を収集する収集部と、前記履歴に、制御装置による自動操作であるか否かを示す第1の付与情報を少なくとも付与し、前記機器の操作が操作者による手動操作である前記履歴には前記手動操作であることを示す第2の付与情報を付与してデータベースに登録する登録部と、前記データベースに登録された履歴から、少なくとも、現時刻よりも所定期間以前の前記第1の付与情報が前記制御装置による自動操作ではない第1の履歴、及び、前記第1の付与情報が前記制御装置による自動操作であって前記第2の付与情報が付与された第2の履歴を取得する取得部と、前記取得部によって取得された履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新する更新部と、を有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、模倣学習においてJIT法による逐次学習に適する学習データを用い、モデルの精度の向上を図る。
【図面の簡単な説明】
【0014】
【
図1】
図1は、プラント運用システムについて説明する図である。
【
図2】
図2は、実施の形態に係る処理装置の構成例を示す図である。
【
図4】
図4は、処理装置の処理を説明する図である。
【
図5】
図5は、実施の形態における処理の手順を示すフローチャートである。
【
図6】
図6は、プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0015】
以下に、本願に係る学習装置、学習方法及び学習プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0016】
[実施の形態]
[実施の形態の構成]
まず、
図1を用いて、プラント運用システムについて説明する。プラント運用システム1は、プラントにおける製品の生産工程の管理及び制御を行うためのシステムである。プラントには、化学製品を生産するための化学プラントが含まれる。
【0017】
図1に示すように、処理装置10、端末装置20及びプラントシステム30を有する。
【0018】
処理装置10は、模倣学習を行うためのモデル(機械学習モデル)に関する処理を行う。処理装置10は学習装置として機能することができる。
【0019】
また、処理装置10及びプラントシステム30は、ネットワークを介して互いにデータ通信ができるように接続されている。例えば、ネットワークはインターネット及びイントラネットである。処理装置10は、オペレータ(操作者)等から設定された所定のオートパイロット(自動操作)条件を満たし、オペレータからオートパイロット開始を指示された場合には、モデルを用いた、プラントシステム30のオートパイロット制御を行う。
【0020】
プラントシステム30は、生産工程で使用される機器及び分散制御システム(DCS:Distributed Control System)を含むものであってもよい。例えば、機器は、反応器、冷却器、気液分離器等である。
【0021】
端末装置20は、パーソナルコンピュータ、タブレット型端末及びスマートフォン等の情報処理装置、または、プラントの機器を操作するための専用の端末である。
【0022】
オペレータは、端末装置20を介してプラントシステム30に含まれる機器を操作するユーザである。また、オペレータは、処理装置10からオートパイロットの開始が可能になったことが提示されると、処理装置10にオートパイロット開始を指示してもよい。オペレータは、処理装置10からオートパイロットの停止が提示されると、処理装置10にオートパイロット停止を指示する。なお、処理装置10において使用されるモデルは、システム管理者等によって適宜管理される。
【0023】
図1に基づき、プラント運用システム1の各装置の処理を説明する。
【0024】
端末装置20は、オペレータの操作に応じて、プラントシステム30の機器を操作する(ステップS1)。例えば、端末装置20は、操作により、機器内の温度、機器内の圧力、生産工程における生産量の目標値、機器に投入する原料の量等を設定する。
【0025】
プラントシステム30は、端末装置20からの操作に従い稼働する(ステップS2)。そして、プラントシステム30は、稼働の履歴を処理装置10に送信する(ステップS3)。
【0026】
例えば、履歴には、プラントシステム30の各所に設置されたセンサのセンサ値、端末装置20からの操作によって設定された設定値が含まれる。また、履歴は、各レコードに時刻(タイムスタンプ)が付された時系列データであってもよい。
【0027】
端末装置20は、オペレータの操作に応じて、オートパイロット条件を送信する(ステップS4)。オートパイロット条件は、モデルの予測値と、実測値との誤差を基に設定される。例えば、オートパイロット条件は、モデルの予測値と実測値との誤差が所定回数にわたって所定の閾値未満であることや、モデルの予測値と実測値との誤差の直近所定回数の平均が所定の閾値未満であることである。オートパイロット条件は、システム管理者等によって設定されたものでもよい。
【0028】
処理装置10は、プラントシステム30から収集した履歴に、処理装置10によるオートパイロットであるか否かを示すオートパイロットフラグ(第1の付与情報)を少なくとも付与する。そして、処理装置10は、機器の操作がオペレータによる手動操作である履歴には手動操作であることを示す手動操作フラグ(第2の付与情報)を付与する。そして、処理装置10は、各履歴を履歴データベース(DB)に登録する。
【0029】
続いて、処理装置10は、モデルの学習(例えば、機械学習)のために使用する学習データを履歴の中から取得し、例えば重みを付与して、モデルの学習を行い、モデルを使った推論を行う(ステップS5)。
【0030】
この際、処理装置10は、少なくとも、オートパイロットフラグ及び手動操作フラグを参照して、履歴DBに格納された履歴から、モデルの学習データを取得する。具体的には、処理装置10は、学習データとして、過去の履歴群から、現時刻(推論時刻)よりも所定期間以前であり、かつ、オートパイロットフラグが「OFF」である第1の履歴を取得する。そして、処理装置10は、学習データとして、過去の履歴群から、オートパイロットフラグが「ON」であり、かつ、手動操作フラグが「ON」である第2の履歴を取得する。
【0031】
処理装置10は、オートパイロット条件を用いて、処理装置10によるオートパイロットの可否を判定する。処理装置10の各処理の詳細については後述する。
【0032】
さらに、処理装置10は、推論結果及びオートパイロット実施判定結果を示すガイダンス画面21をオペレータの端末装置20に提示する(ステップS6)。処理装置10は、オートパイロット条件を満たす場合には、ガイダンス画面21に、オートパイロットの開始が可能になったことを表示する。端末装置20から、処理装置10にオートパイロット開始が指示されると(ステップS7)、処理装置10は、モデルを用いた、プラントシステム30のオートパイロット制御を行う(ステップS8)。
【0033】
また、処理装置10は、オートパイロットを実施中、オートパイロット条件を満たさない場合には、ガイダンス画面21に、オートパイロットの停止指示を表示する。端末装置20から、オートパイロット停止が指示されると(ステップS7)、処理装置10は、プラントシステム30のオートパイロット制御を停止する。そして、端末装置20は、オペレータの操作に応じて、プラントシステム30の機器を操作する(ステップS1)。
【0034】
ここで、モデルは、オペレータの操作内容を模倣学習により学習する。そのため、モデルによる推論結果として得られる操作内容に従うことで、他のオペレータが操作を模倣することができる。
【0035】
図2を用いて、処理装置10について詳細に説明する。
図2は、実施の形態に係る処理装置10の構成例を示す図である。
【0036】
図2に示すように、処理装置10は、通信部11、記憶部12及び制御部13を有する。
【0037】
通信部11は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部11はNIC(Network Interface Card)である。
【0038】
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。
【0039】
記憶部12は、処理装置10で実行されるOS(Operating System)や各種プログラムを記憶する。記憶部12は、履歴DB121及びモデル情報122を記憶する。
【0040】
履歴DB121は、プラントシステム30から提供された履歴を含む情報である。例えば、履歴DBは、毎分レコードが蓄積される。
図3は、履歴DB121の例を示す図である。
図3に示すように、履歴DB121は、時刻(time)、オペレータ(operator)、状況(situation)、実施内容(operation)等の説明変数リスト、目的変数である設定値を含む。また、履歴DB121は、重みを含んでもよい。また、履歴DB121の履歴には、オートパイロットフラグ及び/または手動操作フラグが付与されている。さらに、履歴DB121の履歴には、手動操作前後フラグ(第3の付与情報)が付与されている。
【0041】
時刻は、操作実施時刻を示す。状況の項目は、第1温度、第2温度、第1流量の項目を有する。状況の項目は、第1圧力、第2圧力、生産工程で発生する気体の濃度等を含んでもよい。
【0042】
第1温度、第2温度、第1圧力、第2圧力及び第1流量は、それぞれプラントシステム30の各所に設置されたセンサのセンサ値である。
【0043】
第1温度、第2温度、第1圧力、第2圧力及び第1流量は、モデルの説明変数であって、製品の生産工程における状況を表す説明変数の一例である。
【0044】
なお、時刻は、第1温度、第2温度、第1圧力、第2圧力、流量及び気体濃度が取得された日時を示すタイムスタンプである。
【0045】
実施内容(operation)は、例えば、端末装置20からの操作によって設定される設定値である。設定値は、実際に設定された値を正規化した値であってもよい。また、設定値は、モデルの目的変数に相当する。
【0046】
設定値は、モデルの目的変数であって、生産工程における機器の操作を表す目的変数の一例である。
【0047】
オートパイロットフラグは、処理装置10(制御装置)によるオートパイロットオートパイロット)であるか否かを示す。オートパイロットフラグが「ON」である場合には、処理装置10によるオートパイロット実施が「ON」である場合に得られた履歴である。オートパイロットフラグが「OFF」である場合には、処理装置10によるオートパイロット実施が「OFF」である場合に得られた履歴である。
【0048】
手動操作フラグは、機器の操作がオペレータによる手動操作であることを示す。手動操作フラグが「ON」である場合には、オペレータによる手動操作である場合に得られた履歴である。
【0049】
手動操作前後フラグは、手動操作フラグが付与された履歴の前後所定期間(例えば、w分)内の履歴に付与されるフラグである。前後所定期間は、機器の運転状況や、これまでの履歴の各値の推移等を基に設定され、適宜更新される。
【0050】
例えば、
図3には、時刻「13:21:01」における第1温度が「102.1℃」であり、第2温度が「102.8℃」であり、第1流量が「311.5m
3/s」であり、実施内容(operation)が「203.5」であることが示されている。オートパイロットフラグとして「OFF」が付与されており、手動操作前後フラグとして「ON」が付与されている(セルC1-9)。この履歴は、オペレータにより手動操作が行われた時刻の前後所定期間の履歴である。
【0051】
例えば、
図3には、時刻「13:23:01」における第1温度が「101.5℃」であり、第2温度が「102.3℃」であり、第1流量が「311.4m
3/s」であり、実施内容(operation)が「206.3」であることが示されている。オートパイロットフラグとして「OFF」が付与されており、手動操作フラグとして「ON」が付与されている(セルC3-8)。この履歴は、オペレータにより手動操作が行われた場合の履歴である。
【0052】
また、例えば、
図3には、時刻「15:33:01」における第1温度が「102.5℃」であり、第2温度が「103.3℃」であり、第1流量が「311.4m
3/s」であり、実施内容(operation)が「206.3」であることが示されている。オートパイロットフラグとして「ON」が付与されており、手動操作フラグとして「ON」が付与されている(セルC9-8)。この履歴は、オートパイロット中に手動操作が行われた場合、すなわち、オートパイロット利用中に、オペレータがモデルにより計算された予測値を手動で上書きした場合の履歴である。
【0053】
モデル情報122は、モデルを構築するためのパラメータ等の情報である。例えば、モデルがニューラルネットワークである場合、モデル情報122は、各層の重み及びバイアスである。さらに、モデル情報122は、前処理の順番、移動平均処理における窓幅(ウィンドウサイズ)等のパラメータを含む。
【0054】
制御部13は、処理装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。
【0055】
また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。
【0056】
例えば、制御部13は、受付部131、収集部132、登録部133、取得部134、更新部135、推論部136、判定部137、表示制御部138及びオートパイロット制御部139を有する。
図4を用いて、処理装置10の各機能部の処理を説明する。
図4は、処理装置10の処理を説明する図である。
【0057】
受付部131は、例えば、端末装置20から、オートパイロット条件を受け付ける。受付部131は、オートパイロット条件を新規に受け付けるほか、オートパイロット条件の修正、削除(一部削除を含む)も受け付ける。受付部131は、端末装置20から、オートパイロットの開始指示、オートパイロットの停止指示を受け付ける。
【0058】
収集部132は、プラントシステム30における稼働の履歴を収集し(
図4の(1))、収集した履歴を登録部133に出力する。履歴は、説明変数と目的変数との組み合わせである。収集部132は、各履歴が、手動操作によるものかオートパイロットによるものかを示す情報も収集する。
【0059】
登録部133は、プラントシステム30に対するオートパイロットのON状態またはOFF状態を収集する(
図4の(2))。登録部133は、オートパイロット制御部139から、プラントシステム30に対するオートパイロットのON状態またはOFF状態の更新情報を収集する。
【0060】
そして、登録部133は、手動操作によるものかオートパイロットによるものかを示す情報、オートパイロットのONまたはOFF状態を示す情報を基に、各履歴の、オートパイロットフラグを「ON」または「OFF」にする。また、登録部133は、機器の操作がオペレータによる手動操作である履歴には手動操作フラグを「ON」とする(例えば、
図3のセルC3-8,C9-8,C10-8)。また、登録部133は、履歴のうち、手動操作フラグ「ON」の履歴の前後所定期間内の履歴の手動操作前後フラグを「ON」とする(例えば、
図3のセルC1-9,C2-9,C4-9,C5-9,C8-9,C11-9)。
【0061】
登録部133は、フラグ付きの履歴を履歴DB121に登録する(
図4の(3))。
【0062】
取得部134は、履歴DB121に含まれる履歴の中から、履歴の各フラグを参照し、説明変数と指定された説明変数との距離に基づいて、学習データとして使用する類似履歴を取得する(
図4の(4))。取得部134は、履歴DB121に含まれる履歴の中から、説明変数と指定された説明変数との距離に加え、重みを基に類似履歴を取得してもよい。
【0063】
取得部134は、履歴検索キー(説明変数及び/または目的変数)が指定されると、この履歴検索キーに類似する過去の履歴群を、履歴DB121から取得する。取得部134は、履歴検索キー(例えば、現在の状況を示す説明変数)と近い状況で収集された過去の履歴群(説明変数、目的変数)として、履歴DB121から取得する。
【0064】
指定された説明変数を要求点と呼ぶ。例えば、要求点は、所定の時刻における説明変数(履歴DB121の各センサ値に相当)である。なお、要求点における目的変数(設定値)は未知であってもよい。
【0065】
ここで、JIT法では、多次元ベクトルである訓練用のデータ(本実施形態の履歴DB121に相当)と多次元ベクトルである要求点とのユークリッド距離を基に過去の履歴群が取得される。例えば、取得部134は、JIT法を用いて、計算されたユークリッド距離が小さいk(kは整数)個のレコードであるk最近傍(k-NN:k Nearest Neighbors)を取得する。なお、訓練用のデータと要求点との距離は、ユークリッド距離に限られず、例えばマハラノビス距離及びコサイン類似度等であってもよい。
【0066】
また、取得部134は、訓練用のデータと要求点との距離だけでなく、履歴DB121の重みを参照してレコードを取得してもよい。ここでは、重みが大きいほど取得対象として望ましいデータである場合、例えば、取得部134は、履歴DB121の中から、k最近傍であって、かつ重みが大きいデータを優先して取得する。
【0067】
さらに、取得部134は、履歴に付与された各フラグを参照し、取得した過去の履歴群をさらに選別して、学習データである類似履歴を取得する。
【0068】
取得部134は、過去の履歴群から、現時刻(推論時刻)よりも所定期間以前(直近H時間(例えば12時間)以前)であり、かつ、オートパイロットフラグが「OFF」である第1の履歴を取得する。
図3の例の場合、取得部134は、現時刻(例えば、16:00:00)よりも直近12時間以前であり、かつ、オートパイロットフラグが「OFF」である履歴B11を、第1の履歴として取得する。
【0069】
これによって、取得部134は、オートパイロットフラグと時刻とを基に、オートパイロット中の履歴を学習データから除外し、オペレータの手動による履歴のみを取得することができる。なお、H時間は、オペレータによる操作間隔等を基に設定される。
【0070】
そして、取得部134は、過去の履歴群から、オートパイロットフラグが「ON」であり、かつ、手動操作フラグが「ON」である第2の履歴を取得する。
図3の例の場合、取得部134は、オートパイロットフラグが「ON」であり、かつ、手動操作フラグが「ON」である履歴群B12を、第2の履歴として取得する。
【0071】
これによって、取得部134は、オートパイロット利用中に、オペレータが干渉して、モデルにより計算された予測値を手動で上書きした場合の履歴を学習データに含めることができる。この履歴は、これまでなかった状況時における履歴であると考えられるため、モデルの学習に含めることが望ましい。なお、第2の履歴取得の際には、第1の履歴取得時の、現時刻よりも所定期間以前である条件は、OFFとする。
【0072】
また、取得部134は、過去の履歴群から、オートパイロットフラグが「ON」であり、かつ、手動操作前後フラグが「ON」である第3の履歴を取得する。
図3の例の場合、取得部134は、オートパイロットフラグが「ON」であり、かつ、手動操作前後フラグが「ON」である履歴群B15,B16を、第3の履歴として取得する。取得部134は、オペレータの手動操作による履歴の前後の履歴を学習データに含めることで、オペレータの手動操作に関する学習の補強を可能とする。
【0073】
更新部135は、取得部134によって取得された学習データを用いて、説明変数から目的変数を出力するモデルの学習を行い(
図4の(5))、モデルを更新する(
図4の(6))。
【0074】
更新部135は、モデル情報122から構築したモデルに、説明変数を入力することにより計算された目的変数と、取得部134によって絞り込まれた学習データに含まれる目的変数との差分を表す目的関数を計算し、該目的関数が小さくなるように、学習の終了条件を満たすまでモデルのパラメータ、すなわちモデル情報122を繰り返し更新する。
【0075】
なお、学習データに重みが付与されている場合には、付与された重みで学習データを学習する。
【0076】
例えば、更新部135は、第2の履歴を、第1の履歴よりも高い重要度で用いる。或いは、更新部は、第3の履歴については、他の履歴(例えば、第1の履歴)よりも高い重要度で用いてもよい。例えば、更新部135は、第1の履歴に対し、第2の履歴及び第3の履歴の重要度を高く設定する。典型的には、第2の履歴と第3の履歴は同一の重要度が設定される。重要度は、例えば二乗誤差の和(平均)を最小にするようにパラメータを更新する手法を使う場合、単純な和や平均を用いるのではなく、第2の履歴及び/または第3の履歴に重みを付与した重み付き平均を使うなどにより設定することができる。履歴に付与される重みは、例えば、各履歴の種別や、第2の履歴と第3の履歴との時間間隔等に応じて、予め設定される。
【0077】
推論部136は、更新後のモデル情報122から構築したモデルに、予測用の説明変数を入力することにより目的変数を計算する。すなわち、推論部136は推論処理を行う(
図4の(7))。推論された目的変数は、例えば、状況から予測される操作内容である。
【0078】
判定部137は、オートパイロット条件を用いて、オートパイロットの実施の可否を判定する(
図4の(8))。判定部137は、モデルが予測した目的変数と実測値との誤差に基づく計算結果が、オートパイロット条件を満たす場合には、オートパイロットの実施開始が可能であると判定する。判定部137は、モデルが予測した目的変数と実測値との誤差に基づく計算結果が、オートパイロット条件を満たさない場合には、オートパイロットの実施が不可能であると判定する。
【0079】
表示制御部138は、推論された目的変数(例えば、操作内容)とともに、オートパイロット実施判定結果を示すガイダンス画面21を、端末装置20に表示させる。これによって、表示制御部138は、推論結果及びオートパイロット実施判定結果をオペレータに提示する。
【0080】
例えば、表示制御部138は、オートパイロットの実施開始が可能であると判定された場合には、オートパイロットの実施開始が可能であることを示す提示内容と、オートパイロットの実施開始の指示ボタンとを含むガイダンス画面を、端末装置20に表示させる。
【0081】
オートパイロット制御部139は、端末装置20からオートパイロットの開始を指示された場合には、モデルを用いた、プラントシステム30のオートパイロット制御を行う(
図4の(10))。
【0082】
或いは、表示制御部138は、オートパイロットの実施開始が不可能であると判定された場合には、オートパイロットの停止指示と、オートパイロットの停止ボタンとを含むガイダンス画面を、端末装置20に表示させる。
【0083】
オートパイロット制御部139は、端末装置20からオートパイロットの停止を指示されることで、プラントシステム30のオートパイロット制御を停止し、オペレータによる手動操作に切り替える(
図4の(9))。
【0084】
[実施の形態の処理]
図5を用いて実施の形態における処理手順を説明する。
図5は、実施の形態における処理の手順を示すフローチャートである。
【0085】
図5に示すように、まず、処理装置10は、プラントシステム30における稼働の履歴を収集する(ステップS11)。処理装置10は、各履歴が、手動操作によるものかオートパイロットによるものかを示す情報も収集する。また、処理装置10は、プラントシステム30に対するオートパイロットのON状態またはOFF状態を収集する。
【0086】
続いて、処理装置10は、履歴が手動操作によるものかオートパイロットによるものかを示す情報、オートパイロットのONまたはOFF状態を示す情報を基に、各履歴に、オートパイロットフラグ、手動操作フラグ及び手動操作前後フラグを付与し、履歴DB121に登録する(ステップS12)。
【0087】
処理装置10は、履歴DB121に含まれる履歴の中から、履歴の各フラグを参照し、説明変数と指定された説明変数との距離に基づいて、学習データである類似履歴として取得する(ステップS13)。処理装置10は、過去の履歴群から、現時刻よりも所定期間以前であり、かつ、オートパイロットフラグが「OFF」である第1の履歴、オートパイロットフラグが「ON」であり、かつ、手動操作フラグが「ON」である第2の履歴、及び/または、オートパイロットフラグが「ON」であり、かつ、手動操作前後フラグが「ON」である第3の履歴を取得する。
【0088】
処理装置10は、学習データを用いて、説明変数から目的変数を出力するモデルの学習を行い(ステップS14)、モデルを更新する(ステップS15)。
【0089】
処理装置10は、更新後のモデル情報122から構築したモデルに、予測用の説明変数(例えば、第1温度、第2温度、第1流量など)を入力することにより目的変数(例えば、操作内容)を推論する(ステップS16)。
【0090】
処理装置10は、オートパイロット条件を用いて、オートパイロットの実施の可否を判定する(ステップS17)。
【0091】
処理装置10は、オートパイロットの実施開始が可能であると判定した場合(ステップS17:Yes)、オートパイロットの実施開始が可能であることを示す提示内容と、オートパイロットの実施開始の指示ボタンとを含むガイダンス画面を、端末装置20に表示させる。そして、処理装置10は、端末装置20からオートパイロットの開始を指示された場合には、モデルを用いた、プラントシステム30のオートパイロット制御を行う(ステップS18)。
【0092】
処理装置10は、オートパイロットの実施開始が不可能であると判定した場合(ステップS17:No)、オートパイロットの停止指示と、オートパイロットの停止ボタンとを含むガイダンス画面を、端末装置20に表示させる。処理装置10は、端末装置20からオートパイロットの停止を指示された場合には、プラントシステム30のオートパイロット制御を停止し、オペレータによる手動操作の切り替え、或いは、手動操作を継続する(ステップS19)。
【0093】
[実施の形態の効果]
このように、実施の形態に係る処理装置10は、例えばプラントシステム30から、製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである履歴を収集する。そして、処理装置10は、履歴に、オートパイロットフラグを少なくとも付与し、手動操作フラグを付与して履歴DB121に登録する。
【0094】
処理装置10は、履歴DB121に登録された履歴から、少なくとも、現時刻よりも所定期間以前であり、かつ、オートパイロットフラグが「OFF」である第1の履歴を取得する。処理装置10は、オートパイロットフラグが「ON」であり、かつ、手動操作フラグが「ON」である第2の履歴を取得する。
【0095】
処理装置10は、取得した第1の履歴及び第2の履歴を用いて、説明変数から目的変数を出力するモデルを更新する。このように、処理装置10は、オートパイロット中の履歴を学習データから除外し、オペレータの手動による履歴のみを用いてモデルを更新するため、モデルの精度劣化を防止することができる。そして、処理装置10は、オートパイロット利用中に、オペレータが干渉して、モデルにより計算された予測値を手動で上書きした場合の履歴を学習データに含めることで、これまでなかったオペレータの操作内容をモデルに学習させることができる。
【0096】
このため、処理装置10は、模倣学習においてJIT法による逐次学習に適する第1の履歴及び第2の履歴を学習データとして用いることで、モデルの精度向上を図ることができる。
【0097】
さらに、処理装置10は、モデル更新の際に、第2の履歴を、第1の履歴よりも高い重要度で用いることによって、これまでなかったオペレータの操作内容を、特に重要な履歴としてモデルに学習させることができ、モデルの精度向上を図ることができる。
【0098】
また、処理装置10は、さらに、オートパイロットフラグが「ON」であり、かつ、手動操作前後フラグが「ON」である第3の履歴を用いてモデルを更新する。このため、処理装置10は、オートパイロット中であるが手動操作の前後のオペレータが監視している時間帯の履歴を学習データに含めることで、オペレータの手動操作に関する学習を補強し、モデルの精度の向上を図ることができる。モデル更新の際に、第3の履歴を、他の履歴よりも高い重要度で用いることによって、オートパイロット中であるが手動操作の前後のオペレータが監視している時間帯の操作内容を、特に重要な履歴としてモデルに学習させることができ、モデルの精度向上を図ることができる。
【0099】
したがって、処理装置10は、オートパイロット中においても、学習に適した履歴のみを用いて、モデルを更新することができるため、モデルの推論精度を向上させることができる。特に、処理装置10は、模倣学習においてJIT法による逐次学習に適する学習データを用いてモデル更新を行うため、オートパイロットを適用した場合であっても、プラントシステム30の適切な操作と、モデルの精度向上とを並行して実現することができる。
【0100】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
【0101】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0102】
[プログラム]
一実施形態として、処理装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を処理装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置には、タブレット型端末、スマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0103】
また、処理装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供するサーバとして実装することもできる。例えば、サーバは、要求点の指定を入力とし、学習済みのモデルを出力とする学習サービスを提供するサーバ装置として実装される。この場合、サーバは、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0104】
図6は、プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0105】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0106】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、処理装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、処理装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0107】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0108】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0109】
1 プラント運用システム
10 処理装置
20 端末装置
30 プラントシステム
11 通信部
12 記憶部
13 制御部
121 履歴DB
122 モデル情報
131 受付部
132 収集部
133 登録部
134 取得部
135 更新部
136 推論部
137 判定部
138 表示制御部
139 オートパイロット制御部
【要約】
【課題】模倣学習においてJIT法による逐次学習に適する学習データを用い、モデルの精度の向上を図る。
【解決手段】処理装置10は、製品の生産工程における状況を表す説明変数と、生産工程における機器の操作を表す目的変数との組み合わせである履歴を収集する収集部132と、履歴に、自動操作であるか否かを示すオートパイロットフラグを少なくとも付与し、手動操作である履歴には手動操作であることを示す手動操作フラグを付与して履歴DB121に登録する登録部133と、履歴DB121に登録された履歴から、少なくとも、現時刻よりも所定期間以前のオートパイロットフラグが自動操作ではない第1の履歴、及び、オートパイロットフラグが自動操作であって手動操作フラグが付与された第2の履歴を取得する取得部134と、取得部134によって取得された履歴を用いて、説明変数から目的変数を出力するモデルを更新する更新部135と、を有する。
【選択図】
図2