IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特許7601159モデル生成装置、経路探索装置、モデル生成方法、及びモデル生成プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】モデル生成装置、経路探索装置、モデル生成方法、及びモデル生成プログラム
(51)【国際特許分類】
   G01C 21/34 20060101AFI20241210BHJP
   G08G 1/0969 20060101ALI20241210BHJP
   G05D 1/43 20240101ALI20241210BHJP
   G06N 3/084 20230101ALI20241210BHJP
   G06N 99/00 20190101ALI20241210BHJP
【FI】
G01C21/34
G08G1/0969
G05D1/43
G06N3/084
G06N99/00 180
【請求項の数】 14
(21)【出願番号】P 2023128769
(22)【出願日】2023-08-07
(62)【分割の表示】P 2020129409の分割
【原出願日】2020-07-30
(65)【公開番号】P2023164805
(43)【公開日】2023-11-14
【審査請求日】2023-09-05
【新規性喪失の例外の表示】特許法第30条第2項適用 ウェブサイトの掲載日 令和2年7月28日 ウェブサイトのアドレス https://sites.google.com/view/miru2020/extended-abstracts http://www.imageforum.org/MIRU2020EA/MIRU2020EA.zip http://www.ieice.org/▲~▼prmu/jpn/miru/MIRU2020/ea/MIRU2020EA.zip 米谷 竜、バレカテイン モハマダミン、谷合 竜典、及び西村 真衣は、第23回画像の認識・理解シンポジウム(MIRU2020)のウェブサイトに掲載された講演予稿集にて、米谷竜の発明した、ニューラルネットワークを用いた効率的なコスト最小の経路探索方法の内容について発表した。
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】米谷 竜
【審査官】宮地 将斗
(56)【参考文献】
【文献】特開2020-046652(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/34
G08G 1/0969
G05D 1/43
G06N 3/084
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
訓練マップ、及び前記訓練マップにおける推奨経路を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、
前記複数の学習データセットを使用して、探索モジュールの機械学習を実施する学習処理部であって、
前記探索モジュールは、
入力マップに含まれる複数のノードそれぞれのコストを推定するように構成されるニューラルネットワーク、
経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算、及び
前記ニューラルネットワークの推定結果に基づいて、コストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算、を含み、
前記探索モジュールは、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、前記抽出する演算及び選択する演算を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成され、
前記機械学習は、前記各学習データセットについて、前記訓練マップを前記入力マップとして与えることで前記探索モジュールにより探索される経路が前記正解情報により示される推奨経路に適合するように前記探索モジュールを訓練することにより構成され、
前記機械学習の間、順伝播のフェーズでは、前記抽出する演算及び前記選択する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算及び前記選択する演算それぞれを微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算及び前記選択する演算それぞれの微分計算に対応する近似勾配を算出する、
学習処理部と、
を備える、
モデル生成装置。
【請求項2】
前記選択する演算は、前記ニューラルネットワークの推定結果に基づいて、所定の探索アルゴリズムによりコストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択するように構成される、
請求項1に記載のモデル生成装置。
【請求項3】
前記所定の探索アルゴリズムは、ダイクストラ法、最良優先探索法、又はA探索アルゴリズムである、
請求項2に記載のモデル生成装置。
【請求項4】
前記訓練マップは、移動体の移動を許容する範囲を含み、
前記正解情報により示される前記推奨経路は、前記移動体が移動するのに推奨される経路である、
請求項1から3のいずれか1項に記載のモデル生成装置。
【請求項5】
前記訓練マップは、ロボット装置の駆動を許容する範囲を含み、
前記正解情報により示される前記推奨経路は、前記ロボット装置が動作するのに推奨される経路である、
請求項1から3のいずれか1項に記載のモデル生成装置。
【請求項6】
前記推奨経路は、最短経路である、
請求項1から5のいずれか1項に記載のモデル生成装置。
【請求項7】
前記訓練マップは、画像により構成され、
前記ノードは、画素により構成される、
請求項1から6のいずれか1項に記載のモデル生成装置。
【請求項8】
前記画像は、実画像又はバイナリ画像により構成される、
請求項7に記載のモデル生成装置。
【請求項9】
対象マップを取得するマップ取得部と、
訓練済みの探索モジュールを使用して、取得された前記対象マップにおける開始ノードから目標ノードまでの経路を探索する探索部であって、
前記訓練済みの探索モジュールは、訓練マップ、及び前記訓練マップにおける推奨経路を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを使用した機械学習により生成されたものであり、
前記探索モジュールは、
入力マップに含まれる複数のノードそれぞれのコストを推定するように構成されるニューラルネットワーク、
経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算、及び
前記ニューラルネットワークの推定結果に基づいて、コストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算、を含み、
前記探索モジュールは、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、前記抽出する演算及び選択する演算を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成され、
前記機械学習は、前記各学習データセットについて、前記訓練マップを前記入力マップとして与えることで前記探索モジュールにより探索される経路が前記正解情報により示される推奨経路に適合するように前記探索モジュールを訓練することにより構成され、
前記機械学習の間、順伝播のフェーズでは、前記抽出する演算及び前記選択する演算はそのまま計算されたのに対して、逆伝播のフェーズでは、前記抽出する演算及び前記選択する演算それぞれは微分可能な代替演算に置き換えられ、置き換えられた前記代替演算の微分計算により、前記抽出する演算及び前記選択する演算それぞれの微分計算に対応する近似勾配が算出される、
探索部と、
前記対象マップに対して前記経路を探索した結果に関する情報を出力する出力部と、
を備える、
経路探索装置。
【請求項10】
前記対象マップは、移動体の移動を許容する範囲を含み、
前記探索部は、前記訓練済みの探索モジュールを使用して、取得された前記対象マップにおける前記開始ノードから前記目標ノードまで前記移動体が移動するのに推奨される経路を探索する、
請求項9に記載の経路探索装置。
【請求項11】
前記対象マップは、ロボット装置の駆動を許容する範囲を含み、
前記探索部は、前記訓練済みの探索モジュールを使用して、取得された前記対象マップにおける前記開始ノードから前記目標ノードまで前記ロボット装置が動作するのに推奨される経路を探索する、
請求項9に記載の経路探索装置。
【請求項12】
前記経路を探索した結果に関する情報は、探索された経路に従ったナビゲーションにより構成される、
請求項9から11に記載の経路探索装置。
【請求項13】
コンピュータが、
訓練マップ、及び前記訓練マップにおける推奨経路を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
前記複数の学習データセットを使用して、探索モジュールの機械学習を実施するステップであって、
前記探索モジュールは、
入力マップに含まれる複数のノードそれぞれのコストを推定するように構成されるニューラルネットワーク、
経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算、及び
前記ニューラルネットワークの推定結果に基づいて、コストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算、を含み、
前記探索モジュールは、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、前記抽出する演算及び選択する演算を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成され、
前記機械学習は、前記各学習データセットについて、前記訓練マップを前記入力マップとして与えることで前記探索モジュールにより探索される経路が前記正解情報により示される推奨経路に適合するように前記探索モジュールを訓練することにより構成され、
前記機械学習の間、順伝播のフェーズでは、前記抽出する演算及び前記選択する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算及び前記選択する演算それぞれを微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算及び前記選択する演算それぞれの微分計算に対応する近似勾配を算出する、
ステップと、
を実行する、
モデル生成方法。
【請求項14】
コンピュータに、
訓練マップ、及び前記訓練マップにおける推奨経路を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
前記複数の学習データセットを使用して、探索モジュールの機械学習を実施するステップであって、
前記探索モジュールは、
入力マップに含まれる複数のノードそれぞれのコストを推定するように構成されるニューラルネットワーク、
経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算、及び
前記ニューラルネットワークの推定結果に基づいて、コストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算、を含み、
前記探索モジュールは、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、前記抽出する演算及び選択する演算を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成され、
前記機械学習は、前記各学習データセットについて、前記訓練マップを前記入力マップとして与えることで前記探索モジュールにより探索される経路が前記正解情報により示される推奨経路に適合するように前記探索モジュールを訓練することにより構成され、
前記機械学習の間、順伝播のフェーズでは、前記抽出する演算及び前記選択する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算及び前記選択する演算それぞれを微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分
計算により、前記抽出する演算及び前記選択する演算それぞれの微分計算に対応する近似勾配を算出する、
ステップと、
を実行させるための、
モデル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モデル生成装置、経路探索装置、モデル生成方法、及びモデル生成プログラムに関する。
【背景技術】
【0002】
マップ(グラフ)上の開始ノードから目標ノード(ゴール)までの推奨経路を探索する問題(経路探索問題)が存在する。推奨経路は、例えば、最短経路であり、経路探索問題は、例えば、移動体が移動するのに推奨される経路、ロボット装置が動作するのに推奨される経路等を探索する目的で解かれる。この経路探索問題を解く方法として、ダイクストラ法、最良優先探索法、A探索アルゴリズム等の古典的なアルゴリズムが広く知られている。
【0003】
コスト最小の経路を探索する方法の基本的な考え方は次のとおりである。
(1)探索空間は、N個(Nは自然数)のノードの集合V(V={V、・・・、V})で構成されており、そのうちの1つが開始(起点)ノード(v∈V)であり、別の1つが目標ノード(v∈V)である。
(2)推奨経路を構成するか否かを確認する対象となる候補ノードの集合O(O⊂V)、及び確認済みのノードの集合C(C⊂V)を用意する。初期状態では、集合Oには、開始ノードvのみが属しており(O={v})、集合Cは空である。
(3)目標ノードvが集合Oに含まれるまで以下の(A)(B)の手続きを繰り返す。(A)集合Oの中からコストが最小となるノードv(v∈O)を1つ選択し、選択したノードvを集合Cに追加すると共に、集合Oからノードvを取り除く。
(B)ノードvに近接する(例えば、隣接する)ノード(集合VSUCC⊂V)をVから抽出し、抽出されたノードを集合Oに追加する。
(4)目標ノードvが集合Oに含まれたならば、目標ノードvを選択して、探索を終了する。
【0004】
【数1】

上記(3)(A)においてノードvを選択するためのコスト関数f(v)は、一般的に上記式1により表現することができる。g(v,v)は、開始ノードvからノードvまで移動するのに実際にかかるコスト(例えば、実際の移動距離)を示す。h(v,v)は、ノードvから目標ノードvまで移動するのにかかると予想されるコスト(例えば、直線距離)を示す。a及びbは、それぞれをノードの選択に反映する程度を規定する定数である。コストは、そのノードを経由することを推奨する(コスト小)又は推奨しない(コスト大)程度に対応する。推奨の程度を評価する指標は、例えば、距離、時間、費用、危険度、混雑度、魅力度等であってよい。一例として、距離を指標に採用した場合には、上記方法により最短経路が探索される。
【0005】
a=1及びb=0のとき、上記探索アルゴリズムはダイクストラ法となる。ダイクストラ法によれば、実際にかかるコストが最小となる最適な推奨経路を確実に見つけ出すことができる。ただし、ダイクストラ法は、実際にかかるコストgが最小となる経路を虱潰しに探索する。そのため、探索効率は良くなく、探索には時間がかかる。a=0及びb=1
のとき、上記探索アルゴリズムは最良優先探索法となる。最良優先探索法の探索は、目標ノードまでのコストが最小であるノードを優先的に探索する(すなわち、目標ノードに近付く方向に進み続ける)ため、ダイクストラ法と比較して、しばしば効率的である。しかしながら、開始ノードから目標ノードまでの間に障害物がある等の理由に起因して、最適な推奨経路が得られない(すなわち、得られる経路が最適経路にならない)可能性がある。a=1及びb=1のとき、上記探索アルゴリズムはA探索アルゴリズムとなる。A探索アルゴリズムの探索効率は、ダイクストラ法と比較して良く、最良優先探索法と比較して悪くなるが、許容的なヒューリスティック関数(コスト)を適宜設計することで、最適な推奨経路を確実に見つけ出すことができる。
【0006】
つまり、最良優先探索法及びA探索アルゴリズムによれば、ダイクストラ法と比較して探索の効率化を図ることができる。しかしながら、マップには、進行を妨げる障害物が存在する場合があり、最良優先探索法又はA探索アルゴリズムを採用しても、その障害物の形態によって、探索の効率が悪化する可能性があることが知られている。
【0007】
図1は、探索の効率を悪化させる障害物を含むマップの一例を模式的に例示する。図1のマップには、開始ノード及び目標ノードの間にコの字型の障害物が存在しており、障害物の凹部が開始ノードの方を向いている。最良優先探索法又はA探索アルゴリズムによりこのマップの推奨経路を探索した場合、開始ノードから目標ノードに近付くために、凹部の内側に探索が進む可能性がある。この場合、凹部の内部で探索が障害物に衝突した後、迂回経路を求めて凹部の内部及び周辺を探索することになり、結果として探索の効率性は悪化する。
【0008】
図1のマップのケースでは、凹部の内部を探索している限り、目標ノードに到達することはできない。そのため、どの探索アルゴリズムを採用した場合でも、この凹部の内部を探索する限り、探索の効率性は悪化する。このケースでは、凹部の内部を回避して探索(例えば、図1の点線の矢印)を進めることができれば、いずれの探索アルゴリズムを採用しても(ダイクストラ法を採用した場合でも)、探索の効率性を改善することができそうである。すなわち、進行を妨げる障害物がマップ上に存在し、その障害物により探索の効率性を悪化させるエリアが形成された場合に、そのエリアの探索を避けることができれば、いずれの探索アルゴリズムを採用しても、探索の効率性を改善することができる。
【0009】
非特許文献1には、最良優先探索法においてコストを計算するためのヒューリスティック関数のパラメータを機械学習により調整することが提案されている。非特許文献1の方法によれば、探索の効率性を悪化させるエリアのコストが高くなるようにヒューリスティック関数を訓練することができる。そのため、訓練されたヒューリスティック関数を使用することにより、そのようなエリアの探索をできるだけ避けることができ、これによって、探索の効率性を改善することができる。
【先行技術文献】
【非特許文献】
【0010】
【文献】Mohak Bhardwaj, Sanjiban Choudhury, Sebastian Scherer, “Learning Heuristic Search via Imitation”, CoRL 2017, 271-280.
【発明の概要】
【発明が解決しようとする課題】
【0011】
本件発明者は、非特許文献1等で提案されるコスト関数を機械学習により直接的に訓練する方法には、次のような問題点があることを見出した。すなわち、探索の効率性を悪化させる障害物の形態は、上記コの字型に限られず、多様に存在する。それぞれのケースに対応するためには、多様な訓練マップについてコスト関数を訓練することが望ましい。し
かしながら、コスト関数を直接的に訓練するためには、訓練マップに含まれる全てのノードについてコストの真値を示す正解情報を訓練マップ毎に用意することになる。探索アルゴリズムに応じて全てのノードのコストの真値を特定する(すなわち、正解情報を作成する)のには、訓練マップに含まれるノードの数に比例して時間がかかってしまい、その結果、経路の探索モジュールの生成にかかる手間が大きくなってしまう。更に、非特許文献1の方法では、最良優先探索法を採用しているため、コストが最小となる経路の探索をしばしば失敗してしまう。
【0012】
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、経路探索の効率を改善すると共に、探索モジュールの生成にかかる手間の低減を図る技術を提供することである。
【課題を解決するための手段】
【0013】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0014】
すなわち、本発明の一側面に係るモデル生成装置は、訓練マップ、及び前記訓練マップにおける推奨経路を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、前記複数の学習データセットを使用して、探索モジュールの機械学習を実施する学習処理部であって、前記探索モジュールは、入力マップに含まれる複数のノードそれぞれのコストを推定するように構成されるニューラルネットワーク、経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算、及び前記ニューラルネットワークの推定結果に基づいて、コストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算、を含み、前記探索モジュールは、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、前記抽出する演算及び選択する演算を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成され、前記機械学習は、前記各学習データセットについて、前記訓練マップを前記入力マップとして与えることで前記探索モジュールにより探索される経路が前記正解情報により示される推奨経路に適合するように前記探索モジュールを訓練することにより構成され、前記機械学習の間、順伝播のフェーズでは、前記抽出する演算及び前記選択する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算及び前記選択する演算それぞれを微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算及び前記選択する演算それぞれの微分計算に対応する近似勾配を算出する、学習処理部と、を備える。
【0015】
当該構成では、探索モジュール(探索モデル)は、各ノードのコストを推定する演算を実行するように構成される第1計算モジュール、及び推定されたコストに基づき、コストの総和が最小となる経路を探索する演算を実行するように構成される第2計算モジュールを備える。第1計算モジュールは、ニューラルネットワークにより構成される。第2計算モジュールは、経由ノードに近接する1つ以上の候補ノードを抽出する演算、及び抽出された1つ以上の候補ノードから次の経由ノードを選択する演算により構成される。第1計算モジュールのみを機械学習の対象として取り扱う場合、訓練マップ毎にコストの真値を用意することになり、上記のとおり、探索モジュールの生成にかかる手間が大きくなってしまう。これに対して、当該構成では、第1計算モジュール及び第2計算モジュールの両方を機械学習の処理対象として取り扱う。これにより、当該構成では、訓練マップ毎にコストの真値を用意するのではなく、推奨経路そのものを示す正解情報を用意すればよいようになる。その結果、訓練マップに含まれる全てのノードを探索する必要はなく、例えば、既存のアルゴリズムの探索結果、実績等をそのまま推奨経路として採用することができる。そのため、訓練マップに含まれる全てのノードのコストの真値を特定するのに比べて、正解情報の用意にかかる作業時間及び負担を抑えることができる。したがって、当該構
成によれば、探索モジュールの生成にかかる手間の低減を図ることができる。また、機械学習の過程で、探索モジュールは推奨経路を最適に探索するように訓練されていくため、探索の効率性を悪化させるエリアのコストが高くなるように、正解情報により示される推奨経路からニューラルネットワークを間接的に訓練することができる。その結果、訓練されたニューラルネットワークによるコストの推定結果を使用することで、経路探索の効率の改善を適切に図ることができる。
【0016】
しかしながら、ニューラルネットワークを含む探索モジュールの機械学習を実施する際には、順伝播の演算により経路を探索した結果と正解情報との間の誤差の勾配を出力側から順番に逆伝播することになる。この逆伝播の演算を実行するためには、誤差の勾配を逆伝播する全ての演算が微分可能であることが求められるが、ニューラルネットワークによるコストの推定結果を使用して経路探索を行う第2計算モジュールの演算(すなわち、1つ以上の候補ノードを抽出する演算及び抽出された1つ以上の候補ノードから次の経由ノードを選択する演算)は、集合に対して条件に該当する要素を取り出す操作であり、微分不可能である。そのため、単純な方法では、探索モジュールの機械学習を実施することはできない。つまり、第2計算モジュールを機械学習の処理対象とすることで、最終結果を正解情報として取り扱うことができるようになり、その結果、上記のとおり、探索モジュールの生成にかかる手間を低減することができるが、既知の方法ではその機械学習を実施することが困難であるという新たな問題が生じてしまう。
【0017】
そこで、当該構成では、機械学習の間、順伝播のフェーズでは、抽出する演算及び選択する演算をそのまま計算するのに対して、逆伝播のフェーズでは、抽出する演算及び選択する演算それぞれを微分可能な代替演算に置き換え、置き換えられた代替演算の微分計算により、抽出する演算及び選択する演算それぞれの微分計算に対応する近似勾配を算出する。これにより、微分不可能な演算を含む探索モジュールであっても、機械学習を適切に実施することができる。したがって、当該構成によれば、経路探索の効率を改善すると共に、訓練済みの探索モジュール(学習済み探索モデル)を適切に生成し、その生成にかかる手間の低減を図ることができる。
【0018】
上記一側面に係るモデル生成装置において、前記選択する演算は、前記ニューラルネットワークの推定結果に基づいて、所定の探索アルゴリズムによりコストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択するように構成されてよい。当該構成によれば、所定の探索アルゴリズムを遂行するよう構成される探索モジュールの生成にかかる手間を低減することができる。また、所定の探索アルゴリズムとして既存の探索アルゴリズムを利用することで、探索モジュールの生成にかかる手間を更に低減することができる。
【0019】
上記一側面に係るモデル生成装置において、前記所定の探索アルゴリズムは、ダイクストラ法、最良優先探索法、又はA探索アルゴリズムであってよい。当該構成によれば、探索モジュールを簡易に構成可能であるため、探索モジュールの生成にかかる手間を更に低減することができる。なお、各アルゴリズムは、オリジナルのアルゴリズムの他に、変形アルゴリズムを含んでよい。
【0020】
上記一側面に係るモデル生成装置において、前記訓練マップは、移動体の移動を許容する範囲を含んでよく、前記正解情報により示される前記推奨経路は、前記移動体が移動するのに推奨される経路であってよい。当該構成によれば、移動体の移動計画に使用可能な探索モジュールを生成する形態において、経路探索の効率を改善すると共に、探索モジュールの生成にかかる手間を低減することができる。
【0021】
上記一側面に係るモデル生成装置において、前記訓練マップは、ロボット装置の駆動を
許容する範囲を含んでよく、前記正解情報により示される前記推奨経路は、前記ロボット装置が動作するのに推奨される経路であってよい。当該構成によれば、ロボットの動作計画に使用可能な探索モジュールを生成する形態において、経路探索の効率を改善すると共に、探索モジュールの生成にかかる手間を低減することができる。
【0022】
上記一側面に係るモデル生成装置は、任意の指標により評価されるコストが最小となる経路を探索する能力を獲得した訓練済みの探索モジュールを生成することができる。上記一側面に係るモデル生成装置において、この評価指標に距離を採用することで、前記推奨経路は、最短経路であってよい。当該構成によれば、最短経路を探索する効率を改善すると共に、最短経路を探索する能力を獲得した探索モジュールの生成にかかる手間を低減することができる。
【0023】
上記一側面に係るモデル生成装置において、前記訓練マップは、画像により構成されてよく、前記ノードは、画素により構成されてよい。当該構成によれば、画像内の経路を探索する形態において、経路探索の効率を改善すると共に、探索モジュールの生成にかかる手間を低減することができる。
【0024】
上記一側面に係るモデル生成装置において、前記画像は、実画像又はバイナリ画像により構成されてよい。当該構成によれば、実画像又はバイナリ画像を用いる形態において、経路探索の効率を改善すると共に、探索モジュールの生成にかかる手間を低減することができる。
【0025】
また、本発明の形態は、上記モデル生成装置の形態に限られなくてもよい。本発明の一側面は、上記モデル生成装置により生成された訓練済みの探索モジュールを利用する経路探索装置であってもよい。例えば、本発明の一側面は、対象マップを取得するマップ取得部と、訓練済みの探索モジュールを使用して、取得された前記対象マップにおける開始ノードから目標ノードまでの経路を探索する探索部と、前記対象マップに対して前記経路を探索した結果に関する情報を出力する出力部と、を備えるように構成された経路探索装置であってよい。この経路探索装置は、適用場面におけるタスクの種類に応じて、例えば、計画装置、移動計画装置、案内装置、動作計画装置、制御装置等と読み替えられてよい。
【0026】
上記一側面に係る経路探索装置において、前記対象マップは、移動体の移動を許容する範囲を含んでよい。これに応じて、前記探索部は、前記訓練済みの探索モジュールを使用して、取得された前記対象マップにおける前記開始ノードから前記目標ノードまで前記移動体が移動するのに推奨される経路を探索してもよい。或いは、上記一側面に係る経路探索装置において、前記対象マップは、ロボット装置の駆動を許容する範囲を含んでよい。これに応じて、前記探索部は、前記訓練済みの探索モジュールを使用して、取得された前記対象マップにおける前記開始ノードから前記目標ノードまで前記ロボット装置が動作するのに推奨される経路を探索してもよい。
【0027】
上記一側面に係る経路探索装置において、前記経路を探索した結果に関する情報は、探索された経路に従ったナビゲーションにより構成されてよい。当該構成によれば、推奨経路を効率的に探索可能であると共に、その探索結果(すなわち、探索された推奨経路)に従って、移動案内又は動作制御を実行することができる。
【0028】
また、上記各形態に係るモデル生成装置及び経路探索装置それぞれの別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械
的、又は、化学的作用によって蓄積する媒体である。また、本発明の一側面は、上記いずれかの形態に係るモデル生成装置及び経路探索装置により構成される経路探索システムであってもよい。
【0029】
例えば、本発明の一側面に係るモデル生成方法は、コンピュータが、訓練マップ、及び前記訓練マップにおける推奨経路を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを使用して、探索モジュールの機械学習を実施するステップであって、前記探索モジュールは、入力マップに含まれる複数のノードそれぞれのコストを推定するように構成されるニューラルネットワーク、経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算、及び前記ニューラルネットワークの推定結果に基づいて、コストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算、を含み、前記探索モジュールは、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、前記抽出する演算及び選択する演算を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成され、前記機械学習は、前記各学習データセットについて、前記訓練マップを前記入力マップとして与えることで前記探索モジュールにより探索される経路が前記正解情報により示される推奨経路に適合するように前記探索モジュールを訓練することにより構成され、前記機械学習の間、順伝播のフェーズでは、前記抽出する演算及び前記選択する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算及び前記選択する演算それぞれを微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算及び前記選択する演算それぞれの微分計算に対応する近似勾配を算出する、ステップと、を実行する、情報処理方法である。
【0030】
また、例えば、本発明の一側面に係るモデル生成プログラムは、コンピュータに、訓練マップ、及び前記訓練マップにおける推奨経路を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを使用して、探索モジュールの機械学習を実施するステップであって、前記探索モジュールは、入力マップに含まれる複数のノードそれぞれのコストを推定するように構成されるニューラルネットワーク、経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算、及び前記ニューラルネットワークの推定結果に基づいて、コストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算、を含み、前記探索モジュールは、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、前記抽出する演算及び選択する演算を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成され、前記機械学習は、前記各学習データセットについて、前記訓練マップを前記入力マップとして与えることで前記探索モジュールにより探索される経路が前記正解情報により示される推奨経路に適合するように前記探索モジュールを訓練することにより構成され、前記機械学習の間、順伝播のフェーズでは、前記抽出する演算及び前記選択する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算及び前記選択する演算それぞれを微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算及び前記選択する演算それぞれの微分計算に対応する近似勾配を算出する、ステップと、を実行させるための、プログラムである。
【発明の効果】
【0031】
本発明によれば、経路探索の効率を改善すると共に、探索モジュールの生成コストの低減を図ることができる。
【図面の簡単な説明】
【0032】
図1図1は、探索の効率を悪化させる障害物を含むマップの一例を模式的に例示する。
図2図2は、本発明が適用される場面の一例を模式的に例示する。
図3図3は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に例示する。
図4図4は、実施の形態に係る経路探索装置のハードウェア構成の一例を模式的に例示する。
図5図5は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に例示する。
図6図6は、実施の形態に係る経路探索装置のソフトウェア構成の一例を模式的に例示する。
図7図7は、実施の形態に係るモデル生成装置の処理手順の一例を示すフローチャートである。
図8図8は、実施の形態に係る経路探索装置の処理手順の一例を示すフローチャートである。
図9図9は、本発明が適用される他の場面の一例を模式的に例示する。
図10図10は、本発明が適用される他の場面の一例を模式的に例示する。
図11A図11Aは、評価に使用した対象マップを示す。
図11B図11Bは、評価に使用した対象マップを示す。
図11C図11Cは、評価に使用した対象マップを示す。
図12A図12Aは、A探索アルゴリズム(比較例)により図11Aの対象マップにおける経路を探索した結果及び探索の対象となったノードを示す。
図12B図12Bは、A探索アルゴリズム(比較例)により図11Bの対象マップにおける経路を探索した結果及び探索の対象となったノードを示す。
図12C図12Cは、A探索アルゴリズム(比較例)により図11Cの対象マップにおける経路を探索した結果及び探索の対象となったノードを示す。
図13A図13Aは、実施例のニューラルネットワークにより図11Aの対象マップの各ノードのコストを推定した結果を示す。
図13B図13Bは、実施例のニューラルネットワークにより図11Bの対象マップの各ノードのコストを推定した結果を示す。
図13C図13Cは、実施例のニューラルネットワークにより図11Cの対象マップの各ノードのコストを推定した結果を示す。
図14A図14Aは、実施例の探索モジュールにより図11Aの対象マップにおける経路を探索した結果及び探索の対象となったノードを示す。
図14B図14Bは、実施例の探索モジュールにより図11Bの対象マップにおける経路を探索した結果及び探索の対象となったノードを示す。
図14C図14Cは、実施例の探索モジュールにより図11Cの対象マップにおける経路を探索した結果及び探索の対象となったノードを示す。
【発明を実施するための形態】
【0033】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0034】
§1 適用例
図2は、本発明を適用した場面の一例を模式的に例示する。図2に示されるとおり、本実施形態に係る経路探索システム100は、モデル生成装置1及び経路探索装置2を備え
ている。
【0035】
本実施形態に係るモデル生成装置1は、機械学習により訓練済みの探索モジュール5(学習済み探索モデル)を生成するように構成されたコンピュータである。本実施形態に係るモデル生成装置1は、訓練マップ31、及び訓練マップ31における推奨経路を示す正解情報32の組み合わせによりそれぞれ構成される複数の学習データセット3を取得する。本実施形態に係るモデル生成装置1は、取得された複数の学習データセット3を使用して、探索モジュール5の機械学習を実施する。
【0036】
本実施形態に係る探索モジュール5は、入力マップに含まれる複数のノードそれぞれのコストを推定する演算を実行するように構成される第1計算モジュール、及び推定されたコストに基づき、コストの総和が最小となる経路を探索する演算を実行するように構成される第2計算モジュールを備える。第1計算モジュールは、ニューラルネットワーク50により構成される。第2計算モジュールは、経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出する演算(以下、単に「抽出演算」とも記載する)51、及びニューラルネットワーク50の推定結果に基づいて、開始ノードから目標ノードまでのコストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択する演算(以下、単に「選択演算」とも記載する)52により構成される。
【0037】
探索モジュール5は、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成される。すなわち、探索モジュール5は、第1計算モジュール及び第2計算モジュールを使用して、上記(1)-(4)の演算を実行することで、コストが最小となる経路を探索するように構成される。ニューラルネットワーク50の推定結果は、上記式1の計算に利用される。抽出演算51は、上記(3)(B)の演算に対応する。開始ノードを最初の経由ノードに設定すること及び選択演算52は、上記(3)(A)の演算に対応する。
【0038】
機械学習は、各学習データセット3について、訓練マップ31を入力マップとして与えることで探索モジュール5により探索される経路が正解情報32により示される推奨経路に適合するように探索モジュール5を訓練することにより構成される。具体的には、ニューラルネットワーク50は、例えば、各ニューロン間の結合の重み、各ニューロンの閾値等の複数の演算パラメータを備える。まず、モデル生成装置1は、探索モジュール5を使用して、各学習データセット3の訓練マップ31に対する経路探索を試行する。この試行処理において、モデル生成装置1は、ニューラルネットワーク50を使用して、各学習データセット3の訓練マップ31に含まれる各ノードのコストを推定する。すなわち、モデル生成装置1は、ニューラルネットワーク50に訓練マップ31を入力して、ニューラルネットワーク50の順伝播の演算処理を実行する。この演算により、モデル生成装置1は、訓練マップ31に含まれる各ノードのコストの推定結果60を得ることができる。続いて、モデル生成装置1は、開始ノードS1を最初の経由ノードに設定する。そして、モデル生成装置1は、得られた推定結果60を利用し、目標ノードG1が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。これらの一連の順伝播の演算により、モデル生成装置1は、探索の試行結果、すなわち、訓練マップ31に対して経路を探索した結果(以下、「探索結果」とも記載する)62を得ることができる。次に、モデル生成装置1は、この探索結果62と正解情報32により示される推奨経路(正解)との間の誤差を算出する。モデル生成装置1は、誤差逆伝播法により、算出された誤差の勾配を逆伝播することで、ニューラルネットワーク50の各演算パラメータの値を調整する。探索モジュール5を訓練することは、この一連の処理(すなわち、順伝播による探索の試行処理及び逆伝播による演算パラメータの調整処理)により、正解情報32に適合する
探索結果62が得られるようにニューラルネットワーク50の各演算パラメータの値を調整することにより構成される。
【0039】
モデル生成装置1は、この機械学習の間、順伝播(探索の試行)フェーズでは、抽出演算51及び選択演算52をそのまま計算するのに対して、逆伝播(演算パラメータの調整)のフェーズでは、抽出演算51及び選択演算52それぞれを微分可能な代替演算に置き換え、置き換えられた代替演算の微分計算により、抽出演算51及び選択演算52それぞれの微分計算に対応する近似勾配を算出する。すなわち、モデル生成装置1は、機械学習の処理過程のうち、探索を試行するフェーズでは、抽出演算51及び選択演算52をそのまま採用して、各学習データセット3の訓練マップ31に対する探索結果62を得る。これに対して、抽出演算51及び選択演算52は共に微分不可能であり、そのままでは誤差の勾配を逆伝播することができない。そこで、試行フェーズにより導出された誤差の勾配を逆伝播するフェーズでは、モデル生成装置1は、それぞれ代替演算の微分計算により算出される近似勾配を抽出演算51及び選択演算52それぞれの微分計算の結果として採用して、誤差の勾配を逆伝播し、ニューラルネットワーク50の各演算パラメータの値を調整する。
【0040】
抽出演算51の代替演算は、抽出演算51の近似勾配を計算可能な演算であれば、その内容は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。抽出演算51の代替演算は、例えば、固定サイズの矩形フィルタを用いた線形の畳み込み関数、固定サイズのグラフを用いたグラフ畳み込み演算又はこれらに類似する関数で構成されてよく抽出演算51の近似勾配は、当該関数の勾配であってよい。抽出演算51の代替演算は、当該関数に対応するルックアップテーブルにより構成されてよい。同様に、選択演算52の代替演算は、選択演算52の近似勾配を計算可能な演算であれば、その内容は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。選択演算52の代替演算は、例えば、straight-through soft-min関数、straight-through soft-min with temperature、weighted straight-through soft-min、straight-through Gumbel softmin関数、又はこれらに類似する関数で構成されてよく、選択演算52の近似勾配は、当該関数の勾配であってよい。この機械学習の結果、モデル生成装置1は、入力マップに対してコスト最小となる推奨経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。
【0041】
一方、本実施形態に係る経路探索装置2は、訓練済みの探索モジュール5を使用して、与えられたマップに対して経路探索を遂行するように構成されたコンピュータである。まず、経路探索装置2は、経路探索の対象となる対象マップ221を取得する。次に、経路探索装置2は、訓練済みの探索モジュール5を使用して、取得された対象マップ221における開始ノードS2から目標ノードG2までの経路を探索する。
【0042】
すなわち、経路探索装置2は、上記モデル生成装置1の試行フェーズと同様に、訓練済みのニューラルネットワーク50に対象マップ221を入力し、訓練済みのニューラルネットワーク50の順伝播の演算処理を実行する。経路探索装置2は、この演算処理により、対象マップ221に含まれる各ノードのコストの推定結果223を得ることができる。続いて、経路探索装置2は、開始ノードS2を最初の経由ノードに設定する。そして、経路探索装置2は、得られた推定結果223を利用し、目標ノードG2が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。この第2計算モジュールの演算では、経路探索装置2は、上記モデル生成装置1の試行フェーズと同様に、抽出演算51及び選択演算52をそのまま採用する。
【0043】
これらの一連の演算により、経路探索装置2は、対象マップ221に対して経路を探索した結果(以下、「探索結果」とも記載する)225を得ることができる。そして、経路
探索装置2は、対象マップ221に対する経路の探索結果225に関する情報を出力する。なお、本実施形態に係る経路探索装置2は、適用場面におけるタスクの種類に応じて、計画装置、移動計画装置、案内装置、動作計画装置、制御装置等と読み替えられてよい。
【0044】
なお、本実施形態で取り扱われるマップ(訓練マップ31、対象マップ221)は、複数のノードを含み、経路探索の処理対象となるように適宜構成されていれば、マップのデータ形式は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例では、マップ(訓練マップ31、対象マップ221)は、リスト形式、グラフ形式等で表現されてよい。障害物(移動不能な領域)は、ノード間の接続の有無、ノードに与える情報等により表現されてよい。
【0045】
グラフ形式の一例として、マップ(訓練マップ31、対象マップ221)は、画像(画像データ)により構成されてよい。この場合、ノードは、画素により構成されてよい。画像は、4つ又は8つの近接ノードが各ノードに接続されることで構成された2次元グリッドのグラフとして取り扱うことができる。なお、4つの近接ノードは、対象画素の上下左右に配置された4つの画素である。8つの近接ノードは、対象画素の周囲を囲む8つの画素である。この画像は、実画像又はバイナリ画像により構成されてよい。移動体の経路を探索する場合、実画像は、例えば、航空写真、ドローンにより撮影した写真等の移動体の移動が許容される範囲を撮影することで生成された画像であってよい。ロボットの動作経路を探索する場合、実画像は、例えば、作業現場等のロボットの動作する範囲を撮影することで生成された画像であってよい。バイナリ画像の各画素は、移動可能な領域及び移動不能な領域を2値で表現するように適宜構成されてよい。バイナリ画像は、実画像を適宜2値化することで生成されてよい。本実施形態に係るモデル生成装置1では、画像をマップとして用いることで、上記機械学習により、画像内の経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。
【0046】
正解情報32は、訓練マップ31における推奨経路の正解を示すように適宜構成されてよい。正解情報32のデータ形式は、経路の探索結果の表現に応じて適宜選択されてよい。経路の探索結果が画像で構成される場合、正解情報32の一例は、推奨経路の正解を示す画像により構成されてよい(図2では、その画像の一例が示される)。
【0047】
また、コストは、任意の指標によりそのノードを経由することを推奨する又は推奨しない程度に対応するように構成されていれば、コストの数値表現は、適宜設定されてよい。一例では、コストは、数値に比例する(すなわち、数値が大きいほどコストが高い)ように表現されてもよい。その他の一例では、コストは、数値に反比例する(すなわち、数値が小さいほどコストが高い)ように表現されてもよい。推奨しないことに着目して、コストは、例えば、負荷、ペナルティ等と読み替えられてよい。反対に、推奨することに着目して、コストは、例えば、推奨度、報酬等と読み替えられてよい。この場合、コストの最小化は、推奨度等の最大化と置き換えられてよい。コストを評価する指標は、いずれの観点で設計されてよい。本実施形態では、コストは、便宜上、推奨しない程度が高いほど値が高くなるように設計されているものとして説明する。推奨する程度が高いほど値が高くなるようにコストを設計する場合は、上記選択演算52は、値が最小の要素を選択することから値が最大の要素を選択することに置き換えられてよく、上記選択演算52の代替演算も適宜置き換えられてよい。具体例として、上記選択演算52の代替演算は、例えば、straight-through soft-max関数、straight-through soft-max with temperature、weighted straight-through soft-max、straight-through Gumbel softmax関数又はこれらに類似する関数で構成されてよい。
【0048】
上記推奨の程度を評価する指標は、例えば、距離、時間、費用、危険度、混雑度、魅力度等であってよい。一例として、距離を評価指標として採用してもよい。コストは、距離
が長くなるほど高くなるように設定されてよい。このケースでは、探索される推奨経路は、開始ノードから目標ノードまでの最短経路(距離が最小となる経路)である。
【0049】
その他の一例として、時間を評価指標として採用してもよい。コストは、時間がかかるほど高くなるように設定されてよい。このケースでは、探索される推奨経路は、開始ノードから目標ノードまでの移動にかかる時間が最小となる経路である。
【0050】
その他の一例として、費用を評価指標として採用してもよい。コストは、費用がかかるほど高くなるように設定されてよい。このケースでは、探索される推奨経路は、開始ノードから目標ノードまでの移動にかかる費用が最小となる経路である。費用は、例えば、燃料費、電気代、交通機関の利用料、高速料金等であってよい。
【0051】
その他の一例として、危険度を評価指標として採用してもよい。コストは、危険度が高くなるほど高くなるように設定されてよい。このケースでは、探索される推奨経路は、開始ノードから目標ノードまでの移動のリスクが最小である(すなわち、安全性が最も高い)経路である。移動体の経路を探索する場合、危険度は、例えば、事故、犯罪等のアクシデントに移動体が遭遇するリスクに応じて設定されてよい。ロボットの経路を探索する場合、危険度は、例えば、衝突、破壊等の故障リスクに応じて設定されてよい。
【0052】
その他の一例として、混雑度を評価指標として採用してもよい。コストは、混雑度が高くなるほど高くなるように設定されてよい。このケースでは、探索される推奨経路は、混雑した場所を避けた経路である。混雑した場所は、例えば、人の密度の高い場所(人の移動経路を探索する場合)、渋滞の生じている場所(車両の移動経路を探索する場合)、障害物が密集している場所(ロボット装置の動作経路を探索する場合)等である。
【0053】
その他の一例として、魅力度を評価指標として採用してもよい。コストは、魅力度が低くなるほど高くなるように設定されてよい。このケースでは、探索される推奨経路は、魅力度の高い場所を経由する経路である。魅力度は、例えば、景観の良し悪し(移動体の移動経路を探索する場合)、動作の華麗さ(ロボット装置の動作経路を探索する場合)等の人為的な指標に応じて与えられてよい。
【0054】
これらのケースは、例えば、移動体(例えば、人、車両、ドローン等)の移動する経路を計画する場面、ロボットの動作する経路を計画する場面等に適用可能である。コストは、適用する場面に応じて適宜設計されてよい。コストは、上記の複数の指標を複合的に用いて設計されてもよい。本実施形態に係るモデル生成装置1では、上記機械学習により、設計されたコストに応じた推奨経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。
【0055】
以上のとおり、本実施形態に係るモデル生成装置1は、第1計算モジュール(ニューラルネットワーク50)のみを機械学習の対象として取り扱うのではなく、第1計算モジュール及び第2計算モジュール(抽出演算51及び選択演算52)の両方を機械学習の対象として取り扱う。これにより、本実施形態では、訓練マップ31毎にコストの真値を用意しなくてよく、推奨経路そのものを示す正解情報32を用意すればよいようになる。そのため、訓練マップ31に含まれる全てのノードを探索しなくてよく、例えば、既存のアルゴリズムの探索結果、実績等をそのまま推奨経路として採用することができる。その結果、訓練マップ31に含まれる全てのノードのコストの真値を特定するのに比べて、正解情報32の用意にかかる作業時間及び負担を抑えることができる。したがって、本実施形態によれば、訓練済みの探索モジュール5の生成にかかる手間の低減を図ることができる。
【0056】
また、機械学習の過程で、探索モジュール5は推奨経路を最適に探索するように訓練さ
れていくため、探索の効率性を悪化させるエリアのコストが高くなるように、正解情報32に示される推奨経路からニューラルネットワーク50を間接的に訓練することができる。その結果、経路探索装置2では、訓練済みのニューラルネットワーク50によるコストの推定結果223を使用することで、経路探索の効率の改善を適切に図ることができる。
【0057】
更には、本実施形態に係るモデル生成装置1は、機械学習の処理において、順伝播のフェーズでは、抽出演算51及び選択演算52をそのまま計算するのに対して、逆伝播のフェーズでは、抽出演算51及び選択演算52それぞれを微分可能な代替演算に置き換える。そして、モデル生成装置1は、置き換えられた代替演算の微分計算により、抽出する演算及び選択する演算それぞれの微分計算に対応する近似勾配を算出する。これにより、微分不可能な演算(抽出演算51及び選択演算52)を含んでいても、探索モジュール5の機械学習(特に、ニューラルネットワーク50の演算パラメータの調整)を適切に実施することができる。
【0058】
なお、図2の例では、モデル生成装置1及び経路探索装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置1及び経路探索装置2の間でデータをやり取りする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モデル生成装置1及び経路探索装置2の間では、記憶媒体を利用して、データがやり取りされてよい。
【0059】
また、図2の例では、モデル生成装置1及び経路探索装置2は、それぞれ別個のコンピュータにより構成されている。しかしながら、本実施形態に係る経路探索システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。たとえば、モデル生成装置1及び経路探索装置2は一体のコンピュータであってもよい。また、例えば、モデル生成装置1及び経路探索装置2のうちの少なくとも一方は、複数台のコンピュータにより構成されてもよい。
【0060】
§2 構成例
[ハードウェア構成]
<モデル生成装置>
図3は、本実施形態に係るモデル生成装置1のハードウェア構成の一例を模式的に例示する。図3に示されるとおり、本実施形態に係るモデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、図3では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
【0061】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、
RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、複数の学習データセット3、学習結果データ125等の各種情報を記憶する。
【0062】
モデル生成プログラム81は、訓練済みの探索モジュール5を生成する後述の機械学習の情報処理(図7)をモデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。複数の学習データセット3は、訓練済みの探索モジュール5の生成に使用される。学習結果データ125は、生成された訓練済みの探索モジュール5に関する情報を示す。本実施形態では、学習結果データ12
5は、モデル生成プログラム81を実行した結果として生成される。詳細は後述する。
【0063】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モデル生成装置1は、通信インタフェース13を利用して、他の情報処理装置との間で、ネットワークを介したデータ通信を実行することができる。外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は任意に選択されてよい。モデル生成装置1は、通信インタフェース13及び外部インタフェース14の少なくとも一方を介して、訓練マップ31を得るためのデバイス(例えば、カメラ、他のコンピュータ等)に接続されてよい。
【0064】
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置15及び出力装置16を利用することで、モデル生成装置1を操作することができる。
【0065】
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかは、記憶媒体91に記憶されていてもよい。モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかを取得してもよい。なお、図3では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ17の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
【0066】
なお、モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で
構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
【0067】
<経路探索装置>
図4は、本実施形態に係る経路探索装置2のハードウェア構成の一例を模式的に例示する。図4に示されるとおり、本実施形態に係る経路探索装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。
【0068】
経路探索装置2の制御部21~ドライブ27及び記憶媒体92はそれぞれ、上記モデル生成装置1の制御部11~ドライブ17及び記憶媒体91それぞれと同様に構成されてよ
い。制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、経路探索プログラム82、学習結果データ125等の各種情報を記憶する。
【0069】
経路探索プログラム82は、訓練済みの探索モジュール5を使用して経路探索タスクを遂行する後述の情報処理(図8)を経路探索装置2に実行させるためのプログラムである。経路探索プログラム82は、当該情報処理の一連の命令を含む。経路探索プログラム82及び学習結果データ125の少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、経路探索装置2は、経路探索プログラム82及び学習結果データ125の少なくともいずれかを記憶媒体92から取得してもよい。
【0070】
経路探索装置2は、通信インタフェース23及び外部インタフェース24の少なくとも一方を介して、対象マップ221を得るためのデバイス(例えば、カメラ、他のコンピュータ等)に接続されてよい。
【0071】
なお、経路探索装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。経路探索装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、経路探索装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、携帯端末(例えば、スマートフォン)、タブレットPC、PLC(programmable logic controller)等であってもよい。
【0072】
[ソフトウェア構成]
<モデル生成装置>
図5は、本実施形態に係るモデル生成装置1のソフトウェア構成の一例を模式的に例示する。モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたモデル生成プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図5に示されるとおり、本実施形態に係るモデル生成装置1は、データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0073】
データ取得部111は、複数の学習データセット3を取得するように構成される。各学習データセット3は、訓練マップ31及び正解情報32の組み合わせにより構成される。訓練マップ31は、複数のノードを含むように構成される。各ノードは、実空間又は仮想空間上の任意の位置に対応してよい。一例として、移動体の移動する経路を探索するケースでは、各ノードは、移動体の移動を許容する空間領域の任意の地点に対応してよい。他の一例として、ロボット装置の動作する経路を探索するケースでは、各ノードは、ロボット装置の作業エリアの任意の地点に対応してよい。他の一例として、交通機関の利用経路を探索するケースでは、各ノードは、交通機関の拠点等の地理上の任意の地点に対応してよい。訓練マップ31は、画像により構成されてよく、各ノードは、画像に含まれる各画素により構成されてよい。画像は、実画像又はバイナリ画像であってよい。正解情報32
は、訓練マップ31における開始ノードS1から目標ノードG1までの推奨経路の正解を示すように構成される。
【0074】
学習処理部112は、取得された複数の学習データセット3を使用して、探索モジュール5の機械学習を実施するように構成される。探索モジュール5は、ニューラルネットワーク50、抽出演算51、及び選択演算52を含むように構成される。ニューラルネットワーク50は、入力マップに含まれる複数のノードそれぞれのコストを推定するように構成される。抽出演算51は、経由ノードに近接する1つ以上の候補ノードを入力マップに含まれる複数のノードから抽出するように構成される。選択演算52は、ニューラルネットワーク50の推定結果に基づいて、開始ノードから目標ノードまでのコストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択するように構成される。探索モジュール5は、開始ノードを最初の経由ノードに設定し、目標ノードが経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返すことで、開始ノードから目標ノードまでの経路を探索するように構成される。
【0075】
機械学習は、誤差逆伝播法によって、各学習データセット3について、訓練マップ31を入力マップとして与えることで探索モジュール5により探索される経路が正解情報32により示される推奨経路の正解に適合するように探索モジュール5を訓練することにより構成される。学習処理部112は、機械学習の間、順伝播(探索の試行)のフェーズでは、抽出演算51及び選択演算52をそのまま計算するのに対して、逆伝播のフェーズでは、抽出演算51及び選択演算52それぞれを微分可能な代替演算に置き換え、置き換えられた代替演算の微分計算により、抽出演算51及び選択演算52それぞれの微分計算に対応する近似勾配を算出するように構成される。
【0076】
保存処理部113は、機械学習により生成された訓練済みの探索モジュール5に関する情報を学習結果データ125として生成し、生成された学習結果データ125を所定の記憶領域に保存するように構成される。学習結果データ125は、訓練済みの探索モジュール5を再生するための情報を含むように適宜構成されてよい。
【0077】
(探索モジュール)
図5に示されるとおり、本実施形態に係る探索モジュール5に含まれるニューラルネットワーク50は、全結合型ニューラルネットワークであり、入力層501、1つ以上の中間(隠れ)層502、及び出力層503を備えている。
【0078】
入力層501は、各ノードのコストを推定する対象となるマップの入力を受け付けるように構成される。コストは、マップ内の障害物等の配置の他、開始ノード及び目標ノードの位置にも影響を受け得る。そのため、入力層501は、マップと共に、開始ノード及び目標ノードの少なくとも一方の情報の入力を更に受け付けるように構成されてよい。出力層503は、入力マップに含まれる各ノードのコストの推定結果を出力するように構成される。中間層502の数は、実施の形態に応じて適宜決定されてよい。
【0079】
各層501~503は、1又は複数のニューロン(ノード)を備えている。各層501~503に含まれるニューロンの数は、実施の形態に応じて適宜決定されてよい。入力層501のニューロンの数は、例えば、上記入力の次元数等の入力形態に応じて適宜決定されてよい。出力層503のニューロンの数は、例えば、上記出力の次元数等の出力形態に応じて適宜決定されてよい。本実施形態では、各層501~503に含まれる各ニューロンは、隣接する層の全てのニューロンと結合される。
【0080】
各層501~503の各結合には、重み(結合荷重)が設定される。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否
かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は任意に選択されてよい。各層501~503に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算パラメータの一例である。
【0081】
上記機械学習では、学習処理部112は、各学習データセット3の訓練マップ31を訓練データ(入力データ)として使用し、正解情報32を正解データ(教師信号、ラベル)として使用する。
【0082】
すなわち、探索の試行フェーズでは、まず、学習処理部112は、各学習データセット3の訓練マップ31を入力層501に入力し、ニューラルネットワーク50の順伝播の演算処理を実行する。この演算により、学習処理部112は、訓練マップ31に含まれる各ノードのコストの推定結果60を出力層503から取得する。学習処理部112は、開始ノードS1を最初の経由ノードに設定する。そして、学習処理部112は、得られた推定結果60を利用し、目標ノードG1が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。この順伝播の演算過程では、学習処理部112は、抽出演算51及び選択演算52をそのまま計算する。これらの一連の順伝播の演算(探索の試行)を実行した結果として、学習処理部112は、訓練マップ31に対する経路の探索結果62を取得する。
【0083】
学習処理部112は、得られた探索結果62と入力した訓練マップ31に関連付けられた正解情報32により示される正解との間の誤差を算出する。そして、学習処理部112は、誤差の勾配を算出し、誤差逆伝播法により、算出された誤差の勾配を逆伝播して、各演算パラメータの値を調整する。この逆伝播の演算過程では、学習処理部112は、代替演算の微分計算により算出される近似勾配それぞれを抽出演算51及び選択演算52それぞれの微分計算の結果として採用する。
【0084】
学習処理部112は、各学習データセット3について、算出される誤差の和が小さくなるように各演算パラメータの値を調整する上記一連の処理を繰り返す。この機械学習の結果として、入力マップに対してコスト最小となる推奨経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。
【0085】
保存処理部113は、上記機械学習により生成された訓練済みの探索モジュール5を再生するための学習結果データ125を生成する。訓練済みの探索モジュール5を再生可能であれば、学習結果データ125の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、学習結果データ125は、上記機械学習の調整により得られた各演算パラメータの値を示す情報を含んでよい。場合によって、学習結果データ125は、ニューラルネットワーク50の構造、抽出演算51の内容、及び選択演算52の内容の少なくともいずれかを示す情報を含んでよい。ニューラルネットワーク50の構造は、例えば、入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。保存処理部113は、生成された学習結果データ125を所定の記憶領域に保存する。
【0086】
<経路探索装置>
図6は、本実施形態に係る経路探索装置2のソフトウェア構成の一例を模式的に例示する。経路探索装置2の制御部21は、記憶部22に記憶された経路探索プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された経路探索プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図6に示されるとおり、本実施形態に係る経路探索装置2は、マップ取得部211、探索
部212、及び出力部213をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、経路探索装置2の各ソフトウェアモジュールも、モデル生成装置1と同様に、制御部21(CPU)により実現される。
【0087】
マップ取得部211は、経路探索タスクの対象となる対象マップ221を取得するように構成される。探索部212は、学習結果データ125を保持していることで、訓練済みの探索モジュール5を備えている。探索部212は、訓練済みの探索モジュール5を使用して、取得された対象マップ221における開始ノードS2から目標ノードG2までの経路を探索するように構成される。すなわち、探索部212は、訓練済みのニューラルネットワーク50の入力層501に取得された対象マップ221を入力し、訓練済みのニューラルネットワーク50の順伝播の演算処理を実行する。この演算処理により、探索部212は、対象マップ221に含まれる各ノードのコストの推定結果223を出力層503から取得することができる。続いて、探索部212は、得られた推定結果223を利用し、目標ノードG2が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。この第2計算モジュールの演算では、探索部212は、上記機械学習の順伝播のフェーズ(探索の試行フェーズ)と同様に、抽出演算51及び選択演算52をそのまま採用する。これらの一連の演算処理の実行結果として、探索部212は、対象マップ221に対する経路の探索結果225を取得するように構成される。出力部213は、得られた探索結果225に関する情報を出力するように構成される。
【0088】
<その他>
モデル生成装置1及び経路探索装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置1及び経路探索装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサ(例えば、グラフィックスプロセッシングユニット)により実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、モデル生成装置1及び経路探索装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0089】
§3 動作例
[モデル生成装置]
図7は、本実施形態に係るモデル生成装置1による機械学習に関する処理手順の一例を示すフローチャートである。以下で説明するモデル生成装置1の処理手順は、モデル生成方法の一例である。ただし、以下で説明するモデル生成装置1の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0090】
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、複数の学習データセット3を取得する。
【0091】
各学習データセット3は適宜生成されてよい。一例として、まず、探索空間を構成する複数のノードを含む訓練マップ31を生成する。探索空間は、例えば、移動体の移動計画、ロボット装置の動作計画、交通機関の乗り換え計画等のタスクの目的に応じて設定されてよい。また、探索空間は、実空間又は仮想空間上に設定されてよい。訓練マップ31は人手により適宜生成されてもよい。探索空間の少なくとも一部を変更することで、複数の異なる訓練マップ31が生成されてよい。マップに実画像を利用する場合、経路探索の対象となり得る空間領域をカメラにより撮影することで、訓練マップ31を生成してもよい。マップにバイナリ画像を利用する場合、カメラにより得られた実画像の各画素を任意の
方法で二値化することにで、訓練マップ31を生成してもよい。バイナリ画像は人手で生成されてもよい。訓練マップ31は、複数の画像により構成されてもよい。
【0092】
次に、生成された訓練マップ31に対して、開始ノードから目標ノードまでの推奨経路の正解を示す正解情報32を生成する。推奨経路は、適宜得られてよい。一例として、推奨経路は、オペレータの手作業により与えられてもよい。その他の一例として、推奨経路は、例えば、ダイクストラ法、最良優先探索法、A探索アルゴリズム等の既存の探索アルゴリズムを訓練マップ31に対して実行することで得られてもよい。更にその他の一例として、実空間上に探索空間が設定される場合、その探索空間において開始ノードから目標ノードまで実際に移動する又はその計画を立てることで得られた実績を推奨経路として利用してもよい。コストの総和が最小となる経路を推奨経路の正解として取り扱うことが望ましいが、少なくとも一部の正解情報32により示される正解は、必ずしもコストの総和が最小となる経路でなくてもよい。コストは、例えば、距離、時間、費用、危険度、混雑度、魅力度等に応じて評価されてよい。一例として、コストの評価指標として距離を採用することで、正解情報32は、推奨経路の正解として最短距離を示すように構成されてよい。なお、推奨経路を表現可能であれば、正解情報32のデータ形式は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例として、訓練マップ31が画像で構成される場合、正解情報32も画像で構成されてよく、推奨経路は、その画像上で示されてよい。
【0093】
そして、生成された正解情報32を訓練マップ31に関連付ける。これにより、各学習データセット3を生成することができる。なお、同一の訓練マップ31に対して、開始ノード及び目標ノードの少なくとも一方が異なるように開始ノード及び目標ノードの複数のペアを生成してもよい。生成された各ペアに対して正解情報32を生成し、各ペアの生成された正解情報32を訓練マップ31に関連付けてもよい。これにより、同一の訓練マップ31から複数の異なる学習データセット3を生成してもよい。
【0094】
各学習データセット3は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、各学習データセット3の生成は、モデル生成装置1により行われてもよいし、モデル生成装置1以外の他のコンピュータにより行われてもよい。各学習データセット3をモデル生成装置1が生成する場合、制御部11は、自動的に又は入力装置15を介したオペレータの操作により手動的に上記生成処理を実行することで、各学習データセット3を取得してよい。一方、各学習データセット3を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された各学習データセット3を取得してよい。複数の学習データセット3の一部がモデル生成装置1により生成され、その他が1又は複数の他のコンピュータにより生成されてもよい。
【0095】
取得する学習データセット3の件数は、特に限定されなくてよく、機械学習を実施可能なように実施の形態に応じて適宜決定されてよい。複数の学習データセット3を取得すると、制御部11は、次のステップS102に処理を進める。
【0096】
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、取得された複数の学習データセット3を使用して、探索モジュール5の機械学習を実施する。
【0097】
機械学習の処理の一例として、まず、機械学習の処理対象となる探索モジュール5の初期設定を行う。探索モジュール5のうちニューラルネットワーク50の初期設定では、ニューラルネットワーク50の構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)及び各演算パラメータの初期値を
適宜与える。ニューラルネットワーク50の構造及び各演算パラメータの初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。再学習を行う場合、過去の機械学習により得られた学習結果データに基づいて、ニューラルネットワーク50の初期設定が行われてよい。
【0098】
また、抽出演算51及び選択演算52は、適宜構築されてよい。抽出演算51により抽出される候補ノード(すなわち、経由ノードに近接するノード)は、経由ノードの次に経由する候補となるノードであって、典型的には、経由ノードに隣接するノードである。抽出演算51により抽出される候補ノードは、この経由ノードに物理的に隣接するノードの他、例えば、経由ノードから一定のコスト以内で移動(遷移)可能なノードを含んでよい。上記(3)(B)のとおり、抽出演算51は、経由ノード(v)が指定されると、指定された経由ノード(v)に近接する1つ以上の候補ノード(集合VSUCC⊂V)を入力マップに含まれるノードの集合(V)から抽出し、抽出された候補ノードを集合Oに追加するように適宜構成されてよい。
【0099】
一方、上記(3)(A)のとおり、選択演算52は、ニューラルネットワーク50によるコストの推定結果に基づいて、コストが最小となる次の経由ノードを集合Oから選択し、選択したノードを集合Cに追加すると共に、集合Oから取り除くように適宜構成されてよい。コストを計算するためのコスト関数f(v)(式1)は任意に設定されてよい。すなわち、ノードの抽出及び選択により経路を探索するものであれば、探索モジュール5で採用する探索アルゴリズムは、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。
【0100】
一例として、選択演算52は、所定の探索アルゴリズムによりコストの総和が最小となるように、抽出された1つ以上の候補ノードから次の経由ノードを選択するように構成されてよい。所定の探索アルゴリズムは、例えば、ダイクストラ法、最良優先探索法、又はA探索アルゴリズムであってよい。つまり、選択演算52は、既存の探索アルゴリズムを利用して構築されてよい。これにより、探索モジュール5の構築にかかる手間を低減することができる。なお、各アルゴリズムは、オリジナルのアルゴリズムの他に、変形アルゴリズム(オリジナルのアルゴリズムから派生したアルゴリズム)を含んでよい。例えば、所定の探索アルゴリズムは、変形ダイクストラ法、変形最良優先探索法、及び変形A探索アルゴリズムを含んでよい。例えば、A探索アルゴリズムは、オリジナルのA探索アルゴリズムの他に、weighted A*(上記式1のa=1、b>1)、bidirectional A*
(開始ノード及び目標ノードの双方から経路を探索する)等の変形A探索アルゴリズムを含んでよい。
【0101】
これに応じて、ニューラルネットワーク50の出力(すなわち、推定結果60)は、入力マップに含まれる各ノードについて、上記式1のコスト関数f(v)の値を導出可能に構成されてよい。一例として、各ノードの評価関数f(v)(上記式1)は、以下の式2に置き換えられてよい。
【0102】
【数2】
φ(n)は、ニューラルネットワーク50により推定されるノードnのコストを示す。P(v,v)は、開始ノードvからノードvまでのコストが最小となるノードの系列(集合)を示す。このノードの系列(P(v,v))は、選択演算52により経由ノードを選択した後、抽出演算51により候補ノードを抽出する際に、候補ノードの親ノードと
して経由ノードの情報を連結リスト等の形式で保持することで、逐次的に更新されてよい。a及びbの値は、採用するアルゴリズムに応じて適宜決定されてよい。h(v,v)は、上記のとおり、ノードvから目標ノードvまで移動するのにかかると予想されるコストである。aが0ではない場合、h(v,v)は、ニューラルネットワーク50の推定結果を利用せずに算出されてよい。例えば、h(v,v)は、ノードvから目標ノードvまでのユークリッド距離、マンハッタン距離等の既存の指標により算出されてよい。その他の一例では、h(v,v)も、φ(m)の項と同様に、ニューラルネットワーク50の推定結果を利用して算出されてよい。この場合、h(v,v)の算出方法の一例として、ノードvから目標ノードvまでの直線上にあるノードについてのコストφ(m)の総和をh(v,v)として算出してもよい。算出方法のその他の一例として、ノードvから目標ノードvまでの直線上にあるノードについてのコストφ(m)の最大値、最小値又は中央値をh(v,v)として算出してもよい。これにより、探索モジュール5は、ニューラルネットワーク50により得られる推定結果を利用し、抽出演算51及び選択演算52を実行することで、コスト最小となる経路を探索可能に構成される。なお、以下の説明では、簡略化のため、探索アルゴリズムには、オリジナルのA探索アルゴリズム又は変形A探索アルゴリズムを採用するものとし、h(v,v)の算出方法には、ニューラルネットワーク50の推定結果を用いない例を採用するものとする。
【0103】
探索モジュール5の一例として、2次元のバイナリ画像によりマップが構成され、コストの値が[0,1]の範囲で与えられる場合、ニューラルネットワーク50は、例えば、出力層にシグモイド関数を用いることで、各ノード(各画素)のコストの推定結果を二次元画像(各画素の値は[0,1])で出力するように構成されてよい。マップ(バイナリ画像)は、障害物のノードの値が0であり、移動可能なノードの値が1であるように構成されてよい。開始ノードvは、開始ノードvの値が1であり、それ以外の値が0であるバイナリ画像により表現されてよい。同様に、目標ノードvは、目標ノードvの値が1であり、それ以外の値が0であるバイナリ画像により表現されてよい。上記集合C及び集合Oも、集合に属するノードの値が1であり、それ以外の値が0であるバイナリ画像により表現されてよい。この場合に、選択演算52は、以下の式3により与えられてよい。
【0104】
【数3】
O(n)(∈{0,1})は、集合Oにおけるノードnの値を示す。τは、温度パラメータであり、マップのサイズによって適応的に決定されてよい。一例では、τには、マップサイズSの平方根が代入されてよい。式3の演算により、集合Oに属するノードの中からfが最小となるノードを選択することができる。なお、式3のvは、argmaxにより選択されるノードの値が1であり、それ以外のノードの値が0であるバイナリ画像(one-hot map)により表現可能である。この選択演算52により、集合Cは、以下の式4により更
新されてよい。また、集合Oは、以下の式5により更新されてよい。
【0105】
【数4】
【数5】
なお、探索を開始する前に、集合Cを表現するバイナリ画像は、全てのノードの値を0に初期化されており、集合Oを表現するバイナリ画像は、開始ノードvを表現するバイナリ画像により与えられる。上記式4の更新により、集合Cは、探索されたノードの値が1であり、探索されなかったノードの値が0であるバイナリ画像により表現されることになる。つまり、探索終了後の集合Cは、探索過程で得られるvを全て加算した合計のバイナリ画像により表現されることになる。一方、抽出演算51は、以下の式6により与えられてよく、この抽出演算52により、集合Oは、以下の式7により更新されてよい。
【0106】
【数6】

【数7】

Nは、「近接」を表現するフィルタを示す。例えば、4つの近接ノードをフィルタリングする場合、Nは、[[0,1,0],[1,0,1],[0,1,0]]であってよく、8つの近接ノードをフィルタリングする場合、Nは、[[1,1,1],[1,0,1],[1,1,1]]であってよい。演算子「*」は、畳み込み演算を示す。Iは、入力マップ(障害物のノードの値が0であり、移動可能なノードの値が1であるように構成されたバイナリ画像)を示す。演算子「\odot」は、アダマール積(要素積)を示す。式7の
抽出演算51により、次の経由ノードとして選択されたノードvに近接するノードのうち、探索候補(集合O)にも探索済み(集合C)にもなっていないノードを抽出し、集合Oに追加することができる。
【0107】
上記抽出演算51及び選択演算52により構成される第2計算モジュールの順伝播の演算は、次の(i)-(iii)の処理として表現することができる。
(i)選択演算52(式3)を実行する。
(ii)式4により、集合Cを更新する。集合Cに追加するノードvが目標ノードvである場合、経路探索を終了する。
(iii)抽出演算51(式6)、並びに式5及び式7による集合Oの更新を実行し、(i)に戻る。
この第2計算モジュールの順伝播の演算は、ニューラルネットワーク50(第1計算モジュール)の順伝播の演算が完了した後に実行される。バイナリ画像をマップに用いる場合、初期設定により、ニューラルネットワーク50、抽出演算51、及び選択演算52は、以上のように構成されてよい。
【0108】
次に、制御部11は、各学習データセット3について、各学習データセット3について、訓練マップ31を入力マップとして与えることで探索モジュール5により探索される経路が正解情報32により示される推奨経路の正解に適合するように探索モジュール5を訓練する。この訓練処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
【0109】
訓練処理の一例として、まず、制御部11は、探索モジュール5を使用して、各学習データセット3の訓練マップ31に対する経路探索を試行する。すなわち、制御部11は、各学習データセット3の訓練マップ31をニューラルネットワーク50の入力層501に入力する。ニューラルネットワーク50が、開始ノード及び目標ノードの少なくとも一方の情報の入力を更に受け付けるように構成されている場合、制御部11は、訓練マップ31と共に、訓練マップ31の開始ノードS1及び目標ノードG1の少なくとも一方の情報を入力層501に更に入力する。そして、制御部11は、ニューラルネットワーク50(第1計算モジュール)の順伝播の演算処理を実行する。この演算処理の結果として、制御部11は、訓練マップ31に含まれる各ノードのコストの推定結果60を出力層503から取得する。続いて、制御部11は、ニューラルネットワーク50によるコストの推定結果60を利用して、第2計算モジュールの順伝播の演算を実行する。具体的には、制御部11は、上記(1)(2)のとおり、集合O及び集合Cを用意し、それぞれを空にする(すなわち、初期化する)。制御部11は、開始ノードS1を集合Oに追加することで、開始ノードS1を最初の経由ノードに設定する。そして、制御部11は、得られた推定結果60を上記のとおりに利用し、目標ノードG1が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。例えば、探索モジュール5が上記バイナリ画像を用いる一例のとおり構成される場合、制御部11は、上記(i)-(iii)の処理の処理を実行する。これら一連の順伝播の演算(探索の試行)を実行した結果として、制御部11は、訓練マップ31に対する経路の探索結果62(すなわち、集合C)を得るこができる。この順伝播の演算過程では、制御部11は、抽出演算51及び選択演算52をそのまま計算する。
【0110】
次に、制御部11は、得られた探索結果62(集合C)と入力した訓練マップ31に関連付けられた正解情報32により示される推奨経路の正解との間の誤差を算出する。誤差(損失)の算出には、損失関数が用いられてよい。誤差の計算に利用する損失関数の種類は、実施の形態に応じて適宜選択されてよい。一例として、探索結果62及び正解情報32が共に画像により構成される場合、制御部11は、例えば、ハミング距離、L1距離、L2距離等の画像の同一性を評価する指標を損失関数として用いて、両画像間の誤差(差分)を算出してよい。すなわち、損失関数は、推奨経路上のノードが探索結果62に含まれていないこと、及び推奨経路以外のノードが探索結果62に含まれていることを誤差として評価可能に構成されればよい。具体例として、探索モジュール5が上記バイナリ画像を用いる一例のとおり構成され、正解情報32及び探索結果62がバイナリ画像で表現される場合、誤差Lは、以下の式8により与えられてよい。
【0111】
【数8】

C(n)(∈{0,1})は、集合Cにおけるノードnの値を示す。Y(n)は、正解情報32を表現するバイナリ画像におけるノードnの値を示す。このバイナリ画像は、推奨経路上のノードの値が1、それ以外のノードの値が0になるように構成されてよい。
【0112】
続いて、制御部11は、算出された誤差の勾配を算出する。そして、制御部11は、誤差逆伝播法により、算出された誤差の勾配を用いて、各演算パラメータの値の誤差を出力側から順に算出する。探索モジュール5が上記バイナリ画像を用いる一例のとおり構成される場合、集合Cは、以下の式9のように表現することができる。これに応じて、誤差の勾配を逆伝播する演算は、以下の式10により与えられてよい。
【0113】
【数9】

【数10】

は、上記(i)-(iii)による探索中のtステップ目で選択されたノードを示す。θは、ニューラルネットワーク50の各演算パラメータを示す。
【0114】
この誤差を逆伝播する演算過程では、制御部11は、抽出演算51及び選択演算52をそれぞれ微分可能な代替演算に置き換える。制御部11は、置き換えられた代替演算の微分計算により、抽出演算51及び選択演算52それぞれの微分計算に対応する近似勾配を算出する。一例では、抽出演算51の代替演算は、フィルタNをカーネルとした畳み込み演算であってよい。また、選択演算52の代替演算Vは、式11(straight-through soft-min with temperatureを利用した一例)の演算であってよい。
【0115】
【数11】

【数12】
【0116】
式11の代替演算をargmaxn(F(-f(n)))と表現すると、式10におけるδv (n)
/δf(n)は、δF/δf(n)と表現することができる。Vは、選択されたノードの値が1であり、それ以外のノードの値が0である配列と捉えることができる。Vのn番目の要素について、fのm番目の要素に対する勾配は、上記式12のとおり算出することができる。また、式2のφ(m)の項を式1のgの項と捉えると、δf(n)/δφ(n)は、δf(n)/δg(n)及びδg(n)/δφ(n)の積により表現することが
できる。このうち、Pの経路を辿る際に、抽出演算51を上記代替演算に置き換えていることで、近似勾配(すなわち、δg(n)/δφ(n)の項)を算出することができる。したがって、これらの置き換えにより、制御部11は、代替演算に置き換えなければ微分不能な上記式10におけるδv (n)/δf(n)の項及びδf(n)/δφ(n)の項の近似勾配を算出することができる。これにより、勾配(δL/δθ)を算出することができる。そして、制御部11は、算出された勾配(δL/δθ)を用いて、各層501~503の各演算パラメータの値の誤差を算出することができる。
【0117】
制御部11は、算出された各誤差に基づいて、各層501~503の各演算パラメータの値を更新する。各演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
【0118】
制御部11は、上記一連の更新処理により、各学習データセット3について、算出される誤差の和が小さくなるように(上記の例では、誤差Lを最小化するように)、各層501~503の各演算パラメータの値を調整する。例えば、規定回数実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで、制御部11は、上記一連の更新処理による各演算パラメータの値の調整を繰り返してもよい。
【0119】
この機械学習の処理結果(一例として、上記誤差Lを最小化するように各パラメータの値を最適化した結果)として、制御部11は、使用した学習データセット3に応じた所望の経路探索タスクを遂行する能力を獲得した訓練済みの探索モジュール5を生成することができる。換言すると、上記機械学習により、探索モジュール5に推奨経路を探索する能力を獲得させると共に、冗長な探索を低減するように各ノードのコストを推定する能力をニューラルネットワーク50に獲得させることができる。機械学習の処理が完了すると、制御部11は、次のステップS103に処理を進める。
【0120】
(ステップS103)
ステップS103では、制御部11は、保存処理部113として動作し、機械学習により生成された訓練済みの探索モジュール5に関する情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
【0121】
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース14を介してモデル生成装置1に接続された外付けの記憶装置であってもよい。
【0122】
学習結果データ125の保存が完了すると、制御部11は、本動作例に係るモデル生成装置1の処理手順を終了する。
【0123】
なお、生成された学習結果データ125は、任意のタイミングで経路探索装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ125を経路探索装置2に転送してもよい。経路探索装置2は、この転送を受信することで、学習結果データ125を取得してもよい。また、例えば、経路探索装置2は、通信インタフェース23を利用して、モデル生成装置1又は
データサーバにネットワークを介してアクセスすることで、学習結果データ125を取得してもよい。また、例えば、経路探索装置2は、記憶媒体92を介して、学習結果データ125を取得してもよい。また、例えば、学習結果データ125は、経路探索装置2に予め組み込まれてもよい。
【0124】
更に、制御部11は、上記ステップS101~ステップS103の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際に、機械学習に使用する学習データセット3の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した学習結果データ125を任意の方法で経路探索装置2に提供することで、経路探索装置2の保持する学習結果データ125を更新してもよい。
【0125】
[経路探索装置]
図8は、本実施形態に係る経路探索装置2による経路探索タスクの遂行に関する処理手順の一例を示すフローチャートである。以下で説明する経路探索装置2の処理手順は、経路探索方法の一例である。ただし、以下で説明する経路探索装置2の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
【0126】
(ステップS201)
ステップS201では、制御部21は、マップ取得部211として動作し、対象マップ221を取得する。
【0127】
対象マップ221は、訓練マップ31と同種のデータである。場合によっては、対象マップ221は、訓練マップ31と同一であってもよい。対象マップ221の取得には、任意のデバイスが用いられてよい。一例として、画像によりマップが構成される場合、対象マップ221の取得には、カメラが用いられてよい。制御部21は、外部インタフェース24等を介して、このデバイスから直接的に対象マップ221を取得してもよい。或いは、制御部21は、他のコンピュータを介して当該デバイスから間接的に対象マップ221を取得してもよい。
【0128】
対象マップ221と共に、制御部21は、開始ノードS2及び目標ノードG2の情報を適宜取得する。各ノード(S2、G2)の情報は、対象マップ221に含まれていてもよい。或いは、各ノード(S2、G2)の情報は、ユーザの指定、任意の情報処理の結果(例えば、現在地の測定結果)等から得られてよい。対象マップ221及び各ノード(S2、G2)の情報を取得すると、制御部21は、次のステップS202に処理を進める。
【0129】
(ステップS202)
ステップS202では、制御部21は、探索部212として動作し、学習結果データ125を参照して、訓練済みの探索モジュール5の設定を行う。そして、制御部21は、訓練済みの探索モジュール5を使用して、取得された対象マップ221における開始ノードS2から目標ノードG2までのコスト最小となる推奨経路を探索する。
【0130】
この探索の演算処理は、上記機械学習の訓練処理における探索試行フェーズの演算処理と同様であってよい。すなわち、制御部21は、取得された対象マップ221を訓練済みのニューラルネットワーク50の入力層501に入力する。ニューラルネットワーク50が、開始ノード及び目標ノードの少なくとも一方の情報の入力を更に受け付けるように構成されている場合、制御部21は、開始ノードS2及び目標ノードG2の少なくとも一方の情報を入力層501に更に入力する。そして、制御部21は、訓練済みのニューラルネットワーク50の順伝播の演算処理を実行する。この演算処理の結果として、制御部21
は、対象マップ221に含まれる各ノードのコストの推定結果223を出力層503から取得する。続いて、制御部21は、上記(1)(2)のとおり、集合O及び集合Cを用意し、それぞれを空にする。制御部21は、開始ノードS2を集合Oに追加することで、開始ノードS2を最初の経由ノードに設定する。そして、制御部21は、得られた推定結果223を利用して、目標ノードG2が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。
【0131】
これらの一連の演算処理の実行結果として、制御部21は、対象マップ221に対するコスト最小となる推奨経路の探索結果225を取得することができる。一例では、制御部21は、集合Cを参照して、目標ノードG2から親ノード(以前の経由ノード)を順に開始ノードS2まで辿ることで、コスト最小となる推奨経路を得ることができる。探索結果225を取得すると、制御部21は、次のステップS203に処理を進める。
【0132】
(ステップS203)
ステップS203では、制御部21は、出力部213として動作し、推奨経路の探索結果225に関する情報を出力する。
【0133】
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、ステップS202により得られた探索結果225をそのまま出力装置26に出力してもよい。出力形式は、例えば、画像、音声等から適宜選択されてよい。また、例えば、制御部21は、得られた探索結果225に基づいて、何らかの情報処理を実行してもよい。そして、制御部21は、その情報処理を実行した結果を、探索結果225に関する情報として出力してもよい。この情報処理を実行した結果の出力には、探索結果225に応じて制御対象装置の動作を制御することなどが含まれてよい。出力先は、例えば、出力装置26、他のコンピュータの出力装置、制御対象装置等であってよい。
【0134】
一例として、経路の探索結果225に関する情報は、探索された経路に従ったナビゲーションにより構成されてよい。ナビゲーションは、例えば、画像、音声等により、探索された経路に沿った移動をユーザに促すことであってよい。或いは、ナビゲーションは、探索された経路に沿って駆動するように制御対象装置の動作を制御することであってよい。これにより、得られた探索結果225に従って、移動案内又は動作制御を実行することができる。
【0135】
探索結果225に関する情報の出力が完了すると、制御部21は、本動作例に係る経路探索装置2の処理手順を終了する。経路探索装置2は、ステップS201~ステップS203の一連の情報処理を任意のタイミング(例えば、ユーザからの指示を受け付けた時点、制御対象装置の動作を制御する時点等)で実行するように構成されてよい。また、経路探索装置2は、ステップS201~ステップS203の一連の情報処理を繰り返し実行することで、上記経路探索タスクを繰り返し遂行するように構成されてよい。
【0136】
[特徴]
以上のとおり、本実施形態に係るモデル生成装置1は、ステップS102において、第1計算モジュール(ニューラルネットワーク50)のみを機械学習の対象として取り扱うのではなく、第1計算モジュール及び第2計算モジュール(抽出演算51及び選択演算52)の両方を機械学習の対象として取り扱う。これにより、ステップS101で取得する各学習データセット3の正解情報32の用意にかかる作業時間及び負担を抑えることができる。したがって、本実施形態によれば、訓練済みの探索モジュール5の生成にかかる手間の低減を図ることができる。
【0137】
また、ステップS102の機械学習の過程で、探索モジュール5は推奨経路を最適に探
索するように訓練されていくのに応じて、ニューラルネットワーク50は、探索の効率性を悪化させるエリアのコストを高く推定するように、正解情報32に示される推奨経路から間接的に訓練される。本実施形態に係る経路探索装置2は、ステップS202の処理において、この訓練済みのニューラルネットワーク50によるコストの推定結果223を使用することで、経路探索タスクを効率的に遂行することができる。探索モジュール5の探索アルゴリズムにA探索アルゴリズムを採用した場合には、コストが最小となる経路を得るための効率性を高めることができる。また、探索モジュール5の探索アルゴリズムに最良優先探索法を採用した場合には、訓練済みのニューラルネットワーク50による各ノードのコストの推定結果を利用することで、コストが最小となる経路を得る確率を高めることができる。
【0138】
更には、本実施形態に係るモデル生成装置1は、ステップS102の機械学習の逆伝播のフェーズにおいて、探索モジュール5に含まれる抽出演算51及び選択演算52それぞれを代替演算に置き換え、代替演算の微分計算により算出されるそれぞれの近似勾配を抽出演算51及び選択演算52それぞれの勾配として採用する。この置き換えにより、微分不可能な第2計算モジュールを含む探索モジュール5の機械学習を適切に実施することができる。その結果、上記経路探索タスクを効率的に遂行可能な訓練済みの探索モジュール5を機械学習により適切に生成することができる。
【0139】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【0140】
<4.1>
上記実施形態に係る経路探索システム100は、与えられたマップにおいて経路を探索するあらゆる場面に適用されてよい。具体例として、上記実施形態に係る経路探索システム100は、移動体に推奨する経路を探索する場面、ロボット装置に推奨する動線を探索する場面等に適用されてよい。以下、適用場面を限定した一具体例を示す。
【0141】
(A)移動体に推奨する経路を探索する場面
図9は、第1具体例に係る案内システム100Aの適用場面の一例を模式的に例示する。第1具体例は、移動体に推奨する経路を探索する場面に上記実施形態を適用した例である。第1具体例に係る案内システム100Aは、モデル生成装置1及び案内装置2Aを備える。案内装置2Aは、上記経路探索装置2の一例である。
【0142】
第1具体例におけるマップ(訓練マップ、対象マップ)は、移動体の移動を許容する範囲を含むように構成される。マップに含まれる各ノードは、移動体の移動を許容する空間領域(例えば、道路、広場、建物内のスペース等)の任意の地点に対応してよい。このマップは、画像により構成されてよい。この場合、マップは、カメラにより適宜得られてよい。カメラの種類は任意に選択されてよい。カメラには、例えば、一般的なRGBカメラ、赤外線カメラ、深度カメラ等が用いられてよい。その他、カメラには、Lidar(Light Detection And Ranging)センサ等の距離センサが用いられてもよい。一例として、航空写真、ドローン撮影写真等、移動体の移動可能な空間領域を撮影することで得られた実画像がマップとして用いられてよい。或いは、地図、見取り図等、当該空間領域を表現する画像がマップとして用いられてよい。或いは、当該空間領域の移動可能な領域及び移動不能な領域を二値で表現するバイナリ画像がマップとして用いられてよい。移動体は、例えば、車両、ドローン等の移動するように構成された機械であってよい。或いは、移動体は、
人であってよい。図9の例では、移動体は、車両である。これらの点を除き、第1具体例の構成は、上記実施形態と同様であってよい。
【0143】
(モデル生成装置)
第1具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、移動体が移動するのに推奨される経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。
【0144】
すなわち、ステップS101では、制御部11は、訓練マップ及び正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する。訓練マップは、移動体の移動を許容する範囲を含むように構成される。正解情報は、移動体が移動するのに推奨される経路を推奨経路として示すように構成される。ステップS102では、制御部11は、取得された複数の学習データセットを使用して、探索モジュール5の機械学習を実施する。上記実施形態と同様に、機械学習の逆伝播のフェーズでは、制御部11は、代替演算の微分計算により算出されるそれぞれの近似勾配を抽出演算51及び選択演算52それぞれの微分計算の結果として採用する。この機械学習により、移動体に対する推奨経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。ステップS103では、制御部11は、生成された訓練済みの探索モジュール5を示す学習結果データを所定の記憶領域に保存する。学習結果データは、任意のタイミングで案内装置2Aに提供されてよい。
【0145】
(案内装置)
案内装置2Aのハードウェア構成及びソフトウェア構成は、上記実施形態に係る経路探索装置2と同様であってよい。第1具体例において、案内装置2Aは、上記経路探索装置2と同様の処理手順により、移動体が移動するのに推奨される経路を探索することができる。
【0146】
すなわち、ステップS201では、案内装置2Aの制御部は、マップ取得部として動作し、移動体の移動を許容する(すなわち、移動体の移動対象となる)範囲を含む対象マップ221Aを取得する。対象マップ221Aを取得する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例として、地上を移動する移動体の移動計画を立てるために、その移動体の存在する領域及びその周囲の領域をドローンで撮影することで得られる画像を対象マップ221Aとして用いてよい。
【0147】
また、制御部は、開始ノードSA2及び目標ノードGA2の情報を適宜取得する。開始ノードSA2は、移動体の現在地又は所望の開始地点に対応してよい。目標ノードGA2は、移動体の目的地に対応してよい。一例として、各ノード(SA2、GA2)の情報は、ユーザの指定により得られてよい。その他の一例として、案内装置2Aが、GPS(Global Positioning System)等の測定器を備える場合、開始ノードSA2の情報は、測定
器による現在地の測定結果から得られてよい。対象マップ221Aが画像であり、対象マップ221Aに写る目的物(例えば、特定の建物、地点等)に向けて移動体が移動する場合、目標ノードGA2の情報は、対象マップ221Aに対する画像識別の結果から得られてよい。画像識別の方法は任意でよい。対象マップ221Aは、開始ノードSA2及び目標ノードGA2が特定された後に、それぞれを含むように適宜取得されてもよい。
【0148】
ステップS202では、制御部は、探索部として動作し、訓練済みの探索モジュール5を使用して、取得された対象マップ221Aにおいて開始ノードSA2から目標ノードGA2まで移動体が移動するのに推奨される経路を探索する。具体的に、制御部は、訓練済みのニューラルネットワーク50を使用して、対象マップ221Aに含まれる各ノードのコストを推定する。訓練済みのニューラルネットワーク50の演算処理の結果、制御部は
、各ノードのコストの推定結果223Aを取得する。制御部は、集合O及び集合Cを用意し、それぞれを空にする。制御部は、開始ノードSA2を集合Oに追加することで、開始ノードSA2を最初の経由ノードに設定する。そして、制御部は、得られた推定結果223Aを利用して、目標ノードGA2が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。これにより、制御部は、開始ノードSA2から目標ノードGA2までのコスト最小となる推奨経路の探索結果225Aを得ることができる。
【0149】
ステップS203では、制御部は、出力部として動作し、推奨経路の探索結果225Aに関する情報を出力する。一例として、制御部は、得られた推奨経路をそのまま出力してもよい。その他の一例として、制御部は、得られた探索結果225Aに基づいて、探索された推奨経路に沿った移動をナビゲートしてもよい。ナビゲートは、例えば、画像、音声等により行われてよい。移動体が、例えば、車両、ドローン等の機械である場合、ナビゲートは、ユーザの手動操作により推奨経路に沿った移動を促すようにメッセージ等の情報をユーザに対して出力することであってよい。或いは、案内装置2Aが当該機械の動作を制御可能に構成されている場合、ナビゲートは、探索された推奨経路に沿って移動するように当該機械の動作を制御することであってよい。移動体が、人である場合、ナビゲートは、推奨経路に沿った移動を促すようにメッセージなどの情報を人に対して出力することであってよい。
【0150】
(特徴)
第1具体例のモデル生成装置1によれば、移動体に推奨する経路を探索する能力を獲得した訓練済みの探索モジュール5の生成にかかる手間の低減を図ることができる。また、案内装置2Aでは、訓練済みの探索モジュール5を使用することで、移動体に推奨する経路を効率的に探索することができる。更に、モデル生成装置1では、機械学習の逆伝播フェーズにおける抽出演算51及び選択演算52の置き換えにより、探索モジュール5の機械学習を適切に実施することができる。その結果、移動体に推奨する経路を探索するタスクを効率的に遂行可能な訓練済みの探索モジュール5を適切に生成することができる。
【0151】
(B)ロボット装置に推奨する動線を探索する場面
図10は、第2具体例に係る制御システム100Bの適用場面の一例を模式的に例示する。第2具体例は、ロボット装置RBに推奨する経路を探索する場面に上記実施形態を適用した例である。第2具体例に係る制御システム100Bは、モデル生成装置1及び制御装置2Bを備える。制御装置2Bは、上記経路探索装置2の一例である。
【0152】
第2具体例におけるマップ(訓練マップ、対象マップ)は、ロボット装置RBの駆動を許容する範囲を含むように構成される。マップに含まれる各ノードは、ロボット装置RBの作業エリアの任意の地点に対応してよい。このマップは、画像により構成されてよい。この場合、マップは、カメラにより適宜得られてよい。カメラの種類は任意に選択されてよい。一例として、ロボット装置RBの駆動可能な空間領域を撮影することで得られた実画像がマップとして用いられてよい。或いは、当該空間領域の移動可能な領域及び移動不能な領域を二値で表現するバイナリ画像がマップとして用いられてよい。マップは、ロボット装置RBの作業環境をモデル化することで得られてもよい。ロボット装置RBは、例えば、産業用ロボット(例えば、ロボットアーム等)、自律型ロボット等であってよい。これらの点を除き、第2具体例の構成は、上記実施形態と同様であってよい。
【0153】
(モデル生成装置)
第2具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、ロボット装置RBが動作するのに推奨される経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。
【0154】
すなわち、ステップS101では、制御部11は、訓練マップ及び正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得する。訓練マップは、ロボット装置RBの駆動を許容する範囲を含むように構成される。正解情報は、ロボット装置RBが動作するのに推奨される経路を推奨経路として示すように構成される。ステップS102では、制御部11は、取得された複数の学習データセットを使用して、探索モジュール5の機械学習を実施する。上記実施形態と同様に、機械学習の逆伝播のフェーズでは、制御部11は、代替演算の微分計算により算出されるそれぞれの近似勾配を抽出演算51及び選択演算52それぞれの微分計算の結果として採用する。この機械学習により、ロボット装置RBに対して推奨経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。ステップS103では、制御部11は、生成された訓練済みの探索モジュール5を示す学習結果データを所定の記憶領域に保存する。学習結果データは、任意のタイミングで制御装置2Bに提供されてよい。
【0155】
(制御装置)
制御装置2Bのハードウェア構成及びソフトウェア構成は、上記実施形態に係る経路探索装置2と同様であってよい。駆動対象となるロボット装置RBは、通信インタフェース又は外部インタフェースを介して制御装置2Bに接続されてよい。第2具体例において、制御装置2Bは、上記経路探索装置2と同様の処理手順により、ロボット装置RBが動作するのに推奨される経路を探索することができる。
【0156】
すなわち、ステップS201では、制御装置2Bの制御部は、マップ取得部として動作し、ロボット装置RBの駆動を許容する範囲を含む対象マップ221Bを取得する。対象マップ221Bを取得する方法は、特に限定されなくてよく、実施の形態に応じて適宜選択されてよい。一例として、ロボット装置RBに設けられた又はその周囲に配置されたカメラでロボット装置RBの作業範囲を撮影することにより得られる画像を対象マップ221Bとして用いてよい。その他の一例として、ロボット装置RBの周辺環境をモデル化することで生成された環境情報を対象マップ221Bとして用いてよい。
【0157】
制御部は、開始ノードSB2及び目標ノードGB2の情報を適宜取得する。開始ノードSB2は、ロボット装置RBの現在位置又は所望の開始位置に対応してよい。ロボット装置RBがエンドエフェクタを備える場合、開始ノードSB2は、エンドエフェクタの現在位置又は所望の開始位置に対応してよい。目標ノードGB2は、ロボット装置RBの目標位置に対応してよい。ロボット装置RBの目標位置は、例えば、ワーク等の目標物の配置された位置であってよい。一例として、各ノード(SB2、GB2)の情報は、オペレータの指定により得られてよい。その他の一例として、開始ノードSB2の情報は、自装置の情報(例えば、エンドエフェクタの現在位置)から得られてよい。目標ノードGB2の情報は、目標位置の設定情報から得られてよい。更にその他の一例として、対象マップ221Bが画像であり、ロボット装置RB及び目標物が画像に写っている場合、各ノード(SB2、GB2)の情報は、対象マップ221Bに対する画像識別の結果から得られてよい。画像識別の方法は任意でよい。対象マップ221Bは、開始ノードSB2及び目標ノードGB2が特定された後に、それぞれを含むように適宜取得されてもよい。
【0158】
ステップS202では、制御部は、探索部として動作し、訓練済みの探索モジュール5を使用して、取得された対象マップ221Bにおいて開始ノードSB2から目標ノードGB2までロボット装置RBが動作するのに推奨される経路を探索する。具体的に、制御部は、訓練済みのニューラルネットワーク50を使用して、対象マップ221Bに含まれる各ノードのコストを推定する。訓練済みのニューラルネットワーク50の演算処理の結果、制御部は、各ノードのコストの推定結果223Bを取得する。制御部は、集合O及び集合Cを用意し、それぞれを空にする。制御部は、開始ノードSB2を集合Oに追加することで、開始ノードSB2を最初の経由ノードに設定する。そして、制御部は、得られた推
定結果223Bを利用して、目標ノードGB2が経由ノードとして選択されるまで、抽出演算51及び選択演算52を繰り返す。これにより、制御部は、開始ノードSB2から目標ノードGB2までのコスト最小となる推奨経路の探索結果225Bを得ることができる。
【0159】
ステップS203では、制御部は、出力部として動作し、推奨経路の探索結果225Bに関する情報を出力する。一例として、制御部は、得られた推奨経路をそのまま出力してもよい。その他の一例として、制御部は、得られた探索結果225Bに基づいて、探索された推奨経路に沿ってロボット装置RBを駆動するようにナビゲートしてもよい。ナビゲートは、例えば、画像、音声等により行われてよい。ナビゲートは、オペレータの手動操作により推奨経路に沿ったロボット装置RBの駆動を促す(すなわち、動作を指示する)ようにメッセージ等の情報をオペレータに対して出力することであってよい。或いは、制御装置2Bがロボット装置RBの動作を制御可能に構成されている場合、ナビゲートは、探索された推奨経路に沿って駆動するようにロボット装置RBの動作を制御することであってよい。
【0160】
(特徴)
第2具体例のモデル生成装置1によれば、ロボット装置RBに推奨する経路を探索する能力を獲得した訓練済みの探索モジュール5の生成にかかる手間の低減を図ることができる。また、制御装置2Bでは、訓練済みの探索モジュール5を使用することで、ロボット装置RBに推奨する経路を効率的に探索することができる。更に、モデル生成装置1では、機械学習の逆伝播フェーズにおける抽出演算51及び選択演算52の置き換えにより、探索モジュール5の機械学習を適切に実施することができる。その結果、ロボット装置RBに推奨する経路を探索するタスクを効率的に遂行可能な訓練済みの探索モジュール5を適切に生成することができる。
【0161】
(C)その他
以上、2つの具体例を示したが、上記実施形態を適用可能な場面はこれらに限定されるものではない。他の一例として、上記実施形態に係る経路探索システム100は、交通機関(例えば、航空、鉄道、バス等)を利用する経路を探索する場面に適用されてよい。この場合、マップ(訓練マップ、対象マップ)は、交通機関により形成される交通網の任意の範囲を含むように構成される。マップに含まれる各ノードは、交通機関の拠点(例えば、駅)等の地理上の任意の地点に対応してよい。正解情報は、交通機関を利用して移動するのに推奨される経路を推奨経路として示すように構成されてよい。これにより、モデル生成装置1は、交通機関を利用して移動するのに推奨される経路を探索する能力を獲得した訓練済みの探索モジュール5を生成することができる。また、経路探索装置2は、訓練済みの探索モジュール5を使用して、交通機関を利用して移動するのに推奨される経路を探索することができる。
【0162】
<4.2>
ニューラルネットワーク50の構成は、上記実施形態の例に限定されなくてよく、実施の形態に応じて適宜変更されてよい。例えば、各ニューロンは、隣接する層の特定のニューロンと接続されたり、隣接する層以外の層のニューロンと接続されたりしてもよい。各ニューロンの結合関係は、実施の形態に応じて適宜決定されてよい。中間層502は、省略されてもよい。ニューラルネットワーク50は、例えば、畳み込み層、プーリング層、正規化層、ドロップアウト層等の他の種類の層を含んでもよい。ニューラルネットワーク50は、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、グラフニューラルネットワーク等の他の形式のニューラルネットワークにより構成されてよい。
【0163】
また、上記実施形態において、ニューラルネットワーク50の入力及び出力の形式は、
特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、ニューラルネットワーク50は、マップ以外の情報の入力を更に受け付けるように構成されてもよい。また、例えば、ニューラルネットワーク50は、各ノードのコストの推定結果以外の情報を出力するように構成されてもよい。
【0164】
また、上記実施形態において、抽出演算51及び選択演算52は、実施の形態に応じて適宜変更されてよい。例えば、選択演算52は、以下の式13又は式14により与えられてよい。これに応じて、選択演算52の代替演算は、式3及び式11の関係と同様に、式13及び式14それぞれからO(n)を削除した演算により構成されてよい。
【0165】
【数13】

【数14】

なお、w(n)は、非負(0以上)の重みである。
【0166】
§5 実験例
逆伝播フェーズの置き換え及びニューラルネットワークにより得られるコストの推定結果を利用した探索の有効性を検証するために、以下の実施例及び比較例に係る探索モジュールを生成した。ただし、本発明は、以下の実施例に限定されるものではない。
【0167】
まず、上記実施形態と同様の方法により、バイナリ画像により構成されたマップにおいて開始ノードから目標ノードまでの最短経路を探索する能力を獲得した実施例に係る訓練済みの探索モジュールを生成した。ニューラルネットワークには、VGG-16 Network(参考文献<URL: https://pytorch.org/hub/pytorch_vision_vgg/>で公開されているネットワーク)の入力側の10層により構成されたU-Netを使用した。入力には、入力マップ(障害物のノードの値が0であり、それ以外のノードの値が1である)、並びに開始ノード及び目標ノードの値が1であり、それ以外のノードの値が0であるマップを結合することで得られる2チャンネルのマップを用いた。また、出力層の活性化関数にシグモイド関数を用いて、[0,1]の範囲で正規化された値を各ノードのコストの推定値として出力するようにニューラルネットワークを構成した。学習データセットには、参考文献<URL: https://github.com/mohakbhardwaj/motion_planning_datasets>で公開されているサンプルを使用した。マップのサイズは、32×32であった。障害物の種類毎に800個のサンプルを取得し、かつ探索モジュールを用意した。そして、障害物の種類毎に各探索モジュールの機械学習を実行した。機械学習の最適化アルゴリズムには、Adamを用いた。学習率は0.001に設定した。バッチサイズは100に設定した。エポック数は100に設定した。抽出演算の代替演算には、[[0,1,0],[1,0,1],[0,1,0]]をカーネルとした畳み込み演算を使用した。選択演算の探索アルゴリズムには、A*探索アルゴリズムを用いた。ノードvから目標ノードvまでの直線距離(マンハッタン距離)をコストとして算出する関数をh(v,v)として採用した。選択演算の代替演算には、上記式11(straight-through soft-min with temperature)を使用した。τには、32の平方根を代入した。一方、ニューラルネットワークを省略
し、上記(1)~(4)の手順でA*探索アルゴリズムにより最短経路を探索するように構成された比較例に係る探索モジュールを作成した。実施例の選択演算と同様に、比較例でも、ノードvから目標ノードvまでの直線距離(マンハッタン距離)をコストとして算出する関数をh(v,v)として採用した。そして、実施例及び各比較例に係る探索モジュールに3つの評価用の対象マップを与えて、各対象マップにおいて開始ノードから目標ノードまでの最短経路の探索を実行させた。
【0168】
図11A図11B及び図11Cは、評価に使用した対象マップを示す。図12A図12B及び図12Cは、比較例に係る探索モジュールにより図11A図11B及び図11Cの対象マップにおいて経路を探索した結果(濃い灰色)及び探索の対象となったノード(集合C、薄い灰色)を示す。図13A図13B及び図13Cは、実施例に係る探索モジュールのニューラルネットワークにより図11A図11B及び図11Cの対象マップに含まれる各ノードのコストを推定した結果を示す。図14A図14B及び図14Cは、実施例に係る探索モジュールにより図11A図11B及び図11Cの対象マップにおいて経路を探索した結果(濃い灰色)及び探索の対象となったノード(薄い灰色)を示す。
【0169】
図14A図14B及び図14Cに示されるとおり、実施例に係る訓練済みの探索モジュールによれば、評価用の対象マップにおいて開始ノードから目標ノードまでの最短経路を適切に発見することができた。この結果から、上記逆伝播フェーズの置き換えにより、微分不可能な演算を含んでいても、探索モジュールの機械学習を適切に実行することができ、これにより、推奨経路を探索する能力を獲得した訓練済みの探索モジュールを適切に生成可能であることが分かった。また、図12A図12B図12C図14A図14B及び図14Cに示されるとおり、比較例に比べて、実施例では、探索の対象となるノードの数を低減することができた。図13A図13B及び図13Cに示されるとおり、訓練済みのニューラルネットワークによれば、探索の効率を悪化させる領域のコストが高くなるように(すなわち、この領域のノードの探索を回避するように)各ノードのコストを推定することができた。この結果から、上記機械学習において間接的に訓練されたニューラルネットワークにより得られる各ノードのコストの推定結果を使用することで、経路探索の効率の改善を適切に図ることができることが分かった。
【符号の説明】
【0170】
1…モデル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
81…モデル生成プログラム、91…記憶媒体、
111…データ取得部、112…学習処理部、
113…保存処理部、
125…学習結果データ、
2…経路探索装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
82…経路探索プログラム、92…記憶媒体、
211…マップ取得部、212…探索部、213…出力部、
221…対象マップ、
3…学習データセット、
31…訓練マップ、32…正解情報、
5…探索モジュール、
50…ニューラルネットワーク、
501…入力層、502…中間(隠れ)層、
503…出力層、
51…抽出する演算、52…選択する演算
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図11C
図12A
図12B
図12C
図13A
図13B
図13C
図14A
図14B
図14C