(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024074005
(43)【公開日】2024-05-30
(54)【発明の名称】学習装置、学習方法及び学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240523BHJP
【FI】
G06N20/00 130
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022185038
(22)【出願日】2022-11-18
(11)【特許番号】
(45)【特許公報発行日】2023-12-18
(71)【出願人】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】伊藤 浩二
(72)【発明者】
【氏名】泉谷 知範
(72)【発明者】
【氏名】藤原 大悟
(57)【要約】
【課題】模倣学習においてJIT法による逐次学習に適する学習データを用い、モデルの精度の向上を図る。
【解決手段】処理装置10は、製品の生産工程における状況を表す説明変数と、生産工程における機器の操作を表す目的変数との組み合わせである第1の履歴を収集する収集部131と、第1の履歴に対する除外期間を設定する設定部132と、学習開始時刻以降であり、かつ、現時刻よりも除外期間以前の第1の履歴から、少なくとも、説明変数と指定された説明変数との距離に基づいて第2の履歴を取得する取得部133と、第2の履歴を用いて、説明変数から目的変数を出力するモデルを更新する更新部134と、を有する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである第1の履歴を収集する収集部と、
前記第1の履歴に対する除外期間を設定する設定部と、
学習開始時刻以降であり、かつ、現時刻よりも前記除外期間以前の前記第1の履歴から、少なくとも、前記説明変数と指定された説明変数との距離に基づいて第2の履歴を取得する取得部と、
前記第2の履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新する更新部と、
を有することを特徴とする学習装置。
【請求項2】
前記設定部は、前記目的変数の変化の有無に応じて、前記除外期間を設定することを特徴とする請求項1に記載の学習装置。
【請求項3】
前記設定部は、前記目的変数が変化した場合、前記除外期間を0に設定することを特徴とする請求項2に記載の学習装置。
【請求項4】
前記設定部は、前記目的変数が変化していない場合、現時刻から遡って、現時刻と目的変数が同じ値である期間を、前記除外期間として設定することを特徴とする請求項2に記載の学習装置。
【請求項5】
学習装置が実行する学習方法であって、
製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである第1の履歴を収集する工程と、
前記第1の履歴に対する除外期間を設定する工程と、
学習開始時刻以降であり、かつ、現時刻よりも前記除外期間以前の前記第1の履歴から、少なくとも、前記説明変数と指定された説明変数との距離に基づいて第2の履歴を取得する工程と、
前記第2の履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新する工程と、
を含んだことを特徴とする学習方法。
【請求項6】
製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである第1の履歴を収集するステップと、
前記第1の履歴に対する除外期間を設定するステップと、
学習開始時刻以降であり、かつ、現時刻よりも前記除外期間以前の前記第1の履歴から、少なくとも、前記説明変数と指定された説明変数との距離に基づいて第2の履歴を取得するステップと、
前記第2の履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新するステップと、
をコンピュータに実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法及び学習プログラムに関する。
【背景技術】
【0002】
従来、人間の行動を機械学習モデルに学習させ、当該モデルを用いて人間又はロボット等に動作を教示する模倣学習という技術が知られている。
【0003】
また、観測されたデータを大量に蓄積しておき、蓄積されたデータの中から要求点の近傍のデータを抽出し、当該抽出したデータを用いて機械学習モデルの逐次学習を行うJust-In-Time(JIT)法という技術が知られている(例えば、非特許文献1を参照)。
【0004】
ここで、例えば化学プラントにおいては、時間の経過に応じて、機器の経年劣化、触媒の劣化、生産ロード計画の変更等の環境の変化が生じる。
【0005】
これに対し、化学プラントにおけるオペレータによる機器の操作を学習する模倣学習にJIT法を適用して、機械学習モデルを環境の変化に適応させることが考えられる。
【0006】
さらに、近年では、運転データ等を入力とするモデルを用いて、操作対象となる設備や工場、プラント等の自動運転を行う技術が知られている。例えば、従来技術として、取得したデータを入力とする機械学習モデルを用いることで、機器の制御において実環境を対象とした最適制御を簡易かつ精度よく実行する技術が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0007】
【非特許文献】
【0008】
【非特許文献1】山本 茂、「Just-In-Time予測制御:蓄積データに基づく予測制御」、計測と制御 第52巻 第10号 2013年10月号(https://www.jstage.jst.go.jp/article/sicejl/52/10/52_878/_pdf/-char/ja)
【発明の概要】
【発明が解決しようとする課題】
【0009】
オペレータによる実際の機器の操作は、不定期であり、数時間に1回の場合もある。模倣学習として、化学プラントにおけるオペレータによる機器の操作履歴を機械学習モデルに学習させる場合に、実際にはオペレータによる操作が加えられていなかった操作履歴が学習データに多く含まれる場合がある。しかしながら、オペレータによる機器の操作がない場合、プラントの状態に大きな変化はないことが多い。
【0010】
しかしながら、オペレータによる操作が加わらず、操作対象が一定である過去の履歴を用いて機械学習モデルの学習を行うと、直近の操作をそのままコピーする機械学習モデルが学習される可能性が高く、運転支援には不適切であるという問題があった。特に、毎分推論を行う場合には、機械学習モデルから、1分前の操作を継続するように推奨される可能性が高く、運転支援システムのモデルとしては不適切であった。このため、過去の履歴から、運転支援システムの機械学習モデルの精度向上を図るために、逐次学習に適する学習データを適正に取得することが重要である。
【0011】
本発明は、上記に鑑みてなされたものであって、模倣学習においてJIT法による逐次学習に適する学習データを用い、モデルの精度の向上を図ることができる学習装置、学習方法及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決し、目的を達成するために、学習装置は、製品の生産工程における状況を表す説明変数と、前記生産工程における機器の操作を表す目的変数との組み合わせである第1の履歴を収集する収集部と、前記第1の履歴に対する除外期間を設定する設定部と、学習開始時刻以降であり、かつ、現時刻よりも前記除外期間以前の前記第1の履歴から、少なくとも、前記説明変数と指定された説明変数との距離に基づいて第2の履歴を取得する取得部と、前記第2の履歴を用いて、前記説明変数から前記目的変数を出力するモデルを更新する更新部と、を有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、模倣学習においてJIT法による逐次学習に適する学習データを用い、モデルの精度の向上を図ることができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、プラント運用システムについて説明する図である。
【
図2】
図2は、実施の形態に係る処理装置の構成例を示す図である。
【
図4】
図4は、処理装置の処理を説明する図である。
【
図5】
図5は、実施の形態に係る処理の手順を示すフローチャートの一例を示す図である。
【
図6】
図6は、説明変数と目的変数との時系列データの一例を示す図である。
【
図7】
図7は、説明変数と目的変数との時系列データの一例を示す図である。
【
図8】
図8は、プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0015】
以下に、本願に係る学習装置、学習方法及び学習プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0016】
[実施の形態]
[実施の形態の構成]
まず、
図1を用いて、プラント運用システムについて説明する。プラント運用システム1は、プラントにおける製品の生産工程の管理及び制御を行うためのシステムである。例えば、プラントには、化学製品を生産するための化学プラントが含まれる。
【0017】
図1に示すように、プラント運用システム1は、処理装置10、端末装置20及びプラントシステム30を有する。
【0018】
処理装置10は、模倣学習を行うためのモデル(機械学習モデル)に関する処理を行う。処理装置10は学習装置として機能することができる。
【0019】
また、処理装置10及びプラントシステム30は、ネットワークを介して互いにデータ通信ができるように接続されている。例えば、ネットワークはインターネット及びイントラネットである。
【0020】
プラントシステム30は、生産工程で使用される機器及び分散制御システム(DCS:Distributed Control System)を含むものであってもよい。例えば、機器は、反応器、冷却器、気液分離器等である。
【0021】
端末装置20は、パーソナルコンピュータ、タブレット型端末及びスマートフォン等の情報処理装置、または、プラントの機器を操作するための専用の端末である。
【0022】
オペレータ(運転員)は、端末装置20を介してプラントシステム30に含まれる機器を操作するユーザである。なお、処理装置10において使用されるモデルは、システム管理者等によって適宜管理される。
【0023】
図1に基づき、プラント運用システム1の各装置の処理を説明する。
【0024】
端末装置20は、オペレータの操作(手動)に応じて、プラントシステム30の機器を操作する(ステップS1)。例えば、端末装置20は、操作により、機器内の温度、機器内の圧力、生産工程における生産量の目標値、機器に投入する原料の量等を設定する。
【0025】
プラントシステム30は、端末装置20からの操作に従い稼働する(ステップS2)。そして、プラントシステム30は、稼働の履歴を処理装置10に送信する(ステップS3)。処理装置10は、プラントシステム30から収集した各履歴(第1の履歴)を履歴データベース(DB)に登録する。
【0026】
例えば、履歴には、プラントシステム30の各所に設置されたセンサのセンサ値、端末装置20からの操作によって設定された設定値が含まれる。また、履歴は、各レコードに時刻(タイムスタンプ)が付された時系列データであってもよい。
【0027】
端末装置20は、オペレータの操作に応じて、オートパイロット条件を処理装置10に送信する(ステップS4)。オートパイロット条件は、モデルの予測値と、実測値との誤差や、プラントシステム30の各所に設置されたセンサのセンサ値を基に設定される。例えば、オートパイロット条件は、モデルの予測値と実測値との誤差が所定回数にわたって所定の閾値未満であることや、モデルの予測値と実測値との誤差の直近所定回数の平均が所定の閾値未満であること、あるいは特定のセンサのセンサ値が閾値以下であることなどである。オートパイロット条件は、システム管理者等によって設定されたものでもよい。
【0028】
処理装置10は、プラントシステム30から収集した各履歴に対する除外期間Tを設定する。続いて、処理装置10は、モデルの学習(例えば、機械学習)のために使用する学習データ(第2の履歴)を第1の履歴の中から取得し、例えば重みを付与して、モデルの学習を行い、モデルを使った推論を行う(ステップS5)。処理装置10は、学習開始時刻t0から、時刻(t-T)までの学習対象期間Vに収集された第1の履歴から、学習データを取得する。処理装置10の各処理の詳細については後述する。
【0029】
さらに、処理装置10は、推論結果をオペレータの端末装置20に提供する(ステップS6)。例えば、推論結果は、状況から予測される操作内容であり、予測される操作内容を示すガイダンス画面21が、端末装置20の画面に表示される。オペレータは、例えば、端末装置20に表示されたガイダンス画面21の操作内容に従いプラントシステム30を操作する(ステップS1)。
【0030】
また、処理装置10は、オートパイロット条件を用いて、処理装置10によるオートパイロットの可否を判定してもよい。
【0031】
この場合、処理装置10は、推論結果及びオートパイロット実施判定結果を示すガイダンス画面21をオペレータの端末装置20に提示する(ステップS6)。処理装置10は、オートパイロット条件を満たす場合には、ガイダンス画面21に、オートパイロットの開始が可能になったことを表示する。端末装置20から、処理装置10にオートパイロット開始が指示されると(ステップS7)、処理装置10は、モデルを用いた、プラントシステム30のオートパイロット制御を行う(ステップS8)。
【0032】
そして、処理装置10は、オートパイロットを実施中、オートパイロット条件を満たさない場合には、ガイダンス画面21に、オートパイロットの停止指示を表示する。端末装置20から、オートパイロット停止が指示されると(ステップS7)、処理装置10は、プラントシステム30のオートパイロット制御を停止する。端末装置20は、オペレータの操作に応じて、プラントシステム30の機器を操作する(ステップS1)。
【0033】
ここで、推論に使用するモデルは、オペレータの操作内容を模倣学習により学習する。このため、モデルによる推論結果として得られる操作内容に従うことで、他のオペレータが操作を模倣することができる。
【0034】
[処理装置]
図2を用いて、処理装置10について詳細に説明する。
図2は、実施の形態に係る処理装置10の構成例を示す図である。
【0035】
図2に示すように、処理装置10は、通信部11、記憶部12及び制御部13を有する。
【0036】
通信部11は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部11はNIC(Network Interface Card)である。
【0037】
記憶部12は、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶装置である。なお、記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。
【0038】
記憶部12は、処理装置10で実行されるOS(Operating System)や各種プログラムを記憶する。記憶部12は、履歴DB121及びモデル情報122を記憶する。
【0039】
履歴DB121は、プラントシステム30から提供された第1の履歴を含む情報である。履歴DB121は、操作実施時刻、機器の操作を行ったオペレータ、状況、実施内容等の説明変数リスト、目的変数である設定値を含む。また、履歴DB121は、重みを含んでもよい。
【0040】
状況は、例えば、プラントシステム30の各所に設置されたセンサのセンサ値であって、温度、流量、圧力、生産工程で発生する気体の濃度等の項目を含む。
【0041】
温度、流量、圧力、気体濃度は、モデルの説明変数であって、製品の生産工程における状況を表す説明変数の一例である。各項目には、各センサ値が取得された日時を示すタイムスタンプが対応付けられる。
【0042】
実施内容は、例えば、プラント制御で良く利用される制御手法であるPID制御のSV値(設定値)、MV値(制御出力)などであり、端末装置20からの操作によって設定される設定値である。設定値は、実際に設定された値を正規化した値であってもよい。設定値は、モデルの目的変数に相当する。
【0043】
設定値は、モデルの目的変数であって、生産工程における機器の操作を表す目的変数の一例である。
【0044】
モデル情報122は、モデルを構築するためのパラメータ等の情報である。モデルがニューラルネットワークである場合、モデル情報122は、各層の重み及びバイアスであり、モデルがLasso回帰やRidge回帰の場合は重みおよび正則化パラメータである。さらに、モデル情報122は、前処理の順番、移動平均処理における窓幅(ウィンドウサイズ)等のパラメータを含む。
【0045】
制御部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)等の集積回路である。
【0046】
また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部13は、収集部131、設定部132、取得部133、更新部134、推論部135、表示制御部136及びオートパイロット制御部137を有する。
図3を用いて、処理装置10の各機能部の処理を説明する。
図4は、処理装置10の処理を説明する図である。
【0047】
収集部131は、プラントシステム30における稼働の履歴を収集し(
図3の(1))、収集した履歴を履歴DB121に追加する(
図3の(2))。履歴は、説明変数と目的変数との組み合わせである第1の履歴の一例である。
【0048】
設定部132は、第1の履歴に対する除外期間Tを設定する。
図4は、除外期間を説明する図である。除外期間Tは、モデルの学習データの学習対象期間から除外される期間である。現在の時刻をtとする、学習対象期間Vは、学習開始時刻t0(例えば、6か月前の時刻)から、時刻(t-T)までの期間となり、学習対象期間Vの間に収集された第1の履歴から、学習データが取得される。
【0049】
設定部132は、例えば、現在の時刻から、所定の期間(例えば、12時間)を除外期間Tに設定する。例えば、目的変数である生産工程における機器の操作の履歴を収集し、実際に、どのくらいの期間、操作が行われていないかについて統計を取った結果を基に、除外期間が設定される。
【0050】
また、設定部132は、目的変数の変化の有無に応じて、除外期間Tを設定してもよい。この場合、設定部132は、目的変数が変化したかを判定する(
図3の(3))。例えば、1分ごとにモデル学習が行われる場合には、目的変数の変化の判定も1分ごとに実行する。
【0051】
そして、設定部132は、目的変数が変化していない場合、除外期間Tを延長する。(
図3の(4))。具体的には、設定部132は、現時刻から遡って、現時刻と目的変数が同じ値である期間を、除外期間Tとして設定する。例えば、1分ごとにモデル学習が行われ、前回設定された除外期間Tが3時間である場合、設定部132は、除外期間Tを3時間1分に延長する。
【0052】
一方、設定部132は、目的変数が変化した場合、除外期間Tを0に設定する(
図3の(5))。すなわち、前回学習時から現在の時刻tまでの間にオペレータの操作により目的変数が変化した場合には、除外期間Tを0とすることで、前回目的変数が変化した時から、1分前までの操作履歴が学習対象期間Vの学習データに含まれるようにする。
【0053】
続いて、取得部133は、学習開始時刻t0以降であり、かつ、現時刻よりも除外期間T以前の、履歴DB121に含まれる第1の履歴の中から、説明変数と指定された説明変数との距離に基づいて、学習データである第2の履歴を取得する。取得部133は、履歴DB121に含まれる学習対象期間Vの第1の履歴の中から、説明変数と指定された説明変数との距離、及び、重みに基づいて第2の履歴を取得してもよい。
【0054】
取得部133は、履歴検索用キー(説明変数)が指定されると、この履歴検索キーに類似する過去の履歴群であって、学習開始時刻t0から、時刻(t-T)までの学習対象期間Vの過去履歴群を、第2の履歴として、履歴DB121から取得する(
図3の(6))。
【0055】
指定された説明変数を要求点と呼ぶ。例えば、要求点は、所定の時刻における説明変数(履歴DB121の各センサ値に相当)である。なお、要求点における目的変数(設定値)は未知であってもよい。
【0056】
ここで、JIT法では、多次元ベクトルである訓練用のデータ(実施の形態の履歴DB121に相当)と多次元ベクトルである要求点との距離を基に類似履歴が取得される。例えば、取得部133は、JIT法を用いて、計算されたユークリッド距離が小さいk(kは整数)個のレコードであるk最近傍(k-NN:k Nearest Neighbors)を取得する。なお、訓練用のデータと要求点との距離は、ユークリッド距離に限られず、例えばマハラノビス距離及びコサイン類似度等であってもよい。
【0057】
また、取得部133は、訓練用のデータと要求点との距離だけでなく、履歴DB121の重みを参照してレコードを取得してもよい。ここでは、重みが大きいほど取得対象として望ましいデータである場合、例えば、取得部133は、履歴DB121の中から、k最近傍であって、かつ重みが大きいデータを優先して取得する。
【0058】
更新部134は、取得部133によって取得された第2の履歴を用いて、説明変数から目的変数を出力するモデルの学習を行い(
図3の(7))、モデルを更新する(
図3の(8))。
【0059】
更新部134は、モデル情報122から構築したモデルに、説明変数を入力することにより計算された目的変数と、取得部133によって取得された学習データに含まれる目的変数との差分を表す目的関数を計算し、該目的関数が小さくなるように、学習の終了条件を満たすまでモデルのパラメータ、すなわちモデル情報122を繰り返し更新する。なお、学習データに重みが付与されている場合には、付与された重みで学習データを学習する。
【0060】
推論部135は、更新後のモデル情報122から構築したモデルに、予測用の説明変数を入力することにより目的変数を計算する。すなわち、推論部135は推論処理を行う(
図3の(9))。推論された目的変数は、例えば、状況から予測される操作内容である。
【0061】
表示制御部136は、推論された目的変数(例えば、操作内容)を示すガイダンス画面21を、端末装置20に表示させることで、推論結果をオペレータに提示する(
図3の(10))。
【0062】
なお、オートパイロット条件を満たす場合には、表示制御部136は、ガイダンス画面21に、オートパイロットの開始が可能になったことを表示する。そして、端末装置20から、処理装置10にオートパイロット開始が指示されると、オートパイロット制御部137は、モデルを用いた、プラントシステム30のオートパイロット制御を行う(
図3の(11))。
【0063】
[実施の形態の処理]
図5を用いて、実施の形態に係る処理手順を説明する。
図5は、実施の形態に係る処理の手順を示すフローチャートの一例を示す図である。
【0064】
図5に示すように、処理装置10は、プラントシステム30における稼働の履歴を収集し(ステップS11)、収集した履歴を履歴DB121に格納する。
【0065】
処理装置10は、目的変数が変化したかを判定する(ステップS12)。処理装置10は、現在の時刻tにおいて収集した目的変数が、例えば、前回収集時に収集された履歴の目的変数と比することで、目的変数の変化の有無を判定する。
【0066】
目的変数が変化していない場合(ステップS12:No)、処理装置10は、除外期間Tを延長する(ステップS13)。目的変数が変化した場合(ステップS12:Yes)、処理装置10は、除外期間Tを0に設定する(ステップS14)。
【0067】
処理装置10は、取得部133が、学習開始時刻t0以降であり、かつ、時刻(t-T)までの学習対象期間Vの、履歴DB121に含まれる第1の履歴の中から、説明変数と指定された説明変数との距離に基づいて第2の履歴を抽出する。取得部133は、履歴検索キー(説明変数)が指定されると、この履歴検索キーに類似する学習対象期間V過去の履歴群を、第2の履歴として、履歴DB121から取得する(ステップS15)。
【0068】
処理装置10は、ステップS15において取得された学習データを用いて、説明変数から目的変数を出力するモデルの学習を行い(ステップS16)、モデルを更新する(ステップS17)。
【0069】
処理装置10は、更新後のモデル情報122から構築したモデルに、予測用の説明変数(例えば、温度、流量など)を入力することにより目的変数(例えば、操作内容)を推論する(ステップS18)。
【0070】
続いて、処理装置10は、オートパイロット条件を用いて、オートパイロットの実施の可否を判定する(ステップS19)。
【0071】
処理装置10は、オートパイロットの実施が可能であると判定した場合(ステップS19:Yes)、オートパイロットの実施が可能であることを示す提示内容と、オートパイロットの実施の指示ボタンとを含むガイダンス画面を、端末装置20に表示させる。そして、処理装置10は、端末装置20からオートパイロットの実施を指示された場合には、モデルを用いた、プラントシステム30のオートパイロット制御を行う(ステップS21)。
【0072】
処理装置10は、オートパイロットの実施が不可能であると判定した場合(ステップS19:No)、オートパイロットの停止指示と、オートパイロットの停止ボタンとを含むガイダンス画面を、端末装置20に表示させる(ステップS20)。処理装置10は、端末装置20からオートパイロットの停止を指示された場合には、プラントシステム30のオートパイロット制御を停止し、オペレータによる手動操作の切り替え、或いは、手動操作を継続する。
【0073】
また、オートパイロットの判定をオペレータが行う場合には、処理装置10は、ステップS19の判定処理を省略し、ステップS18において推論された目的変数(例えば、操作内容)を示すガイダンス画面を、端末装置20に表示させることで、推論結果をオペレータに提示する(ステップS20)。
【0074】
処理装置10は、ステップS11~ステップS21の処理を、所定の時間(例えば、1分)ごとに実行する。
【0075】
[実施の形態の効果]
【0076】
図6及び
図7は、時系列データである説明変数と目的変数の一例を示す図である。オペレータは、プラントの状態(説明変数)を確認しながら、プラントシステム30の機器(制御対象(目的変数))を不定期に操作する(
図6の(1))。一方、期間U1に例示するように、オペレータが操作しなければ、プラントの状態が急に変化することは少ない。言い換えると、目的変数が直前と同一であれば、直近の時刻と現在の時刻とで説明変数ベクトルに大きな変化はない。
【0077】
逐次学習を行うJIT法を用いて模倣学習の場合、期間U1の履歴をモデルに学習させると、直近の運転(例えば、1分前の操作)を継続するようにモデルが推論を行う可能性が高い。期間U1の履歴は、現在の時刻の目的変数が、直近の時刻の目的変数と同一であり、説明変数ベクトルに大きな変化がないためである。したがって、現在の時刻の目的変数が、直近の時刻の目的変数と同一であり、説明変数ベクトルに大きな変化がない履歴を用いて模倣学習が実行されたモデルは、常に直前の操作を継続する様に推薦する可能性が高いため、プラントシステム30の運転を支援するモデルとしては不適切である。
【0078】
ここで、実施の形態に係る処理装置10は、第1の履歴に対する除外期間Tを設定し、学習開始時刻t0以降であり、かつ、現時刻よりも除外期間T以前の第1の履歴から、少なくとも、第1の履歴の説明変数と、指定された説明変数との距離に基づいて第2の履歴を取得する。そして、処理装置10は、第2の履歴を用いて、説明変数から目的変数を出力するモデルを更新する。
【0079】
すなわち、処理装置10では、除外期間Tの履歴を除外した履歴を、モデルの学習データとして使用する。したがって、処理装置10は、除外期間Tを設定することで、モデルに、直近の運転を模倣させることを回避することができ、逐次学習に適する学習データを適正に取得することができる。このため、処理装置10によれば、運転支援システムの機械学習モデルの精度向上を図ることができる。
【0080】
さらに、処理装置10は、目的変数の変化の有無に応じて、除外期間Tを設定することで、さらに、逐次学習に適する学習データを適正に取得することを可能にする。
【0081】
例えば、
図7に示すように、時刻t11において、処理装置10のモデルによる推論結果と、オペレータが期待する操作とのずれが発生した場合、オートパイロットから手動操作に切り替え、操作履歴をモデルに再度学習させる必要がある(
図7の(1))。例えば、生産量の変更や、生産品目の変更、経年劣化などにより、模倣学習による計算精度が劣化した場合、手動操作に切替え、モデルに操作履歴を学ばせることにより、モデルの精度を回復させる。
【0082】
ここで、除外期間Tが一定(例えば、12時間)の場合、オートパイロットをオフにしても、オートパイロットオフ後の12時間はモデルの学習が再開されず、待機する必要がある。このため、モデルが新たに操作を学習し精度が回復するまで時間を要するため、オートパイロットの再開が遅れる。また、オートパイロットオフ後の12時間の間の操作履歴は学習データから除外されるため、学習すべき操作履歴をモデルが学習できない場合もある。
【0083】
これに対し、処理装置10は、目的変数が変化した場合、除外期間Tを0に設定する。
図7の例では、時刻t11の直後に手動操作に切り替わると、除外期間Tは0となるため、手動操作に切り替えられた時刻t12の操作履歴もモデルの再学習対象となる(
図7の(2))。
【0084】
このため、処理装置10は、除外期間Tを待つことなく、手動操作に切り替えられる直前までのデータを用いてモデルの再学習が可能となり、学習すべき操作履歴を、適切にモデルに学習させることができる。
【0085】
そして、模倣学習により、処理装置10のモデルによる推論結果と、オペレータが期待する操作とのずれが徐々に解消され(
図7の(3))、時刻t13において、ずれが解消されたため、オートパイロットがオンとされる(
図7の(4))。
【0086】
一方、処理装置10は、目的変数が変化していない場合、現時刻から遡って、現時刻と目的変数が同じ値である期間を、除外期間Tとして設定する。すなわち、処理装置10は、除外期間Tを延長する。このため、処理装置10は、目的変数が直前と同一であり、説明変数ベクトルに大きな変化がない期間の履歴を学習データから除外することで、オペレータによる操作履歴を、適切にモデルに学習させることができる。
【0087】
したがって、処理装置10は、学習に適した履歴のみを用いて、モデルを更新することができるため、モデルの推論精度を向上させることができる。特に、処理装置10は、模倣学習においてJIT法による逐次学習に適する学習データを用いてモデル更新を行うため、プラントシステム30の適切な操作と、モデルの精度向上とを並行して実現することができる。
【0088】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
【0089】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0090】
[プログラム]
一実施形態として、処理装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を処理装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置には、タブレット型端末、スマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0091】
また、処理装置10は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供するサーバとして実装することもできる。例えば、サーバは、要求点の指定を入力とし、学習済みのモデルを出力とする学習サービスを提供するサーバ装置として実装される。この場合、サーバは、Webサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【0092】
図8は、プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0093】
メモリ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に接続される。
【0094】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、処理装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、処理装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0095】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0096】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0097】
1 プラント運用システム
10 処理装置
20 端末装置
30 プラントシステム
11 通信部
12 記憶部
13 制御部
121 履歴DB
122 モデル情報
131 収集部
132 設定部
133 取得部
134 更新部
135 推論部
136 表示制御部
137 オートパイロット制御部