(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024179121
(43)【公開日】2024-12-26
(54)【発明の名称】学習装置、及び学習方法
(51)【国際特許分類】
G06N 3/045 20230101AFI20241219BHJP
G06N 3/088 20230101ALI20241219BHJP
G06N 3/092 20230101ALI20241219BHJP
G06N 3/09 20230101ALI20241219BHJP
G06F 18/2413 20230101ALI20241219BHJP
G06F 9/455 20180101ALI20241219BHJP
G06N 3/0985 20230101ALI20241219BHJP
B25J 13/00 20060101ALN20241219BHJP
G08G 1/127 20060101ALN20241219BHJP
【FI】
G06N3/045
G06N3/088
G06N3/092
G06N3/09
G06F18/2413
G06F9/455
G06N3/0985
B25J13/00 Z
G08G1/127 A
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023097693
(22)【出願日】2023-06-14
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】但馬 慶行
(72)【発明者】
【氏名】望月 義則
【テーマコード(参考)】
3C707
5H181
【Fターム(参考)】
3C707BS12
3C707DS01
3C707FS01
3C707JS03
3C707JU03
3C707KS16
3C707KS22
3C707KS30
3C707KS38
3C707LS20
3C707LV02
3C707LV14
3C707LW12
5H181AA16
5H181BB04
5H181BB05
5H181BB20
5H181CC04
5H181EE02
5H181MA22
(57)【要約】
【課題】数値データやカテゴリカルデータ等の異種の形式のデータが混在した表形式データに対して、種々のインスタンスの生成戦略を許容可能な自己教師あり学習を実行する。
【解決手段】学習装置は、表形式データに対して機械学習モデルを構築するための学習装置であって、所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置と、を備え、前記演算装置が、前記表形式データのインスタンスのペアの近傍関係を定義する近傍定義情報に基づいた自己教師あり学習による上流タスクに関する上流モデルを生成する上流タスク学習部と、前記演算装置が、教師あり学習、強化学習、又は教師なし学習により下流タスクに関する下流モデルを生成する下流タスク学習部と、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
表形式データに対して機械学習モデルを構築するための学習装置であって、
所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置と、を備え、
前記演算装置が、前記表形式データのインスタンスのペアの近傍関係を定義する近傍定義情報に基づいた自己教師あり学習による上流タスクに関する上流モデルを生成する上流タスク学習部と、
前記演算装置が、教師あり学習、強化学習、又は教師なし学習により下流タスクに関する下流モデルを生成する下流タスク学習部と、
を有することを特徴とする学習装置。
【請求項2】
請求項1に記載の学習装置であって、
前記表形式データは、前記インスタンスの日時を表す少なくとも1つのデータ項目を有し、
前記近傍定義情報には、時間軸方向に関する前記近傍関係が定義され、
前記上流タスク学習部は、前記近傍定義情報に基づき、前記自己教師あり学習に用いる前記インスタンスを選択、又は生成する
ことを特徴とする学習装置。
【請求項3】
請求項1に記載の学習装置であって、
前記表形式データは、前記インスタンスの位置を表す少なくとも1つのカラムを有し、
前記近傍定義情報には、物理的距離に関する前記近傍関係が定義され、
前記上流タスク学習部は、前記近傍定義情報に基づき、前記自己教師あり学習に用いる前記インスタンスを選択、又は生成する
ことを特徴とする学習装置。
【請求項4】
請求項1に記載の学習装置であって、
前記演算装置が、前記表形式データをシミュレーションによって生成するシミュレーション実行部、を有し、
前記上流タスク学習部は、観測された前記表形式データに加えて、前記シミュレーション実行部によって生成された前記表形式データを前記自己教師あり学習に用いる
ことを特徴とする学習装置。
【請求項5】
請求項4に記載の学習装置であって、
前記表形式データは、前記インスタンスの日時を表す少なくとも1つのカラムを有し、
前記シミュレーション実行部は、あるインスタンスを初期状態としてシミュレーションを行うことにより前記表形式データを生成する
ことを特徴とする学習装置。
【請求項6】
請求項1に記載の学習装置であって、
前記上流タスクに用いる機械学習モデルは、前記インスタンスを表現に変換するエンコーダと、前記エンコーダの出力を別の表現に変換する1又は複数のプレディクタと、を有し、
前記機械学習モデルの前記自己教師あり学習は、前記自己教師あり学習に用いる前記インスタンスのペアに関して、一方の前記インスタンスを前記エンコーダに入力して得られた表現を前記プレディクタに入力して得られた別の表現が、他方の前記インスタンスを前記エンコーダに入力して得られた表現に近づくように前記エンコーダ、及び前記プレディクタのパラメータを学習するものであり、
前記近傍定義情報には、前記プレディクタ、及び前記インスタンスのペアの選択の方法が定義されている
ことを特徴とする学習装置。
【請求項7】
請求項1に記載の学習装置であって、
前記近傍定義情報には、前記自己教師あり学習に用いるインスタンスの生成に関わるハイパーパラメータの範囲が指定されており、
前記演算装置が、前記近傍定義情報に指定されている前記ハイパーパラメータの範囲に従って前記ハイパーパラメータを探索する全体タスク管理部、を有する
ことを特徴とする学習装置。
【請求項8】
請求項2に記載の学習装置であって、
前記表形式データは、複数台の機械が同種の作業指示に従って作業を行う際の観測データであり、
前記上流タスク学習部は、前記自己教師あり学習に用いる前記インスタンスのペアを前記同種の作業指示を受けてからの相対時刻の距離に基づいて選択又は生成する
ことを特徴とする学習装置。
【請求項9】
請求項3に記載の学習装置であって、
前記表形式データは、予め定められた路線を移動する移動体が前記路線におけるストップに停車しながら目標まで移動する際の観測データであり、
前記上流タスク学習部は、前記自己教師あり学習に用いる前記インスタンスのペアを前記路線における前記ストップ間の距離に基づいて選択又は生成する
ことを特徴とする学習装置。
【請求項10】
請求項9に記載の学習装置であって、
前記ストップの間の距離は、前記移動体の運転種別に基づいて算出される
ことを特徴とする学習装置。
【請求項11】
表形式データに対して機械学習モデルを構築するための学習装置による学習方法であって、
前記学習装置は、所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置と、を有し、
前記学習方法は、
前記演算装置が、前記表形式データのインスタンスのペアの近傍関係を定義する近傍定義情報に基づいた自己教師あり学習による上流タスクに関する上流モデルを生成する上流タスク学習ステップと、
前記演算装置が、教師あり学習、強化学習、又は教師なし学習により下流タスクに関する下流モデルを生成する下流タスク学習ステップと、
を含むことを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、及び学習方法に関する。
【背景技術】
【0002】
昨今IoTの発展に伴い、種々の分野で人工知能、特に機械学習を活用した応用が拡がりつつある。例えば、製造業の分野では、ロボットの活用がこれまで以上に期待されており、強化学習を用いて動作計画を自動的に獲得させるような試みがなされている。また、例えば、交通分野では、例えばバスの遅延時間を教師あり学習を用いて予測するようなサービスも提供されつつある。
【0003】
一方、高精度な機械学習モデルを構築するためには、膨大な学習用データが必要となることが多い。しかしながら、実際には、実機環境でのデータ収集の困難さ、ラベル付けの困難さ等の理由から十分な量の学習用データを集められないことがある。
【0004】
このような状況の対策として、事前学習の一種である自己教師あり学習が用いられる。自己教師あり学習は、入力データから教師データを自動生成することで実機での試行錯誤やラベル付けなしに有用な表現を事前学習する手法である。そのシンプルな方法の1つは、深層学習を対象として、類似性の高い2つのインスタンスを同じニューラルネットワークに入力し得られる表現(特徴量)を近づけるように学習する方法である。しばしば類似性の高い2つのインスタンスは、データセットからサンプリングされたインスタンスに異なるデータ拡張を適用して作成される。このアプローチは、自己教師あり表現学習とも呼ばれ、良い表現が得られるか否かについては、入力する類似性の高い2つのインスタンスの生成戦略に依存する。
【0005】
例えば、特許文献1には、処理対象のデータを所定の形式のデータに変換する主変換処理の内容を自己教師あり学習の実行により更新する自己学習部と、前記主変換処理の処理対象のデータを音響時系列に基づき生成するデータ拡張処理、を実行するデータ拡張部と、を備え、前記データ拡張部は、前記音響時系列の一部の時系列である部分時系列を切り出す音響時系列切り出し処理と、部分時系列を複製する複製処理と、部分時系列の一方と他方とを所定の規則にしたがって変換する変換処理と、を行い、前記自己学習部は、前記変換処理によって得られた結果に基づく自己教師あり学習により、前記主変換処理の内容を更新する、学習装置が記載されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に記載の技術によれば、時間間隔の離れた類似性を考慮した自己教師あり学習が可能となる。しかしながら、特許文献1に記載の技術では、発明者等の知見に基づく音響時系列向けの変換処理が組み込まれたものであって、数値データやカテゴリカルデータ等の異種の形式のデータが混在した表形式データを対象としていない。
【0008】
このため、例えば、路線バスの停留所(以下、ストップと称する)ごとに得られるデータに関して、同じバスの異なるストップ(IDや名称等による離散値で表される)でのインスタンスに対して共通の表現を得ることや、異なるバスの同じストップに対して共通の表現を得ることは困難である。
【0009】
また、前述したように、良い表現が得られるか否かについては、入力する類似性の高い2つのインスタンスの生成戦略に依存することになるが、特許文献1に記載の技術では、表現を近づけるインスタンスを生成する戦略自体をユーザが試行錯誤的に探索したり、計算機によって機械的に探索したりすることが考慮されていない。
【0010】
本発明は前述した課題を鑑みてなされたものであって、数値データやカテゴリカルデータ等の異種の形式のデータが混在した表形式データに対して、種々のインスタンスの生成戦略を許容可能な自己教師あり学習を実行できるようにすることを目的とする。
【課題を解決するための手段】
【0011】
本願は、前述の課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下の通りである。
【0012】
前述の課題を解決するため、本発明の一態様に係る学習装置は、表形式データに対して機械学習モデルを構築するための学習装置であって、所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置と、を備え、前記演算装置が、前記表形式データのインスタンスのペアの近傍関係を定義する近傍定義情報に基づいた自己教師あり学習による上流タスクに関する上流モデルを生成する上流タスク学習部と、前記演算装置が、教師あり学習、強化学習、又は教師なし学習により下流タスクに関する下流モデルを生成する下流タスク学習部と、を有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、数値データやカテゴリカルデータ等の異種の形式のデータが混在した表形式データに対して、種々のインスタンスの生成戦略を許容可能な自己教師あり学習を実行できる。これにより、時間に関する近傍(類似性)だけでなく位置に関する近傍(類似性)等を考慮した表現を獲得することが可能となる。
【0014】
前述した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、本発明の第1の実施形態に係るロボット管理システムの構成例を示す図である。
【
図2】
図2は、一般的なコンピュータの構成例を示す図である。
【
図3】
図3は、ロボット状態データの一例を示す図である。
【
図4】
図4は、直交系位置速度データの一例を示す図である。
【
図5】
図5は、近傍定義情報の一例を示す図である。
【
図6】
図6は、自己教師あり学習用モデルの構造の一例を示す図である。
【
図7】
図7は、強化学習用アクタモデルの構造の一例を示す図である。
【
図8】
図8は、強化学習用クリティックモデルの構造の一例を示す図である。
【
図9】
図9は、学習処理の一例を示すフローチャートである。
【
図10】
図10は、上流タスク学習処理の一例を示すフローチャートである。
【
図11】
図11は、下流タスク学習処理の一例を示すフローチャートである。
【
図12】
図12は、上位タスク学習ロス推移確認画面の表示例を示す図である。
【
図13】
図13は、パラメータ表示画面の表示例を示す図である。
【
図14】
図14は、本発明の第2の実施形態に係るバス運行管理システムの構成例を示す図である。
【
図16】
図16は、ストップ隣接データの一例を示す図である。
【
図18】
図18は、自己教師あり学習用モデルの構造の一例を示す図である。
【
図19】
図19は、遅延時間予測モデルの構造の一例を示す図である。
【
図20】
図20は、下流タスク学習処理の一例を示すフローチャートである。
【
図21】
図21は、予測遅延時間表示画面の表示例を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の複数の実施形態について図面に基づいて説明する。なお、各実施形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合、及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須ではない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除しない。同様に、以下の実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合及び原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似又は類似するもの等を含む。
【0017】
<本発明の第1の実施形態に係るロボット管理システム1>
図1は、本発明の第1の実施形態に係るロボット管理システム1の構成例を示している。
【0018】
<概略>
ロボット管理システム1は、工場内のロボットアームの動作計画(モーションプランニング、軌道や把持の計画)に関する学習システム10を含む。まず、学習システム10を含むロボット管理システム1の全体の処理の流れの概略を説明する。一般的に、ロボットアーム40はアームに応じたシミュレータが用意され、ランダムサンプリングを使った計画エンジン(以下、既存モーションプランナと称する)を使ってその動作を計画することができる。ただし、ロボットアーム40を据え付けた時の傾き、ロボットアーム40の個体差、把持したワークの重量に伴うたわみ等に起因して、シミュレータと実機との間には少なからず乖離が生じる。
【0019】
学習システム10は、実機から得られるデータと強化学習を用いて、前記乖離をより低減した動作計画機能を構築するものである。その際、既存モーションプランナを使って得られたデータやシミュレーションデータを活用した自己教師あり学習によって事前学習することで、強化学習のための実機での試行錯誤回数を削減するようになされている。
【0020】
自己教師あり学習の準備として、各ロボットアーム40とロボットアーム制御装置30の計画部31に搭載された既存モーションプランナを使い、自己教師あり学習のためのロボットの状態の時系列(ロボット状態データ)を収集しておく。複数台のロボットアーム40は、非同期に同種の作業を実行しているものと仮定する。
【0021】
<構成例>
次に、ロボット管理システム1の構成例について説明する。ロボット管理システム1は、学習システム10、ロボットアーム制御装置30、及び複数台のロボットアーム40を備える。
【0022】
学習システム10、及びロボットアーム制御装置30は、それぞれ情報系ネットワークNW1に接続されており、情報系ネットワークNW1を介して各種のデータ、情報を相互に通信する。ロボットアーム制御装置30、及びロボットアーム40は、制御系ネットワークNW2に接続されており、ロボットアーム制御装置30は、制御系ネットワークNW2を介して制御信号をロボットアーム40に送信し、ロボットアーム40は、制御系ネットワークNW2を介して状態データをロボットアーム制御装置30に送信する。
【0023】
なお、ロボット管理システム1は、クローズな環境で構築することを想定するが、情報系ネットワークNW1、及び制御系ネットワークNW2の経路としてオープンな環境のWWW(World Wide Web)ネットワークを含んでいてもよい。また、リアルタイム性が担保できる場合は、情報系ネットワークNW1と制御系ネットワークNW2とを同一のネットワークとしてもよい。
【0024】
学習システム10は、学習装置11、及び操作端末12を有する。ただし、学習装置11と操作端末12とは一体化してもよい。
【0025】
学習装置11は、全体タスク管理部111、上流タスク学習部112、シミュレーション実行部113、下流タスク学習部114、表示管理部115、及び学習用データ管理部116の各機能ブロックを有する。学習装置11は、パーソナルコンピュータ、サーバコンピュータ等の一般的なコンピュータによって実現される。
【0026】
図2は、学習装置11を実現する一般的なコンピュータ100の構成例を示している。コンピュータ100は、CPU(Central Processing Unit)等のプロセッサ101、DRAM(Dynamic Random Access Memory)等のメモリ102、HDD(Hard Disk Drive)やSSD(Solid State Drive)等のストレージ103、キーボードやマウス、メディアドライブ等の入力デバイス104、ディスプレイ等の出力デバイス105、及びEthernet(登録商標)カードやWi-Fi(登録商標)アダプタ等の通信モジュール106を備える。
【0027】
学習装置11の全体タスク管理部111、上流タスク学習部112、シミュレーション実行部113、下流タスク学習部114、表示管理部115、及び学習用データ管理部116は、コンピュータ100のプロセッサ101がメモリ102に格納されたプログラム107を実行することにより実現される。
【0028】
なお、プロセッサ101が実行するプログラム107は、予めメモリ102に格納しておいてもよいし、リムーバブルメディア(CD-ROM、フラッシュメモリ等)又はインターネット等のネットワークを介して所定のサーバ等からダウンロードし、非一時的記憶媒体であるストレージ103に格納しておき、必要な時に、ストレージ103から読み出すようにしてもよい。このため、学習装置11(コンピュータ100)は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0029】
また、学習装置11は、物理的に1つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、学習装置11の機能を実現する複数のプログラムは、各々が別個の物理的又は論理的計算機上で動作するものでも、複数が組み合わされて1つの物理的又は論理的計算機上で動作するものでもよい。
【0030】
図1に戻る。全体タスク管理部111は、学習装置11の全体を統括する。
【0031】
上流タスク学習部112は、全体タスク管理部111からの制御に従い、ロボット状態データ300(
図3)を用いた自己教師あり学習を実行する。上流タスク学習部112による自己教師あり学習においては、例えば、「SimSiam」アーキテクチャを採用したネットワークを採用してストップグラジエントによる表現の崩壊(collapse)の回避を行う。このネットワークにはロボット状態データ300から得られる位置、速度を、ある表現(特徴量)に変換する状態エンコーダと、ある特徴量から別の特徴量を予測するプレディクタ(プロジェクションヘッド)を含む。
【0032】
具体的には、上流タスク学習部112は、予め定義されて学習用データ管理部116により管理されている近傍定義情報500(
図5)に従い、ロボット状態データ300のインスタンスのペア(第1インスタンス、及び第2インスタンス)を用意し、第1インスタンスから得られる表現(特徴量)から第2インスタンスの表現を予測するようなタスクを学習する(詳細後述)。
【0033】
シミュレーション実行部113は、全体タスク管理部111からの制御に従い、あるロボット状態データの第1インスタンスを初期状態として、将来又は過去のロボットの状態のシミュレーションを実行する。このシミュレーション結果は、第3インスタンスとして、同様に第1インスタンスから得られる表現(特徴量)から第3インスタンスの表現を予測させる際に用いられる。あるいは、第3インスタンスの表現から第1インスタンスの表現を予測させるようなタスクを学習する際に用いられる。
【0034】
なお、自己教師あり学習に「SimSiam」を用いる代わりに、「BYOL」や負例が必要となる「SimCLR」等の他の手法を用いてもよい。負例が必要な場合は、例えばランダムに選んだインスタンスを用いる等で対応できる。また、本実施形態では、「SimSiam」が採用しているように、プレディクタによる非対象構造とストップグラジエントによって得られる表現の崩壊を回避するものとしたが、「BYOL」のようにエンコーダの時間平均を活用したり、白色化による無相関化など別の崩壊を回避する方法を用いたりしてもよい。
【0035】
また、用意するインスタンスのペアに時間や位置の観点で方向が存在し、その方向を加味したプレディクタを設定するため、本実施形態では、「SimSiam」のように、2つのデータ拡張されたインスタンスの対象な目的関数を最適化するのではなく、非対象な目的関数を最適化するようにした。これは一例であって、得られたサンプルに対して対象な目的関数を最適化してもよい。また、本実施形態では、表現を近づけるインスタンスのペアをサンプリング又はシミュレーションによって得るものとしたが、一般的に用いられるデータ拡張手法を用いても構わないし、両方を組み合わせてもかまわない。
【0036】
下流タスク学習部114は、全体タスク管理部111からの制御に従い、強化学習を用いて新たな計画エンジン(RLモーションプランナ)を学習する。下流タスク学習部114による強化学習には、アクタモデル、及びクリティックモデルを用いる。アクタモデルは、位置、速度、把持状態、目標状態を入力として、行動を出力する。クリティックモデルは、位置、速度、把持状態、目標状態、行動を入力として、行動の良さを表すQ値を出力する。強化学習には、DDPG(Deep Deterministic Policy Gradient)を用いる。アクタモデル、及びクリティックモデル双方のニューラルネットワークは、自己教師あり学習で学習した状態エンコーダを内包する。すなわち、上流タスクである自己教師あり学習で学習済みの位置、速度の表現を用いる。なお、本実施形態では、複数のロボットアーム40それぞれで別々に強化学習を行うものとするが、学習序盤では、複数のロボットアーム40を並列で動作させ、学習結果を適宜共有するなどしてもよい。その場合でも、学習終盤は据え付けや個体の差を考慮して個別に学習させる。
【0037】
表示管理部115は、操作端末12に対してUI(User Interface)画面を表示させる。
【0038】
学習用データ管理部116は、自己教師あり学習のためのロボット状態データ、上流タスク、及び下流タスクの学習中のロス関数の推移、予測遅延時間と実際の遅延時間の差等の性能指標、事前学習済みモデル、得られた回帰モデル等を、学習装置11を実現するコンピュータ100のストレージ103等に適宜格納して管理する。
【0039】
操作端末12は、学習装置11と同様、一般的なコンピュータ100(
図2)によって実現される。操作端末12は、UI画面を表示し、UI画面に対するユーザ121からの入力を受け付ける。
【0040】
ロボットアーム制御装置30は、学習装置11と同様、一般的なコンピュータ100(
図2)によって実現される。ロボットアーム制御装置30は、計画部31、データ収集部32、及び制御用データ管理部33の各機能ブロックを有する。ロボットアーム制御装置30の各機能ブロックは、コンピュータ100のプロセッサ101がメモリ102に格納されたプログラム107を実行することにより実現される。
【0041】
計画部31は、内蔵する既存モーションプランナを使い、自己教師あり学習のためのロボット状態データ300を収集するためのロボットアーム40の動作計画を作成する。具体的には、目標状態、すなわち、直交座標系上のアーム先端位置と把持状態をランダムに定めて既存動作計画を作成し、逆動力学計算を行った上で関節角を制御して、目標状態にロボットアーム40を目標状態に遷移させるための動作計画を作成する。
【0042】
データ収集部32は、動作計画に従って動作するロボットアーム40からロボット状態データ300を収集する。制御用データ管理部33は、収集されたロボット状態データ300を、ロボットアーム制御装置30を実現するコンピュータ100のストレージ103等に格納して管理する。
【0043】
ロボットアーム40は、例えば、6自由度のアームの先端にグリッパを搭載したものを採用する。ただし、アームの自由度は6以上であってもよいし、アームの先端には、例えば、吸着ハンドを搭載してもよい。
【0044】
<各種データのデータ構造>
次に、
図3は、ロボットアーム制御装置30の制御用データ管理部33が管理するロボット状態データ300のデータ構造の一例を示している。
【0045】
ロボット状態データ300には、ロボットアーム40において当該データが観測された日時、ロボットアーム40を識別するためのロボットID、ロボットアーム40の関節1~関節6の角度、アーム先端に搭載されたグリッパの閉開状態を表す把持状態等が対応付けて記録されている。なお、本実施形態においてロボット状態データ300の観測は周期的に行われる。同図の場合、観測周期は1秒間である。
【0046】
次に、
図4は、全体タスク管理部111がロボット状態データ300に基づいて生成する直交位置速度データ400のデータ構造の一例を示している。直交位置速度データ400は、本発明の表形式データに相当する。表形式データは、複数の数値データやカテゴリカルデータ等のデータから成るタプルで構成されるインスタンスの集合である。
【0047】
直交位置速度データ400には、当該データを観測した標準化時刻(時系列順序)、ロボットアーム40を識別するためのロボットID、アーム先端のグリッパの位置(直交座標系)、アーム先端のグリッパの速度(直交座標系)、グリッパの閉開状態を表す把持状態等が対応付けて記録されている。アーム先端のグリッパの位置、及び速度(直交座標系)は、ロボットアーム40の関節1~関節6の角度(関節座標系)に基づいて算出される。なお、アーム先端に搭載されたハンドの種類に応じ、把持状態には、開閉だけではなく、向きを表す情報を記録してもよい。
【0048】
次に、
図5は、学習用データ管理部116により管理されている、予め定義された近傍定義情報500の一例を示している。
【0049】
近傍定義情報500は、自己教師あり学習の際に用いるインスタンスのペアをサンプリングするための近傍と、その近傍に対するプレディクタの割り当てが記載されたドメインスペシフィック言語で書かれたスクリプトである。
【0050】
近傍定義情報500には、近傍の定義に先立って、近傍の定義に用いるパラメータや変数が"parameter"や"variable"として予め宣言されている。パラメータでは、範囲を設定できる。これは、後述の処理で自動的にハイパーパラメータチューニングするために用いられる。変数は、データセットからのサンプリングと、学習装置11のシミュレーション実行部113を用いたシミュレーションデータを利用できる。
【0051】
図5の例では、4種類の近傍N1,N2,N3,N4が定義されている。ロボットアームは連続的に動作するため、時間的に近いロボットアームは近しい背景(すなわち汎化性能の向上に寄与する好ましい表現)を共有していると考えられる。そこで、近傍N1、及び近傍N2は、同じロボットアーム40の時間的に近いインスタンスを近傍と定義している。ただし、近傍N1と近傍N2とは、時間軸方向が異なり、近傍N1は時間的に前向きのインスタンスを近傍と定義しており、近傍N2は時間的に後向きのインスタンスを近傍と定義している。
【0052】
また、シミュレーションはロボットアームの近未来を高精度に予測することが期待される。そこで近傍N3は、ある時刻のインスタンスと、その時刻からシミュレーションで得た少し先の時間における予測状態のインスタンスを近傍と定義している。なお、一般的なシミュレータは前向きの時間発展のみを扱う場合が多いため前向きのみを定義している。
【0053】
また、異なるロボットであっても同じタスクを行っているならば、ほとんど同じ動作を行う。そのため、開始時刻からの経過時間が同じであれば近しい背景を共有すると考えられる。そこで近傍N4は、異なるロボットに関してタスクの開始時刻を0とした時刻(標準化時刻)が0.1秒以内のインスタンスを近傍と定義している。
【0054】
さらに、
図5の例では、プレディクタP1,P2が定義され、近傍N1,N3に対してはプレディクタP1が割り当てられ、近傍N2に対してはプレディクタP2が割り当てられ、近傍N4に対してはプレディクタP3が割り当てられている。
【0055】
なお、「SimSiem」等がプレディクタを1つしか持たないことに対して、本実施形態では、近傍定義情報500を用い、異なる種類の近傍に対して、同一のプレディクタを割り当てたり、異なるプレディクタを割り当てたりすることができる。すなわち、過去から未来を予測するプレディクタや、未来から過去を予測するプレディクタ等、プレディクタを共用するとプレディクタのタスクが困難となり過ぎて、得られる表現の表現力が乏しくなってしまうような状況を回避することができる。また、スクリプトが機械学習のコアプログラムから分離されているので、対象とする問題に対して最良な近傍定義の探索、シミュレーションデータの活用具合の探索等をユーザ121が容易に試行錯誤できる。
【0056】
<機械学習モデルの構造>
次に、
図6は、上流タスク学習部112が自己教師あり学習によって学習する機械学習モデルである自己教師あり学習用モデル600の一例を示している。自己教師あり学習用モデル600は、本発明の上流モデルに相当する。
【0057】
自己教師あり学習用モデル600は、インスタンスペアサンプラ601、状態エンコーダ602、及び埋込量プレディクタ603を備える。インスタンスペアサンプラ601は、近傍定義情報500に基づいてインスタンスのペア(インスタンスA,B)をサンプリングする。状態エンコーダ602は、サンプリングしたインスタンスAの位置、及び速度に基づいて埋込量Aを算出する。また、状態エンコーダ602は、サンプリングしたインスタンスBの位置、及び速度に基づいて埋込量Bを算出する。埋込量プレディクタ603は、埋込量Aから埋込量Bを推定した推定埋込量Bを算出する。
【0058】
次に、
図7、及び
図8は、下流タスク学習部114が強化学習によって学習する機械学習モデルである強化学習用アクタモデル700(
図7)、及び強化学習用クリティックモデル800(
図8)の一例を示している。強化学習用アクタモデル700、及び強化学習用クリティックモデル800は、本発明の下流モデルに相当する。
【0059】
強化学習用アクタモデル700は、位置、速度、把持状態、及び目標状態から目標を達成するための行動を出力する。強化学習用アクタモデル700は、状態エンコーダ701、及びアクタ702を備える。状態エンコーダ701は、自己教師あり学習用モデル600の状態エンコーダ602と同じ構造を有し、学習済みの状態エンコーダ602を使って初期化される(状態エンコーダ602のパラメータがコピーされる)。状態エンコーダ701は、位置、及び速度に基づいて埋込量を算出する。アクタ702は、埋込量、把持状態、及び目標状態に基づいて行動を出力する。
【0060】
アクタ702が出力する行動は、直交座標系での位置の微小操作、及び把持状態の操作である。この操作は、ロボットアーム制御装置30の計画部31によって逆キネマティクス計算が行われて関節座標系に変換されて実行されることになる。
【0061】
強化学習用クリティックモデル800は、状態エンコーダ801、及びクリティック802を備える。状態エンコーダ801は、自己教師あり学習用モデル600の状態エンコーダ602と同じ構造を有し、学習済みの状態エンコーダ602を使って初期化される(状態エンコーダ602のパラメータがコピーされる)。状態エンコーダ801は、位置、及び速度に基づいて埋込量を算出する。クリティック802は、埋込量、把持状態、目標状態、及びアクタ702が出力する行動に基づいて、行動の良さを表すQ値を出力する。
【0062】
<学習装置11による学習処理>
次に、
図9は、学習装置11による学習処理の一例を示すフローチャートである。
【0063】
当該学習処理の前提として、既にロボットアーム制御装置30の制御用データ管理部33は、データ収集部32によって各ロボットアーム40から収集された、自己教師あり学習に用いるロボット状態データ300(
図3)をストレージ103等に格納し、管理しているものとする。
【0064】
当該学習処理は、例えば、操作端末12を用いたユーザ121からの所定の開始操作に応じて開始される。
【0065】
始めに、全体タスク管理部111が、自己教師あり学習に用いるデータ準備として、ロボットアーム制御装置30の制御用データ管理部33の管理下にあるロボット状態データ300を読み出て、学習装置11の学習用データ管理部116の管理下にコピーする。そして、全体タスク管理部111が、ロボット状態データ300の関節座標系である関節角1~6の値を直交座標系に変換するとともに、差分を算出することにより速度を付与した直交位置速度データ400(
図4)を生成する(ステップS1)。
【0066】
次に、全体タスク管理部111が、ステップS3の上流タスク学習処理(自己教師あり学習)、及びステップS4の下流タスク学習処理において用いるハイパーパラメータを生成する(ステップS2)。具体的には、近傍定義情報500(
図5)に記載されているパラメータ(parameter)であるdelta1,delta2,delta3を、記載された範囲からランダムにサンプリングすることによりハイパーパラメータを生成する。なお、本実施形態では、前述の3つのパラメータだけをチューニング対象とするものとしたが、ネットワーク構造、ミニバッチ数や学習率等の訓練条件等、種々のハイパーパラメータを対象としてもかまわない。
【0067】
次に、上流タスク学習部112が、直交位置速度データ400、近傍定義情報500、及びステップS2で生成したハイパーパラメータを用い、自己教師あり学習用モデル600(
図6)の状態エンコーダ602を生成するための上流タスク学習処理を実行する(ステップS3)。
【0068】
図10は、ステップS3における上流タスク学習処理の一例を示すフローチャートである。
【0069】
はじめに、上流タスク学習部112が、近傍定義情報500に定義されている近傍N1~N4のうちの1つを選択する(ステップS31)。
【0070】
次に、上流タスク学習部112が、近傍定義情報500、及びハイパーパラメータに従い、ステップS31で選択した近傍の定義に合致するインスタンスのペアをサンプリングする。インスタンスのサンプリングにシミュレーションを伴う場合は、まず上流タスク学習部112が、直交位置速度データ400から1つのインスタンスをサンプリングして、そのサンプリングしたインスタンスを初期状態として、シミュレーション実行部113が指定された時刻先の未来、又は過去のシミュレーションを行った結果をもう1つのインスタンスとして生成し、これら2つのインスタンスをペアとしてサンプリングする(ステップS32)。なお、シミュレーションに必要となるロボットアーム40への行動情報は、前記サンプリングしたインスタンスの次、もしくは直前で実行された行動情報を利用すればよい。
【0071】
次に、上流タスク学習部112が、自己教師あり学習用モデル600を使って、インスタンスのペアA,Bの位置、及び速度に関する埋込量Aと埋込量B、埋込量Aから推定した埋込量Bの推定値である推定埋込量Bを生成する(ステップS33)。
【0072】
次に、上流タスク学習部112が、コサイン類似度を-1倍したものをロス関数として、埋込量Bと推定埋込量Bのロスを計算し、位置、速度Aに関して埋込量プレディクタ603、及び状態エンコーダ602のパラメータを誤差逆伝搬法によって更新する(ステップS34)。
【0073】
なお、本実施形態では、ロス関数として、コサイン類似度を-1倍したものを採用したが、平均二乗誤差等の他の関数をロス関数に採用してもよい。また、本実施形態では、順序性を考えて埋込量Aと推定埋込量Bに関するロスとしたが、順序性を考慮しない場合は、埋込量Aと埋込量Bを逆転させて、すなわち、埋込量Bから埋込量Aを推定する形を採用してもよい。
【0074】
なお、埋込量プレディクタ603は、近傍定義情報500において定義されているプレディクタと近傍との対応付けに従う。すなわち、近傍定義情報500には3つのプレディクタP1~P3があり、プレディクタP1は近傍N1,N3に、プレディクタP2は近傍N2に、プレディクタP3は近傍N4に対応付けられている。このように近傍によってプレディクタを変えられるので、近傍ごとの表現を備えるための誤差信号を状態エンコーダ602に送ることができる。
【0075】
次に、上流タスク学習部112が、学習終了条件を達成したか否かを判定する(ステップS35)。ここで、学習終了条件は、例えば、ステップS31~S34の処理を所定回数(例えば、10000回)繰り返すことと定義されているものとする。上流タスク学習部112が、学習終了条件を達成していないと判定した場合(ステップS35でNO)、処理をステップS31に戻して、ステップS31以降の処理を繰り返す。その後、上流タスク学習部112が、学習終了条件を達成したと判定した場合(ステップS35でYES)、上流タスク学習処理は終了される。
【0076】
なお、本実施形態では、シミュレーションによるデータ生成はインスタンスのペアの片側だけとしたが、シミュレーションに係る条件を変更して異なるインスタンスが生成できる場合は、シミュレーションによって2つのインスタンスを生成し、ペアとしてもよい。このように、本実施形態では、種々のインスタンスを生成することができる。また、画像データに対する拡大、縮小、クロップ等、音響データに対する切り出しや合成等、知られたデータ拡張方法が明らかでない対象であっても、サンプリング及びシミュレーションによって自己教師あり学習を実行することができる。
【0077】
図9に戻る。次に、下流タスク学習部114が、ステップS3で生成された自己教師あり学習用モデル600の状態エンコーダ602におけるパラメータを、強化学習用アクタモデル700の状態エンコーダ701と、強化学習用クリティックモデル800(
図8)の状態エンコーダ801とにコピーした上で、強化学習用アクタモデル700、及び強化学習用クリティックモデル800(
図8)を学習するための下流タスク学習処理を実行する(ステップS4)。
【0078】
図11は、ステップS4における下流タスク学習処理の一例を示すフローチャートである。なお、
図11に示す下流タスク学習処理は、1台のロボットアーム40に関する処理である。また、ロボットアームの状態の観測、行動の適用に関して、学習装置11、ロボットアーム制御計算機、ロボットアーム40が相互に通信しながら実行するものとする。
【0079】
まず、下流タスク学習部114が、ステップS3の上流タスク学習処理によって事前学習された自己教師あり学習用モデル600の状態エンコーダ602のパラメータを、強化学習用アクタモデル700の状態エンコーダ701と、強化学習用クリティックモデル800の状態エンコーダ801とにコピーする。それ以外のパラメータは正規分布等の一般的な方法を使って初期化する(ステップS41)。
【0080】
次に、ロボットアーム制御装置30が、ロボットアーム40の初期状態と、目標状態をランダムに決定し、決定した値に従い、計画部31の既存モーションプランナを使って得られた軌道計画を逆動力学計算しながら適用することで、ロボットアーム40の状態を遷移させる(ステップS42)。
【0081】
次に、下流タスク学習部114が、強化学習用アクタモデル700を用い、現在の状態(位置、速度、把持状態)、及び目標状態から行動を決定する(ステップS43)。次に、下流タスク学習部114が、決定した行動をロボットアーム40に適用して、状態を遷移させる。そして、新たな状態を観測し、報酬計算を行う(ステップS44)。報酬計算に用いる報酬関数は、例えば、規定の距離以内まで目標状態に近づいた場合には+1、そうでない場合には-0.01とする。
【0082】
次に、下流タスク学習部114が、現在の状態(位置、速度、把持状態)、目標状態、行動、報酬を用いて、ロスを計算し、強化学習用アクタモデル700、及び強化学習用クリティックモデル800のパラメータを誤差逆伝搬法によって更新する(ステップS45)。ここで、ロスは、強化学習におけるTD誤差に基づいて計算するものとする。
【0083】
次に、下流タスク学習部114が、エピソード終了条件を達成したか否かを判定する(ステップS46)。ここで、エピソード終了条件は、例えば、報酬が+1になるか、又は報酬が+1にならなくてもステップS43~45の処理が所定回数(例えば、1000回)繰り返すことと定義されているものとする。下流タスク学習部114が、エピソード終了条件を達成していないと判定した場合(ステップS46でNO)、処理をステップS43に戻して、ステップS43以降を繰り返す。
【0084】
その後、エピソード終了条件を達成したと判定した場合(ステップS46でYES)、次に、下流タスク学習部114が、学習終了条件を達成したか否かを判定する(ステップS47)。ここで、学習終了条件は、ステップS42以降の処理が所定回数(例えば、1000回)繰り返されたことと定義されているものとする。下流タスク学習部114が、学習終了条件を達成していないと判定した場合(ステップS47でNO)、処理をステップS42に戻して、ステップS42以降を繰り返す。その後、学習終了条件を達成したと判定した場合(ステップS47でYES)、下流タスク学習処理は終了される。
【0085】
図9に戻る。次に、全体タスク管理部111が、自己教師あり学習時の各プレディクタのロスの推移、強化学習におけるエピソードの成功率を評価結果として学習用データ管理部116に出力し、学習用データ管理部116が、これらをストレージ103等に格納する。また、学習用データ管理部116が、学習済みの自己教師あり学習用モデル600、強化学習用アクタモデル700、強化学習用クリティックモデル800をストレージ103等に一時保存する(ステップS5)。
【0086】
次に、全体タスク管理部111が、所定のチューニング終了条件を達成したか否かを判定する(ステップS6)。ここで、所定のチューニング終了条件は、例えば、ステップS2~S5の処理を所定回数(例えば、100回)だけ繰り返すこと、又は、評価結果(エピソードの成功率の推移)が過去作成したモデルに比べて改善されていることと定義されているものとする。
【0087】
そして、全体タスク管理部111が、所定のチューニング終了条件を達成していないと判定した場合(ステップS6でNO)、処理はステップS2に戻されて、ステップS2~S5の処理が繰り返される。その後、全体タスク管理部111が、所定のチューニング終了条件を達成したと判定した場合(ステップS6でYES)、次に、全体タスク管理部111が、これまでのモデルの中で最も評価結果(エピソードの成功率の推移)が良いモデルを最終モデルとして、関連する評価結果として学習用データ管理部116に出力し、学習用データ管理部116が、これをストレージ103等に格納する。そして、ステップS5で一時保存したモデルや評価結果のデータをストレージ103等から削除する(
図9のステップS7)。以上で、学習処理が終了する。
【0088】
<UI画面>
次に、
図12は、前述したステップS3における上流タスク学習処理が実行されている際、表示管理部115によって操作端末12に表示されるUI画面としての上位タスク学習ロス推移確認画面1000の表示例を示している。上位タスク学習ロス推移確認画面1000は、上流タスク学習処理の推移(学習の進捗状況)をユーザ121に提示するためのものである。
【0089】
上位タスク学習ロス推移確認画面1000には、ロス推移表示領域1001、「近傍定義表示」ボタン1002、及び「パラメータ表示」ボタン1003が設けられている。
【0090】
ロス推移表示領域1001には、学習用データ管理部116に格納された最終的に選ばれたモデルに関して、そのモデルを学習するために用いた近傍定義情報500によって定義されているプレディクタごとに、更新回数に対するロスの値のグラフが表示される。同図の場合、プレディクタP1,P2にそれぞれ対応するグラフが表示されており、ロス推移表示領域1001の内部をスクロールさせることにより、プレディクタP3に対応するグラフを表示させることができる。ユーザ121は、ロス推移表示領域1001を確認することによって上位タスク学習が問題なく進められているか否か進んでいるかを判断できる。
【0091】
「近傍定義表示」ボタン1002は、学習用データ管理部116に格納されている近傍定義情報500の内容を表示させるためのボタンである。「パラメータ表示」ボタン1003は、学習用データ管理部116に格納された最終的に選ばれたモデルに関するハイパーパラメータ、及び用いられたパラメータを表示するパラメータ確認画面1100(
図13)を表示させるためのボタンである。
【0092】
図13は、パラメータ確認画面1100の表示例を示している。パラメータ確認画面1100には、パラメータテーブル1101が表示される。パラメータテーブル1101には、パラメータの名称に対応付けてその値が表示される。例えば、同図の例では、ハイパーパラメータdelta1,delta2,delta3として00:00:00.5、00:00:00.3、00:00:00.1が選択され、自己教師あり学習の学習率(ssl learning rate)、強化学習の学習率(rl learning rate)がともに1e-5とされたことを表している。
【0093】
以上に説明した第1の実施形態によれば、ロボットアーム40を据え付けた時の傾き、ロボットの個体差、把持したワークの重量に伴うたわみ等に起因して生じ得るシミュレータと実機との間の乖離を低減した動作計画が可能となる。なお、下流タスク学習処理に先行して上流タスク学習を実行するので、下流タスク学習処理のための実機での試行錯誤回数を削減することができる。
【0094】
<本発明の第2の実施形態に係るバス運行管理システム2>
次に、
図14は、本発明の第2の実施形態に係るバス運行管理システム2の構成例を示している。なお、バス運行管理システム2の構成要素のうち、本発明の第1の実施形態に係るロボット管理システム1(
図1)と共通する構成要素については同一の符号を付してその説明を省略する。
【0095】
<概略>
バス運行管理システム2は、経路と時刻表が定められている路線バスの遅延時間予測に関する学習システム20を含む。まず、学習システム20を含むバス運行管理システム2の全体の処理の流れの概略を説明する。
【0096】
路線バスの時刻表では、過密路線、過密時刻帯では時間間隔が指定される等もあるが、出発時刻が定められている場合が多い。本実施形態における路線バス80は、ストップ(例えば、バス路線の停留所)に停車し、出発する際、その出発時刻、区間の平均速度、混雑具合、遅延時間を計測、収集し、バス情報管理サーバ70からの要求に応じてバス状態データとして送信するものとする。混雑具合は、例えば、路線バスの重量を計測し、当該重量に基づいて算出するようにしてもよいし、バス内に人感センサやカメラ等を設けて計測するようにしてもよい。
【0097】
学習システム20は、路線バス80から得られるデータをもとに遅延時間を予測する遅延時間予測機能を構築するものである。その際、同じ路線の異なる時間帯の路線バスのデータ等を活用した自己教師あり学習によって事前学習することで、遅延時間予測のための回帰モデルの精度を向上させるようになされている。
【0098】
なお、学習システム20は、路線バス以外の移動体、例えば工場内で物品を輸送するロボットや、人を輸送する鉄道等の遅延時間予測に利用することが可能である。
【0099】
<構成例>
次に、バス運行管理システム2の構成例について説明する。バス運行管理システム2は、学習システム20、バス情報管理サーバ70、及び複数台の路線バス80を備える。
【0100】
学習システム20は、学習装置21、及び操作端末12を有する。ただし、学習装置21と操作端末12とを一体化してもよい。
【0101】
学習システム20及びバス情報管理サーバ70は、それぞれ情報系ネットワークNW1に接続されており、情報系ネットワークNW1を介して各種のデータ、情報を相互に通信する。バス情報管理サーバ70、及び各路線バス80は、携帯電話通信網等を利用した無線通信が可能なWWWネットワークNW3に接続されている。各路線バス80は、WWWネットワークNW3を介してバス状態データをバス情報管理サーバ70に送信する。また、バス利用者90は、スマートフォン等の情報端末91を用い、WWWネットワークNW3を介してバス情報管理サーバ70に接続し、路線バスの遅延時間情報を取得できる。なお、各ストップに専用の表示端末を用意し、路線バスの遅延時間情報を表示するようにしてもよい。
【0102】
学習装置21は、学習装置11(
図1)と同様、一般的なコンピュータ100(
図2)によって実現される。学習装置21は、全体タスク管理部211、上流タスク学習部212、下流タスク学習部214、表示管理部215、及び学習用データ管理部216の各機能ブロックを有する。全体タスク管理部211、上流タスク学習部212、下流タスク学習部214、表示管理部215、及び学習用データ管理部216の動作は、学習装置11(
図1)の全体タスク管理部111、上流タスク学習部112、下流タスク学習部114、表示管理部115、及び学習用データ管理部116の動作と略同様であるため、その説明は適宜省略する。
【0103】
全体タスク管理部211は、学習装置21の全体を統括する。
【0104】
上流タスク学習部212は、バス状態データを用いて自己教師あり学習を実行する。自己教師あり学習には、第1の実施形態と同様に「SimSiam」アーキテクチャを採用したネットワークを用いる。当該ネットワークには、バス状態データからある表現(特徴量)に変換する状態エンコーダ、及びある特徴量から別の特徴量を予測するプレディクタを含む。自己教師あり学習の具体的な手順としては、第1の実施形態と同様である。
【0105】
下流タスク学習部214は、教師あり学習を用いて遅延時間を予測する回帰モデルを学習する。本実施形態の教師あり学習には、一般的な平均二乗誤差を最小化する回帰を用いるが、分布推定するモデルを学習した上で期待値あるいはリスクを考慮した値を計算する等してもよい。
【0106】
回帰モデルは、ある路線バスに関して、3つ前までのストップのバス状態と、先発バスの1つ前のバス状態に基づいて次のストップにおける予測遅延時間を出力する。なお、本実施形態では、3つ前までのストップのバス状態データと、先発しているバスの1つ前のバス状態データを入力として用いるが、始発からのバス状態データや、前日の同じ系統、同じ始発時刻のバス状態データを用いたりしてもよい。また、道路交通情報等の経路に関する外部の情報が利用可能ならばそれを考慮してもよい。
【0107】
学習用データ管理部216は、上流タスク学習、及び下流タスク学習の学習中のロス関数の推移、予測遅延時間と実際の遅延時間の差等の性能指標、事前学習済みモデル、得られた回帰モデル等をストレージ103等に適宜格納して管理する。
【0108】
バス情報管理サーバ70は、一般的なコンピュータ100(
図2)によって実現される。バス情報管理サーバ70は、データ収集部71、遅延時間予測部72、遅延時間配信部73、及びバス情報データ管理部74の各機能ブロックを備える。
【0109】
データ収集部71は、路線バス80からバス状態データ1500(
図15)を収集する。遅延時間予測部72は、学習装置21によって学習された遅延時間予測モデル1900を用い、路線バス80の遅延時間を予測する。遅延時間配信部73は、予測された路線バス80の遅延時間を表す予測遅延時間表示画面2000(
図21)をバス利用者90の情報端末91に表示させる。バス情報データ管理部74は、収集されたバス状態データ1500を、バス情報管理サーバ70を実現するコンピュータ100のストレージ103等に格納する。
【0110】
<各種データのデータ構造>
次に、
図15、バス情報管理サーバ70のバス情報データ管理部74が管理するバス状態データ1500のデータ構造の一例を示している。バス状態データ1500は、本発明の表形式データに相当する。表形式データは、複数の数値データやカテゴリカルデータ等のデータから成るタプルで構成されるインスタンスの集合である。
【0111】
バス状態データ1500は、路線ID、バス種別(通常(各停)、快速等)、始発ストップ出発時刻、日付、経過時刻、ストップID、平均速度、混雑具合、及び遅延時間が対応付けて記録されている。
【0112】
本実施形態において、ある日付に運行される路線バスは、路線ID、バス種別、及び始発ストップ出発時刻によって特定されるものとする。路線IDが同一であって、バス種別が異なる路線バスは、同じ経路を走行するが、「通常」に比べて「快速」は停車するストップが少ないものとする。なお、「快速」のようなバス種別を設けずに、路線IDを変えて区別してもよい。また、本実施形態では路線IDは有方向である(すなわち、路線IDによって上り下りなどが区別されている)とするが、それらが区別されていない場合は「通常」「快速」といった種別に加えて走行している向きを勘案しても構わない。
【0113】
次に、
図16は、学習用データ管理部216が管理するストップ隣接データ1600のデータ構造の一例を示している。ストップ隣接データ1600は、自己教師あり学習のためのインスタンスをサンプリングする際に用いる。
【0114】
ストップ隣接データ1600には、路線ID、バス種別、ストップID-A、及びストップID-Bが対応付けて記録されており、1行分の情報が、路線ID、及びバス種別が同一であるバスが隣接するストップ(順次停車する2つのストップ)を表している。例えば、路線ID「A1」、バス種別「通常」の路線バスは、ストップID「101」のストップの次にストップID「102」のストップに停車することを表している。ストップID「101」、「102」のストップ間距離(StopDist)は1と定義される。ここで、ストップ間距離とは、当該路線バスが順に停車する隣接ストップ間に実在する、当該路線バスが停車しないストップの数に1を加算した値である。
【0115】
なお、ストップ隣接データ1600に記録されていなくとも、ストップ隣接データ1600から隣接関係を辿ることで到達できる場合、最小の到達回数がそのストップ間の距離となる。例えば、同図の場合、路線ID「A1」、バス種別「通常」の路線バスにおけるストップID「101」、「103」は隣接していないが、ストップID「102」を介して辿ることができるので、ストップID「101」、「103」のストップ間距離は2と定義される。なお、路線IDやバス種別が異なる場合は隣接関係を辿ることはできないものとする。
【0116】
次に、
図17は、学習用データ管理部216が管理する近傍定義情報1700の一例を示している。
【0117】
近傍定義情報1700は、自己教師あり学習に用いるインスタンスのペアをサンプリングするための近傍と、その近傍に対するプレディクタの割り当てを記載するドメインスペシフィック言語で書かれたスクリプトである。
【0118】
近傍定義情報1700には、近傍の定義に先立って、近傍定義に用いるパラメータや変数が"parameter"や"variable"として予め宣言されている。これは、後述の処理で自動的にハイパーパラメータチューニングするために用いられる。また、近傍定義のためのロジックを、importを使って外部インポートすることができる。
【0119】
図17の例では、4種類の近傍N1~N4を定義している。同じ路線かつ同じ出発時刻で走行するバスは異なる日付であっても近しい背景を共有していると考えられる。そこで、近傍N1は、バス種別「通常」の路線バスが停車した一連のストップのストップ間距離が2以下であるバス状態を近傍と定義している。近傍N2は、バス種別「快速」の路線バスが停車した一連のストップのストップ間距離が1以下であるバス状態を近傍と定義している。バス種別「通常」に比べてバス種別「快速」のバスは、バス種別「通常」のバスに比べてはストップ間の距離が離れているため、バス「通常」よりも小さい値である1以下が用いられている。このようにストップ間の運用を考慮した距離を勘案できる。なお、本実施形態ではストップ隣接データ1600に基づくストップ間距離を用いたが、物理的な距離(例えば、km単位)を用いてもよい。また、数式によって定義されるその他の距離を用いてもよい。
【0120】
また、同じ路線を近い出発時刻で走行するバスは近しい背景を共有していると考えられる。そこで近傍N3は、路線IDが同一であって、始発ストップ出発時刻がdelta1以下の異なる路線バスについて、同一ストップは近傍であると定義している。なお、日付は一致している場合のみとしている。加えて、出発時刻は異なっても近しい時刻に同一のストップ付近を走行又は同一のストップに停車したバスも近しい背景を共有していると考えられる。そこで、近傍N4は、路線IDに関係なく、同じ日付でそれぞれのバスの出発時刻と経過時刻の和(すなわちバスがいた時刻)の差の絶対値がdelta1以下の異なる路線バスについて、同一ストップは近傍であると定義している。
【0121】
さらに、
図17の例では、プレディクタP1,P2が定義され、近傍N1,N2に対してはプレディクタP1が割り当てられ、近傍N3,N4に対してはプレディクタP2が割り当てられている。以上のように、本実施形態では、近傍定義情報1700とストップ隣接データ1600を組み合わせることで、種々の近傍関係を1又は複数利用した自己教師あり学習を実行できる。
【0122】
<機械学習モデルの構造>
次に、
図18は、上流タスク学習部212が学習する機械学習モデルである自己教師あり学習用モデル1800の一例を示している。自己教師あり学習用モデル1800は、本発明の上流モデルに相当する。
【0123】
自己教師あり学習用モデル1800は、インスタンスペアサンプラ1801、状態エンコーダ1802、及び埋込量プレディクタ1803を備える。インスタンスペアサンプラ1801は、近傍定義情報1700に基づいてインスタンスのペア(インスタンスA,B)をサンプリングする。状態エンコーダ1802は、サンプリングしたインスタンスAの位置、及び速度に基づいて埋込量Aを算出する。また、状態エンコーダ1802は、サンプリングしたインスタンスBの位置、及び速度に基づいて埋込量Bを算出する。埋込量プレディクタ1803は、埋込量Aから埋込量Bを推定した推定埋込量Bを算出する。
【0124】
次に、
図19は、下流タスク学習部214が学習する回帰モデルである遅延時間予測モデル1900の一例を示している。遅延時間予測モデル1900は、本発明の下流モデルに相当する。
【0125】
遅延時間予測モデル1900は、状態エンコーダ1901、及び遅延時間プレディクタ1902を備える。状態エンコーダ1901は、自己教師あり学習用モデル1800の状態エンコーダ1802と同じ構造を有し、学習済みの状態エンコーダ1802を使って初期化される。遅延時間プレディクタ1902は、ある路線バスの3つ前から直前(1つ前)までのバス状態と、先発の路線バスの直前(1つ前)のバス状態から、sストップ先の予測遅延時間を出力する。
【0126】
<学習装置21による学習処理>
次に、学習装置21による学習処理について説明する。当該学習処理は、第1の実施形態における学習装置11による学習処理(
図9)と同様であるため、
図9を流用し、適宜省略して説明する。
【0127】
当該学習処理の前提として、既にバス情報管理サーバ70のバス情報データ管理部74は、データ収集部71によって各路線バス80から収集された、所定期間分(例えば、1か月分)の自己教師あり学習に用いるバス状態データ1500(
図15)を管理しているものとする。
【0128】
当該学習処理は、例えば、操作端末12を用いたユーザ121からの所定の開始操作に応じて開始される。
【0129】
始めに、全体タスク管理部211が、自己教師あり学習に用いるデータ準備として、バス情報データ管理部74が管理するバス状態データ1500を読み出て、学習装置21の学習用データ管理部216の管理下にコピーする。(ステップS1)。
【0130】
次に、全体タスク管理部211が、ステップS3の上流タスク学習処理(自己教師あり学習)、及びステップS4の下流タスク学習処理において用いるハイパーパラメータを生成する(ステップS2)。具体的には、近傍定義情報1700(
図17)に記載されているパラメータ(parameter)であるdelta1を、記載された範囲からランダムにサンプリングすることによるハイパーパラメータを生成する。なお、本実施形態では、前述の1つのパラメータだけをチューニング対象とするものとしたが、ネットワーク構造、ミニバッチ数や学習率等の訓練条件等、種々のハイパーパラメータを対象としてもかまわない。
【0131】
次に、上流タスク学習部212が、バス状態データ1500、近傍定義情報1700、及びステップS2で生成したハイパーパラメータを用い、自己教師あり学習用モデル1800(
図18)の状態エンコーダ1802を生成するための上流タスク学習処理を実行する(ステップS3)。
【0132】
ステップS3における上流タスク学習処理の一例について、
図10を流用して説明する。
【0133】
はじめに、上流タスク学習部212が、近傍定義情報1700に定義されている近傍N1~N4のうちの1つを選択する(ステップS31)。
【0134】
次に、上流タスク学習部212が、近傍定義情報1700、及びハイパーパラメータに従い、ステップS31で選択した近傍の定義に合致するインスタンスのペアをサンプリングする(ステップS32)。
【0135】
次に、上流タスク学習部212が、自己教師あり学習用モデル1800を使って、各インスタンスの遅延時間を除く項目の情報、すなわち、路線ID、バス種別、始発ストップ出発時刻、日付、経過時刻、ストップID、平均速度、及び混雑具合に関する埋込量Aと埋込量B、埋込量Aから推定した埋込量Bの推定値である推定埋込量Bを算出する(ステップS33)。
【0136】
次に、上流タスク学習部212が、コサイン類似度を-1倍したものをロス関数として、埋込量Bと推定埋込量Bのロスを計算し、位置、速度Aに関して埋込量プレディクタ1803、及び状態エンコーダ1802のパラメータを誤差逆伝搬法によって更新する(ステップS34)。
【0137】
なお、埋込量プレディクタ1803は、近傍定義情報1700で定義されたプレディクタと近傍の対応付けに従う。すなわち、2つのプレディクタP1,P2があり、プレディクタP1は近傍N1,N2に、プレディクタP2は近傍N3,N4に対応付けられている。このように近傍によってプレディクタを変えられるので、近傍ごとの表現を備えるための誤差信号を状態エンコーダ1802に送ることができる。
【0138】
次に、上流タスク学習部212が、学習終了条件を達成したか否かを判定し(ステップS35)、学習終了条件を達成していないと判定した場合(ステップS35でNO)、処理をステップS31に戻して、ステップS31以降の処理を繰り返す。その後、上流タスク学習部112が、学習終了条件を達成したと判定した場合(ステップS35でYES)、上流タスク学習処理は終了される。
【0139】
このように、本実施形態では、種々のインスタンスの生成することができる。また、画像データに対する拡大、縮小、クロップ等、音響データに対する切り出しや合成等、知られたデータ拡張方法が明らかでない対象であって、しかもカテゴリカル変数等を含むためミックスアップ等が使えないデータでもあっても、サンプリングによって自己教師あり学習を実行することができる。なお、本実施形態では用いていないが、第1の実施形態で用いたように、シミュレーションを活用してインスタンスを生成してもよい。
【0140】
図9に戻る。次に、下流タスク学習部214が、ステップS3で生成された自己教師あり学習用モデル1800の状態エンコーダ1802におけるパラメータを、遅延時間予測モデル1900の状態エンコーダ1901にコピーした上で、遅延時間予測モデル1900を学習するための下流タスク学習処理を実行する(ステップS4)。
【0141】
図20は、ステップS4における下流タスク学習処理の一例を示すフローチャートである。
【0142】
まず、下流タスク学習部214が、ステップS3の上流タスク学習処理によって事前学習された自己教師あり学習用モデル1800の状態エンコーダ1802のパラメータを、遅延時間予測モデル1900の状態エンコーダ1901にコピーする。それ以外のパラメータは正規分布等の一般的な方法を使って初期化する(ステップS401)。
【0143】
次に、下流タスク学習部214が、あるバス状態データのインスタンスを1つサンプリングしてベースサンプルに指定する。また、下流タスク学習部214が、ベースサンプルと同じ路線ID、バス種別、始発ストップ出発時刻、日付であるインスタンスのうち、経路上1つ前のインスタンスと、2つ前のインスタンスを取得する。さらに、下流タスク学習部214が、ベースサンプルと同じ路線ID、バス種別、日付で、始発ストップ出発時刻が1つ前のインスタンスのうち、最も経過時間が経過している(最新)のインスタンスを取得する。またさらに、下流タスク学習部214が、ベースサンプル以降に存在するストップの数をSとして、1からSまでの整数から1つ値をサンプルして、これをsに設定する。これらを結合して、遅延時間予測モデル1900の状態エンコーダ1901への入力とする。また、ベースサンプルからsだけ先のストップの遅延時間を取得し、出力(sストップ先の予測遅延時間)に設定する。これら入力と出力のペアを要素としてミニバッチを生成する(ステップS402)。
【0144】
なお、始発ストップ等のように前のインスタンスが存在しない場合は、路線ID、バス種別、始発ストップ出発時刻、日付はベースサンプルの値を流用し、平均速度、混雑具合を0としたインスタンスを生成すればよい。同様に、先発する路線バスが存在しない場合、路線ID、バス種別、日付はベースサンプルの値を流用し、始発ストップ出発時刻を0:00、平均速度、混雑具合を0としたインスタンスを生成すればよい。
【0145】
次に、下流タスク学習部214が、遅延時間予測モデル1900を用い、ミニバッチの入力から予測遅延時間を算出する(ステップS403)。次に、下流タスク学習部214が、遅延時間(真値)、及び予測遅延時間(推定値)からロスを計算し、遅延時間予測モデル1900のパラメータを誤差逆伝搬法によって更新する(ステップS405)。ここで、ロスは平均二乗誤差に基づくものとする。
【0146】
次に、下流タスク学習部114が、学習終了条件を達成したか否かを判定する(ステップS405)。ここで、学習終了条件は、例えば、ステップS402~405の処理が所定回数(例えば、1000回)繰り返すことと定義されているものとする。下流タスク学習部114が、エピソード終了条件を達成していないと判定した場合(ステップS405でNO)、処理をステップS402に戻して、ステップS402以降を繰り返す。
【0147】
その後、学習終了条件を達成したと判定した場合(ステップS405でYES)、下流タスク学習処理は終了される。下流タスク学習処理によれば、遅延時間を予測したい路線バスの情報(3ストップ分)と先発の路線バスの情報(1ストップ分)から、後に続く任意(sストップ分先)のストップにおける遅延時間を予測するモデルを学習できる。
【0148】
図9に戻る。次に、全体タスク管理部211が、自己教師あり学習時の各プレディクタのロスの推移、強化学習におけるエピソードの成功率を評価結果として学習用データ管理部216に出力し、学習用データ管理部216が、それらをストレージ103等に格納する。また、学習用データ管理部216が、学習した自己教師あり学習用モデル1800、及び遅延時間予測モデル1900をストレージ103等に一時保存する(ステップS5)。
【0149】
次に、全体タスク管理部211が、所定のチューニング終了条件を達成したか否かを判定する(ステップS6)。そして、全体タスク管理部211が、所定のチューニング終了条件を達成していないと判定した場合(ステップS6でNO)、処理はステップS2に戻されて、ステップS2~S5の処理が繰り返される。
【0150】
その後、全体タスク管理部211が、所定のチューニング終了条件を達成したと判定した場合(ステップS6でYES)、次に、全体タスク管理部211が、これまでのモデルの中で最も評価結果(予測精度)が良いモデルを最終モデルとして、関連する評価結果として学習用データ管理部216に出力し、学習用データ管理部216が、これをストレージ103等に格納する。そして、ステップS5で一時保存したモデルや評価結果のデータをストレージ103等から削除する(
図9のステップS7)。以上で、学習処理は終了される。
【0151】
<UI画面>
第2の実施形態においては、第1の実施形態と同様、前述したステップS3における上流タスク学習処理が実行されている際、表示管理部215によって操作端末12に上位タスク学習ロス推移確認画面1000(
図12)、パラメータ確認画面1100(
図13)を表示させることができる。
【0152】
図21は、バス情報管理サーバ70の遅延時間配信部73からの制御によってバス利用者90の情報端末91に表示される予測遅延時間表示画面2000の表示例を示している。
【0153】
予測遅延時間表示画面2000には、予測遅延時間を表示させる路線バスの路線ID、バス種別、始発時刻を選択指定するための入力欄2001~2003が設けられている。さらに、予測遅延時間表示画面2000には、入力欄2001~2003に対する入力によって特定された路線バスが直前に通過したストップを表示するためのステータス表示欄2004、及び各ストップにおける予測遅延時間を表す予測遅延時間表示欄2005が設けられている。予測遅延時間表示欄2005に表示される時間は、遅延時間予測モデル1900を用いて算出された値を分単位で切り上げたものである。
【0154】
同図の場合、バス利用者90が路線ID「A1」、バス種別「通常」、始発時間「6:40」を選択指定したことに応じ、対応する路線バスは、現在、ストップ「104」を通過した状況であって、ストップ「105」~「109」における予測遅延時間は、それぞれ5分、3分、3分、4分、2分であることを表している。
【0155】
第2の実施形態によれば、路線バスの各ストップにおける遅延時間を予測することができる。なお、遅延時間予測のための回帰モデルを学習する下流タスク学習に先行して、上流タスク学習を行うので、当該回帰モデルの精度を向上させることができる。
【0156】
本発明は、前述した実施形態に限定されるものではなく、様々な変形が可能である。例えば、前述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えたり、追加したりすることが可能である。
【0157】
また、前述の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、前述の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0158】
1・・・ロボット管理システム
10・・・学習システム
11・・・学習装置
111・・・全体タスク管理部
112・・・上流タスク学習部
113・・・シミュレーション実行部
114・・・下流タスク学習部
115・・・表示管理部
116・・・学習用データ管理部
12・・・操作端末
121・・・ユーザ
2・・・バス運行管理システム
20・・・学習システム
21・・・学習装置
211・・・全体タスク管理部
212・・・上流タスク学習部
214・・・下流タスク学習部
215・・・表示管理部
216・・・学習用データ管理部
30・・・ロボットアーム制御装置
31・・・計画部
32・・・データ収集部
33・・・制御用データ管理部
40・・・ロボットアーム
60・・・近傍定義情報
70・・・バス情報管理サーバ
71・・・データ収集部
72・・・遅延時間予測部
73・・・遅延時間配信部
74・・・バス情報データ管理部
80・・・路線バス
90・・・バス利用者
91・・・情報端末
100・・・コンピュータ
101・・・プロセッサ
102・・・メモリ
103・・・ストレージ
104・・・入力デバイス
105・・・出力デバイス
106・・・通信モジュール
107・・・プログラム
300・・・ロボット状態データ
400・・・直交位置速度データ
500・・・近傍定義情報
600・・・自己教師あり学習用モデル
601・・・インスタンスペアサンプラ
602・・・状態エンコーダ
603・・・埋込量プレディクタ
700・・・強化学習用アクタモデル
701・・・状態エンコーダ
702・・・アクタ
800・・・強化学習用クリティックモデル
801・・・状態エンコーダ
802・・・クリティック
1000・・・上位タスク学習ロス推移確認画面
1100・・・パラメータ確認画面
1500・・・バス状態データ
1600・・・ストップ隣接データ
1700・・・近傍定義情報
1800・・・自己教師あり学習用モデル
1801・・・インスタンスペアサンプラ
1802・・・状態エンコーダ
1803・・・埋込量プレディクタ
1900・・・遅延時間予測モデル
1901・・・状態エンコーダ
1902・・・遅延時間プレディクタ
2000・・・予測遅延時間表示画面