(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-09
(45)【発行日】2024-08-20
(54)【発明の名称】学習装置、学習方法、および学習プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240813BHJP
G05B 23/02 20060101ALI20240813BHJP
G06N 3/092 20230101ALI20240813BHJP
【FI】
G06N20/00
G05B23/02 Z
G06N3/092
(21)【出願番号】P 2021083679
(22)【出願日】2021-05-18
【審査請求日】2023-03-09
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】皆本 岳
(72)【発明者】
【氏名】金子 敏充
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2018-106466(JP,A)
【文献】特開2007-272646(JP,A)
【文献】米国特許出願公開第2018/0197046(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
機器の現在状態を取得する取得部と、
強化学習モデルを学習する学習機能を有し、前記現在状態と前記強化学習モデルとに基づいて前記機器の第1行動を決定する第1行動決定部と、
前記現在状態と第1ルールとに基づいて、前記機器の第2行動を決定する第2行動決定部と、
前記現在状態、前記第1行動、および安全性に関する第2ルール、に基づいて、第4行動を決定する安全行動決定部と、
前記強化学習モデルの学習の進捗に応じて、前記第1行動
から決定された前記第4行動および前記第2行動の何れか一方を、前記機器に出力する第3行動として選択する選択部と、
を備える学習装置。
【請求項2】
前記安全行動決定部は、
前記現在状態および前記第2ルールに基づいて前記第1行動の安全性を判定し、安全であると判定した場合前記第1行動を前記第4行動として決定し、安全ではないと判定した場合前記第1行動を安全な行動に修正した前記第4行動を決定する、
請求項
1に記載の学習装置。
【請求項3】
前記安全行動決定部は、
前記第1行動が安全ではない判定した場合、該第1行動と負の報酬とを対応付けて前記強化学習モデルの学習データとして出力する、
請求項
2に記載の学習装置。
【請求項4】
前記選択部は、
前記進捗である前記強化学習モデルの学習時間に応じて、前記第1行動を選択する確率と前記第2行動を選択する確率とを変化させる、
請求項1~請求項
3の何れか1項に記載の学習装置。
【請求項5】
前記選択部は、
前記進捗である前記学習時間が短いほど前記第1行動を選択する確率を低く且つ前記第2行動を選択する確率を高くし、前記進捗である前記学習時間が長いほど前記第1行動を選択する確率を高く且つ前記第2行動を選択する確率を低くする、
請求項
4に記載の学習装置。
【請求項6】
前記選択部は、
前記進捗である前記強化学習モデルで学習された価値関数に基づいて、前記価値関数により算出された前記第1行動および前記第2行動の各々の推定価値に応じて、前記第1行動および前記第2行動の何れか一方を前記第3行動として選択する、
請求項1~請求項
5の何れか1項に記載の学習装置。
【請求項7】
前記選択部は、
前記第1行動および前記第2行動の内、前記価値関数により算出された前記推定価値の高い行動を、前記第3行動として選択する、
請求項
6に記載の学習装置。
【請求項8】
前記選択部は、
前記第1行動の前記推定価値と前記第2行動の前記推定価値との差が大きいほど、前記第1行動および前記第2行動の内、推定価値の大きい行動を選択する確率を高くする、
請求項
6または請求項
7に記載の学習装置。
【請求項9】
前記選択部は、
前記進捗である前記強化学習モデルの学習時間および前記強化学習モデルで学習された価値関数に基づいて、前記第1行動を選択する確率と前記第2行動を選択する確率とを変化させる、
請求項
6~請求項
8の何れか1項に記載の学習装置。
【請求項10】
前記選択部は、
前記学習時間が所定時間未満である場合、
前記進捗である前記学習時間が短いほど前記第1行動を選択する確率を低く且つ前記第2行動を選択する確率を高くし、前記進捗である前記学習時間が長いほど前記第1行動を選択する確率を高く且つ前記第2行動を選択する確率を低くし、
前記学習時間が前記所定時間以上である場合、
前記第1行動および前記第2行動の内、前記価値関数により算出された前記推定価値の高い行動を、前記第3行動として選択する、
請求項
9に記載の学習装置。
【請求項11】
前記進捗を表す画像を表示部に表示する表示制御部を備える、
請求項1~請求項1
0の何れか1項に記載の学習装置。
【請求項12】
前記表示制御部は、
前記選択部が前記第1行動を選択する確率および前記第2行動を選択する確率の少なくとも一方を前記表示部に表示する、
請求項1
1に記載の学習装置。
【請求項13】
前記表示制御部は、
前記第3行動が前記第1行動および前記第2行動の何れであるかを表す情報を前記表示部に表示する、
請求項1
1または請求項1
2に記載の学習装置。
【請求項14】
前記表示制御部は、
前記選択部が前記第1行動を選択した回数、および、前記選択部が前記第2行動を選択した回数、の少なくとも一方を前記表示部に表示する、
請求項1
1~請求項1
3の何れか1項に記載の学習装置。
【請求項15】
前記表示制御部は、
前記第1行動の安全性の判定結果を前記表示部へ表示する、
請求項1
1~請求項1
4の何れか1項に記載の学習装置。
【請求項16】
前記機器は、
少なくとも一部の機構が動作する移動体である、
請求項1~請求項1
5の何れか1項に記載の学習装置。
【請求項17】
学習装置によって実行される学習方法であって、
機器の現在状態を取得するステップと、
前記現在状態
と強化学習モデルとに基づいて前記機器の第1行動を決定するステップと、
前記現在状態と第1ルールとに基づいて、前記機器の第2行動を決定するステップと、
前記現在状態、前記第1行動、および安全性に関する第2ルール、に基づいて、第4行動を決定するステップと、
前記強化学習モデルの学習の進捗に応じて、前記第1行動
から決定された前記第4行動および前記第2行動の何れか一方を、前記機器に出力する第3行動として選択するステップと、
を含む学習方法。
【請求項18】
機器の現在状態を取得するステップと、
前記現在状態
と強化学習モデルとに基づいて前記機器の第1行動を決定するステップと、
前記現在状態と第1ルールとに基づいて、前記機器の第2行動を決定するステップと、
前記現在状態、前記第1行動、および安全性に関する第2ルール、に基づいて、第4行動を決定するステップと、
前記強化学習モデルの学習の進捗に応じて、前記第1行動
から決定された前記第4行動および前記第2行動の何れか一方を、前記機器に出力する第3行動として選択するステップと、
をコンピュータに実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、学習装置、学習方法、および学習プログラムに関する。
【背景技術】
【0002】
強化学習を用いた行動学習が行われている。強化学習では、様々な行動を試行錯誤して繰り返すことで機器の最適な行動を学習する。ロボットなどの機器を実際に用いて学習を行う場合、機器が意図せぬ状態に陥り、強化学習中に事故や故障が発生する場合がある。このため、学習中の安全性の確保が求められている。
【0003】
例えば、ルールベースで安全動作の枠組みを決定し、決定された枠組み内で強化学習により行動パラメータを決定する方法が開示されている。また、学習ベースのアルゴリズムによって生成された制御量を、ルールベースで生成した制御量から逸脱しないように修正する方法が提案されている。
【0004】
しかし、枠組み内の強化学習時にはランダムな行動探索が行われるため、従来技術では学習開始直後の性能が低く、必要な性能に達するまで時間を要していた。また、従来技術では学習ベースのアルゴリズムによって事前に学習する必要があった。このため、従来技術では、機器に適用しながら機器の行動を強化学習することは困難であった。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-105891号公報
【文献】特許第6663822号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、上記に鑑みてなされたものであって、機器に適用しながら強化学習が可能な、学習装置、学習方法、および学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
実施形態の学習装置は、取得部と、第1行動決定部と、第2行動決定部と、安全行動決定部と、選択部と、を備える。取得部は、機器の現在状態を取得する。第1行動決定部は、強化学習モデルを学習する学習機能を有し、前記現在状態と前記強化学習モデルとに基づいて前記機器の第1行動を決定する。第2行動決定部は、前記現在状態と第1ルールとに基づいて、前記機器の第2行動を決定する。安全行動決定部は、前記現在状態、前記第1行動、および安全性に関する第2ルール、に基づいて、第4行動を決定する。選択部は、前記強化学習モデルの学習の進捗に応じて、前記第1行動および前記第2行動の何れか一方を、前記機器に出力する第3行動として選択する。
【図面の簡単な説明】
【0008】
【
図7】学習装置の情報処理の流れを示すフローチャート。
【
図8】移動ロボットの情報処理の流れを示すフローチャート。
【
図13】学習装置の情報処理の流れを示すフローチャート。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して、学習装置、学習方法、および学習プログラムの実施形態を詳細に説明する。
【0010】
(第1の実施形態)
図1は、本実施形態の学習システム1の一例を示す説明図である。
【0011】
学習システム1は、学習装置10Aと、移動ロボット20と、運行管理システム30と、を備える。学習装置10と、移動ロボット20と、運行管理システム30とは、無線または有線により通信可能に接続されている。
【0012】
学習装置10Aは、学習装置10の一例である。学習装置10は、移動ロボット20の行動を強化学習により学習する情報処理装置である。
【0013】
移動ロボット20は、機器の一例である。機器とは、学習装置10によって行動を強化学習される対象の物である。行動は、動作と称される場合もある。機器は、少なくとも一部の機構が動作する移動体である。機器は、コンピュータによって制御されることで動作する。移動体は、少なくとも一部の機構が動作すればよく、移動体の本体の位置が移動する形態、移動体の本体の位置が移動せず固定された形態、の何れであってもよい。機器は、例えば、マニピュレータを有する作業ロボット、位置移動機構を有する移動ロボット、自動車、船舶、飛翔体、などである。自動車は、具体的には、自律走行する自動運転車などである。飛翔体は、例えば、ドローンなどである。
【0014】
本実施形態では、機器が移動ロボット20である形態を一例として説明する。
【0015】
移動ロボット20は、例えば、予め定められた機能を有する。
図1には、移動ロボット20が、工場や倉庫などの予め定められた領域内で自律的に移動しながら荷物などを運搬する運搬機能を有する例を示す。例えば、移動ロボット20は、出発地点Aから目的地点Bに向かって自律的に移動する。出発地点Aは、移動ロボット20の待機場所などである。目的地点Bは、運搬対象の荷物の保管場所などである。
【0016】
出発地点Aを表す出発地点情報および目的地点Bを表す目的地点情報は、例えば、運行管理システム30から移動ロボット20へ送信される。運行管理システム30は、移動ロボット20の運行を管理する情報処理装置である。
【0017】
出発地点Aから目的地点Bまでの間には、例えば、様々な障害物Cや進入禁止領域Dなどが存在する。障害物Cは、移動ロボット20の移動の障害となる物である。障害物Cは、例えば、他の移動ロボット、壁、棚、扉、人、などである。進入禁止領域Dは、移動ロボット20の侵入を禁止する領域である。移動ロボット20は、障害物Cとの衝突を回避し、且つ、進入禁止領域Dへの侵入を回避しながら、走行可能領域Eを安全に且つ効率よく移動する必要がある。
【0018】
学習装置10Aは、移動ロボット20の行動を強化学習する。本実施形態の学習装置10Aは、事前に学習するのではなく、実機である移動ロボット20を現場適用しながら移動ロボット20の行動を強化学習する。
【0019】
図2は、学習システム1の一例の機能ブロック図である。
【0020】
学習システム1は、学習装置10Aと、移動ロボット20と、運行管理システム30と、を備える。学習装置10A、移動ロボット20、および運行管理システム30は、ネットワークNなどを介して通信可能に接続されている。
【0021】
移動ロボット20は、制御部22と、通信部24と、センサ26と、記憶部28と、を備える。制御部22、通信部24、センサ26および記憶部28は、バス29などを介して通信可能に接続されている。
【0022】
制御部22は、移動ロボット20において情報処理を実行する。制御部22は、移動ロボット20の行動を制御する。通信部24は、ネットワークNなどを介して学習装置10Aおよび運行管理システム30と通信する通信インターフェースである。
【0023】
センサ26は、移動ロボット20および移動ロボット20の周辺環境を検出する。本実施形態では、センサ26は、移動ロボット20の位置情報、車速情報、加速度情報、環境情報、などを検出する。環境情報は、移動ロボット20の周囲の状態を表す情報である。環境情報は、例えば、移動ロボット20の周囲の撮影画像、移動ロボット20の周囲の障害物Cなどの物体の検出結果、などを表す情報である。
【0024】
センサ26は、移動ロボット20および移動ロボット20の周辺環境を検出可能なセンサであればよい。センサ26は、例えば、カメラ、レーダ装置、レーザーレンジファインダー、車速センサ、加速度センサなどである。
【0025】
センサ26は、移動ロボット20および移動ロボット20の周辺環境を検出可能であればよく、配置位置および配置数は限定されない。また、センサ26は、移動ロボット20の外部に搭載されていてもよい。例えば、センサ26は、移動ロボット20が移動する移動環境に設置されていてもよい。また、センサ26は、移動ロボット20および移動ロボット20の移動環境の双方に設置されていてもよい。
【0026】
制御部22は、センサ26の検出結果を学習装置10Aへ送信する。本実施形態では、制御部22は、所定時間ごとにセンサ26の検出結果を学習装置10Aへ送信する。すなわち、移動ロボット20の制御部22は、時系列に連続する検出結果を学習装置10Aへ順次送信する。
【0027】
記憶部28は、各種のデータを記憶する。記憶部28は、例えば、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子、ハードディスク、光ディスク等である。
【0028】
運行管理システム30は、移動ロボット20の運行を管理する情報処理装置である。本実施形態では、運行管理システム30は移動ロボット20へ地図情報を送信する。なお、運行管理システム30は、移動ロボット20および学習装置10Aの双方へ地図情報を送信してもよい。
【0029】
地図情報は、出発地点情報、目的地点情報、進入禁止領域情報、走行可能領域情報、障害物情報、などを含む。出発地点情報は、出発地点を表す情報である。目的地点情報は、目的地点を表す情報である。進入禁止領域情報は、進入禁止領域を表す情報である。走行可能領域情報は、移動ロボット20の走行可能な走行可能領域を表す情報である。具体的には、出発地点情報、目的地点情報、進入禁止領域情報、および走行可能領域情報は、
図1中、出発地点A、目的地点B、進入禁止領域D、および走行可能領域Eの各々を表す情報である。
【0030】
障害物情報は、障害物Cを表す情報である。本実施形態では、地図情報に含まれる障害物情報は、移動する可能性の低いまたは移動頻度の低い障害物Cを表す情報である。移動する可能性の低いまたは移動頻度の低い障害物Cは、例えば、壁、棚、扉、などである。
【0031】
学習装置10Aは、制御部40と、記憶部42と、入力部44と、表示部46と、通信部48と、を備える。制御部40、記憶部42、入力部44、表示部46、および通信部48は、バス49などを介して通信可能に接続されている。
【0032】
記憶部42は、各種のデータを記憶する。記憶部42は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、ハードディスク、光ディスク等である。なお、記憶部42は、学習装置10Aの外部に設けられた記憶装置であってもよい。また、記憶部42は、プログラムや各種の情報を、LAN(Local Area Network)やインターネットなどを介してダウンロードして記憶または一時記憶した記憶媒体であってもよい。
【0033】
入力部44は、ユーザによる各種の操作を受付ける。入力部44は、例えば、キーボードおよびマウスなどのポインティングデバイス、マイクロフォン、などである。
【0034】
表示部46は、各種の情報を表示する。表示部46は、例えば、移動ロボット20に関する設定、移動ロボット20の状態、および移動ロボット20による作業状況などを表示する。
【0035】
なお、表示部46と入力部44とを一体的に構成し、タッチパネルとして構成してもよい。また、入力部44および表示部46は、学習装置10Bとは別体として構成されていてもよい。この場合、入力部44および表示部46と、学習装置10Bとを、通信可能に接続した構成とすればよい。
【0036】
通信部48は、ネットワークNなどを介して移動ロボット20および運行管理システム30と通信する通信インターフェースである。
【0037】
なお、記憶部42および制御部40の少なくとも一方を、ネットワークNおよび通信部48を介して接続されたサーバ装置などの外部の情報処理装置に搭載した構成としてもよい。また、制御部40に含まれる後述する機能部の少なくとも1つを、ネットワークNおよび通信部48を介して制御部40に接続された、サーバ装置などの外部の情報処理装置に搭載してもよい。
【0038】
制御部40は、学習装置10Aにおいて各種の情報処理を実行する。
【0039】
制御部40は、取得部40Aと、第1行動決定部40Bと、第2行動決定部40Cと、選択部40Dと、表示制御部40Eと、送信制御部40Fと、を備える。
【0040】
取得部40A、第1行動決定部40B、第2行動決定部40C、選択部40D、表示制御部40E、および送信制御部40Fは、1つまたは複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2つ以上を実現してもよい。
【0041】
取得部40Aは、移動ロボット20の現在状態を取得する。取得部40Aは、移動ロボット20から受信したセンサ26の検出結果および運行管理システム30から受信した地図情報を用いて、移動ロボット20の現在状態を取得する。なお、取得部40Aは、移動ロボット20から地図情報を受信してもよい。
【0042】
移動ロボット20の現在状態とは、移動ロボット20の現在の状態情報である。状態情報は、移動ロボット20本体の状態情報、周辺障害物の状態情報、および地図情報を含む。
【0043】
移動ロボット20本体の状態情報とは、移動ロボット20本体の状態を表す情報である。移動ロボット20本体の状態情報は、例えば、移動ロボット20の位置情報、車速情報、加速度情報、などである。
【0044】
例えば、取得部40Aは、取得部40Aから取得した検出結果に含まれる複数のカメラの撮影画像を解析することで、移動ロボット20の位置情報を取得する。例えば、取得部40Aは、移動ロボット20の移動環境に設置された複数のセンサ26によって撮影された移動ロボット20の撮影画像を画像解析することで、移動ロボット20の位置座標を特定する。そして、取得部40Aは、特定した位置座標を、移動ロボット20の位置情報として取得する。
【0045】
また、例えば、取得部40Aは、移動ロボット20から取得した検出結果に含まれる車速情報および加速度情報を特定することで、移動ロボット20の車速情報および加速度情報を取得する。取得部40Aは、移動ロボット20の時系列の撮影画像などを解析することで、移動ロボット20の車速情報および加速度情報を取得してもよい。
【0046】
周辺障害物の状態情報とは、移動ロボット20の周辺に存在する障害物Cの状態を表す情報である。周辺障害物の状態情報は、例えば、移動ロボット20の周辺に存在する障害物Cの位置情報および速度情報を含む。取得部40Aは、カメラおよびレーダ装置などのセンサ26の検出結果を解析することで、障害物Cの位置情報および速度情報を取得する。なお、取得部40Aは、移動ロボット20に対する障害物Cの相対位置および相対速度を、障害物Cの位置情報および速度情報として取得してもよい。また、取得部40Aは、移動ロボット20の周辺の撮影画像を、周辺障害物の状態情報として取得してもよい。また、取得部40Aは、地図情報に含まれる障害物情報を特定することで、周辺障害物の状態情報を取得してもよい。
【0047】
取得部40Aは、移動ロボット20の現在状態を取得すると、取得した現在状態の報酬を算出する。報酬とは、後述する第1行動決定部40Bに設けられた強化学習モデルの学習で用いられる報酬である。
【0048】
取得部40Aは、移動ロボット20の行動の結果である現在状態の好ましさに基づいて、強化学習モデルの学習で用いる報酬を算出する。
【0049】
詳細には、取得部40Aは、移動ロボット20の行動の結果である現在状態が好ましい状態を表すほど、より大きな値の報酬を算出する。一方、取得部40Aは、移動ロボット20の行動の結果である現在状態が好ましくない状態を表すほど、より小さい値の報酬を算出する。
【0050】
好ましい状態とは、移動ロボット20が予め定められた基準に沿って行動した状態を意味する。基準は、予め定めればよい。例えば、好ましい状態は、障害物Cへの衝突を回避、進入禁止領域Dへの侵入を回避、目的地点Bへの到達、目的地点Bへの短い所要時間での到達、出発地点Aから目的地点Bまでの複数回数の往復移動、などを表す。
【0051】
取得部40Aは、取得した移動ロボット20の現在状態に基づいて、移動ロボット20の行動が好ましい状態であるか否かを判別することで、報酬を算出する。
【0052】
例えば、以下の場合、取得部40Aは、移動ロボット20の行動が好ましい状態であると判別し、より大きな値の報酬を算出する。例えば、取得部40Aが、取得した現在状態に基づいて、移動ロボット20が目的地点Bに到達したと判別した場合を想定する。この場合、取得部40Aは、大きな値の報酬を算出する。また、取得部40Aが、取得した現在状態に基づいて、出発地点Aから目的地点Bに到達するまでに要した所要時間を特定した場合を想定する。この場合、取得部40Aは、所要時間が短いほど大きな値の報酬を算出する。また、取得部40Aが、取得した現在状態に基づいて出発地点Aから目的地点Bまでの単位時間あたりの往復回数を算出した場合を想定する。この場合、取得部40Aは、往復回数が多いほど大きな値の報酬を算出する。
【0053】
また、例えば、以下の場合、取得部40Aは移動ロボット20の行動が好ましくない状態であると判別し、より小さい値、例えば、負の値の報酬を算出する。例えば、取得部40Aが、取得した現在状態に基づいて移動ロボット20が好ましくない状態にあると判別した場合を想定する。例えば、取得部40Aが、現在状態に基づいて、目的地点Bへの到達不可能、移動ロボット20の進入禁止領域Dへの侵入、移動ロボット20の障害物Cへの衝突、などを判別した場合を想定する。この場合、取得部40Aは、より小さい値の報酬を算出する。
【0054】
次に、第1行動決定部40Bについて説明する。第1行動決定部40Bは、強化学習モデルを学習する学習機能を有する。第1行動決定部40Bは、現在状態と強化学習モデルとに基づいて、移動ロボット20の第1行動を決定する。すなわち、第1行動決定部40Bは、強化学習モデルを用いた学習ベースで第1行動を決定する。
【0055】
強化学習モデルは、現在状態に基づいて第1行動を出力する機械学習モデルである。
【0056】
第1行動とは、移動ロボット20が次にとる行動を表す情報である。言い換えると、第1行動は、学習ベースで決定される行動を表す情報である。第1行動は、例えば、移動ロボット20の進行方向を示す情報である。進行方向は、例えば、右、左、直進、および停止、の何れか1つを表す。なお、第1行動は、移動ロボット20の進行方向および目標速度を表す情報であってもよい。また、第1行動は、移動ロボット20が次にとる行動を表す情報であればよく、進行方向および目標速度に限定されない。例えば、第1行動は、移動ロボット20などの機器の動作機構に応じて決定すればよい。
【0057】
第1行動決定部40Bは、取得部40Aで取得した移動ロボット20の現在状態と報酬とを用いて、より報酬の高い現在状態の得られる第1行動を出力するように、強化学習モデルを学習する。強化学習のアルゴリズムには、公知の強化学習アルゴリズムを使用すればよい。強化学習のアルゴリズムには、例えばQ-Learning、Sarsa、Actor-Critic等が用いられる。
【0058】
第1行動決定部40Bは、強化学習モデルを用いた学習ベースで決定した第1行動を、選択部40Dへ出力する。
【0059】
次に、第2行動決定部40Cについて説明する。第2行動決定部40Cは、現在状態と第1ルールとに基づいて、移動ロボット20の第2行動を決定する。すなわち、第2行動決定部40Cは、第1ルールを用いたルールベースで第2行動を決定する。
【0060】
第2行動とは、移動ロボット20が次にとる行動を表す情報である。言い換えると、第2行動は、ルールベースで決定される行動を表す情報である。第2行動は、例えば、第1行動と同様に移動ロボット20の進行方向を表す情報であってもよい。または、第1行動と同様に移動ロボット20の進行方向および目標速度などを表す情報であってもよい。
【0061】
第1ルールとは、移動ロボット20の安全性担保、および、移動ロボット20の行動に関する最低要求性能、の少なくとも一方を満たすルールである。最低要求性能とは、移動ロボット20の管理者などによって予め定められた、移動ロボット20に対する最低基準の要求性能である。
【0062】
例えば、第1ルールは、出発地点情報と目的地点情報と地図情報からA*(A-star)法などの探索アルゴリズムにより決定される経路に沿って進行することを表すルールである。また、第1ルールは、障害物Cが存在する場合には、障害物Cの手前で停止または障害物Cを避けた進行を表すルールである。なお、障害物Cの手前で停止するルールとした場合、障害物Cへの衝突は回避される。しかし、移動ロボット20が目的地点Bに到達するまでに検出される障害物Cの数が多いほど、単位時間あたりの移動ロボット20の行動効率は低下する。このため、安全性担保および最低要求性能の双方を満たすルールとなるように、第1ルールを設定することが好ましい。
【0063】
第2行動決定部40Cは、移動ロボット20の次の行動が第1ルールに沿った行動となるように、現在状態から移動ロボット20が次にとる行動である第2行動を決定する。例えば、第2行動決定部40Cは、第1ルールに沿ったIF-THENルール表現を用いた推論などによって、第2行動を決定する。
【0064】
第2行動決定部40Cは、第1ルールによるルールベースで決定した第2行動を、選択部40Dへ出力する。
【0065】
選択部40Dは、第1行動決定部40Bの強化学習モデルの学習の進捗に応じて、第1行動および第2行動の何れか一方を、移動ロボット20に出力する第3行動として選択する。
【0066】
上述したように、第1行動は、強化学習モデルを用いた学習ベースで決定された行動である。第2行動は、第1ルールによるルールベースで決定された行動である。選択部40Dは、強化学習モデルの学習の進捗に応じて学習ベースの第1行動およびルールベースの第2行動の何れか一方を第3行動として選択する。
【0067】
強化学習モデルの学習の進捗は、強化学習モデルの学習時間、強化学習モデルで学習された価値関数、の少なくとも一方によって表される。
【0068】
強化学習モデルの学習の進捗として、強化学習モデルの学習時間を用いる場合を説明する。学習時間は、例えば、強化学習モデルの試行回数または計算時間によって表される。
【0069】
選択部40Dは、強化学習モデルの学習時間に応じて、第1行動を選択する確率と第2行動を選択する確率とを変化させる。
【0070】
詳細には、選択部40Dは、学習時間が短いほど第1行動を選択する確率を低く且つ第2行動を選択する確率を高くし、学習時間が長いほど第1行動を選択する確率を高く且つ第2行動を選択する確率を低くする。すなわち、選択部40Dは、学習開始時には学習ベースの第1行動を選択する確率をルールベースの第2行動を選択する確率より小さく設定する。そして、選択部40Dは、学習ベースの第1行動を選択する確率を学習時間の経過に応じて線形に増加させる。
【0071】
図3は、第1行動を選択する確率の一例の説明図である。第1行動を選択する確率をεとし、第2行動を選択する確率を1-εとする。学習時間をtとする。
図3中の縦軸は第1行動を選択する確率を表し、横軸は学習時間を表す。
【0072】
例えば、学習開始時刻すなわちt=0の時刻に第1行動を選択する確率をε=ε0とする。最大学習時間をtmaxとし、時刻tにおける第1行動を選択する確率をε=ε0(t/tmax)とする。この場合、第2行動を選択する確率は、1-ε=ε0(1-t/tmax)となる。
【0073】
選択部40Dは、学習開始時点では、第1行動を選択する確率を小さくする。例えば、ε=ε
0=0.05とする。そして、選択部40Dは、学習時間が経過するほど、第1行動を選択する確率を高くし、第2行動を選択する確率を低くする。このため、選択部40Dによる第1行動を選択する確率εは、例えば、
図3に示す線
図50によって表される。
【0074】
このため、強化学習モデルの学習が不十分な学習初期の段階では、ルールベースで決定された第2行動が第3行動として選択される確率が高くなる。そして、強化学習モデルの学習の進捗が進行するほど、学習ベースで決定された第1行動が第3行動として選択される確率が高くなる。
【0075】
すなわち、選択部40Dは、学習の進捗に拘わらず第1行動のみまたは第2行動のみを第3行動として選択する場合に比べて、獲得できる報酬の高い行動を第3行動として選択することができる。言い換えると、選択部40Dは、強化学習モデルの学習の初期の段階から学習が十分に進行した段階の全般にわたって、移動ロボット20の行動に関する最低要求性能を満たしながら強化学習モデルを学習可能な第3行動を選択することができる。
【0076】
なお、
図3には、学習時間に対して第1行動を選択する確率を線形に変化させる形態を一例として示した。しかし、第1行動を選択する確率の変化は、線形に変化させる形態に限定されない。また、第1行動を選択する確率の変化は、ユーザによる入力部44の操作指示などによって適宜変更可能としてもよい。
【0077】
なお、選択部40Dは、強化学習モデルで学習された価値関数を、強化学習モデルの学習の進捗として用いてもよい。価値関数は、推定価値関数と称される場合がある。価値関数は、例えば、状態価値関数、行動価値関数、アドバンテージ関数、などである。
【0078】
この場合、選択部40Dは、価値関数により算出された第1行動および第2行動の各々の推定価値に応じて、第1行動および第2行動の何れか一方を第3行動として選択する。
【0079】
例えば、価値関数として行動価値関数を用いる場合について、説明する。第1行動決定部40Bにおいて、強化学習モデルは行動価値関数Qを学習する。行動価値関数Q(S,A)は状態Sにおいて行動Aを選択した場合の推定価値を算出する。
【0080】
選択部40Dは、行動価値関数Q(S,A)を用いて第1行動の推定価値を算出する。同様に、選択部40Dは、行動価値関数Q(S,A)を用いて第2行動の推定価値を算出する。そして、選択部40Dは、第1行動および第2行動の各々の推定価値に応じて、第1行動を選択する確率と第2行動を選択する確率とを変化させる。選択部40Dは、第1行動および第2行動について、推定価値が高いほど第3行動として選択する確率を高くすればよい。
【0081】
また、選択部40Dは、第1行動の推定価値と第2行動の推定価値との差が大きいほど、第1行動および第2行動の内、推定価値の大きい行動を選択する確率を高くしてもよい。
【0082】
なお、選択部40Dは、第1行動および第2行動の内、行動価値関数Q(S,A)により算出された推定価値の高い行動を、第3行動として選択してもよい。
【0083】
また、選択部40Dは、強化学習モデルの学習時間および強化学習モデルで学習された価値関数の双方を、強化学習モデルの学習の進捗として用いてもよい。
【0084】
この場合、選択部40Dは、学習時間および価値関数に基づいて、第1行動を選択する確率と第2行動を選択する確率とを変化させればよい。
【0085】
例えば、選択部40Dは、学習時間が所定時間未満である場合、学習時間が短いほど第1行動を選択する確率を低く且つ第2行動を選択する確率を高くし、学習時間が長いほど第1行動を選択する確率を高く且つ第2行動を選択する確率を低くする。そして、選択部40Dは、学習時間が所定時間以上である場合、第1行動および第2行動の内、行動価値関数Q(S,A)により算出された推定価値の高い行動を、第3行動として選択すればよい。所定時間は、予め設定すればよい。また、所定時間は、ユーザによる入力部44の操作指示などによって変更可能としてもよい。
【0086】
上記の例では、第1行動決定部40Bの強化学習モデルで1つの行動価値関数Q(S,A)を学習し、第1行動と第2行動の推定価値を算出したが、強化学習モデルは第1行動決定部40Bに関する行動価値関数Q1(S,A)と第2行動決定部40Cに関する行動価値関数Q2(S,A)をそれぞれ学習し、第1行動と第2行動の推定価値を算出してもよい。
【0087】
この場合、行動価値関数Q1(S,A)を用いて第1行動の推定価値を算出し、行動価値関数Q2(S,A)を用いて第2行動の推定価値を算出する。
【0088】
更に、第1行動決定部40Bに関する行動価値関数Q1(S,A)の学習では、強化学習モデルは第1行動と第2行動を実行した場合の学習データを用いて学習し、第1行動決定部40Bに関する行動価値関数Q2(S,A)の学習では、強化学習モデルは第2行動を実行した場合の学習データのみを用いて学習する。
【0089】
【0090】
表示制御部40Eは、各種の画像を表示部46に表示する。
【0091】
本実施形態では、表示制御部40Eは、強化学習モデルの学習の進捗、選択部40Dが第1行動を選択する確率および第2行動を選択する確率の少なくとも一方、第3行動が第1行動および第2行動の何れであるかを表す情報、選択部40Dが第1行動を選択した回数、および、選択部40Dが第2行動を選択した回数、の少なくとも1つを、表示部46に表示する。
【0092】
表示制御部40Eが表示する強化学習モデルの学習の進捗は、現在時刻における進捗である。例えば、表示制御部40Eは、強化学習モデルの学習時間、強化学習モデルの学習終了までの時間、などを現在時刻における進捗として表示する。このため、表示制御部40Eは、現在時刻における強化学習モデルの学習の進捗状況を、ユーザに対して提供することができる。
【0093】
表示制御部40Eが表示する確率は、現在時刻における、選択部40Dが第1行動を選択する確率および第2行動を選択する確率の少なくとも一方である。上述したように、選択部40Dが第1行動または第2行動を選択する確率は、学習の進捗に応じて変化する。このため、表示制御部40Eが、上記確率を表示することで、現在時刻における第1行動を選択する確率および第2行動を選択する確率の少なくとも一方を、ユーザに対して提供することができる。
【0094】
表示制御部40Eが表示する、第3行動が第1行動および第2行動の何れであるかを表す情報は、現在時刻において選択部40Dが選択した第3行動を表す情報である。このため、表示制御部40Eは、現在時刻において移動ロボット20が次にとる行動が、第1行動および第2行動の何れであるかをユーザに対して容易に確認可能に提供することができる。
【0095】
また、表示制御部40Eが、現在時刻までに第1行動を選択した回数および第2行動を選択した回数を表示部46に表示することで、ユーザに対して第1行動および第2行動の選択状況を容易に提供することができる。
【0096】
表示制御部40Eは、これらの情報を、1つの表示画面に表示してもよいし、異なる複数の表示画面に表示してもよい。また、表示制御部40Eは、これらの情報の全てを、同じタイミングで表示画面に表示してもよいし、少なくとも1つの情報を他の情報とは異なるタイミングで表示画面に表示してもよい。
【0097】
図4~
図6は、表示画面70の一例を示す模式図である。
【0098】
図4は、表示画面60の一例を示す模式図である。表示画面60は、表示画面70の一例である。
【0099】
表示画面60は、強化学習モデルの学習の進捗を表す画像60Aと、第1行動を選択する確率60Bと、第1行動を選択した回数60Cと、第2行動を選択した回数60Dと、を含む。
図4には、強化学習モデルの学習の進捗を表す画像60Aとして、強化学習モデルの学習終了までの時刻を一例として示す。
【0100】
表示制御部40Eは、選択部40Dが選択した第3行動、第3行動の選択時に用いた第1行動を選択する確率ε、第3行動の選択に用いた第1行動、第2行動、および進捗を用いて、表示画面60を生成し表示すればよい。
【0101】
図5は、表示画面62の一例を示す模式図である。表示画面62は、表示画面70の一例である。
【0102】
表示画面62は、第3行動が第1行動および第2行動の何れであるかを表す情報を含む。例えば、移動ロボット20の行動候補が、進行方向である“直進”、“右”、“左”、および“停止”、である場合を想定する。そして、選択部40Dによって第1行動が第3行動として選択され、選択された第1行動が進行方向“直進”を表す場合を想定する。
【0103】
この場合、例えば、表示制御部40Eは、第1行動である学習ベースの行動を表す情報62C、および、第2行動であるルールベースの行動を表す情報62Dを表示する。そして、表示制御部40Eは、情報62Cの選択アイコンの色を有色表示し、情報62Dの選択アイコンの色を無色表示とする。情報62Cの選択アイコンを有色表示することで、表示制御部40Eは、第1行動が第3行動として選択された状態であることを表示する。
【0104】
また、例えば、表示制御部40Eは、移動ロボット20を表すアイコン画像62Bの周囲に、移動ロボット20の行動候補を表す画像を表示する。そして、表示制御部40Eは、選択された“直進”を表す画像を他の行動候補とは異なる色または明るさで表示する。例えば、表示制御部40Eは、“直進”を表す画像を点灯し、他の行動候補を表す画像を非点灯とする。“直進”を表す画像を点灯することで、表示制御部40Eは、第1行動である進行方向“直進”が第3行動として選択された状態であることを表示する。
【0105】
図6は、表示画面64の一例を示す模式図である。表示画面64は、表示画面70の一例である。
【0106】
表示画面64は、第3行動が第1行動および第2行動の何れであるかを表す情報を含む。例えば、移動ロボット20の行動候補が、進行方向である“直進”、“右”、“左”、および“停止”、である場合を想定する。そして、選択部40Dによって第2行動が第3行動として選択され、選択された第2行動が進行方向“左”を表す場合を想定する。
【0107】
この場合、例えば、表示制御部40Eは、第1行動である学習ベースの行動を表す情報64C、および、第2行動であるルールベースの行動を表す情報64Dを表示する。そして、表示制御部40Eは、情報64Dの選択アイコンの色を有色表示し、情報64Cの選択アイコンの色を無色表示とする。情報64Dの選択アイコンを有色表示することで、表示制御部40Eは、第2行動が第3行動として選択された状態であることを表示する。
【0108】
また、例えば、表示制御部40Eは、移動ロボット20を表すアイコン画像64Bの周囲に、移動ロボット20の行動候補を表す画像を表示する。そして、表示制御部40Eは、選択された“左”を表す画像を他の行動候補とは異なる色または明るさで表示する。例えば、表示制御部40Eは、“左”を表す画像を点灯し、他の行動候補を表す画像を非点灯とする。“左”を表す画像を点灯することで、表示制御部40Eは、第2行動である進行方向“左”が第3行動として選択された状態であることを表示する。
【0109】
表示制御部40Eが、これらの表示画面70を表示部46に表示することで、ユーザに対して学習の進捗状況などの各種の情報を分かりやすく提供することができる。このため、ユーザは表示画面70を確認することで、移動ロボット20の行動に関する強化学習モデルの学習が途中であるか完了しているかを容易に把握することができる。
【0110】
【0111】
送信制御部40Fは、選択部40Dで選択された第3行動を、通信部48を介して移動ロボット20へ送信する。
【0112】
移動ロボット20の制御部22は、通信部24を介して運行管理システム30から地図情報を受信する。制御部22は、地図情報に含まれる出発地点情報によって表される出発地点Aから、地図情報に含まれる目的地点情報によって表される目的地点Bへ向かって移動する行動を開始するように、移動ロボット20の駆動部を制御する。この処理により、移動ロボット20は、行動を開始する。
【0113】
移動ロボット20の制御部22は、行動を開始すると、センサ26の検出結果を学習装置10Aへ送信する。制御部22は、センサ26の検出結果を所定間隔で順次学習装置10Aへ送信する。制御部22は、送信した検出結果に対する応答として、学習装置10Aから第3行動を受信する。制御部22は、受信した第3行動に応じた行動を実行するように、移動ロボット20の駆動部を制御する。
【0114】
このため、移動ロボット20は、学習装置10Aで決定された第3行動を実行する。すなわち、移動ロボット20は、学習装置10Aから順次送信される第3行動に沿って行動することで、出発地点Aから目的地点Bへ向かって移動することができる。
【0115】
次に、本実施形態の学習装置10Aの情報処理の流れの一例を説明する。
【0116】
図7は、本実施形態の学習装置10Aが実行する情報処理の流れの一例を示すフローチャートである。
【0117】
取得部40Aが、移動ロボット20の現在状態を取得する(ステップS100)。取得部40Aは、移動ロボット20から受信したセンサ26の検出結果および運行管理システム30から受信した地図情報を用いて、移動ロボット20の現在状態を取得する。
【0118】
次に、取得部40Aは、ステップS100で取得した現在状態の報酬を算出する(ステップS102)。
【0119】
第1行動決定部40Bは、ステップS100で取得した現在状態およびステップS102で算出された報酬を用いて、より報酬の高い現在状態の得られる第1行動を出力するように、強化学習モデルを強化学習する(ステップS104)。
【0120】
第1行動決定部40Bは、第1行動を決定する(ステップS106)。第1行動決定部40Bは、ステップS104で強化学習した強化学習モデルへステップS100で取得した現在状態を入力することで、強化学習モデルからの出力として第1行動を決定する。
【0121】
第2行動決定部40Cは、第2行動を決定する(ステップS108)。第2行動決定部40Cは、ステップS100で取得した現在状態と第1ルールとに基づいて、移動ロボット20の第2行動を決定する。
【0122】
次に、選択部40Dは、第1行動決定部40Bの強化学習モデルの学習の進捗を特定する(ステップS110)。例えば、選択部40Dは、強化学習モデルの学習時間を学習の進捗として特定する。なお、上述したように、選択部40Dは、強化学習モデルで学習された価値関数、または、学習時間および価値関数を、学習の進捗として特定してもよい。
【0123】
選択部40Dは、ステップS110で特定した学習の進捗に応じて、ステップS106で決定された第1行動およびステップS108で決定された第2行動の一方を、第3行動として選択する(ステップS112)。
【0124】
送信制御部40Fは、ステップS112で選択された第3行動を移動ロボット20へ送信する(ステップS114)。
【0125】
表示制御部40Eは表示画面70を表示部46に表示する(ステップS116)。なお、表示画面70を表示部46に表示するタイミングは、このタイミングに限定されない。例えば、表示制御部40Eは、ステップS100の処理開始前に表示画面70の表示部46への表示を開始し、制御部40による処理状況に応じて表示画面70の表示内容を更新してもよい。
【0126】
制御部40は、処理を終了するか否かを判断する(ステップS118)。例えば、制御部40は、ユーザによる入力部44の操作指示などにより処理終了を示す信号が入力されたか否かを判別することで、ステップS118の判断を行う。ステップS118で否定判断すると(ステップS118:No)、上記ステップS100へ戻る。ステップS118で肯定判断すると(ステップS118:Yes)、本ルーチンを終了する。
【0127】
次に、本実施形態の移動ロボット20の情報処理の流れの一例を説明する。
【0128】
図8は、本実施形態の移動ロボット20が実行する情報処理の流れの一例を示すフローチャートである。
【0129】
移動ロボット20の制御部22は、通信部24を介して運行管理システム30から地図情報を取得する(ステップS200)。制御部22は、地図情報に含まれる出発地点情報によって表される出発地点Aから、地図情報に含まれる目的地点情報によって表される目的地点Bへ向かって移動する行動を開始するように、移動ロボット20の駆動部を制御する。この処理により、移動ロボット20は、行動を開始する(ステップS202)。
【0130】
制御部22は、センサ26の検出結果を学習装置10Aへ送信する(ステップS204)。
【0131】
制御部22は、ステップS204で送信した検出結果に対する応答として、学習装置10Aから第3行動を受信する(ステップS206)。制御部22は、受信した第3行動に応じた行動を実行するように、移動ロボット20の駆動部を制御する。このため、移動ロボット20は、学習装置10Aで決定された第3行動を実行する(ステップS208)。
【0132】
制御部22は、処理を終了するか否かを判断する(ステップS210)。例えば、制御部22は、ユーザによる操作指示などによって処理終了信号が入力されたか否かを判別することで、処理を終了するか否かを判断する(ステップS210)。ステップS210で否定判断すると(ステップS210:No)、ステップS204へ戻る。一方、ステップS210で肯定判断すると(ステップS210:Yes)、本ルーチンを終了する。
【0133】
以上説明したように、本実施形態の学習装置10Aは、取得部40Aと、第1行動決定部40Bと、第2行動決定部40Cと、選択部40Dと、を備える。取得部40Aは、機器である移動ロボット20の現在状態を取得する。第1行動決定部40Bは、強化学習モデルを学習する学習機能を有し、現在状態と強化学習モデルとに基づいて移動ロボット20の第1行動を決定する。第2行動決定部40Cは、現在状態と第1ルールとに基づいて、移動ロボット20の第2行動を決定する。選択部40Dは、強化学習モデルの学習の進捗に応じて、第1行動および第2行動の何れか一方を、移動ロボット20に出力する第3行動として選択する。
【0134】
第1行動は、強化学習モデルを用いた学習ベースで決定された行動である。第2行動は、第1ルールのルールベースで決定された行動である。選択部40Dは、強化学習モデルの学習の進捗に応じて第1行動および第2行動の何れか一方を第3行動として選択する。
【0135】
このため、選択部40Dは、強化学習モデルの学習が不十分な学習初期の段階ではルールベースで決定された第2行動を第3行動として選択し、強化学習モデルの学習の進捗が進行するほど、学習ベースで決定された第1行動を第3行動として選択する確率を高くすることができる。
【0136】
すなわち、選択部40Dは、学習の進捗に拘わらず第1行動のみまたは第2行動のみを第3行動として選択する場合に比べて、獲得できる報酬の高い行動を第3行動として選択することができる。言い換えると、選択部40Dは、強化学習モデルの学習の初期の段階から学習が十分に進行した段階の全般にわたって、移動ロボット20の行動に関する最低要求性能を満たしながら強化学習モデルを学習可能な第3行動を選択することができる。
【0137】
【0138】
図9中、縦軸は報酬を表し、横軸は学習時間を表す。
図9中、P1は、移動ロボット20の最低要求性能を満たす報酬を表す。P2は、移動ロボット20の最適要求性能を満たす報酬を表す。線
図52は、本実施形態の強化学習方法による報酬曲線を表す線図である。線
図520は、従来の強化学習方法による報酬曲線を表す線図である。
【0139】
図9に示すように、従来の強化学習方法では、特に学習初期においてランダムな行動選択をする。このため、移動ロボット20が目的地点Bに到達することができず、報酬を獲得できない。また、従来の強化学習方法では、最適要求性能を満たす報酬P2に達するまで時間を要する。また、従来技術では、強化学習モデルの学習が不十分な学習初期の段階で、学習ベースで決定された行動を移動ロボット20が実行すると、移動ロボット20が意図せぬ状態に陥り、強化学習中に事故や故障が発生する場合があった。
【0140】
このため、従来技術では、実機である移動ロボット20などの機器に適用しながら強化学習を行うことは、要求性能の実現および安全性確保の観点から困難であった。
【0141】
一方、本実施形態の学習装置10Aでは、強化学習モデルの学習の進捗に応じて第1行動および第2行動の何れか一方を第3行動として選択する。このため、本実施形態の学習装置10Aでは、強化学習モデルの強化学習が不十分な学習初期の段階ではルールベースで決定された第2行動を第3行動として選択し、強化学習モデルの学習の進捗が進行するほど、学習ベースで決定された第1行動を第3行動として選択する確率を高くすることができる。よって、本実施形態の学習装置10Aは、学習初期の段階から学習の進捗が進捗した段階の全ての段階にわたって、最低要求性能を満たしながら学習データを収集しつつ移動ロボット20を行動させることができる。
【0142】
このため、本実施形態の学習装置10Aは、実機である移動ロボット20で運用しながら強化学習モデルを学習することができる。
【0143】
従って、本実施形態の学習装置10Aは、機器に適用しながら強化学習を行うことができる。
【0144】
(第2の実施形態)
本実施形態では、上記実施形態に加えて、安全に関するルールに基づいて行動を決定する安全行動決定部を更に備えた構成を説明する。
【0145】
なお、本実施形態において上記実施形態と同様の機能および構成の部分には、同じ符号を付与して詳細な説明を省略する。
【0146】
図10は、本実施形態の学習システム1Bの一例の機能ブロック図である。
【0147】
学習システム1は、学習装置10Bと、移動ロボット20と、運行管理システム30と、を備える。学習装置10B、移動ロボット20、および運行管理システム30は、ネットワークNなどを介して通信可能に接続されている。移動ロボット20および運行管理システム30は上記実施形態と同様である。
【0148】
学習装置10Bは、学習装置10の一例である。学習装置10Bは、制御部41と、記憶部42と、入力部44と、表示部46と、通信部48と、を備える。制御部41、記憶部42、入力部44、表示部46、および通信部48は、バス49などを介して通信可能に接続されている。学習装置10Bは、制御部40に替えて制御部41を備える点以外は、上記実施形態の学習装置10Aと同様である。
【0149】
制御部41は、学習装置10Bにおいて各種の情報処理を実行する。
【0150】
制御部41は、取得部40Aと、第1行動決定部40Bと、第2行動決定部40Cと、安全行動決定部41Gと、選択部41Dと、表示制御部41Eと、送信制御部40Fと、を備える。取得部40A、第1行動決定部40B、第2行動決定部40C、および送信制御部40Fは、上記実施形態と同様である。すなわち、制御部41は、選択部40Dおよび表示制御部40Eに替えて選択部41Dおよび表示制御部41Eを備え、安全行動決定部41Gを更に備える点以外は、上記実施形態の制御部40と同様である。
【0151】
上記実施形態で説明したように、第1行動決定部40Bは、強化学習モデルを用いた学習ベースで第1行動を決定する。第1行動は、学習ベースの行動であるため、現状状態に応じた安全性を考慮した行動ではない。このため、第1行動が安全な行動であるとは限らない。選択部41Dがルールベースの第2行動を第3行動として選択した場合には、移動ロボット20の安全性が担保される。しかし、選択部41Dが学習ベースの第1行動を選択した場合には、移動ロボット20の安全性が担保されない場合があり、移動ロボット20が危険な状態に陥る可能性がある。
【0152】
そこで、本実施形態の学習装置10Bは、安全行動決定部41Gを更に備える。
【0153】
安全行動決定部41Gは、取得部40Aで取得した現在状態、第1行動決定部40Bで決定された第1行動、および安全性に関する第2ルール、に基づいて、第4行動を決定する。
【0154】
第2ルールとは、移動ロボット20の安全性担保を満たすルールである。第2ルールは、例えば、障害物Cの手前で停止または障害物Cを避けた進行を表すルールである。
【0155】
安全行動決定部41Gは、移動ロボット20の次の行動が第2ルールに沿った行動となるように、第1行動から第4行動を決定する。
【0156】
詳細には、安全行動決定部41Gは、取得部40Aで取得した現在状態および第2ルールに基づいて前記第1行動の安全性を判定する。例えば、安全行動決定部41Gは、第2ルールに沿ったIF-THENルール表現を用いた推論などによって、第1行動の安全性を判定する。
【0157】
具体的には、例えば、安全行動決定部41Gは、以下の第2ルールに沿って第1行動の安全性を判定する。
【0158】
例えば、安全行動決定部41Gは、現在状態で第1行動を移動ロボット20が実行した場合、移動ロボット20が進入禁止領域Dに侵入する進入可能性を計算する。進入可能性の計算結果が第1閾値より低い場合、安全行動決定部41Gは、第1行動は安全であると判定する。一方、進入可能性の計算結果が第1閾値以上である場合、安全行動決定部41Gは、第1行動は安全ではないと判定する。第1閾値は予め定めればよい。また、第1閾値は、ユーザによる入力部44の操作指示などによって変更可能としてもよい。
【0159】
また、例えば、安全行動決定部41Gは、現在状態で第1行動を移動ロボット20が実行した場合、移動ロボット20が障害物Cに衝突する衝突可能性を計算する。衝突可能性の計算結果が第2閾値より低い場合、安全行動決定部41Gは、第1行動は安全であると判定する。一方、衝突可能性の計算結果が第2閾値以上である場合、安全行動決定部41Gは、第1行動は安全ではないと判定する。第2閾値は予め定めればよい。また、第2閾値は、ユーザによる入力部44の操作指示などによって変更可能としてもよい。
【0160】
そして、安全行動決定部41Gは、第1行動を安全であると判定した場合、第1行動を第4行動として決定する。
【0161】
一方、第1行動を安全ではないと判定した場合、安全行動決定部41Gは、第1行動を安全な行動に修正した第4行動を決定する。この場合、安全行動決定部41Gは、第1行動を第2ルールに沿って安全な行動に修正すればよい。
【0162】
例えば、安全行動決定部41Gは、予め安全性の高い安全行動を決定しておく。例えば、安全行動決定部41Gは、進行方向「停止」を表す情報を、安全行動として予め決定する。そして、安全行動決定部41Gは、第1行動を安全でないと判定した場合、第1行動を予め決定した安全行動に置き換え、第4行動として決定する。
【0163】
そして、安全行動決定部41Gは、決定した第4行動を、選択部41Dへ出力する。
【0164】
なお、安全行動決定部41Gは、第1行動を安全ではない判定した場合、該第1行動と負の報酬とを対応付けて強化学習モデルの学習データとして出力してもよい。例えば、安全行動決定部41Gは、第1行動と負の報酬とを対応付けて、学習データとして記憶部42へ記憶する。また、安全行動決定部41Gは、第1行動と負の報酬とを対応付けた学習データを、第1行動決定部40Bへ直接出力してもよい。この場合、第1行動決定部40Bは、学習データを用いて、強化学習モデルの強化学習を更に行えばよい。
【0165】
この場合、制御部41は、強化学習モデルの学習データを効率よく収集することができる。
【0166】
選択部41Dは、第1行動決定部40Bの強化学習モデルの学習の進捗に応じて、第1行動から決定された第4行動および第2行動の何れか一方を、移動ロボット20に出力する第3行動として選択する。選択部41Dは、第1行動に替えて、安全行動決定部41Gから受付けた第4行動を用いる点以外は、選択部40Dと同様である。
【0167】
表示制御部41Eは、各種の画像を表示部46に表示する。
【0168】
表示制御部41Eは、上記実施形態の表示制御部40Eと同様に、強化学習モデルの学習の進捗、選択部40Dが第1行動を選択する確率および第2行動を選択する確率の少なくとも一方、第3行動が第4行動および第2行動の何れであるかを表す情報、選択部41Dが第4行動を選択した回数、および、選択部41Dが第2行動を選択した回数、の少なくとも1つを、表示部46に表示する。
【0169】
本実施形態の表示制御部41Eは、安全行動決定部41Gによる第1行動の安全性の判定結果を更に表示部46へ表示してよい。
【0170】
図11は、表示画面66の一例を示す模式図である。表示画面66は、表示画面70の一例である。
【0171】
表示画面66は、第3行動が第4行動および第2行動の何れであるかを表す情報を含む。例えば、移動ロボット20の行動候補が、進行方向である“直進”、“右”、“左”、および“停止”、である場合を想定する。また、第1行動が“直進”であり、安全行動決定部41Gで第1行動“直進”が安全と判定されて該第1行動が第4行動として決定された場合を想定する。そして、選択部40Dによって第4行動が第3行動として選択され、選択された第4行動が“直進”を表す場合を想定する。
【0172】
この場合、例えば、表示制御部41Eは、第4行動である学習ベースの行動を表す情報66C、および、第2行動であるルールベースの行動を表す情報66Dを表示する。そして、表示制御部41Eは、情報66Cの選択アイコンの色を有色表示し、情報66Dの選択アイコンの色を無色表示とする。情報66Cの選択アイコンを有色表示することで、表示制御部41Eは、第4行動が第3行動として選択された状態であることを表示する。
【0173】
また、例えば、表示制御部41Eは、移動ロボット20を表すアイコン画像66Bの周囲に、移動ロボット20の行動候補を表す画像を表示する。そして、表示制御部41Eは、選択された“直進”を表す画像を他の行動候補とは異なる色または明るさで表示する。例えば、表示制御部41Eは、“直進”を表す画像を点灯し、他の行動候補を表す画像を非点灯とする。“直進”を表す画像を点灯することで、表示制御部41Eは、第4行動である進行方向“直進”が第3行動として選択された状態であることを表示する。
【0174】
さらに、表示制御部41Eは、第1行動の安全性の判定結果66Eを更に表示する。
図11には、判定結果66Eとして、第1行動が安全であることを示す情報を表示する形態を示す。また、
図11には、判定結果66Eとして、現在選択されている第3行動が学習ベースの行動である第1行動に応じた行動である“直進”を表す情報を更に表示する形態を示す。なお、現在選択されている第3行動と安全性の判定結果の表示領域は、異なる領域であってよい。
【0175】
図12は、表示画面68の一例を示す模式図である。表示画面68は、表示画面70の一例である。
【0176】
表示画面68は、第3行動が第4行動および第2行動の何れであるかを表す情報を含む。例えば、移動ロボット20の行動候補が、進行方向である“直進”、“右”、“左”、および“停止”、である場合を想定する。また、第1行動が“右”であり、安全行動決定部41Gで第1行動“右”が安全ではない、すなわち危険と判定された場合を想定する。そして、安全行動決定部41Gによって、該第1行動である“右”を安全な“直進”に修正した第4行動を決定された場合を想定する。そして、選択部40Dによって第4行動が第3行動として選択され、選択された第4行動が“直進”を表す場合を想定する。
【0177】
この場合、例えば、表示制御部41Eは、第4行動である学習ベースの行動を表す情報68C、および、第2行動であるルールベースの行動を表す情報68Dを表示する。そして、表示制御部41Eは、情報68Cの選択アイコンの色を有色表示し、情報68Dの選択アイコンの色を無色表示とする。情報68Cの選択アイコンを有色表示することで、表示制御部41Eは、第4行動が第3行動として選択された状態であることを表示する。
【0178】
また、例えば、表示制御部41Eは、移動ロボット20を表すアイコン画像68Bの周囲に、移動ロボット20の行動候補を表す画像を表示する。そして、表示制御部41Eは、選択された“直進”を表す画像を他の行動候補とは異なる色または明るさで表示する。例えば、表示制御部41Eは、“直進”を表す画像を点灯し、他の行動候補を表す画像を非点灯とする。“直進”を表す画像を点灯することで、表示制御部41Eは、第4行動である進行方向“直進”が第3行動として選択された状態であることを表示する。
【0179】
さらに、表示制御部41Eは、第1行動の安全性の判定結果68Eを更に表示する。
図12には、判定結果68Eとして、第1行動が安全ではない、すなわち危険であることを示す情報を表示する形態を示す。また、
図12には、判定結果68Eとして、現在選択されている第3行動が学習ベースの行動である第1行動“右”を“直進”に修正した行動であることを表す情報を更に表示する形態を示す。なお、現在選択されている第3行動と安全性の判定結果の表示領域は、異なる領域であってよい。
【0180】
表示制御部41Eが、安全行動決定部41Gによる第1行動の安全性の判定結果を更に表示部46に表示することで、選択された第3行動が第1行動をそのまま用いたものか、第1行動を修正した第4行動であるかを、ユーザに対して分かりやすく提供することができる。
【0181】
次に、本実施形態の学習装置10Bの情報処理の流れの一例を説明する。
【0182】
図13は、本実施形態の学習装置10Bが実行する情報処理の流れの一例を示すフローチャートである。
【0183】
取得部40Aが、移動ロボット20の現在状態を取得する(ステップS300)。取得部40Aは、移動ロボット20から受信したセンサ26の検出結果および運行管理システム30から受信した地図情報を用いて、移動ロボット20の現在状態を取得する。
【0184】
次に、取得部40Aは、ステップS300で取得した現在状態の報酬を算出する(ステップS302)。
【0185】
第1行動決定部40Bは、ステップS300で取得した現在状態およびステップS302で算出された報酬を用いて、より報酬の高い現在状態の得られる第1行動を出力するように、強化学習モデルを強化学習する(ステップS304)。
【0186】
第1行動決定部40Bは、第1行動を決定する(ステップS306)。第1行動決定部40Bは、ステップS304で強化学習した強化学習モデルへステップS300で取得した現在状態を入力することで、強化学習モデルからの出力として第1行動を決定する。
【0187】
安全行動決定部41Gは、ステップS306で決定された第1行動の安全性を判定する(ステップS308)。安全行動決定部41Gは、第2ルールおよびステップS300で取得した現在状態を用いて、第1行動の安定性を判定する。
【0188】
第1行動を安全と判定すると(ステップS310:Yes)、ステップS312へ進む。ステップS312では、安全行動決定部41Gは、ステップS306で決定された第1行動を第4行動として決定する。そして、後述するステップS316へ進む。
【0189】
一方、第1行動を安全ではないと判定すると(ステップS310:No)、ステップS314へ進む。ステップS314では、安全行動決定部41Gは、ステップS306で決定した第1行動を安全な行動に修正した第4行動を決定する(ステップS314)。そして、ステップS316へ進む。
【0190】
ステップS316では、第2行動決定部40Cが、第2行動を決定する(ステップS316)。第2行動決定部40Cは、ステップS300で取得した現在状態と第1ルールとに基づいて、移動ロボット20の第2行動を決定する。
【0191】
選択部41Dは、第1行動決定部40Bの強化学習モデルの学習の進捗を特定する(ステップS318)。例えば、選択部41Dは、強化学習モデルの学習時間を学習の進捗として特定する。なお、上述したように、選択部41Dは、強化学習モデルで学習された価値関数、または、学習時間および価値関数を、学習の進捗として特定してもよい。
【0192】
選択部41Dは、ステップS318で特定した学習の進捗に応じて、ステップS312またはステップS314で決定された第4行動およびステップS316で決定された第2行動の一方を、第3行動として選択する(ステップS320)。
【0193】
送信制御部40Fは、ステップS320で選択された第3行動を移動ロボット20へ送信する(ステップS322)。
【0194】
表示制御部41Eは表示画面70を表示部46に表示する(ステップS324)。なお、表示画面70を表示部46に表示するタイミングは、このタイミングに限定されない。例えば、表示制御部41Eは、ステップS300の処理開始前に表示画面70の表示部46への表示を開始し、制御部41による処理状況に応じて表示画面70の表示内容を更新してもよい。
【0195】
制御部41は、処理を終了するか否かを判断する(ステップS326)。例えば、制御部41は、ユーザによる入力部44の操作指示などにより処理終了を示す信号が入力されたか否かを判別することで、ステップS326の判断を行う。ステップS326で否定判断すると(ステップS326:No)、上記ステップS300へ戻る。ステップS326で肯定判断すると(ステップS326:Yes)、本ルーチンを終了する。
【0196】
以上説明したように、本実施形態の学習装置10Bでは、安全行動決定部41Gが、現在状態、第1行動、および安全性に関する第2ルール、に基づいて、第4行動を決定する。選択部41Dは、進捗に応じて、第1行動から決定された第4行動および第2行動の何れか一方を第3行動として選択する。
【0197】
上記実施形態で説明したように、第1行動決定部40Bは、強化学習モデルを用いた学習ベースで第1行動を決定する。第1行動は、学習ベースの行動であるため、現状状態に応じた安全性を考慮した行動ではない。このため、第1行動が安全な行動であるとは限らない。選択部41Dがルールベースの第2行動を第3行動として選択した場合には、移動ロボット20の安全性が担保される。しかし、選択部41Dが学習ベースの第1行動を選択した場合には、移動ロボット20の安全性が担保されない場合があり、移動ロボット20が危険な状態に陥る可能性がある。
【0198】
そこで、本実施形態の学習装置10Bは、安全行動決定部41Gは、取得部40Aで取得した現在状態、第1行動決定部40Bで決定された第1行動、および安全性に関する第2ルール、に基づいて、第4行動を決定する。そして、選択部41Dは、進捗に応じて、第1行動から決定された第4行動および第2行動の何れか一方を第3行動として選択する。
【0199】
このため、本実施形態の学習装置10Bは、上記実施形態の効果に加えて、第3行動の安全性を担保することができる。
【0200】
次に、上記実施形態の学習装置10(学習装置10A、学習装置10B)、移動ロボット20、および運行管理システム30のハードウェア構成の一例を説明する。
【0201】
図14は、上記実施形態の学習装置10、移動ロボット20、および運行管理システム30の一例のハードウェア構成図である。
【0202】
上記実施形態の学習装置10、移動ロボット20、および運行管理システム30は、CPU(Central Processing Unit)86、ROM(Read Only Memory)88、RAM(Random Access Memory)90、およびI/F92等がバス94により相互に接続されており、通常のコンピュータを利用したハードウェア構成となっている。
【0203】
CPU86は、上記実施形態の学習装置10、移動ロボット20、および運行管理システム30を制御する演算装置である。ROM88は、CPU86による情報処理を実現するプログラム等を記憶する。RAM90は、CPU86による各種処理に必要なデータを記憶する。I/F82は、記憶部42、入力部44、表示部46、通信部48、通信部24、センサ26、および記憶部28などに接続し、データを送受信するためのインターフェースである。
【0204】
上記実施形態の学習装置10、移動ロボット20、および運行管理システム30では、CPU86が、ROM88からプログラムをRAM90上に読み出して実行することにより、上記各機能がコンピュータ上で実現される。
【0205】
なお、上記実施形態の学習装置10、移動ロボット20、および運行管理システム30で実行される上記各処理を実行するためのプログラムは、HDD(ハードディスクドライブ)に記憶されていてもよい。また、上記実施形態の学習装置10、移動ロボット20、および運行管理システム30で実行される上記各処理を実行するためのプログラムは、ROM88に予め組み込まれて提供されていてもよい。
【0206】
また、上記実施形態の学習装置10、移動ロボット20、および運行管理システム30で実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、CD-R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施形態の学習装置10、移動ロボット20、および運行管理システム30で実行される上記情報処理を実行するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態の学習装置10、移動ロボット20、および運行管理システム30で実行される上記情報処理を実行するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【0207】
なお、上記には、実施形態を説明したが、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0208】
10、10A、10B 学習装置
20 移動ロボット
40A 取得部
40B 第1行動決定部
40C 第2行動決定部
40D、41D 選択部
40E、41E 表示制御部
40F 送信制御部
41G 安全行動決定部