(57)【要約】【課題】数学的に記述される関数による合わせ込みの過学習の影響を取り除くことにより実機とシミュレーションとの誤差を削減し、以って、機械の自動運転制御を最適化する。【解決手段】機械の自動運転を制御する自動運転制御システムが、数学的に記述される関数に基づき前記機械に入力される制御信号列と当該制御信号列に従い制御された前記機械から出力されるデータとの関係を示す第１のモデルを設定する。システムが、機械の自動運転制御を学習することを含む学習処理において、第１の条件が満たされるまでは第１のモデルを用いて学習を実行し、第１の条件が満たされた以降、過学習を意味する第２の条件が満たされるか当該第２の条件が満たされること無しに学習が終了するまでは、第１のモデルを１回以上変化させた後のモデルである第２のモデルを用いて学習を実行する。【選択図】  図１
2020177416.tif 000002
【特許請求の範囲】
【請求項１】
機械の自動運転を制御する自動運転制御システムであって、
数学的に記述される関数に基づき前記機械に入力される制御信号列と当該制御信号列に従い制御された前記機械から出力されるデータとの関係を示す第１のモデルを設定する問題設定部と、
前記機械の自動運転制御を学習することを含む学習処理を実行する学習実行部と、
前記学習処理の結果に従う制御信号列を前記機械に入力することで前記機械の自動運転を制御する運転制御部と
を備え、
前記学習実行部は、前記学習処理において、
第１の条件が満たされるまでは、前記第１のモデルを用いて学習を実行し、
前記第１の条件が満たされた以降、過学習を意味する第２の条件が満たされるか当該第２の条件が満たされること無しに学習が終了するまでは、前記第１のモデルを１回以上変化させた後のモデルである第２のモデルを用いて学習を実行する、
ことを特徴とする自動運転制御システム。
【請求項２】
請求項１に記載の自動運転制御システムであって、
前記第２のモデルは、前記第１のモデルとは異なる数学的に記述される第３のモデルのうち所定割合の第３のモデルが前記第１のモデルに印加された結果としてのモデルである、
ことを特徴とする自動運転制御システム。
【請求項３】
請求項２に記載の自動運転制御システムであって、
第１の制御信号列が入力された前記第１のモデルから出力された第１のシミュレーション結果データと、前記第１の制御信号列が入力された前記機械から出力された第１の実世界データとの第１の誤差に基づく第１の信頼度を算出する信頼度設定部、
を備え、
前記所定割合は、前記算出された第１の信頼度よりも小さな割合である、
ことを特徴とする自動運転制御システム。
【請求項４】
請求項３に記載の自動運転制御システムであって、
前記第１の条件は、前記第１の信頼度と学習回数とに基づく条件である、
ことを特徴とする自動運転制御システム。
【請求項５】
請求項３に記載の自動運転制御システムであって、
前記第１の誤差が許容誤差範囲に収まるよう前記第１のモデルが合せ込まれたモデルである前記第３のモデルを生成する印加モデル生成部、
を備えることを特徴とする自動運転制御システム。
【請求項６】
請求項１に記載の自動運転制御システムであって、
前記学習実行部は、前記第２の条件が満たされた場合、前記学習処理を終了する、
ことを特徴とする自動運転制御システム。
【請求項７】
請求項３に記載の自動運転制御システムであって、
前記信頼度設定部は、前記第１の誤差及び前記第１の信頼度のうちの少なくとも一つを表示し、
当該表示に対して学習処理の許可が受け付けられた場合に、前記学習実行部が前記学習処理を実行する、
ことを特徴とする自動運転制御システム。
【請求項８】
請求項１に記載の自動運転制御システムであって、
前記第１のモデルを用いた学習と、前記第２のモデルを用いた学習とのいずれの学習も、強化学習であり、
前記第２の条件は、下記のうちの少なくとも一つである、
・前記第２のモデルを用いた強化学習において得られた報酬に従う値が、前記第１のモデルを用いた強化学習において得られた報酬に従う値より大きい、
・前記第２のモデルを用いた強化学習において得られた報酬の変動幅が、前記第１のモデルを用いた強化学習において得られた報酬の変動幅を超えている、
ことを特徴とする自動運転制御システム。
【請求項９】
請求項３に記載の自動運転制御システムであって、
前記第２の条件が満たされること無しに前記学習処理が終了した場合の前記第２のモデルに第２の制御信号列が入力されることにより前記第２のモデルから出力された第２のシミュレーション結果データと、前記第２の制御信号列が入力された前記機械から出力された第２の実世界データとの第２の誤差に基づく第２の信頼度が、前記第１の信頼度を超えている場合、前記第２の信頼度を新たな第１の信頼度に更新することと、当該新たな第１の信頼度に基づく割合の第３のモデルが前記第１のモデルに印加された結果としてのモデルを新たな第１のモデルに更新することとを含む信頼度／第１モデル更新処理を実行する信頼度／第１モデル更新部、
を備え、
前記信頼度／第１モデル更新処理毎の前記学習処理では、前記新たな第１のモデルが用いられる、
ことを特徴とする自動運転制御システム。
【請求項１０】
請求項３に記載の自動運転制御システムであって、
前記第２の条件が満たされること無しに前記学習処理が終了した場合の前記第２のモデルに第２の制御信号列が入力されることにより前記第２のモデルから出力された第２のシミュレーション結果データと、前記第１の信頼度とのうちの少なくとも一つを表示し、当該表示に対して前記機械の実際の動作確認の許可を受け付けた場合に前記第２の制御信号列を前記機械に入力する評価部、
を備えることを特徴とする自動運転制御システム。
【請求項１１】
請求項１０に記載の自動運転制御システムであって、
前記第２の制御信号列が入力された前記機械から出力された第２の実世界データと前記第２のシミュレーション結果データとの第２の誤差に基づく第２の信頼度が、前記第１の信頼度を超えている場合、前記第２の信頼度を新たな第１の信頼度に更新することと、当該新たな第１の信頼度に基づく割合の第３のモデルが前記第１のモデルに印加された結果としてのモデルを新たな第１のモデルに更新することとを含む信頼度／第１モデル更新処理を実行する信頼度／第１モデル更新部、
を備え、
前記信頼度／第１モデル更新処理毎の前記学習処理では、前記新たな第１のモデルが用いられる、
ことを特徴とする自動運転制御システム。
【請求項１２】
請求項１に記載の自動運転制御システムであって、
前記機械は、産業機械である、
ことを特徴とする自動運転制御システム。
【請求項１３】
機械の自動運転を制御する自動運転制御方法であって、
数学的に記述される関数に基づき前記機械に入力される制御信号列と当該制御信号列に従い制御された前記機械から出力されるデータとの関係を示す第１のモデルを設定し、
前記機械の自動運転制御を学習することを含む学習処理を実行し、
前記学習処理の結果に従う制御信号列を前記機械に入力することで前記機械の自動運転を制御し、
前記学習処理では、
第１の条件が満たされるまでは、前記第１のモデルを用いて学習を実行し、
前記第１の条件が満たされた以降、過学習を意味する第２の条件が満たされるか当該第２の条件が満たされること無しに学習が終了するまでは、前記第１のモデルを１回以上変化させた後のモデルである第２のモデルを用いて学習を実行する、
ことを特徴とする自動運転制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、機械の自動運転制御に関する。
【背景技術】
【０００２】
大型産業機械などの機械の自動運転制御は、実機を模倣したシミュレーションを用い、最適な自動運転制御方法を見つけ、シミュレーション上で実現した自動運転制御を実機で検証することが行われている。この最適制御を見つける方法としては、最適化計算や強化学習などが挙げられる。
【０００３】
大型産業機械の例としては天井クレーンがあり、天井クレーンの自動運転制御の例は特許文献１に挙げられている。特許文献１によれば、ある特定の運搬に対し、物理モデルの運搬シミュレーションを用い、搬送物が揺れないように自動運転制御ステップを生成することが行われている。
【０００４】
しかしながら、実機とシミュレーション間の誤差により、実機がシミュレーションとは異なる挙動をし、望む結果を得ることが難しい。そのため、実機での調整が不可欠となるが、大型産業機械の実機を頻繁に用いて実験することは負担が大きいため困難である。
【０００５】
この問題を避けるために、特許文献２に挙げられるように、実機に近づくようにシミュレーションを生成することが考えられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2007-161393号公報
【特許文献２】特開2004-178247号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
天井クレーンにおいて、ある標準的な制御信号列の実データを基に、特許文献２のような精緻なシミュレーションを生成することが考えられるが、実機とシミュレーションとの間を埋めるために、数学的に記述される関数による合わせ込みが行われる。この合わせ込みでは、実機のデータ不足や再現性のなさから過学習をすることが知られている。
【０００８】
シミュレーションが過学習をしている場合、合わせ込みシミュレーションを生成した際の制御信号列、搬送距離、搬送物の重さ、実機検証を行った環境などのパラメータにシミュレーションが強く依存している。このため、制御信号列、搬送距離、環境といったパラメータが変化した際には、シミュレーションの結果が大きく変動し、シミュレーションと実機間の誤差が大きくなる問題がある。そのため、合わせ込みを行った制御の環境以外では、自動運転制御が実現しない問題が生じる。
【０００９】
また、自動運転制御の制御信号列の探索に強化学習を用いる場合、過学習をしたシミュレーションでは、強化学習において得られる報酬が大きく変動し、学習が進行しない問題がある。そのため、強化学習による自動運転制御を実現する際に、制御信号列を生成するときに用いるシミュレーションに、過学習の影響が含まれることを防ぐ必要がある。
【００１０】
数学的に記述される関数による合わせ込みの過学習の影響は、自動運転制御の制御信号列の探索に強化学習以外の学習が用いられる場合にも問題となり得る。
【００１１】
そこで、本発明では、数学的に記述される関数による合わせ込みの過学習の影響を取り除くことにより実機とシミュレーションとの誤差を削減し、以って、機械の自動運転制御を最適化することを目的とする。
【課題を解決するための手段】
【００１２】
機械の自動運転を制御する自動運転制御システムが、数学的に記述される関数に基づき前記機械に入力される制御信号列と当該制御信号列に従い制御された前記機械から出力されるデータとの関係を示す第１のモデルを設定する。システムが、機械の自動運転制御を学習することを含む学習処理において、第１の条件が満たされるまでは第１のモデルを用いて学習を実行し、第１の条件が満たされた以降、過学習を意味する第２の条件が満たされるか当該第２の条件が満たされること無しに学習が終了するまでは、第１のモデルを１回以上変化させた後のモデルである第２のモデルを用いて学習を実行する。
【発明の効果】
【００１３】
本発明により、数学的に記述される関数による合わせ込みの過学習の影響を取り除くことにより実機とシミュレーションとの誤差を削減し、以って、機械の自動運転制御を最適化できる。
【図面の簡単な説明】
【００１４】
【図１】自動運転制御の概要の一例を示す模式図。
【図２】「システム」００８の構成の一例を示すブロック図。
【図３】「データベース」１１６に格納されるデータの一例を示すブロック図。
【図４】「信頼度シミュレーション生成モジュール」１０８が実行する処理の一例のフローチャート。
【図５】「問題設定処理」Ｓ３０１の詳細の一例を示すフローチャート。
【図６】機械学習の合わせ込みの一例を示す領域図。
【図７】「学習実行処理」Ｓ３０６の詳細の一例を示すフローチャート。
【図８】合わせ込み印加の一例を示す模式図。
【図９】「評価処理」Ｓ３０７の詳細の一例を示すフローチャート。
【図１０】「アーム台車」９０１の構成の一例を示す模式図。
【図１１】「アーム台車」９０１のプロセスの一例を示す模式図。
【発明を実施するための形態】
【００１５】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のＩ／Ｏ（Input/Output）インターフェースデバイス。Ｉ／Ｏ（Input/Output）インターフェースデバイスは、Ｉ／Ｏデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するＩ／Ｏインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのＩ／Ｏデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス（例えば一つ以上のＮＩＣ（Network Interface Card））であってもよいし二つ以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１６】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【００１７】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）であり、具体的には、例えば、Hard Disk Drive（ＨＤＤ）又はSolid State Drive（ＳＳＤ）である。
【００１８】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【００１９】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、Central Processing Unit（ＣＰＵ）のようなマイクロプロセッサデバイスであるが、Graphics Processing Unit（ＧＰＵ）のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア回路（例えばField-Programmable Gate Array（ＦＰＧＡ）又はApplication Specific Integrated Circuit（ＡＳＩＣ））といった広義のプロセッサデバイスでもよい。
【００２０】
また、以下の説明では、「ｋｋｋ部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路（例えばＦＰＧＡ又はＡＳＩＣ）によって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び／又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサ或いはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体（例えば非一時的な記録媒体）であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【００２１】
以下、幾つかの実施例を、図面を用いて説明する。
【実施例１】
【００２２】
図１は、実施例１に係る自動運転制御の概要の一例を示す図である。
【００２３】
「天井クレーン」００１は、自動運転制御対象の産業機械の一例である。「天井クレーン」００１は、移動可能な「台車」００２と、「搬送物」００３と、巻き上げ可能な「紐」００４と、「通信可能な制御装置」００５と、「センサー」００６とを備える。「センサー」００６は、「台車」００２の速度及び位置と、「紐」００４の長さと、「揺れ角度θ」００７とを測定する。「センサー」００６の測定値（本実施例では、「台車」００２の速度及び位置と、「紐」００４の長さと、「揺れ角度θ」００７）は、「システム」００８に送信される。「システム」００８が、本実施例に係る自動運転制御システムである。
【００２４】
「センサー」００６は、図１では一つであるが、複数の「センサー」００６があってもよい。複数の「センサー」００６が、「台車」００２、「紐」００４及び「搬送物」００３にそれぞれ備えられてもよい。
【００２５】
「揺れ角度θ」００７は、「台車」００２から鉛直方向に伸ばした直線と、直線状の「紐」００４の間の角度とする。しかし、揺れ角度の定義はこれに限らない。例えば、揺れ角度の定義は、「紐」００４と「台車」００２の水平線方向で定義、つまり図１でいうと、（９０度−θ）が、「揺れ角度」でもよい。
【００２６】
制御信号列を用いた「天井クレーン」００１の自動運転制御は、事前に「台車」００２の加減速を指示する制御信号の時間ごとの列である制御信号列、例えば、「システム」００いから「制御信号列」００９を「通信可能な制御装置」００５が受信し「通信可能な制御装置」００５がその「制御信号列」００９に従う制御を行うことで実現される。
【００２７】
具体例の「制御信号列」００９によれば、「台車」００２は、加速制御時に最大速度に到達すると、加速をやめて最大速度で等速運転を行い、減速時では、台車が速度０になると、それ以上減速せず、速度０になる。
【００２８】
「通信可能な制御装置」００５は、例えば、送信された「制御信号列」００９を、ＰＬＣ（Programmable Logic Controller）又はモーションコントローラーで受信し、受信した信号をインバーターに出力し、インバーターにより当該信号を「天井クレーン」００１の「台車」００２を実際に制御するための制御信号列の形に変換し、その信号列通りに台車を制御する装置でよい。なお、「通信可能な制御装置」００５の例は、上述の装置に限らない。また、「通信可能な制御装置」００５は、図１では「台車」００２に搭載されているものとなっているが、「台車」００２に搭載されていなくてもよい。
【００２９】
図２は、「システム」００８の構成の一例を示すブロック図である。
【００３０】
図２を参照すると、「システム」００８は、「メモリ」１０２と、「通信装置」１０３と、「プログラム記憶装置」１０４と、「データ記憶装置」１０５と、「入力装置」１０６と、「出力装置」１０７と、それらに接続された「ＣＰＵ」１０１とを有している。「通信装置」１０３が、インターフェース装置の一例である。「メモリ」１０２、「プログラム記憶装置」１０４及び「データ記憶装置」１０５が、記憶装置の一例である。「ＣＰＵ」１０１が、プロセッサの一例である。
【００３１】
「プログラム記憶装置」１０４は、「ＣＰＵ」１０１に実行される一つ以上のコンピュータプログラムを記憶する装置である。「プログラム記憶装置」１０４は、例えば、「信頼度シミュレーション生成モジュール」１０８を記憶する。
【００３２】
「信頼度シミュレーション生成モジュール」１０８は、図４に例示する処理を行うソフトウェアモジュールである。ソフトウェアモジュールは、一つ以上のソフトウェアプログラムからなり、あるまとまりの機能を実現するソフトウェア又はソフトウェア部品である。
【００３３】
「信頼度シミュレーション生成モジュール」１０８は、「問題設定部」１０９と、「信頼度設定部」１１０と、「印加モデル生成部」１１１と、「学習実行部」１１２と、「評価部」１１３と、「信頼度生成部」１１４と、「信頼度／ベースモデル更新部」１１５と、「運転制御部」１１８とを有している。
【００３４】
「データ記憶装置」１０５は、データを記憶する装置である。「データ記憶装置」１０５は、例えば、「データベース」１１６を記憶する。
【００３５】
なお、ここでは「プログラム記憶装置」１０４と「データ記憶装置」１０５を別々の装置とする例を示したが、この構成に限定しておらず、「プログラム記憶装置」１０４と「データ記憶装置」１０５は同一記憶装置であってもよい。
【００３６】
「信頼度シミュレーション生成モジュール」１０８は、データの入出力を「データ記憶装置」１０５に格納された「データベース」１１６に対して行う。
【００３７】
「ＣＰＵ」１０１は、例えば、「メモリ」１０２をワークエリアとして利用し、「データ記憶装置」１０５に記憶されたデータの読み出しを行う。加え、「ＣＰＵ」１０１は、例えば、演算過程や演算結果のデータを「データ記憶装置」１０５に書き込む。
【００３８】
「通信装置」１０３は、例えば、「ＣＰＵ」１０１にて処理された情報を例えば通信ネットワークを介して「通信可能な制御装置」００５のような外部の装置に送信する。加え、「通信装置」１０３は、例えば、通信ネットワークを介して受信した情報を「ＣＰＵ」１０１に伝達する。
【００３９】
「入力装置」１０６は、キーボード、マウスなどのユーザインターフェース装置である。
【００４０】
「出力装置」１０７は、ディスプレイ装置、プリンタなどのユーザインターフェース装置である。
【００４１】
なお、「通信装置」１０３を介して接続されている該端末が、「入力装置」１０６及び「出力装置」１０７を有し、端末からの要求に従って、データを処理し、処理結果を端末に出力してもよい。
【００４２】
「システム」００８は、物理的に一つの計算機上に構築されても、複数の計算機上に構成された論理区画上に構築されてもよい。
【００４３】
図３は、「データベース」１１６に格納されるデータの一例を示すブロック図である。
【００４４】
「データベース」１１６は、「制御情報」２０１と、「パラメータ」２０２と、「制御信号列」２０３と、「施策」２０４と、「シミュレーションデータ」２０５と、「実世界データ」２０６と、「算出誤差」２０７と、「信頼度尺」２０８と、「信頼度」２０９と、「ＫＰＩ（Key Performance Indicator）」２１０と、「報酬情報」２１１と、「過学習パラメータ」２１２とを格納する。「データベース」１１６における要素２０１〜２１２の各々は、例えばテーブルでよい。
【００４５】
以下に、上述の図２に例示の「システム」００８を用い、図１に例示の「天井クレーン」００１の自動運転を実現する方法の一例を、図１〜図３を用い説明する。
【００４６】
「データベース」１１６に格納される「制御信号列」２０３の構成は、具体例の「制御信号列」００９の構成に限らない。例えば、「制御信号列」２０３の構成や「制御信号列」００９の構成は、図１に例示の構成に限らず、「天井クレーン」００１において有効ないずれの構成であってもよい。以下の説明では、「システム」００８から「通信可能な制御装置」００５には「制御信号列」００９が送信されることとし、「制御信号列」００９は、「データベース」１１６から読み出された「制御信号列」２０３に基づいていることとする。
【００４７】
また、シミュレーションで考える環境は、図１に例示の１次元方向の自動搬送に限らず、例えば、２次元方向での自動搬送や、巻き上げを含めた３次元方向の自動搬送を含んでもよい。搬送が２次元方向又は３次元搬送になると、極座標系でも知られるように、「揺れ角度θ」００７は２次元量となる。制御信号列も、２次元又は３次元に対応した制御信号列でもよいし、巻き上げ機能の制御もあるならば「制御信号列」００９のように“巻き上げる”及び“巻き上げない”のいずれを行うかを示す制御信号列があってもよい。シミュレーションで考える環境での制御対象に関する情報は、「制御情報」２０１に格納される。
【００４８】
シミュレーションの環境を定義する要素は、例えば、「台車」００２の重さ及び形状と、「搬送物」００３の重さ及び形状と、「紐」００４の長さ及び形状でよく、これらの要素を示す情報は「制御情報」２０１に格納される。
【００４９】
「天井クレーン」００１の自動運転制御で目指すタスクの一例は、「制御情報」２０１に格納されている要素（例えば、設定された搬送距離、紐の巻き上げ長さ）に対する適切な制御を行う「制御信号列」００９のような信号列を見つけることである。本実施例では、そのような制御信号列は、強化学習を用いて見つけられる。制御信号列を生成する方法は、強化学習に限定しない。
【００５０】
「システム」００８では、「ＣＰＵ」１０１が、「データベース」１１６から「台車」００２の「制御信号列」２０３を読み出し、「通信装置」１０３を介し、「制御信号列」２０３に従う「制御信号列」２０９を「通信可能な制御装置」００５に送信する。
【００５１】
「通信可能な制御装置」００５は、受信した「制御信号列」００９通りの制御を「台車」００２に対して行い、制御中に単位時間ごとに「センサー」００６から得られた測定値（例えば、「台車」００２の速度及び位置、「搬送物」００３の「揺れ角度θ」００７、及び、「紐」００４の長さ）を含むデータである実世界データを、「システム」００８に送信する。「ＣＰＵ」１０１が、「通信装置」１０３を介して、実世界データを受信し、受信した実世界データを、「データ記憶装置」１０５の「データベース」１１６における「実世界データ」２０６に格納する。
【００５２】
上述の実機（「天井クレーン」００１）を制御するために必要な適切な「制御信号列」００９を強化学習で生成する方法について、図面を用いて説明する。
【００５３】
図４は、「信頼度シミュレーション生成モジュール」１０８が実行する処理の一例を示すフローチャートである。なお、図４のフローチャートが示す処理において、「データベース」１１６に対して適宜データが入出力されるが、当該入出力に関する記載は、説明の冗長を避けるために省略されることがある。
【００５４】
始めに、「問題設定部」１０９は、「問題設定処理」Ｓ３０１を行う。「問題設定処理」Ｓ３０１は、「制御情報」２０１と「パラメータ」２０２を「データベース」１１６に入力すること、言い換えれば、信頼度シミュレーションを生成する際の初期設定を行うことである。
【００５５】
「制御情報」２０１は、「入力装置」１０６から入力されたデータを含んでよい。「制御情報」２０１は、「天井クレーン」００１の特徴や「天井クレーン」００１を制御する「システム」００８の特徴に関する情報（例えば、搬送距離や、「紐」）００４の巻き上げ長さ）を含む。
【００５６】
また、「制御情報」２０１は、許容誤差の範囲を示す情報（許容誤差情報）を含んでよい。許容誤差範囲は、実機とシミュレーション間の許容できる誤差の範囲（例えば、誤差の上限と下限）を意味する。なお、この許容誤差範囲は、「制御情報」２０１にデフォルトで格納されていて、ユーザが許容誤差範囲を指定することが必須でなくてもよい。許容誤差範囲の上限と下限は、典型的には異なった値である。
【００５７】
「制御情報」２０１は、上述した情報の少なくとも一部に代えて又は加えて他種の情報を含んでもよい。
【００５８】
「パラメータ」２０２は、「入力装置」１０６から入力されたデータを含んでよい。「パラメータ」２０２は、例えば、「問題設定部」１０９に含まれるシミュレーターに存在する取り除けない誤差（以下、固定誤差）を示す情報（以下、固定誤差情報）と、「問題設定部」１０９と「学習実行部」１１２に含まれる強化学習の報酬関数の許容領域とハイパーパラメータなどの環境設定に関する情報とを含む。
【００５９】
「パラメータ」２０２は、上述の情報の少なくとも一部に代えて又は加えて、他種の情報、例えば、「システム」００８を構成する上で必要な値を含んでもよい。
【００６０】
本実施例では、「制御情報」２０１と「パラメータ」２０２は別々の情報であるが、「制御情報」２０１と「パラメータ」２０２は包括的に同一の情報とされてもよい。
【００６１】
図５は、「問題設定処理」Ｓ３０１の詳細の一例を示すフローチャートである。
【００６２】
「問題設定部」１０９は、「ＫＰＩ処理」Ｓ４０１を実行する。
【００６３】
「ＫＰＩ処理」Ｓ４０１は、「制御情報」２０１に含まれる、搬送データに対し指標値となるＫＰＩを、「ＫＰＩ」２１０に格納することを含む。ＫＰＩの例としては、「天井クレーン」００１では、搬送時間が早い、搬送終了後の搬送物の揺れ幅が小さい、といった例を採用可能であるが、この例に限らない。
【００６４】
次に、「問題設定部」１０９は、「ベースモデル生成処理」Ｓ４０２を実行する。
【００６５】
「ベースモデル生成処理」Ｓ４０２は、「制御情報」２０１と「パラメータ」２０２を入力とし、数学的に記述される関数で「天井クレーン」００１をモデリングすること、つまり、「天井クレーン」００１のベースモデルを生成することを含む。
【００６６】
「ベースモデル生成処理」Ｓ４０２で生成されるベースモデルは、「天井クレーン」００１の演繹モデルである物理モデル、例えばニュートン力学を用いたシミュレーションで生成されたモデルでよい。
【００６７】
「ベースモデル生成処理」Ｓ４０２で生成されたベースモデルは、「問題設定部」１０９により、信頼モデルとして設定され、且つ、「シミュレーションデータ」２０５に格納される。
【００６８】
次に、「問題設定部」１０９は、「施策評価設定処理」Ｓ４０３を実行する。「施策評価設定処理」Ｓ４０３は、強化学習の実行と評価を含む。
【００６９】
例えば、「施策評価設定処理」Ｓ４０３は、「ベースモデル生成処理」Ｓ４０２で生成された信頼モデルを強化学習時のシミュレーターとして使用し、「ＫＰＩ」２１０に格納されたＫＰＩに基づき信頼モデル使用時の最適施策を決定し、且つ、報酬が収束するエピソード数αであるパラメータＡを設定することを含む。パラメータＡは、「問題設定部」１０９により「データベース」１１６の「パラメータ」２０２に格納され、最適施策は、「問題設定部」１０９により「データベース」１１６の「施策」２０４に格納される。
【００７０】
加え、「施策評価設定処理」Ｓ４０３は、パラメータＡを決定するために、「パラメータ」２０２に格納されている報酬関数（強化学習で定義される報酬関数）に関し当該報酬関数の出力（報酬）の許容範囲を入力することを含む。
【００７１】
パラメータＡは、「施策評価設定処理」Ｓ４０３で決定されることに代えて、ユーザから初めに入力され「パラメータ」２０２に格納されてもよい。
【００７２】
「施策評価設定処理」Ｓ４０３は、「施策」２０４に格納される上記決定された最適施策を「天井クレーン」００１に適した制御信号列に変換し、変換された信号列を「データベース」１１６の「制御信号列」２０３に格納することを含む。
【００７３】
加え、「施策評価設定処理」Ｓ４０３は、最適施策による制御を「ベースモデル生成処理」Ｓ４０２で生成されたシミュレーション上で実行し（格納された制御信号列をベースモデルに入力し）、当該実行の結果を示すシミュレーション結果データを「データベース」１１６の「シミュレーションデータ」２０５に格納することを含む。シミュレーション結果データは、例えば、最適施策による制御における単位時間ごとの測定値（例えば、「台車」００２の位置及び速度、「搬送物」００３の「揺れ角度θ」００７）を含む。
【００７４】
次に、「問題設定部」１０９は、「誤差目標設定処理」Ｓ４０４を実行する。「誤差目標設定処理」Ｓ４０４は、「制御情報」２０１に格納された許容誤差情報を入力とし、当該情報を基に学習終了条件となる許容誤差範囲を設定し、設定された許容誤差範囲を示す情報を「パラメータ」２０２に格納することを含む。
【００７５】
再び図４を参照する。次に、「信頼度設定部」１１０は、「信頼度設定処理」Ｓ３０２を実行する。
【００７６】
「信頼度設定処理」Ｓ３０２は、「施策評価設定処理」Ｓ４０３において「制御信号列」２０３に格納された制御信号列（最適施策の制御信号列）と、「シミュレーションデータ」２０５に格納されているシミュレーション結果との少なくとも一つを、「出力装置」１０７を介しユーザに提示することを含む。ユーザは、当該提示に対し、「入力装置」１０６を介し、学習処理の許可及び拒否のいずれかの選択を入力し、「信頼度設定処理」Ｓ３０２は、当該選択を入力することを含む。
【００７７】
「信頼度設定処理」Ｓ３０２において拒否の選択が入力された場合、「信頼度設定部」１１０は、「追加処理」Ｓ３０３を実行する。「追加処理」Ｓ３０３は、ユーザから「制御情報」２０１と「パラメータ」２０２に追加される情報の入力を受けることを含む。入力された情報は、「問題設定処理」Ｓ３０１において、「制御情報」２０１と「パラメータ」２０２に格納される。
【００７８】
「信頼度設定処理」Ｓ３０２において許可の選択が入力された場合、「信頼度設定部」１１０は、例えば次のことを実行する。すなわち、「信頼度設定部」１１０は、「施策評価設定処理」Ｓ４０２において決定され「制御信号列」２０３に格納された制御信号列に従う「制御信号列」００９（最適施策の制御信号列）を、「通信装置」１０３を介し、「天井クレーン」００１の「通信可能な制御装置」００５に送信する。また、「信頼度設定部」１１０は、「通信装置」１０３を介し、当該制御信号列に従い「天井クレーン」００１を制御する「通信可能な制御装置」００５から、「センサー」００６から得られた実世界データを受信し、「実世界データ」２０６に当該実世界データを格納する。実世界データは、「ベースモデル生成処理」Ｓ４０２において生成されたベースモデルの結果と同様のデータ列か、又は、そのデータ列を生成可能な情報だけでもよい。また、実世界データは、例えば、単位時間ごとの測定値（例えば、「台車」００２の位置及び速度、「搬送物」００３の「揺れ角度θ」００７）を含んでよい。実世界データの種類はこの例に限らない。
【００７９】
「信頼度設定処理」Ｓ３０２は、「天井クレーン」００１から得られ「実世界データ」２０６に格納された実世界データと、「ベースモデル生成処理」Ｓ４０２において生成された信頼モデル（ベースモデル）を用いて得られ「シミュレーションデータ」２０５に格納されたシミュレーション結果データとを比較することで誤差を計算し、「算出誤差」２０７にその誤差を格納することを含む。ここで言う「実世界データ」は、「システム」００８から送信された「制御信号列」００９に従う制御の結果として「天井クレーン」００１から受信した実測データであり、例えば、単位時間毎の実際の測定値（「搬送物」００３の「揺れ角度θ」）を含むデータである。「シミュレーション結果データ」は、「システム」００８から送信された「制御信号列」００９の基になった制御信号列（「制御信号列」２０３から得られる信号列）に従う制御をシミュレーション上で実行した結果として得られた予測データであり、例えば、単位時間毎の予測される測定値を含むデータである。
【００８０】
実世界データが、一つ以上の実際の測定値を含み、シミュレーション結果データが、一つ以上の実際の測定値にそれぞれ対応する一つ以上の予測される測定値を含む場合、実世界データとシミュレーション結果データとの差分データとして、一つ以上の差分値が得られる。各差分値は、実際の測定値と、当該実際の測定値に対応する予測される測定値との差分（絶対値）である。誤差は、全差分値の和でよい。誤差の定義としては、差分値の和に代えて、他の定義（例えば、全差分値の平均、最大値又は最小値）が採用されてもよい。
【００８１】
「信頼度設定処理」Ｓ３０２が、算出された誤差に基づき信頼度を定めることを含む。定める信頼度の例としては、誤差がないときは、信頼度＝１でよい。誤差があるときは、「ベースモデル生成処理」Ｓ４０２で設定された信頼モデルに関する誤差（例えば、信頼モデルの固定誤差）が、信頼度＝０に関連付けられてよい。
【００８２】
「信頼度設定処理」Ｓ３０２は、「算出誤差」２０７に格納された誤差を入力とし、信頼度尺（信頼度の尺）をこの誤差から計算し、算出された信頼度尺を「データベース」１１６の「信頼度尺」２０８に格納することを含む。信頼度尺は、信頼度と誤差の関係を意味する。例えば、信頼度＝０は、上記算出された誤差に対応し、信頼度＝１は、誤差＝０に対応し、当該対応関係を基に、０より大きく１より小さい信頼度と、当該信頼度に対応した誤差との相互変換が可能でよい。
【００８３】
加え、「信頼度設定処理」Ｓ３０２は、「パラメータ」２０２に格納されている固定誤差情報を入力とし、初期信頼度τ０を、当該固定誤差情報を基に設定することを含む。なお、初期信頼度は、「パラメータ」２０２にハイパーパラメータとして格納されていてもよいし、「制御情報」２０１に格納されていてもよい。
【００８４】
「信頼度設定処理」Ｓ３０２は、設定された初期信頼度τ０を「信頼度」２０９に格納することを含む。
【００８５】
初期信頼度τ０の例としては、固定誤差が関連付けられた信頼度（例えば０）より大きい値や、単に１０％の信頼にあたる０．１などであるが、初期信頼度τ０はこの例に限らない。
【００８６】
信頼度τは、誤差から見積もった量である。すなわち、信頼度τは、誤差の基準次第で誤差と等価になる量である。このため、信頼度τは、誤差とみなすことも可能である。本実施例では、０≦τ≦１である。
【００８７】
「信頼度設定処理」Ｓ３０２は、「ベースモデル生成処理」Ｓ４０２と同様に、信頼モデルをベースモデルとして設定し、ベースモデルを「データベース」１１６の「シミュレーションデータ」２０５に格納することを含む。
【００８８】
次に、「印加モデル生成部」１１１は、「印加モデル生成処理」Ｓ３０４と「印加モデル重み算出処理」Ｓ３０５とを実行する。
【００８９】
「印加モデル生成処理」Ｓ３０４は、「シミュレーションデータ」２０５に格納されているベースモデルと、「算出誤差」２０７に格納されている誤差と、「パラメータ」２０２に格納されている許容誤差範囲とを入力とし、その誤差を数学的に記述される関数を用い合わせ込む。
【００９０】
「印加モデル生成処理」Ｓ３０４で用いられる合わせ込みは、誤差がなくなるように合わせ込むと過学習をしたモデルを生成してしまうため、許容誤差範囲内になるように、全データを多項式関数で合わせ込む。
【００９１】
図６は、機械学習の合わせ込みの一例を示す。横軸は時間に対応し縦軸は或る種の測定値（例えば搬送距離）に対応している。
【００９２】
図６を参照すると、合わせ込む領域は、ベースモデルで再現出来ている点線５０１と、実世界データが示す実線５０２との間の領域５０３である。また、２本の１点鎖線の間を表す範囲５０４は、許容誤差範囲の一例である。従って、決定される合わせ込み関数は、領域５０３と許容誤差範囲５０４との重複した範囲内へ誤差を埋める合わせ込み関数である。
【００９３】
上述の合わせ込み関数（合わせ込みモデル）は、多項式関数を一例としたが、多項式関数に限らず、また、機械学習に限らず、データから導かれる回帰モデルを含んでよい。合わせ込み関数の例としては、スプライン補完、テイラー展開、最近傍法、サポートベクトルマシン、ランダムフォレストなどあり、この例に限らない。
【００９４】
「印加モデル生成処理」Ｓ３０４は、合わせ込みモデルを、「データベース」１１６の「シミュレーションデータ」２０５に格納することを含む。
【００９５】
「印加モデル重み算出処理」Ｓ３０５は、「信頼度」２０９に格納された信頼度τと、「シミュレーションデータ」２０５に格納されている合わせ込みモデルと、「パラメータ」２０２に格納されている信頼度τ１を入力とする。
【００９６】
「印加モデル重み算出処理」Ｓ３０５は、「印加モデル生成処理」Ｓ３０４において生成された合わせ込みモデルのうちτ１の重み（割合）の合わせ込みモデル（以下、重みτ１の合わせ込みモデル）を生成し、「シミュレーションデータ」２０５に重みτ１の合わせ込みモデルを格納することを含む。なお、τ１は、０より大きく、τ（信頼度）より小さい。τ１がτより小さい理由は、誤差が大きい場合に（τが小さい場合に）過学習のおそれがある合わせ込みモデルを印加する割合が大きくなることを避けるためである。
【００９７】
次に、「学習実行部」１１２は、「学習実行処理」Ｓ３０６の処理を実行する。「学習実行処理」Ｓ３０６の詳細を、図７が示す。
【００９８】
図７を参照すると、「学習実行部」１１２は、まず「モデル印加制御処理」Ｓ６０１を実行する。
【００９９】
「モデル印加制御処理」Ｓ６０１は、「シミュレーションデータ」２０５を入力として強化学習のエピソードをカウントすることを含む。カウント値Ｔ（エピソード数Ｔ）は、Ｓ６０１が実行される都度にインクリメントされる。また、「モデル印加制御処理」Ｓ６０１は、エピソード数Ｔに応じて、ベースモデルのみ、又は、ベースモデルと重みτ１の合わせ込みモデルを出力することを含む。
【０１００】
具体的には、例えば、「モデル印加制御処理」Ｓ６０１は、エピソード数Ｔとα（１−τ）とを比較することを含む（αは、最終エピソード数Ｈ未満である）。「モデル印加制御処理」Ｓ６０１は、Ｔがα（１−τ）より小さい場合は、ベースモデルのみを出力することを含む。結果として、「ベースモデル使用処理」Ｓ６０２が実行されることになる。一方、「モデル印加制御処理」Ｓ６０１は、Ｔがα（１−τ）以上の場合は、ベースモデルと重みτ１の合わせ込みモデルを出力することを含む。結果として、「モデル印加処理」Ｓ６０３が実行されることになる。この段落における上述の例を図８が示す。上述のようにすると、信頼度τに基づき、合わせ込みのシミュレーション印加を実行することが可能である。これにより、過学習の影響が低い合わせ込みモデル（信頼度τが高い合わせこみモデル）で、早期に学習することが可能となる。加え、上述のようにすると、εグリーディーなどの探索方法では、信頼度τが低いときは後述の「強化学習処理」Ｓ６０５の探索が制限される。このため、過学習の影響を含んだシミュレーションで探索をせず、後述のように、過学習の影響による報酬関数の変動が識別できる。なお、Ｔとα（１−τ）とを比較する意義の一例は、次の通りである。すなわち、Ｔが、収束エピソード数αより大きく最終エピソード数Ｈより小さい場合、強化学習が十分行われたと考えられ故にエピソード数を増やし学習を継続しても結果があまり変わらなくなると考えられる。このため、α（１−τ）＜Ｔ＜αでは、学習する率は小さいものの学習が少し行われることが期待される。このような状況において合わせ込みモデルを印加することで、過学習の状況を学びすぎないようにすることが期待できる。このような合わせ込みモデルの印加方法は一例であり、エピソード数Ｔとα（１−τ）との比較結果に基づく印加方法以外の印加方法（例えば、エピソード数Ｔを別の値と比較する方法）が採用されてもよい。
【０１０１】
さて、Ｔがα（１−τ）より小さい場合は、「学習実行部」１１２は、「ベースモデル使用処理」Ｓ６０２、「強化学習処理」Ｓ６０４、及び、「総和報酬ＲＢ０の平均の算出処理」Ｓ６０６を実行する。
【０１０２】
「ベースモデル使用処理」Ｓ６０２は、「モデル印加制御処理」Ｓ６０１において出力されたベースモデルを入力する。
【０１０３】
「強化学習処理」Ｓ６０４は、ベースモデルと、エピソード数とを入力とし、学習を実行することを含む。
【０１０４】
具体的には、例えば、「強化学習処理」Ｓ６０４は、ベースモデルを用いた強化学習における探索を行い、また、「ＫＰＩ」２１０に格納されたＫＰＩを入力とし、学習の評価のために必要な報酬関数を生成することを含む。
【０１０５】
「強化学習処理」Ｓ６０４は、「施策評価設定処理」Ｓ４０３で定めた収束エピソード数α（「パラメータ」２０２に格納された収束エピソード数α）と「モデル印加制御処理」Ｓ６０１のエピソード数Ｔとを入力とし、エピソード数Ｔに応じて探索を制御することを含む。
【０１０６】
探索の制御方法は、ここではエピソードが増加するにつれて探索確率が減少するεグリーディーを例とするが、別の方法であってもよい。
【０１０７】
「強化学習処理」Ｓ６０４は、今回のエピソードの学習において得られた報酬の総和（総和報酬ＲＢ０）を計算し、今回の総和報酬ＲＢ０を「報酬情報」２１１に格納することを含む。
【０１０８】
「総和報酬ＲＢ０の平均の算出処理」Ｓ６０６は、「報酬情報」２１１に格納されたこれまでの総和報酬ＲＢ０と、「パラメータ」２０２に格納されているエピソード数Ｔ１（例えば、予め又はユーザにより指定されたエピソード数）を入力として、総和報酬ＲＢ０の平均を計算し（すなわち、これまでの総和報酬ＲＢ０の合計をエピソード数Ｔ１で除算し）、総和報酬ＲＢ０の平均を「データベース」１１６の「報酬情報」２１１に格納することを含む。総和報酬ＲＢ０の平均の取り方は、Ｔ１をバッチとして平均をとってもよいし、２エピソードごとに１エピソードをとりＴ１を用いて平均を取るなど、限定されない。
【０１０９】
さて、エピソード数Ｔがａ（１−τ）以上の場合、「学習実行部」１１２は、「モデル印加処理」Ｓ６０３、「強化学習処理」Ｓ６０５、「総和報酬ＲＢ１の平均の算出処理」Ｓ６０７、「過学習判断指標の算出処理」Ｓ６０８、「モデル採否判断処理」Ｓ６０９を実行する。
【０１１０】
「モデル印加処理」Ｓ６０３は、このときのエピソード数Ｔ（つまり、合わせ込みモデルの印加が初めてされるときのエピソード数）をＴｉｎとし、「パラメータ」２０２に格納する。
【０１１１】
「モデル印加処理」Ｓ６０３は、エピソード数Ｔｉｎと、「シミュレーションデータ」２０５に格納されているシミュレーション（ベースモデルと重みτ１の合わせ込みモデル）を入力とし、エピソード数Ｔｉｎに応じ、ベースモデルに、重みτ１の合わせ込みモデルを印加する。印加の大きさ（合わせ込みモデルの印加される割合）は、印加開始から一定値τ１のままでもよいし、１エピソードごとにτ１を加えるものであってもよい。印加の大きさは、ここでは上述のものを例として挙げたが、この例に限定しない。
【０１１２】
また、印加開始から一定値τ１を印加の大きさとして維持する場合、「学習実行部」１１２は、「モデル印加処理」Ｓ６０３においてすでにベースモデルに重みτ１の合わせ込みモデルを印加したならば、次の「モデル印加処理」Ｓ６０３では新たに合わせ込みモデルをベースモデルに印加しない。
【０１１３】
ただし、「学習実行部」１１２は、「モデル印加処理」Ｓ６０３では、重みτ１と信頼度τとの和が１を超えないように維持する。これは、重みτ１の合わせ込みモデルがベースモデルに印加された結果としてのモデル（以下、更新ベースモデル）の値が、合わせ込みで導出した際のシミュレーションの値を超えないようにするためのものである。
【０１１４】
「強化学習処理」Ｓ６０５は、更新ベースモデルと、エピソード数Ｔ１とを入力とし、学習を実行することを含む。
【０１１５】
具体的には、例えば、「強化学習処理」Ｓ６０５は、更新ベースモデルを用いた強化学習における探索を行い、また、「ＫＰＩ」２１０に格納されたＫＰＩを入力とし、学習の評価のために必要な報酬関数を生成することを含む。
【０１１６】
「強化学習処理」Ｓ６０５は、「施策評価設定処理」Ｓ４０３で定めた収束エピソード数α（「パラメータ」２０２に格納された収束エピソード数α）と「モデル印加制御処理」Ｓ６０１のエピソード数Ｔとを入力とし、エピソード数Ｔに応じて探索を制御する。
【０１１７】
探索の制御方法は、ここではエピソードが増加するにつれて探索確率が減少するεグリーディーを例とするが、別の方法であってもよい。
【０１１８】
「強化学習処理」Ｓ６０５は、今回のエピソードの学習において得られた報酬の総和（総和報酬ＲＢ１）を計算し、今回の総和報酬ＲＢ１を「報酬情報」２１１に格納することを含む。
【０１１９】
「強化学習処理」Ｓ６０５の学習回数ＫがＴ１になるまで、「モデル印加処理」Ｓ６０３と「強化学習処理」Ｓ６０５が繰り返えされる。「強化学習処理」Ｓ６０５の学習回数ＫがＴ１になった場合、「総和報酬ＲＢ１の平均の算出処理」Ｓ６０７が実行される。
【０１２０】
「総和報酬ＲＢ１の平均の算出処理」Ｓ６０７は、「報酬情報」２１１に格納されたこれまでの総和報酬ＲＢ１とＴ１とを基に総和報酬ＲＢ１の平均を計算することを含む。
【０１２１】
「過学習判断指標の算出処理」Ｓ６０８は、合わせ込みモデルが過学習をした（合わせ込みモデルが過学習されたモデルである）ことを意味する指標（条件）である過学習判断指標を決定することを含む。過学習判断指標は、例えば、下記（Ａ）〜（Ｄ）のうちの少なくとも一つを含んでよい。
（Ａ）「モデル印加処理」Ｓ６０３の以降に「報酬情報」２１１に格納された総和報酬ＲＢ１の平均が、Ｓ６０６で最後に計算された総和報酬ＲＢ０の平均よりも大きい。
（Ｂ）探索の確率で見積もられる回数よりも報酬関数の変動が多くある。なお、指標（Ｂ）の意義の一例は、次の通りである。強化学習は、学習がある程度進んだ場合でも、探索をする（これまでの知見（学習の結果）を使わずに新たな行動を取る）ことがあるため、その探索に失敗したときは報酬が大きく変動することがある。その探索が起きる確率に基づき見込まれる回数よりも多く報酬が変動することは、学習に用いるシミュレーション（モデル）が過学習をした状況のためである。故に、指標（Ｂ）は、過学習判断指標の一例となり得る。
（Ｃ）総和報酬の増減の幅が、重みτ１の合わせ込みモデルの印加前よりも大きい。指標（Ｃ）の一具体例は、次の通りである。エピソード数Ｔ＝５０００（Ｔ＞α（１−τ）＝４０００とする)の報酬と、エピソード数Ｔ＝５００１の報酬との差が、合わせ込みモデル印加前（Ｔ＜４０００）のＴ＝１０の報酬とＴ＝１１の報酬との差(例えば、合わせ込みモデル印加前ではこの報酬差が一番大きかったとする)よりも大きい。
（Ｄ）印加直前のベースモデル使用時の報酬変動幅ＤＲＢ０（総和報酬ＲＢ０の最大値と最小値の幅）を、更新ベースモデルの報酬変動幅ＤＲＢ１（総和報酬ＲＢ１の最大値と最小値の幅）が超えている。例えば、報酬変動幅ＤＲＢ１の最大値が報酬変動幅ＤＲＢ０の最大値を上回っている、報酬変動幅ＤＲＢ１の最小値が報酬変動幅ＤＲＢ０の最小値を下回っている、及び、報酬変動幅ＤＲＢ１が報酬変動幅ＤＲＢ０よりも大きい、のうちの少なくとも一つが該当する。報酬変動幅ＤＲＢ０及び報酬変動幅ＤＲＢ１は、「報酬情報」２１１に格納される。指標（Ｄ）の一具体例は、次の通りである。Ｔ＝４０００までの間に得られた報酬の最大値と最小値（例えば、Ｔ＝１０での報酬が最大、Ｔ＝１９３０での報酬が最小）との差が報酬変動幅ＤＲＢ０とされ、モデル印加後に得られた報酬の最大値と最小値（例えば、Ｔ＝５００１での報酬が最小、Ｔ＝６０００での報酬が最大）との差が報酬変動幅ＤＲＢ１とされ、ＤＲＢ０とＤＲＢ１とが比較される。
【０１２２】
加え、「過学習判断指標の算出処理」Ｓ６０８は、過学習判断指標が満たされている場合、合わせ込みモデルを過学習したモデルと判断することを含む。
【０１２３】
「モデル採否判断処理」Ｓ６０９は、「過学習判断指標の算出処理」Ｓ６０８において、合わせ込みモデルが過学習をしたと判断された場合、Ｆ＝１（Ｆは過学習判断パラメータ）とし、Ｆ＝１をデータベース１０９の「過学習パラメータ」２１２に格納することを含む。加え、この場合、「ＣＰＵ」１０１（例えば「学習実行部」１１２）は、「出力装置」１０７にＦ＝１であることをユーザに提示してもよい。合わせ込みモデルが過学習をしていないときはＦ＝０、合わせ込みモデルが過学習をしている場合はＦ＝１である。図４によれば、Ｆ＝１の場合、再び「印加モデル生成処理」Ｓ３０４が実行される。
【０１２４】
「モデル採否判断処理」Ｓ６０９において過学習の判断がない場合、又は、「総和報酬ＲＢ０の平均の算出処理」Ｓ６０６の後、「学習実行部」１１２は、「最終エピソード判断処理」Ｓ６１１を実行する。
【０１２５】
「最終エピソード判断処理」Ｓ６１１は、エピソード数が「パラメータ」２０２に格納されている最終エピソード数Ｈ以上のとき、強化学習の学習を終了させ、その際、Ｆ＝０とし、Ｆ＝０を「データベース」１１６の「過学習パラメータ」２１２に格納することを含む。
【０１２６】
「最終エピソード判断」Ｓ６１１において、エピソード数が最終エピソード数Ｈに到達していない場合、「モデル印加制御処理」Ｓ６０１が実行される。以上の説明から分かる通り、図７によれば、エピソード数Ｔが、α（１−τ）以上で、Ｓ６０３が行われ、その場合、エピソード数Ｔ１ごと（例えば１０エピソードごと）に、Ｓ６０７以降が行われる。その時の過学習判断指標によっては、Ｓ６０９を通じて学習が終了する。
【０１２７】
さて、図４によれば、Ｆ＝０が出力された場合、「評価部」１１３が、「評価処理」Ｓ３０７を実行する。「評価処理」Ｓ３０７の詳細は、図９が示す。
【０１２８】
図９を参照すると、「評価部」１１３は、「最適施策生成処理」Ｓ８０１を実行する。
【０１２９】
「最適施策生成処理」Ｓ８０１は、「パラメータ」２０２に格納されたエピソード数Ｔｉｎから学習終了までに「ＫＰＩ」２１０に格納されたＫＰＩを最も満たす施策を最適施策と決定し、その施策を「データベース」１１６の「施策」２０４に格納することを含む。
【０１３０】
加え、「最適施策生成処理」Ｓ８０１は、最適施策をもとに制御信号列を生成し、「データベース」１１６の「制御信号列」２０３に、生成した制御信号列を格納することを含む。
【０１３１】
加え、「最適施策生成処理」Ｓ８０１は、生成した制御信号列を用いたシミュレーション結果データ（例えば、搬送距離等の予想される測定値を含んだデータ）とモデル（制御信号列が投入されるシミュレーションとしてのモデル）とを「データベース」１１６の「シミュレーションデータ」２０５に格納することを含む。
【０１３２】
加え、「最適施策生成処理」Ｓ８０１は、「シミュレーションデータ」２０５に格納されたシミュレーション結果と、「信頼度」２０９に格納されている信頼度τと、合わせ込みモデルの割合（重み）τ１´と、「報酬情報」２１１に格納された報酬変動とのうちの少なくとも一つを示す情報を、「出力装置」１０７を介し、ユーザに提示し、ユーザから、「天井クレーン」００１（実機）での実際の動作確認を許可するか拒否するかを受け付けることを含む。
【０１３３】
ユーザから拒否の入力を、「入力装置」１０６を介し受け取った場合、図４によれば、「ＣＰＵ」１０１は、「学習実行処理」Ｓ３０６を再度実行する。なお、τ１´は、「信頼度」２０９に格納される。τ１´は、τ１と等価でもよいし、τ１がエピソード数に応じて加えられた場合はその和であってもよいが、τ１´は、τよりも小さいものとする。なお、本段落で言う「エピソード数」は、例えば、ｎエピソード（ｎは自然数）ごとにτ１が加えられる場合、ｎである。
【０１３４】
ユーザから許可の入力を、「入力装置」１０６を介し受け取った場合、図９を参照すると、次に「評価部」１１３は、「最適施策評価処理」Ｓ８０２を実行する。
【０１３５】
「最適施策評価処理」Ｓ８０２は、「最適施策生成処理」Ｓ８０１において「制御信号列」２０３に格納された制御信号列を入力とし、当該信号列に基づく「制御信号列」００９を、「通信装置」１０３を介し、「天井クレーン」００１の「通信可能な制御装置」００５に送信することを含む。
【０１３６】
「最適施策評価処理」Ｓ８０２は、「制御信号列」００９に従い制御された「天井クレーン」００１の「センサー」００６により取得された測定値を含む実世界データを、「通信装置」１０３を介し受信し、当該実世界データを「データベース」１１６の「実世界データ」２０６に格納することを含む。「実世界データ」２０６に格納される実世界データは、「シミュレーションデータ」２０５に格納されているシミュレーション結果データと同様の構成の実世界データでもよいし、受信した実世界データを生成可能な情報だけでもよい。実世界データは、「台車」００２の位置や速度などでよいが、この例に限らないでよい。
【０１３７】
次に「評価部」１１３は、「誤差算出処理」Ｓ８０３を実行する。
【０１３８】
「誤差算出処理」Ｓ８０３は、「最適施策生成処理」Ｓ８０１において「シミュレーションデータ」２０５に格納されたシミュレーション結果データと、「実世界データ」２０６に格納された実世界データとを入力とし、シミュレーション結果データと実世界データとを比較することにより誤差を導出し、「算出誤差」２０７にその誤差を格納することを含む。
【０１３９】
再び図４を参照する。次に「信頼度生成部」１１４は、「信頼度生成処理」Ｓ３０８を実行する。
【０１４０】
「信頼度生成処理」Ｓ３０８は、「算出誤差」２０７から誤差を入力し、「信頼度尺」２０８から信頼度尺を入力し、入力された誤差に対応する信頼度τ´を、当該信頼度尺を基に生成し、生成された信頼度τ´を「信頼度」２０９に格納する。
【０１４１】
次に「信頼度生成部」１１４は、「誤差確認処理」Ｓ３０９を実行する。
【０１４２】
「誤差確認処理」Ｓ３０９は、「パラメータ」２０２に格納された許容誤差情報（許容誤差範囲を示す情報）を入力とし、上述の算出された誤差が許容誤差範囲内であれば、「出力装置」１０７を介し、ユーザに、シミュレーションと実機との比較結果と、誤差と、信頼度と、試行終了との少なくとも一つを示す情報を提示することを含む。誤差が許容誤差未満であれば、「ＣＰＵ」１０１は、「信頼度シミュレーション生成モジュール」１０８の動作を停止させてよい。
【０１４３】
一方、誤差が許容誤差範囲外の場合、「評価部」１１３は、「信頼度評価処理」Ｓ３１０を実行する。
【０１４４】
「信頼度評価処理」Ｓ３１０は、τ´＞τのとき、τ´を新たな信頼度τとし、新たな信頼度τを「データベース」１１６の「信頼度」２０９に格納し、「信頼度／ベースモデル更新処理」Ｓ３１１に移行することを含む。
【０１４５】
一方、「信頼度評価処理」Ｓ３１０は、τ´≦τのとき、「出力装置」１０７を介してτ´≦τを出力すると共に、「信頼度／ベースモデル更新処理」Ｓ３１１に移行せずに「信頼度設定処理」Ｓ３０２に移行することを含む。
【０１４６】
「信頼度／ベースモデル更新処理」Ｓ３１１は、「信頼度／ベースモデル更新部」１１５が実行する。
【０１４７】
「信頼度／ベースモデル更新処理」Ｓ３１１は、「信頼度」２０９に格納されている信頼度τ（τ´）と、「シミュレーションデータ」２０５に格納されているベースモデル（例えば、合わせ込みモデルが印加されたベースモデル）とを入力とし、ベースモデルに信頼度τの割合だけ合わせ込みモデルを加えることでシミュレーション（つまり新たなベースモデル）を生成し、そのシミュレーションをベースモデルとして更新する。
【０１４８】
なお、「信頼度／ベースモデル更新処理」Ｓ３１１は、ベースモデルの更新の際に合わせ込みモデルを加える割合は、信頼度τをかけたものではなくてもよく、τの２乗や、１−τなど、上述の例に限らない。なお、合わせ込みの割合は、信頼度尺より大きくならないようにする。
【０１４９】
「信頼度／ベースモデル更新処理」Ｓ３１１は、ベースモデルを「シミュレーションデータ」２０５に格納することを含む。
【０１５０】
次に、「ＣＰＵ」１０１は、「印加モデル重み算出処理」Ｓ３０５に移行する。シミュレーションと実世界間の誤差が「パラメータ」２０２に格納されている許容誤差範囲内になるまでこの図４のフローが継続する。
【０１５１】
本実施例により、過学習を含む機械学習の合わせこみの影響を取り除いたシミュレーションを生成することが可能となり、このシミュレーションを強化学習で用いることで自動運転制御が実現する。具体的には、本実施例では、「運転制御部」１１８が、生成されたシミュレーションを基に見つかった最適な「制御信号列」００９を「天井クレーン」００１に送信することで「天井クレーン」００１の自動運転を制御する。
【０１５２】
また、本実施例によれば、「信頼度」２０９に格納された信頼度、シミュレーションと実機間の誤差、実機での実験を許可するか拒否するかの選択、及び、報酬変動幅のうちの少なくとも一つがユーザに提示される。
【実施例２】
【０１５３】
実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略又は簡略する。
【０１５４】
本発明は、「天井クレーン」００１に限らず、実世界とシミュレーション間の誤差を算出できる機械全般（例えば、大型産業機械のような産業機械全般）に適用できる。フィードバック制御の可否や、２値、離散値又は連続値の制御であるか否かに、本発明の適用範囲は依存しない。
【０１５５】
実施例２は、「天井クレーン」００１以外の機械が自動運転制御対象とされる一具体例である。以下、実施例１で説明した内容を用い、簡略的にフィードバック制御可能な大型産業機械の具体例を説明する。
【０１５６】
例えば、大型産業機械として、図１０のような、「アーム台車」９０１を考える。
【０１５７】
「アーム台車」９０１は、カメラなどの「センサー」９０２を持つ。「センサー」９０２は、「アーム台車」９０１に関する実際の測定値を取得できる。
【０１５８】
また、「アーム台車」９０１のシミュレーションは、生成できるものとする。
【０１５９】
「アーム台車」９０１は、「台車」９０３と、「台車」９０３に装着された「アーム」９０４と、「通信制御可能な制御装置」９０５とを有しており、制御により「アーム」９０４で物をつかむことができる。「通信制御可能な制御装置」９０５から「アーム台車」９０１の実世界データが送信される。「アーム台車」９０１の実世界データは、例えば、「台車」９０３の位置及び速度や、「アーム」９０４の位置などを含んでよいが、これに限らず、周囲の環境温度などの情報を含んでいてもよい。
【０１６０】
「台車」９０３は、「通信可能な制御装置」９０５により速度や位置が制御される。速度制御は、加速及び減速の２値制御であってもよいし、連続値（所定間隔の値）の制御（例えば、連続値のうちの所望の値を速度の値として指定する制御）であってもよいが、図１０の例では連続値の制御とする。
【０１６１】
「アーム」９０４は、「通信可能な制御装置」９０５により、「アーム」９０４の速度及び位置が連続値の制御に従い制御されてもよいが、ここでは、「アーム」９０４が「下がる」、「上がる」、「ものをつかむ」の制御であり、「アーム」９０４の動く領域は、１軸のものを考える。
【０１６２】
「アーム」９０４の動く領域は、「アームが伸びる」、「アームが回転」、「アームが平面場を動く」というように、３軸まで動かせる制御であってもよいが、ここでは簡単のため１軸とする。
【０１６３】
「通信可能な制御装置」９０５は、「天井クレーン」００１にある「通信可能な制御装置」００５と同様の性質を持ち、「アーム台車」９０１の「台車」９０３に搭載されていなくてもよい。
【０１６４】
ここで考える例は、図１１に示す例、すなわち、「アーム台車」９０１が、地点Ａを出発し、障害物Ｃを避ける経路Ｅを通って、地点Ｂに到着し、物体Ｄを「アーム」９０４でつかみ、物体Ｄをつかんだ状態で経路Ｅを通って地点Ａに戻るプロセスである。
【０１６５】
図１１のプロセス図は、簡単のため２次元平面で描写されている。
【０１６６】
「信頼度シミュレーション生成モジュール」１０８が、シミュレーションで上述のプロセスを強化学習で学習し、「アーム台車」９０１で同じプロセスを実行する。制御信号列、シミュレーション結果データ、及び実世界データは、例えば、単位時間毎に、「台車」９０３及び「アーム」９０４の位置と、台車速度と、「アーム」９０４の状態（例えば、「上げる」、「下げる」、「ものをつかむ」）とを示す値を含む。
【０１６７】
ここで、「アーム台車」９０１は、フィードバック制御が可能であってもよく、ここでは「天井クレーン」００１の例とは異なるフィードバック制御の場合を考える。
【０１６８】
「信頼度シミュレーション生成モジュール」１０８は、強化学習で探索した最適施策を「施策」２０４に格納し、その施策を用いたシミュレーション結果データをユーザに提示し、ユーザの許可を得た後、「通信装置」１０３を介し、「アーム台車」９０１の「通信可能な制御装置」９０５に制御信号列を送信する。
【０１６９】
「アーム台車」９０１は、「通信可能な制御装置」９０５で受信した制御信号列に従い制御を行い、単位時間ごとの測定値を含んだ実世界データを「システム」００８に送信する。「信頼度シミュレーション生成モジュール」１０８が、「アーム台車」９０１からの実世界データを、「データベース」１１６の「実世界データ」２０６に格納する。
【０１７０】
シミュレーション結果データと実世界データが異なる場合、「信頼度シミュレーション生成モジュール」１０８は、シミュレーション結果データと実世界データとを比較することにより誤差を算出し、算出された誤差を「算出誤差」２０７に格納し、当該誤差を基に信頼度を導出し、導出された信頼度を「信頼度」２０９に格納する。
【０１７１】
次に、「信頼度シミュレーション生成モジュール」１０８は、誤差を合わせこむ合わせ込みモデルを生成し、信頼できるベースモデルに当該合わせ込みモデルを印加し、合わせ込みモデルの過学習の影響を強化学習の過程で取り除く作業を行い、最適施策を導出し、導出された最適施策を「施策」２０４に格納する。
【０１７２】
次に、「信頼度シミュレーション生成モジュール」１０８は、最適施策のもと、「アーム台車」９０１に実際に図１１に例示のプロセスを実行させ、当該プロセスにおいて測定された測定値を含む実世界データを「通信装置」１０３を介して受信し、当該実世界データを「データベース」１１６の「実世界データ」２０６に格納する。
【０１７３】
次に、「信頼度シミュレーション生成モジュール」１０８は、格納された実世界データと、「アーム台車」９０１の制御のシミュレーション結果データとを比較することにより誤差を算出し、参集された誤差を「算出誤差」２０７に格納し、当該誤差に基づき信頼度を導出し、導出された信頼度を「信頼度」２０９に格納する。
【０１７４】
次に、信頼度が増加した場合は、「信頼度シミュレーション生成モジュール」１０８は、合わせ込みモデルを含むベースモデルを更新し、更新したベースモデルを信頼モデルとし、当該信頼モデルを「シミュレーションデータ」２０６に格納する。
【０１７５】
一方、信頼度が減少した場合は、「信頼度シミュレーション生成モジュール」１０８は、再度合わせ込みモデルを生成する。
【０１７６】
上述のように、「アーム台車」９０１が自動運転制御の対象であっても信頼できるシミュレーションを生成することが可能である。
【０１７７】
以上の実施例１及び２の説明を、例えば下記のように総括することができる。なお、以下の総括は、上述の説明に無い事項を含んでもよい。
【０１７８】
機械（例えば「天井クレーン」００１又は「アーム台車」９０１）の自動運転制御システム（例えば「システム」００８）が、問題設定部と、学習実行部とを備える。問題設定部が、数学的に記述される関数に基づき機械に入力される制御信号列と当該制御信号列に従い制御された機械から出力されるデータとの関係を示す第１のモデル（例えばベースモデル）を設定する。学習実行部は、機械の自動運転制御を学習することを含む学習処理を実行する。学習実行部は、学習処理において、第１の条件（例えば、Ｔ≧α（１−τ））が満たされるまでは第１のモデルを用いて学習を実行し、第１の条件が満たされた以降、過学習を意味する第２の条件（例えば過学習判断指標）が満たされるか当該第２の条件が満たされること無しに学習が終了するまでは、第１のモデルを１回以上変化させた後のモデルである第２のモデル（例えば更新ベースモデル）を用いて学習を実行する。
【０１７９】
これにより、数学的に記述される関数による合わせ込みの過学習の影響を取り除くことにより実機とシミュレーションとの誤差を削減し、以って、機械の自動運転制御を最適化できる。具体的には、例えば、実機とシミュレーションとの誤差を削減することで、機械の自動運転制御を最適化するシミュレーションの環境の変化による報酬の乱高下する状況を排除できる。報酬が乱高下した場合は、合わせ込んだ機械学習のモデルは過学習していることがわかるため、報酬が乱高下しないような合わせ込みモデルを生成することで過学習の影響を取り除き、実機との誤差を削減することが可能となる。
【０１８０】
なお、自動運転制御システム（以下、システム）は、インターフェース装置、記憶装置及びプロセッサを備えた一つ以上の計算機であってもよいし、クラウド基盤のような計算リソースプール（一つ以上の計算機）上に実現されたシステムであってもよい。
【０１８１】
システムは、運転制御部を備えてもよい。運転制御部は、学習処理の結果に従う制御信号列を機械に入力することで機械の自動運転を制御してよい。
【０１８２】
第２のモデルは、第１のモデルとは異なる数学的に記述される第３のモデル（例えば、合わせ込みモデル）のうち所定割合の第３のモデルが第１のモデルに印加された結果としてのモデルでよい。これにより、第３のモデルが過学習されたモデルであっても、印加される割合によって、過学習の影響を削減できる。
【０１８３】
システムが、信頼度設定部を備えてよい。信頼度設定部は、第１の制御信号列が入力された第１のモデルから出力された第１のシミュレーション結果データと、第１の制御信号列が入力された機械から出力された実世界データとの第１の誤差に基づく第１の信頼度（例えばτ）を算出してよい。印加される第３のモデルの割合は、第１の信頼度よりも小さな割合でよい。これにより、第３のモデルの割合を適切にすることが期待できる。例えば、信頼度設定部は、「天井クレーン」００１のような機械の自動運転制御における最適搬送制御信号列を見つけるため、強化学習に用いるシミュレーションでは、物理モデルなどのベースモデルに、機械学習の合わせ込みモデルを、信頼度τよりも小さいτ１の重みで合わせ込む。
【０１８４】
第１の条件は、第１の信頼度と学習回数（例えばエピソード数Ｔ）とに基づく条件でよい。これにより、第２のモデルを使用するタイミングが適切となることが期待できる。
【０１８５】
システムは、印加モデル生成部を備えてよい。印加モデル生成部は、第１の誤差が許容誤差範囲に収まるよう第１のモデルが合せ込まれた第３のモデルを生成してよい。
【０１８６】
学習実行部は、第２の条件が満たされた場合、学習処理を終了してよい。
【０１８７】
信頼度設定部は、第１の誤差及び第１の信頼度のうちの少なくとも一つを表示してよい。例えば、信頼度設定部は、第１の誤差及び第１の信頼度のうちの少なくとも一つと、学習処理の許可を受け付けるＵＩ（User Interface）とを有するＵＩ情報を表示してよい。当該表示に対して学習処理の許可が受け付けられた場合に、学習実行部が学習処理を実行してよい。
【０１８８】
第１のモデルを用いた学習と、第２のモデルを用いた学習とのいずれの学習も、強化学習でよい。第２の条件は、下記のうちの少なくとも一つでよい。
・第２のモデルを用いた強化学習において得られた報酬に従う値が、第１のモデルを用いた強化学習において得られた報酬に従う値より大きい。
・第２のモデルを用いた強化学習において得られた報酬の変動幅が、第１のモデルを用いた強化学習において得られた報酬の変動幅を超えている。
【０１８９】
システムが、信頼度／第１モデル更新処理（例えば、「信頼度／ベースモデル更新処理」Ｓ３１１）を実行する信頼度／第１モデル更新部（例えば、「信頼度／ベースモデル更新部」１１５）を備えてよい。信頼度／第１モデル更新処理は、第２の条件が満たされること無しに学習処理が終了した場合の第２のモデルに第２の制御信号列が入力されることにより第２のモデルから出力された第２のシミュレーション結果データと、第２の制御信号列が入力された機械から出力された実世界データとの第２の誤差に基づく第２の信頼度が、第１の信頼度を超えている場合、第２の信頼度を新たな第１の信頼度に更新することと、当該新たな第１の信頼度に基づく割合の第３のモデルが第１のモデルに印加された結果としてのモデルを新たな第１のモデルに更新することとを含んでよい。信頼度／第１モデル更新処理毎の学習処理では、新たな第１のモデルが用いられてよい。
【０１９０】
システムが、評価部を備えてよい。評価部は、第２の条件が満たされること無しに学習処理が終了した場合の第２のモデルに第２の制御信号列が入力されることにより第２のモデルから出力されたシミュレーション結果データと、第１の信頼度とのうちの少なくとも一つを表示してよい。評価部は、当該表示に対して機械の実際の動作確認の許可を受け付けた場合に、第２の制御信号列を機械に入力してよい。
【０１９１】
機械は、「天井クレーン」００１や「アーム台車」９０１のような産業機械であってよい。実機が産業機械であると実験の負担が一層大きい可能性があるので、自動運転制御対象の機械が産業機械であると本発明が一層有用であることが期待される。
【０１９２】
以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【符号の説明】
【０１９３】
００１…天井クレーン、００８…システム（自動運転制御システム）
【図１】
2020177416.tif 000003
【図２】
2020177416.tif 000004
【図３】
2020177416.tif 000005
【図４】
2020177416.tif 000006
【図５】
2020177416.tif 000007
【図６】
2020177416.tif 000008
【図７】
2020177416.tif 000009
【図８】
2020177416.tif 000010
【図９】
2020177416.tif 000011
【図１０】
2020177416.tif 000012
【図１１】
2020177416.tif 000013