(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-09-02
(45)【発行日】2024-09-10
(54)【発明の名称】制御装置、制御方法、および制御システム
(51)【国際特許分類】
G05D 1/69 20240101AFI20240903BHJP
G05D 1/46 20240101ALI20240903BHJP
B64U 20/80 20230101ALI20240903BHJP
B64C 19/02 20060101ALI20240903BHJP
【FI】
G05D1/69
G05D1/46
B64U20/80
B64C19/02
(21)【出願番号】P 2024074228
(22)【出願日】2024-05-01
【審査請求日】2024-05-01
【早期審査対象出願】
(73)【特許権者】
【識別番号】397036309
【氏名又は名称】株式会社インターネットイニシアティブ
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100195408
【氏名又は名称】武藤 陽子
(72)【発明者】
【氏名】柿島 純
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特開2023-059382(JP,A)
【文献】特開2011-128758(JP,A)
【文献】中国特許出願公開第113156979(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/87
(57)【特許請求の範囲】
【請求項1】
移動空間において設定された目的地点の位置までの移動体群の進路を制御する制御装置
と、前記移動体群とを備える制御システムであって、
前記制御装置は、
前記移動体群のうちから選択された第1移動体の現在の位置を取得するように構成された第1取得部と、
前記第1移動体の前記現在の位置から前記目的地点の位置に到達するまでに、前記第1移動体が順次進むべき進路を計算した推定結果に報酬関数を適用して、前記第1移動体が前記目的地点の位置へ到達するための報酬が最大化するように更新し、前記第1移動体が前記現在の位置から順次進むべき進路の方策を、強化学習モデルを用いて学習するように構成された第1学習部と、
前記第1学習部による学習によって得られた前記第1移動体が前記現在の位置から順次進むべき進路の方策を真の方策データとして、前記真の方策データに類似する疑似方策データを生成する生成器と、前記生成器によって生成された前記疑似方策データと前記真の方策データとを識別する識別器とを有する生成モデルの敵対的学習を行うように構成された第2学習部と、
前記第2学習部の敵対的学習によって得られた学習済み生成器を用いて、前記真の方策データに類似する前記疑似方策データを生成するように構成された生成部と、
前記生成部により生成された前記疑似方策データを含む情報を、前記移動体群の進路を制御する制御情報として、各移動体に設定するように構成された設定部と
を備え
、
前記移動体群は、前記第1移動体と、複数の第2移動体とを有し、
前記第1移動体と前記複数の第2移動体との各々は、
前記設定部により設定された前記制御情報を取得するように構成された第2取得部と、
自装置の現在の位置を取得するように構成された第3取得部と、
前記制御情報が示す、前記自装置が現在の位置から順次進むべき進路の方策に基づいて、前記第3取得部によって取得された前記自装置の前記現在の位置から、次に進むべき進路を決定するように構成された決定部と、
前記決定部によって決定された、前記次に進むべき進路に基づいて、前記自装置の移動を制御するように構成された移動制御部と
を備え、
前記制御情報は、前記真の方策データと、前記疑似方策データとを含み、
前記第1移動体の前記決定部は、前記真の方策データに基づいて、前記次に進むべき進路を決定し、
前記複数の第2移動体の各々の前記決定部は、前記疑似方策データに基づいて、前記次に進むべき進路を決定する
ことを特徴とする制御システム。
【請求項2】
請求項1に記載の制御
システムにおいて、
前記移動空間は、前記移動空間を複数の空間に分割した単位空間で定義され、
前記第1移動体が前記現在の位置から順次進むべき進路の方策は、前記現在の位置に対応する単位空間の位置から、前記第1移動体が順次進むべき単位空間の進路の方策である
ことを特徴とする制御
システム。
【請求項3】
請求項2に記載の制御
システムにおいて、
前記強化学習モデルは、入力層、隠れ層、および出力層を含むニューラルネットワークモデルであり、
前記第1学習部は、前記現在の単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記第1移動体が前記現在の単位空間の位置から次に進むべき進路として、進行方向に対する所定の方向への移動に係る各々の行動をとった場合に得られる将来の前記報酬の累積値の期待値を表す行動価値関数の第1推定値を出力し、
前記第1学習部は、さらに、前記第1移動体が次に到達した単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記行動価値関数の第2推定値を出力し、
前記第1学習部は、前記第1推定値が、前記第2推定値から計算される目標値となるように、前記ニューラルネットワークモデルの重みパラメータを学習する
ことを特徴とする制御
システム。
【請求項4】
移動空間において設定された目的地点の位置までの移動体群の進路を制御する制御方法であって、
前記移動体群のうちから選択された第1移動体の現在の位置を取得する第1取得ステップと、
前記第1移動体の前記現在の位置から前記目的地点の位置に到達するまでに、前記第1移動体が順次進むべき進路を計算した推定結果に報酬関数を適用して、前記第1移動体が前記目的地点の位置へ到達するための報酬が最大化するように更新し、前記第1移動体が前記現在の位置から順次進むべき進路の方策を、強化学習モデルを用いて学習する第1学習ステップと、
前記第1学習ステップでの学習によって得られた前記第1移動体が前記現在の位置から順次進むべき進路の方策を真の方策データとして、前記真の方策データに類似する疑似方策データを生成する生成器と、前記生成器によって生成された前記疑似方策データと前記真の方策データとを識別する識別器とを有する生成モデルの敵対的学習を行う第2学習ステップと、
前記第2学習ステップでの敵対的学習によって得られた学習済み生成器を用いて、前記真の方策データに類似する前記疑似方策データを生成する生成ステップと、
前記生成ステップで生成された前記疑似方策データを含む情報を、前記移動体群の進路を制御する制御情報として、各移動体に設定する設定ステップと
を備え
、
前記移動体群は、前記第1移動体と、複数の第2移動体とを有し、
さらに、前記第1移動体と前記複数の第2移動体との各々によって実行される、
前記設定ステップで設定された前記制御情報を取得する第2取得ステップと、
自装置の現在の位置を取得する第3取得ステップと、
前記制御情報が示す、前記自装置が現在の位置から順次進むべき進路の方策に基づいて、前記第3取得ステップで取得された前記自装置の前記現在の位置から、次に進むべき進路を決定する決定ステップと、
前記決定ステップで決定された、前記次に進むべき進路に基づいて、前記自装置の移動を制御する移動制御ステップと
を備え、
前記制御情報は、前記真の方策データと、前記疑似方策データとを含み、
前記第1移動体は、前記決定ステップで、前記真の方策データに基づいて、前記次に進むべき進路を決定し、
前記複数の第2移動体の各々は、前記決定ステップで、前記疑似方策データに基づいて、前記次に進むべき進路を決定する
ことを特徴とする制御方法。
【請求項5】
請求項4に記載の制御方法において、
前記移動空間は、前記移動空間を複数の空間に分割した単位空間で定義され、
前記第1移動体が前記現在の位置から順次進むべき進路の方策は、前記現在の位置に対応する単位空間の位置から、前記第1移動体が順次進むべき単位空間の進路の方策である
ことを特徴とする制御方法。
【請求項6】
請求項5に記載の制御方法において、
前記強化学習モデルは、入力層、隠れ層、および出力層を含むニューラルネットワークモデルであり、
前記第1学習ステップは、前記現在の単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記第1移動体が前記現在の単位空間の位置から次に進むべき進路として、進行方向に対する所定の方向への移動に係る各々の行動をとった場合に得られる将来の前記報酬の累積値の期待値を表す行動価値関数の第1推定値を出力し、
前記第1学習ステップは、さらに、前記第1移動体が次に到達した単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記行動価値関数の第2推定値を出力し、
前記第1学習ステップは、前記第1推定値が、前記第2推定値から計算される目標値となるように、前記ニューラルネットワークモデルの重みパラメータを学習する
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法、および制御システムに関し、特に、移動体群の制御技術に関する。
【背景技術】
【0002】
従来から、ドローンなどの移動体の制御を行うシングルエージェントを対象としたシステムにおいて、Deep Q-Network(DQN)を採用し、移動体の現在の位置に基づいて、次に進むべき進路を示す行動をとった場合に得られる将来の報酬の累積値の期待値を表す行動価値関数により移動体を目的地点まで誘導する技術が知られている(特許文献1参照)。
【0003】
シングルエージェントの強化学習をマルチエージェントの強化学習に適用した手法として、各エージェントが独立した行動価値関数を持ち、各々が独立で学習するアルゴリズムであるIndependent Learners(ILs)が知られている(非特許文献1参照)。ILsにおいて各エージェントがDQNで独立して学習を行った場合、方策が変化し環境が非定常となるため、学習が安定しない場合があり、システム全体の協調的な動作を組み込むことが困難な場合がある。
【0004】
そこで、マルチエージェント間で共通の報酬を最大化する各エージェントの方策を学習するマルチエージェント強化学習を採用する協調型マルチエージェントシステムが知られている(非特許文献2参照)。しかし、報酬の設計はシステム全体の状態を把握する必要があるため、自己の行動が報酬に連動しない場合には、方策を正しく学習できない。そのため、従来の協調型マルチエージェントシステムにより複数の移動体の集団行動を制御する場合、集団行動の制御が困難な場合がある。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】Tan, Ming. "Multi-agent reinforcement learning: Independent vs. cooperative agents." Proceedings of the tenth international conference on machine learning. 1993.
【文献】Gu,Shangding,et al.“Multi-agent constrained policy optimisation.” arXiv preprint arXiv:2110.02793(2021).
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来の技術では、報酬設計の複雑性を抑制しつつ、集団行動を制御することが困難であった。
【0008】
本発明は、上述した課題を解決するためになされたものであり、報酬設計の複雑性を抑制しつつ、集団行動を制御することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決するために、本発明に係る制御装置は、移動空間において設定された目的地点の位置までの移動体群の進路を制御する制御装置であって、前記移動体群のうちから選択された第1移動体の現在の位置を取得するように構成された第1取得部と、前記第1移動体の前記現在の位置から前記目的地点の位置に到達するまでに、前記第1移動体が順次進むべき進路を計算した推定結果に報酬関数を適用して、前記第1移動体が前記目的地点の位置へ到達するための報酬が最大化するように更新し、前記第1移動体が前記現在の位置から順次進むべき進路の方策を、強化学習モデルを用いて学習するように構成された第1学習部と、前記第1学習部による学習によって得られた前記第1移動体が前記現在の位置から順次進むべき進路の方策を真の方策データとして、前記真の方策データに類似する疑似方策データを生成する生成器と、前記生成器によって生成された前記疑似方策データと前記真の方策データとを識別する識別器とを有する生成モデルの敵対的学習を行うように構成された第2学習部と、前記第2学習部の敵対的学習によって得られた学習済み生成器を用いて、前記真の方策データに類似する前記疑似方策データを生成するように構成された生成部と、前記生成部により生成された前記疑似方策データを含む情報を、前記移動体群の進路を制御する制御情報として、各移動体に設定するように構成された設定部とを備える。
【0010】
また、本発明に係る制御装置において、前記移動空間は、前記移動空間を複数の空間に分割した単位空間で定義され、前記第1移動体が前記現在の位置から順次進むべき進路の方策は、前記現在の位置に対応する単位空間の位置から、前記第1移動体が順次進むべき単位空間の進路の方策であってもよい。
【0011】
また、本発明に係る制御装置において、前記強化学習モデルは、入力層、隠れ層、および出力層を含むニューラルネットワークモデルであり、前記第1学習部は、前記現在の単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記第1移動体が前記現在の単位空間の位置から次に進むべき進路として、進行方向に対する所定の方向への移動に係る各々の行動をとった場合に得られる将来の前記報酬の累積値の期待値を表す行動価値関数の第1推定値を出力し、前記第1学習部は、さらに、前記第1移動体が次に到達した単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記行動価値関数の第2推定値を出力し、前記第1学習部は、前記第1推定値が、前記第2推定値から計算される目標値となるように、前記ニューラルネットワークモデルの重みパラメータを学習してもよい。
【0012】
上述した課題を解決するために、本発明に係る制御方法は、移動空間において設定された目的地点の位置までの移動体群の進路を制御する制御方法であって、前記移動体群のうちから選択された第1移動体の現在の位置を取得する第1取得ステップと、前記第1移動体の前記現在の位置から前記目的地点の位置に到達するまでに、前記第1移動体が順次進むべき進路を計算した推定結果に報酬関数を適用して、前記第1移動体が前記目的地点の位置へ到達するための報酬が最大化するように更新し、前記第1移動体が前記現在の位置から順次進むべき進路の方策を、強化学習モデルを用いて学習する第1学習ステップと、前記第1学習ステップでの学習によって得られた前記第1移動体が前記現在の位置から順次進むべき進路の方策を真の方策データとして、前記真の方策データに類似する疑似方策データを生成する生成器と、前記生成器によって生成された前記疑似方策データと前記真の方策データとを識別する識別器とを有する生成モデルの敵対的学習を行う第2学習ステップと、前記第2学習ステップでの敵対的学習によって得られた学習済み生成器を用いて、前記真の方策データに類似する前記疑似方策データを生成する生成ステップと、前記生成ステップで生成された前記疑似方策データを含む情報を、前記移動体群の進路を制御する制御情報として、各移動体に設定する設定ステップとを備える。
【0013】
また、本発明に係る制御方法において、前記移動空間は、前記移動空間を複数の空間に分割した単位空間で定義され、前記第1移動体が前記現在の位置から順次進むべき進路の方策は、前記現在の位置に対応する単位空間の位置から、前記第1移動体が順次進むべき単位空間の進路の方策であってもよい。
【0014】
また、本発明に係る制御方法において、前記強化学習モデルは、入力層、隠れ層、および出力層を含むニューラルネットワークモデルであり、前記第1学習ステップは、前記現在の単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記第1移動体が前記現在の単位空間の位置から次に進むべき進路として、進行方向に対する所定の方向への移動に係る各々の行動をとった場合に得られる将来の前記報酬の累積値の期待値を表す行動価値関数の第1推定値を出力し、前記第1学習ステップは、さらに、前記第1移動体が次に到達した単位空間の位置を前記ニューラルネットワークモデルの入力として与え、前記ニューラルネットワークモデルの演算を行い、前記行動価値関数の第2推定値を出力し、前記第1学習ステップは、前記第1推定値が、前記第2推定値から計算される目標値となるように、前記ニューラルネットワークモデルの重みパラメータを学習しもよい。
【0015】
上述した課題を解決するために、本発明に係る制御システムは、上述の制御装置と、前記移動体群とを備える制御システムであって、前記移動体群は、前記第1移動体と、複数の第2移動体とを有し、前記第1移動体と前記複数の第2移動体との各々は、前記制御装置により設定された前記制御情報を取得するように構成された第2取得部と、自装置の現在の位置を取得するように構成された第3取得部と、前記制御情報が示す、前記自装置が現在の位置から順次進むべき進路の方策に基づいて、前記第3取得部によって取得された前記自装置の前記現在の位置から、次に進むべき進路を決定するように構成された決定部と、前記決定部によって決定された、前記次に進むべき進路に基づいて、前記自装置の移動を制御するように構成された移動制御部とを備え、前記制御情報は、前記真の方策データと、前記疑似方策データとを含み、前記第1移動体の前記決定部は、前記真の方策データに基づいて、前記次に進むべき進路を決定し、前記複数の第2移動体の各々の前記決定部は、前記疑似方策データに基づいて、前記次に進むべき進路を決定する。
【発明の効果】
【0016】
本発明によれば、第1学習部による学習によって得られた第1移動体が現在の位置から順次進むべき進路の方策を真の方策データとして、真の方策データに類似する疑似方策データを生成する生成器と、生成器によって生成された疑似方策データと真の方策データとを識別する識別器とを有する生成モデルの敵対的学習を行い、生成された疑似方策データを含む情報を、移動体群の進路を制御する制御情報として、各移動体に設定する。そのため、報酬設計の複雑性を抑制しつつ、集団行動を制御することができる。
【図面の簡単な説明】
【0017】
【
図1】
図1は、本発明の実施の形態に係る制御装置および複数のUAVを含む制御システムの構成を示すブロック図である。
【
図2】
図2は、本実施の形態に係るUAVの構成を示すブロック図である。
【
図3】
図3は、本実施の形態に係るUAVのハードウェア構成を示すブロック図である。
【
図4】
図4は、本実施の形態に係る制御装置が備える第1学習部を説明するための図である。
【
図5】
図5は、本実施の形態に係る制御装置が備える第1学習部の構成を示すブロック図である。
【
図6】
図6は、本実施の形態に係る制御装置が備える第2学習部の構成を示すブロック図である。
【
図7】
図7は、本実施の形態に係る制御装置が備える第2学習部を説明するための図である。
【
図8】
図8は、本実施の形態に係る制御装置が備える第2学習部を説明するための図である。
【
図9】
図9は、本実施の形態に係る制御装置のハードウェア構成を示すブロック図である。
【
図10】
図10は、本実施の形態に係る制御装置の動作を示すフローチャートである。
【
図11】
図11は、本実施の形態に係る制御装置による強化学習処理を示すフローチャートである。
【
図12】
図12は、本実施の形態に係る制御装置による強化学習処理を示すフローチャートである。
【
図13】
図13は、本実施の形態に係る制御装置による敵対的学習処理を示すフローチャートである。
【
図14】
図14は、本実施の形態に係るUAVの動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明の好適な実施の形態について、
図1から
図14を参照して詳細に説明する。
【0019】
[制御システムの構成]
まず、
図1を参照して、本発明の実施の形態に係る制御装置1および複数のUAV2を備える制御システムの概要について説明する。
【0020】
本実施の形態に係る制御システムは、制御装置1と複数のUAV2(移動体群)とを備え、制御装置1と複数のUAV2とは、LTE/4G、5G、6Gなどの所定の通信規格に準拠する無線通信ネットワークNWを介して互いに通信可能に接続されている。制御システムは、複数のUAV2が、集団で移動空間Aにおける設定された目的地点の位置までに飛行(移動)するための進路を制御する。
図1に示すように、UAV2が飛行する移動空間Aは、例えば、5G無線通信方式による通信が可能である。
【0021】
UAV2は、ドローン、無人航空機などの移動体であって、自律操縦飛行を行うことができる。UAV2は、後述のセンサ208等からの情報を処理してモータ209の回転速度やプロペラ210の角度を制御するフライトコントローラにより自律飛行を制御する。また、本実施の形態では、UAV2は、補助記憶装置205に記憶されている進路制御情報に基づいて、目的地点までの自律飛行を制御する。複数のUAV2の各々は、同一の構成を有し、これらを区別しない場合にはUAV2と総称する。なお、UAV2の機能ブロックおよびハードウェア構成の詳細は後述する。
【0022】
本実施の形態では、複数のUAV2のうち、先行して移動空間Aを飛行するUAV2が、第1UAV2a(第1移動体)として選択される。第1UAV2aは、先行して飛行するUAV2のうちからランダムに選択することができる。また、複数のUAV2のうち第1UAV2a以外のものを第2UAV2b(第2移動体)という。
【0023】
図1に示すように、複数のUAV2が飛行する移動空間Aは、複数の空間に分割した単位空間で構成された3次元マトリックス状の空間である。
【0024】
移動空間Aを構成する各単位空間は同一の容積を有する。さらに、各単位空間はノードIDを有し、各単位空間は1つの位置(x,y,z)で表される。位置情報は、緯度、経度、高度からなる3次元のGPS位置座標を用いることができる。例えば、単位空間の位置として、その単位空間の中心位置などの代表値を用いることができる。
【0025】
また、
図1に示すように、複数のUAV2は、各単位空間をウェイポイントとして各々のUAV2の現在の位置Sに対応する単位空間の位置から、目的地点Gの単位空間まで移動する。UAV2の目的地点Gの位置は任意に設定され、複数のUAV2に共通の目的地点である。例えば、複数のUAV2を集団で飛行させて目的地点Gの画像を撮影する場合が考えられる。
【0026】
本実施の形態に係る制御システムは、複数のUAV2のうちから選択された、例えば、先行して飛行する第1UAV2aの、現在の単位空間から順次進むべき進路の方策を強化学習により学習する。さらに、学習により得られた第1UAV2aの進路の方策を真の方策データとして、真の方策データに類似する疑似方策データを生成する生成器を敵対的学習により構築する。制御システムは、学習済み生成器121’によって生成される疑似方策データを、進路制御情報(制御情報)として各第2UAV2bに設定し、かつ、真の方策データを第1UAV2aの進路制御情報として第1UAV2aに設定する。さらに、各UAV2は、進路制御情報に基づいて、目的地点までの進路を決定して飛行制御を行う。
【0027】
進路制御情報が設定された各UAV2は、進路制御情報が示す進路の方策に基づいて、
図1の矢印で示すように、自機の操縦により進路を変えて、単位空間ごとに進むべき方向へ移動する。進路制御情報が示す進路は、様々な進路、すなわち移動方向を含むことができる。
図1においては、移動空間Aを2次元平面で説明しているが、UAV2の進路は3次元の進路とすることができる。制御装置1により各UAV2に設定される進路制御情報により、複数のUAV2は、集団で目的地点Gの単位空間に到達することができる。
【0028】
[制御装置の機能ブロック]
図1に示すように、制御装置1は、取得部10(第1取得部)、第1学習部11、第2学習部12、記憶部13、生成部14、および設定部15を備える。
【0029】
取得部10は、複数のUAV2のうちから選択された第1UAV2aの現在の位置を取得する。具体的には、取得部10は、第1UAV2aが現在いる単位空間の位置を、UAV2の現在の位置として取得する。取得部10は、無線通信ネットワークNWを介して、第1UAV2aが現在いる単位空間の位置を取得する。また、本実施の形態では、取得部10は、設定された時刻ステップごとの第1UAV2aの現在の位置を取得する。前述したように、第1UAV2aは、複数のUAV2のうちから代表として選択され、例えば、他のUAV2に先行して飛行しているUAV2が第1UAV2aとして選択される。
【0030】
さらに具体的には、取得部10は、第1UAV2aのGPS受信機207によって受信されたGPS位置に対応する単位空間の位置を、第1UAV2aの現在の位置として取得することができる。なお、単位空間において複数の位置座標が含まれる場合がある。そのような場合には、取得部10は、第1UAV2aのGPS受信機207によって受信されたGPS位置に最も距離が近い単位空間の位置を、第1UAV2aの現在の位置として取得することができる。
【0031】
第1学習部11は、第1UAV2aの現在の位置から目的地点の位置に到達するまでに、第1UAV2aが順次進むべき進路を計算した推定結果に報酬関数を適用して、第1UAV2aが目的地点の位置へ到達するための報酬が最大化するように更新し、第1UAV2aが現在の位置から順次進むべき進路の方策を、強化学習モデルを用いて学習する。第1学習部11は、学習により得られた第1UAV2aが現在の位置から順次進むべき進路の方策を、第2学習部12に渡す。
【0032】
本実施の形態では、第1UAV2aが各単位空間の位置から順次進むべき進路の方策として、進行方向に対する所定のn(nは正の整数)個の方向への移動に係る行動anを採用する場合を例示する。また、進行方向は、UAV2が直前にいた単位空間の位置に基づいた方向である。
【0033】
第1学習部11は、
図4に示すような入力層、隠れ層、および出力層を含むニューラルネットワークモデルを強化学習モデルとして用いる。また、ニューラルネットワークモデルとして、第1UAV2aの位置である状態s
tを受取り、全ての行動価値Q(s
t,a
1)、Q(s
t,a
2)、Q(s
t,a
3)、・・・、Q(s
t,a
n-1)、Q(s
t,a
n)を出力するニューラルネットワークであるDeep Q-Network(DQN)を採用する。第1学習部11は、DQNのニューラルネットワークとしてCNNを用いることができる。
【0034】
より具体的には、第1学習部11は、現在の第1UAV2aの位置を示す、現在の単位空間の位置をニューラルネットワークモデルの入力として与え、ニューラルネットワークモデルの演算を行い、第1UAV2aが現在の単位空間の位置から次に進むべき進路として、n個の方向への各移動に係る行動anをとった場合に得られる将来の報酬の累積値の期待値を表す行動価値関数の第1推定値Q1を出力する。
【0035】
報酬とは、第1UAV2aの現在の位置を示す状態s、第1UAV2aが所定の方向に移動する行動an、および第1UAV2aの次の位置、すなわち次の状態s’の報酬関数r=r(s,a,s’)で与えられる。本実施の形態では、報酬関数は、第1UAV2aの目的地点に係る単位空間の位置への到達度を変数として含む。その他にも、高層ビルや鉄塔などの障害物がある空間に対応する単位空間の位置への到達度を変数として含むことができる。例えば、第1UAV2aの所定の方向への移動に係る行動によって、目的地点により近づく場合や、目的地点に最短距離で到達する場合には、スカラー量である報酬が、より大きい値として設定される。
【0036】
一方、第1UAV2aが目的地点に遠ざかる、あるいは、障害物が存在する単位空間に到達する場合には、マイナスの報酬値(例えば、r=-1)が与えられる設計とすることができる。このように、障害物が存在する単位空間の報酬をマイナスの値として設定することで、第1UAV2aがこれらの地点を避けて目的地点に到達することができる。
【0037】
さらに、第1学習部11は、第1UAV2aが次に到達した単位空間の位置をニューラルネットワークモデルの入力として与え、ニューラルネットワークモデルの演算を行い、行動価値関数の第2推定値Q2を出力する。第1学習部11は、第1推定値Q1が、第2推定値Q2から計算される目標値となるように、ニューラルネットワークモデルの重みパラメータを学習する。
【0038】
ニューラルネットワークモデルの重みパラメータをθとし、行動価値関数をQ(s,a;θ)と表すと、学習の最小化損失関数は、次の式(1)で与えられる。
L(θ)=1/2{r+γmaxa’Q(s’,a’;θ)-Q(s,a;θ)}2
・・・(1)
【0039】
上式(1)において、rは、報酬(即時報酬)であり、γは割引率を示す。Q(s,a;θ)は、第1推定値Q1に対応し、Q(s’,a’;θ)は、1ステップ進んだ状態s’での行動価値すなわち第2推定値Q2に対応する。目標値は、r+γmaxa’Q(s’,a’;θ)で表される。
【0040】
第1学習部11は、上式(1)で与えられる損失関数の勾配を誤差逆伝搬することでニューラルネットワークモデルの重みパラメータを更新することができる。
【0041】
さらに具体的には、第1学習部11は、
図5に示すように、メインQN111およびターゲットQN113の2つのニューラルネットワークを用いるFixed Target Q-Networkを採用することができる。メインQN111は最適な行動を選択して行動価値関数Qを更新する。一方、ターゲットQN113は、行動の結果の次の状態s’でとるべき行動a’の価値を推定および評価する。メインQN111およびターゲットQN113は、同一のレイヤ構造のニューラルネットワークを有するが、メインQN111のパラメータは「θ」であり、ターゲットQN113のパラメータは「θ
-」で与えられる。
【0042】
メインQN111は、環境110から第1UAV2aの現在の位置を状態sとして受け取る。環境110は、第1UAV2aが置かれた移動空間Aのシステムであり、この環境110下で、第1UAV2aは、所定の方向への移動に係る行動aをとることで別の単位空間へ移動し、次の状態s’に遷移すると同時に、環境110から報酬rを獲得する。
【0043】
第1学習部11は、第1UAV2aの現在の位置に係る状態sをメインQN111に入力し、行動価値関数Q(s,a;θ)を求める。第1学習部11は、例えば、ε-greedy法を用いて行動aを計算し、あるいは、現時点での最適な行動argmaxaQ(s,a;θ)を求める。環境110において、第1UAV2aは、現時点での最適な進路に係る行動argmaxaQ(s,a;θ)を行う。環境110は、第1UAV2aが行動argmaxaQ(s,a;θ)を行った結果、移動した先の単位空間の位置を次の状態s’として観測し、報酬rを出力する。経験データ114は、環境110から出力された経験(s,a,r,s’)を保存する。
【0044】
第1学習部11は、DQN損失算出112において、損失関数Lを求め、損失関数Lの勾配でメインQN111の重みを更新する。
【0045】
第1学習部11は、メインQN111の重みを定期的にターゲットQN113にコピーし同期を行う。ターゲットQN113の同期は、メインQN111の重みの更新頻度よりも低い頻度で行われる。第1学習部11は、経験データ114から経験を取り出して、過去の状態をターゲットQN113に入力し、推定値maxa’Q(s’,a’;θ-)を出力させる。第1学習部11は、ターゲットQN113が出力した推定値maxa’Q(s’,a’;θ-)に基づく目標値r+γmaxa’Q(s’,a’;θ-)を用いて、DQN損失算出112でメインQN111の重みの学習を行う。
【0046】
第1学習部11による学習によって構築された学習済みのDQNは、第1UAV2aの位置である状態stに基づいて、行動価値Q(st,a1)、Q(st,a2)、Q(st,a3)、・・・、Q(st,an-1)、Q(st,an)を出力することができる。このとき、行動価値Qの行動a1~anのうち最も確率値が高い行動が方策として選択されることになる。本実施の形態では、学習済みのDQNから出力される全ての行動価値Q(st,a1)、Q(st,a2)、Q(st,a3)、・・・、Q(st,an-1)、Q(st,an)を方策データという。
【0047】
図1に戻り、第2学習部12は、第1学習部11による学習によって得られた第1UAV2aが現在の位置から順次進むべき進路の方策を真の方策データとして、この真の方策データに類似する疑似方策データを生成する生成器121と、生成器121によって生成された疑似方策データと真の方策データとを識別する識別器122とを有する生成モデルの敵対的学習を行う。
【0048】
第2学習部12は、
図6に示すように、生成器121および識別器122を有するGAN(Generative Adversarrial Network:敵対的生成ネットワーク)を敵対的に学習させる。第2学習部12の学習によって学習済み生成器121’が構築される。このように、本実施の形態では、第1学習部11による強化学習で学習された第1UAV2aの進路の方策を訓練データとして用いて、第1UAV2aの進路の方策に類似する疑似方策データを生成する生成器121を学習する。
【0049】
図7および
図8は、第2学習部12が用いるGANの生成器121および識別器122のニューラルネットワーク構成を模式的に表した図である。
図7に示すように、生成器121は、入力層、隠れ層、および出力層を有するニューラルネットワークで構成される。生成器121は、ランダムな雑音から疑似方策データを生成するモデルである。生成器121の入力ノードには、例えば、ガウス雑音のベクトルがランダムにm個サンプルされて入力される(z
1~z
m)。
【0050】
生成器121は、入力と重みパラメータの積和演算および活性化関数によるしきい値処理を経て出力G(z)を出力する。生成器121からの出力G(z)は、第1UAV2aの位置、すなわち状態stに基づいて求められる学習済みのDQNからの出力、すなわち全ての行動価値Q(st,a1)、Q(st,a2)、Q(st,a3)、・・・、Q(st,an-1)、Q(st,an)に類似する疑似方策データである。生成器121を構成するニューラルネットワークとしてCNNやResNetを用いることができる。
【0051】
図8に示す識別器122は、入力層、隠れ層、および出力層を有するニューラルネットワークで構成される。
図8の例では、訓練データの入力として、第1学習部11の学習によって得られた第1UAVaの進路の方策xが与えられる。真の方策データの訓練データは、第1UAV2aの位置である、状態s
tに基づいて求められる学習済みのDQNからの出力、すなわち全ての行動価値Q(s
t,a
1)、Q(s
t,a
2)、Q(s
t,a
3)、・・・、Q(s
t,a
n-1)、Q(s
t,a
n)である。
【0052】
識別器122は、入力と重みパラメータの積和演算および活性化関数によるしきい値処理を経て、1または0の二値出力を出す。識別器122は、入力された真の方策データに係る訓練データを正しく真の方策データであると識別すると出力y=1を出力する。一方、入力された疑似方策データに係る訓練データを正しく疑似方策データであると識別すると出力y=0を出力する。このように、識別器122は、生成器121が生成したモデル分布を真の分布である訓練データのデータ分布から区別するモデルである。識別器122を構成するニューラルネットワークとしてCNNを用いることができる。
【0053】
図6は、第2学習部12によるGANの敵対的学習を説明するためのブロック図である。第2学習部12が採用するGANの生成器121を関数G、識別器122を関数Dと表す。また、真の方策データをx、識別器122による出力である予測値はyと表し、正解ラベルをtと表す。正解ラベルtは、真の方策データに対して1、生成器121で生成された疑似方策データに対して0と設定される。このとき、識別器122は、二値分類問題として次式(2)の交差エントロピーE
CEで表すことができる。
【0054】
【0055】
上式(2)のブレース内の第1項が表すtnlnynにおいて、識別器122の予測値ynが、真の方策データの正解ラベルtn=1の値に近づくことが望ましい。一方、ブレース内の第2項が表す(1-tn)ln(1-yn)においては、識別器122の予測値ynが、疑似方策データと識別する正解ラベルの値(1-tn)=0に近づくことが望ましい。このように交差エントロピーECEは、予測値が正解ラベルの値に一致している場合に最大値となる。
【0056】
ここで、GANを構成する生成器121は、パラメータw
G,θ
Gを有し、関数G(w
G,θ
G)と表す。また、識別器122は、パラメータw
D,θ
Dを有し、関数D(w
D,θ
D)と表す。上式(2)の交差エントロピーE
CEに基づいた生成器121と識別器122とを備えるGANの目的関数Eは、次式(3)で表すことができる。
【数2】
【0057】
上式(3)の第1項が表すED(x)=1lnD(wD,θD)は、識別器122が真の方策データを真の方策データであると識別する期待値である。上式(3)の第2項が表すED(x)=0ln(1-D(G(wG,θG),wD,θD))は、生成器121により生成された疑似方策データを識別器122が疑似方策データであると識別する期待値である。GANの学習では、目的関数Eのmin-max最適化により、生成器121と識別器122とを敵対的に学習する。したがって、識別器122をだますような疑似方策データを生成できるように生成器121を学習し、生成器121が生成した疑似方策データを疑似方策データであると識別するように識別器122を学習する。
【0058】
識別器122の学習では、真の方策データが与えられた場合に、識別器122がy=1に近い出力を出すことで、上式(3)の目的関数Eの第1項を最大化する。一方、疑似方策データが与えられた場合に、識別器122がy=0に近い出力を出すことで目的関数Eの第2項を最大化するように学習が行われる。
【0059】
生成器121の学習では、上式(3)のD(G(w
G,θ
G),w
D,θ
D)(
図6のD(G(z)))が1に近くなるようなG(w
G,θ
G)(
図6のG(z))を出力することで、目的関数Eを最小化する。第2学習部12は、生成器121のパラメータと識別器122のパラメータとを交互に更新する学習手順を用いる。なお、第2学習部12による生成器121および識別器122の学習手順の詳細は後述する。
【0060】
第2学習部12は、GANの目的関数Eが最適化されると、学習済み生成器121’を生成部14に渡す。
【0061】
記憶部13は、学習済みの強化学習モデルのパラメータ、および学習済み生成器121’を記憶する。
【0062】
生成部14は、GANの学習により構築された学習済み生成器121’を用いて、第1UAV2aの進路の方策データに類似する疑似方策データを生成する。
【0063】
設定部15は、生成部14により生成された疑似方策データを含む情報を、複数のUAV2の進路を制御する進路制御情報として、各UAV2に設定する。より具体的には、設定部15は、複数のUAV2のうち第2UAV2bに対して、生成部14により生成された疑似方策データを進路制御情報として設定する。また、設定部15は、第1UAV2aに対しては、第1学習部11による学習で得られた真の方策データを進路制御情報として設定する。設定部15は、例えば、無線通信ネットワークNWを介して、各UAV2に進路制御情報を送信し、受信した各UAV2が進路制御情報をロードする。あるいは、設定部15は、オフラインで各UAV2に進路制御情報をダウンロードさせる構成とすることもできる。
【0064】
[制御装置のハードウェア構成]
次に、上述した機能を有する制御装置1を実現するハードウェア構成の一例について、
図9を用いて説明する。
【0065】
図9に示すように、制御装置1は、例えば、バス101を介して接続されるプロセッサ102、主記憶装置103、通信インターフェース104、補助記憶装置105、入出力I/O106を備えるコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。
【0066】
プロセッサ102は、CPU、GPU、FPGA、ASICなどによって実現される。
【0067】
主記憶装置103には、プロセッサ102が各種制御や演算を行うためのプログラムが予め格納されている。プロセッサ102と主記憶装置103とによって、
図1に示した取得部10、第1学習部11、第2学習部12、生成部14、設定部15など制御装置1の各機能が実現される。
【0068】
通信インターフェース104は、制御装置1と各種外部電子機器との間をネットワーク接続するためのインターフェース回路である。
【0069】
補助記憶装置105は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータなどの各種情報を読み書きするための駆動装置とで構成されている。補助記憶装置105には、記憶媒体としてハードディスクやフラッシュメモリなどの半導体メモリを使用することができる。
【0070】
補助記憶装置105は、制御装置1が実行する制御プログラムを格納するプログラム格納領域を有する。また、補助記憶装置105は、DQNによる強化学習を行うための第1学習プログラム、およびGANを用いた敵対的学習を行うための第2学習プログラムを格納する領域を有する。補助記憶装置105によって、
図1で説明した記憶部13が実現される。また、補助記憶装置105は、移動空間Aの位置座標を含む地図データ、ならびに移動空間Aを構成する単位空間の位置座標および単位空間のノードIDを対応付けて記憶する領域を有する。さらに、補助記憶装置105は、UAV2の識別情報を記憶する領域を有する。さらには、例えば、上述したデータやプログラムなどをバックアップするためのバックアップ領域などを有していてもよい。
【0071】
入出力I/O106は、外部機器からの信号を入力したり、外部機器へ信号を出力したりする入出力装置である。
【0072】
表示装置107は、有機ELディスプレイや液晶ディスプレイなどによって構成される。表示装置107は、移動空間Aの地図表示や、UAV2の現在位置、進行ルート、および目的地点の位置情報を表示させることができる。
【0073】
[UAVの機能ブロック]
次に、UAV2の機能ブロックについて、
図2を参照して説明する。
図2は、UAV2の構成を示すブロック図である。前述したように、複数のUAV2は、制御装置1によって選択された第1UAV2aと、第1UAV2a以外の複数の第2UAV2bとを有し、それぞれのUAV2は同じ機能ブロックで構成される。
【0074】
UAV2は、制御情報記憶部20、制御情報取得部(第2取得部)21、飛行情報記憶部22、位置情報取得部(第3取得部)23、決定部24、および飛行制御部(移動制御部)25を備える。複数のUAV2の各々は、制御装置1によって設定された進路制御情報に基づいて、自機が次に進むべき進路を決定し、目的地点の位置までの自機の飛行を制御する。
【0075】
制御情報記憶部20は、制御装置1の設定部15によって設定された進路制御情報を記憶する。進路制御情報は、制御装置1の第1学習部11による強化学習で得られた真の方策データ、および制御装置1の第2学習部12による敵対的学習に基づいて、生成部14によって生成された疑似方策データを含む。より具体的には、第1UAV2aの制御情報記憶部20は、進路制御情報として真の方策データを記憶する。一方、複数の第2UAV2bの各々の制御情報記憶部20は、進路制御情報として疑似方策データを記憶する。
【0076】
制御情報取得部21は、制御装置1により設定された進路制御情報を取得する。具体的には、制御情報取得部21は、制御情報記憶部20に記憶された進路制御情報をロードする。第1UAV2aの制御情報取得部21は、真の方策データを取得し、複数の第2UAV2bの各々の制御情報取得部21は、疑似方策データを取得する。
【0077】
飛行情報記憶部22は、移動空間Aの位置座標を含む地図データ、および移動空間Aを構成する単位空間の位置座標と単位空間のノードIDとを対応付けた情報を記憶する。また、飛行情報記憶部22は、目的地点の位置情報を記憶する。
【0078】
位置情報取得部23は、自機の現在の位置を取得する。より詳細には、位置情報取得部23は、自機のGPS位置に基づいて、時刻ステップごとに自機が現在いる単位空間の位置を取得する。位置情報取得部23は、飛行情報記憶部22を参照し、GPS受信機207で受信された現在のGPS位置に対応する単位空間の位置を自機の現在の位置として取得することができる。
【0079】
決定部24は、進路制御情報が示す、自機が現在の位置から順次進むべき進路の方策に基づいて、位置情報取得部23によって取得された自機の現在の位置から、次に進むべき進路を決定する。
【0080】
より具体的には、第1UAV2aの決定部24は、真の方策データの進路制御情報に基づいて、現在の単位空間の位置を状態stとして、各状態stにて、行動価値関数Qの値が最大な行動aである進路を選択することで、順次進むべき進路を決定する。同様に、複数の第2UAV2bの各々が備える決定部24は、疑似方策データの進路制御情報に基づいて、各状態stにて、行動価値関数Qの値が最大な行動aである進路を選択することで、順次進むべき進路を決定する。
【0081】
より詳細には、第1UAV2aの決定部24は、真の方策データの進路制御情報に対応する学習済みのDQNの演算を行い、現在の単位空間の位置を学習済みのニューラルネットワークモデルに入力として与え、学習済みのニューラルネットワークモデルの演算を行い、次に進むべき進路として、第1UAV2aの進行方向に対する所定のn方向への移動に係る行動のうち最適な行動を決定することができる。第2UAV2bの決定部24についても同様に、疑似方策データの進路制御情報に対応するDQNの演算を行って、進路を決定する。
【0082】
飛行制御部25は、決定部24によって決定された、次に進むべき進路に基づいて、自機の飛行を制御する。飛行制御部25は、現在の位置から次に進むべき進路の制御指令を演算して、モータ209に対して制御指令値を送信することができる。このように、第1UAV2aおよび第2UAV2bを含む複数のUAV2の各々は、進路制御情報に基づいて、各状態stにて、行動価値関数Qの値が最大な行動aを選択することで、目的地点まで集団で飛行することができる。
【0083】
[UAVのハードウェア構成]
次に、上述した機能を有するUAV2を実現するハードウェア構成の一例について、
図3を用いて説明する。
【0084】
図3に示すように、UAV2は、例えば、バス201を介して接続されるプロセッサ202、主記憶装置203、通信インターフェース204、補助記憶装置205、入出力I/O206を備えるマイクロコンピュータと、これらのハードウェア資源を制御するプログラム、GPS受信機207、センサ208、モータ209、プロペラ210、およびバッテリ211によって実現することができる。マイクロコンピュータ等のコンピュータとプログラムとによってUAV2の自律飛行を制御するフライトコントローラが実現される。UAV2はこれらの構成を所定の形状のフレームに搭載することができる。
【0085】
主記憶装置203には、プロセッサ202が飛行制御や演算を行うためのプログラムが予め格納されている。プロセッサ202と主記憶装置203とによって、
図2に示した、制御情報取得部21、決定部24、飛行制御部25などUAV2の各機能が実現される。
【0086】
通信インターフェース204は、UAV2と制御装置1との間をネットワーク接続するためのインターフェース回路である。
【0087】
補助記憶装置205は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータなどの各種情報を読み書きするための駆動装置とで構成されている。補助記憶装置205には、記憶媒体としてハードディスクやフラッシュメモリなどの半導体メモリを使用することができる。
【0088】
補助記憶装置205は、UAV2が実行する飛行制御プログラムを格納するプログラム格納領域を有する。また、補助記憶装置205は、進路制御情報に基づいて進路を決定するための演算プログラムを格納する領域を有する。補助記憶装置205によって、
図2で説明した制御情報記憶部20、および飛行情報記憶部22が実現される。また、補助記憶装置205は、UAV2の識別情報を記憶する領域を有する。さらには、例えば、上述したデータやプログラムなどをバックアップするためのバックアップ領域などを有していてもよい。
【0089】
入出力I/O206は、外部機器からの信号を入力したり、外部機器へ信号を出力したりする入出力装置である。
【0090】
GPS受信機207は、GPS信号を受信するアンテナが内蔵される。GPS受信機207によって、
図2の位置情報取得部23が実現される。
【0091】
センサ208は、高度センサ、姿勢センサ、カメラ、LiDAR、RADARなどの各種センサで構成される。GPS受信機207に加え、高度センサによって
図2の位置情報取得部23が実現される。また、センサ208で測定される各種センサデータに基づいて、フライトコントローラはUAV2の飛行制御を行う。
【0092】
モータ209は、回転駆動によって回転し、モータ209の回転軸に取り付けられたプロペラ210を回転させる。
【0093】
バッテリ211は、リチウムイオンバッテリ等であり、UAV2の構成に電源供給する。
【0094】
なお、UAV2は、SIMを備え、SIMのIMSI(International Mobile Subscriber Identity)を有していてもよい。また、UAV2は、IPアドレスを有するIoT端末として構成することができる。これらのIMSIやIPアドレスをUAV2に固有の識別情報として用いてもよい。
【0095】
[制御装置の動作]
次に、上述した構成を有する制御装置1の動作を、
図10から
図13のフローチャートを参照して説明する。
【0096】
はじめに、
図10を参照して、制御装置1による動作の全体を説明する。まず、制御装置1は、移動空間Aにおいて複数のUAV2を集団で移動させる目的地点を設定する(ステップS1)。
【0097】
次に、第1学習部11は、強化学習処理を行う(ステップS2)。その後、第2学習部12は、ステップS2で得られた第1UAV2aが現在の位置に対応する単位空間の位置から順次進むべき単位空間の進路の方策を訓練データとして用いて、敵対的学習処理を行う(ステップS3)。
【0098】
次に、生成部14は、ステップS3の敵対的学習によって構築された学習済み生成器121’により、第1UAV2aが各単位空間の位置から順次進むべき単位空間の進路の方策に類似する疑似方策データを生成する(ステップS4)。その後、設定部15は、ステップS4で生成された疑似方策データを含む情報を、複数のUAV2の進路制御情報として各UAV2に設定する(ステップS5)。より詳細には、設定部15は、疑似方策データの進路制御情報を、第2UAV2bの各々に設定する。設定部15は、真の方策データの進路制御情報を、第1UAV2aに設定する。
【0099】
次に、
図11および
図12を参照し、制御装置1の第1学習部11による強化学習処理を説明する。まず、取得部10は、第1UAV2aの現在の位置として、第1UAV2aが現在いる単位空間の位置を取得する(ステップS20)。具体的には、取得部10は、無線通信ネットワークNWを介して受信した第1UAV2aのGPS位置に基づいて、時刻ステップごとに第1UAV2aが現在いる単位空間の位置を取得する。さらに、取得部10は、記憶部13を参照し、第1UAV2aのGPS受信機207で受信された現在のGPS位置に対応する単位空間の位置を第1UAV2aの現在の位置として取得することができる。
【0100】
次に、第1学習部11は、ステップS20で取得された第1UAV2aの現在の状態である、第1UAV2aが現在いる単位空間の位置をニューラルネットワークモデルに入力として与え、ニューラルネットワークモデルの演算を行って、第1UAV2aが現在の単位空間の位置から次に進むべき進路として、進行方向に対する所定の方向への移動に係る各々の行動をとった場合に得られる将来の報酬の累積値の期待値を表す行動価値関数の第1推定値Q1を出力する(ステップS21)。
【0101】
さらに、第1学習部11は、第1UAV2aが次に到達した単位空間の位置を取得する(ステップS22)。次に、第1学習部11は、ステップS22で取得した第1UAV2aが次に到達した単位空間の位置をニューラルネットワークモデルの入力として与え、ニューラルネットワークモデルの演算を行い、行動価値関数の第2推定値Q2を出力する(ステップS23)。第1UAV2aが次に到達した単位空間の位置は、時刻ステップごとに取得部10が取得する第1UAV2aのGPS位置に基づいて判定される。
【0102】
次に、第1学習部11は、第2推定値Q2から目標値を算出する(ステップS24)。続いて、第1学習部11は、第1推定値Q1が、第2推定値Q2から計算される目標値となるように、ニューラルネットワークモデルの重みパラメータを学習する(ステップS5)。具体的には、第1学習部11は、上式(1)の損失関数を最小化するようにニューラルネットワークモデルの重みパラメータを更新する。
【0103】
記憶部13は、ステップS7で得られた学習済みのパラメータを記憶する(ステップS26)。ステップS26で記憶される学習済みのパラメータは、第1UAV2aの順次進むべき進路の方策に対応する。
【0104】
次に、
図12を参照して、メインQN111およびターゲットQN113の2つのニューラルネットワークを用いるFixed Target Q-Networkを採用した場合の、第1学習部11による学習処理を説明する。
【0105】
ステップS20の処理は、
図11で説明した学習処理のステップと同様である。その後、第1学習部11は、メインQN111にステップS20で取得された、第1UAV2aが現在いる単位空間の位置を入力として与え、ニューラルネットワークの演算を行って、行動価値関数Qを出力し、次に進むべき進路aを計算する(ステップS120)。
【0106】
次に、第1学習部11は、ステップS120で求めた進路aで第1UAV2aの行動を環境110に返し、次の第1UAV2aの状態s’である、第1UAV2aが進んだ先の単位空間の位置および報酬rを得る(ステップS121)。
【0107】
第1学習部11は、ステップS121で得られた経験(s,a,r,a’)を経験データ114に保存する(ステップS122)。次に、第1学習部11は、DQN損失算出112において、損失関数Lを求め、損失関数Lの勾配でメインQN111の重みを更新する(ステップS123)。第1学習部11は、ステップS120からステップS123までの処理を設定された回数繰り返す。
【0108】
その後、第1学習部11は、メインQN111の重みを定期的にターゲットQN113にコピーし同期を行う(ステップS124)。ターゲットQN113の同期は、メインQN111の重みの更新頻度よりも低い頻度で行われる。次に、第1学習部11は、経験データ114から経験を取り出して、過去の状態をターゲットQN113に入力し、推定値maxa’Q(s’,a’;θ-)を出力させる(ステップS126)。
【0109】
次に、第1学習部11は、ターゲットQN113が出力した推定値maxa’Q(s’,a’;θ-)に基づく目標値r+γmaxa’Q(s’,a’;θ-)を計算する(ステップS127)。次に、第1学習部11は、ステップS127で算出された目標値を用いて、DQN損失算出112で損失関数Lを計算する(ステップS128)。次に、第1学習部11は、損失関数Lで与えられる損失を最小化するようにメインQN111の重みの学習を行う(ステップS129)。その後、学習済みのパラメータを記憶部13に記憶する(ステップS26)。
【0110】
次に、
図13を参照し、制御装置1の第2学習部12による敵対的学習処理を説明する。まず、第2学習部12は、
図11のステップS2の第1学習部11による強化学習処理で得られた、学習済みのパラメータ、すなわち学習済みのDQNによって得られる第1UAV2aが現在の位置から目的地点の位置まで順次進むべき進路の方策を真の方策データとして取得する(ステップS30)。
【0111】
ここで、
図6の第2学習部12によるGANの学習処理に示すように、ステップS30で収集された真の方策データは、識別器122を学習する際に入力される訓練データ124として用いられる。また、本実施の形態では、学習済みのDQNで求められるすべての方策が訓練データとして用いられる。すべての方策とは、第1UAV2aの現在の位置から目的地点の位置まで期待どおり遷移できるように調整された、行動価値Q(s
t,a
1)、Q(s
t,a
2)、Q(s
t,a
3)、・・・、Q(s
t,a
n-1)、Q(s
t,a
n)で表される進路の方策である。
【0112】
次に、第2学習部12は、真の方策データを訓練データ124として識別器122に入力し、真の方策データを真の方策データ(y=1)と識別するように、識別器122のパラメータwD,θDを学習し、更新する(ステップS31)。ステップS31において、第2学習部12は、例えば、誤差逆伝搬法などを用いて識別器122に真の方策データを学習させることができる。ステップS31により、真の方策データを真の方策データと識別することができる識別器122が事前に構築される。
【0113】
次に、第2学習部12は、ガウス雑音120を発生し、発生したガウス雑音120のランダムなベクトルを生成器121に入力として与える(ステップS32)。続いて、生成器121は、与えられたガウス雑音120に基づいて、入力zと重みパラメータwG,θGの積和演算および活性化関数によるしきい値処理を行い、疑似方策データG(z)を生成する(ステップS33)。
【0114】
次に、第2学習部12は識別器122の学習を行う。識別器122の学習は、生成器121のパラメータwD,θDを固定して行われる。まず、第2学習部12は、ステップS30で取得した真の方策データの訓練データ124を識別器122に入力として与え、上式(3)の目的関数Eが最大となるように、誤差逆伝搬法などによりパラメータwD,θDを更新する(ステップS34)。なお、訓練データ124のラベルは1(真の方策データ)が設定されている。
【0115】
次に、第2学習部12は、ステップS33で生成器121によって生成された疑似方策データを識別器122に入力として与え、上式(3)の目的関数Eが最大となるように、誤差逆伝搬法などによりパラメータwD,θDを更新する(ステップS35)。すなわち、ステップS34およびステップS35では、上式(3)の目的関数Eを最大にするために、第1項はD(wD,θD)=1が出力され、第2項はD(G(wG,θG),wD,θD)=0となるように最適化が行われる。なお、訓練データ124には、ラベルは0(疑似方策データ)が設定されている。
【0116】
ステップS34およびステップS35での識別器122の学習は、識別器122からの出力123に基づいて、目的関数Eのブロック125で識別器誤差が算出され、その後、識別器122へ誤差逆伝搬されることを示す
図6の破線の矢印に対応する。
【0117】
次に、第2学習部12は生成器121の学習を行う。生成器121の学習では、識別器122のパラメータが固定されて行われる。第2学習部12は、ランダムなガウス雑音120を生成器121に与えた際に疑似方策データが生成されるように生成器121を学習する。具体的には、第2学習部12は、上式(3)の目的関数Eを最小とするために、誤差逆伝搬法などによりパラメータwG,θGを更新する(ステップS36)。
【0118】
ステップS36での学習は、
図6に示す、生成器121へ誤差逆伝搬されることを示す破線の矢印に対応する。すなわち、ステップS36は、
図6の生成器121で生成された疑似方策データが識別器122に入力され、その出力123から目的関数Eのブロック125で生成器誤差が算出され、さらには、生成器121へ誤差逆伝搬される破線矢印に対応する。
【0119】
その後、目的関数Eの値がナッシュ均衡に到達して収束するまで(ステップS37:NO)、ステップS33からステップS36までの識別器122および生成器121の学習が繰り返し行われる。一方、目的関数Eの値が収束した場合(ステップS37:YES)、n個すべての真の方策データのうち、残りのn-1個の真の方策データを用いて、生成器121および識別器122の学習が行われるまで(ステップS38:NO)、ステップS31からステップS37までの処理が繰り返される。
【0120】
その後、残りのn-1個の真の方策データを用いて生成器121および識別器122の学習が行われた場合(ステップS38:YES)、第2学習部12は、学習済み生成器121’を記憶部13に記憶する(ステップS39)。以上のステップS30からステップS39までの処理によって学習済み生成器121’が構築される。
【0121】
[UAVの動作]
次に、上述した構成を有するUAV2の動作を、
図14のフローチャートを参照して説明する。
【0122】
図14は、UAV2による進路制御情報に基づく目的地点までの飛行制御を示すフローチャートである。まず、第1UAV2aおよび第2UAV2bを含む複数のUAV2の各々には、目的地点が設定される(ステップS40)。次に、各UAV2の制御情報取得部21は、進路制御情報を取得する(ステップS41)。より詳細には、第1UAV2aの制御情報取得部21は、制御装置1によって設定され、制御情報記憶部20に記憶されている真の方策データの進路制御情報を読み出す。一方、第2UAV2bの制御情報取得部21は、制御情報記憶部20に記憶されている疑似方策データの進路制御情報を読み出す。
【0123】
次に、位置情報取得部23は、現在の位置として、自機の現在の単位空間の位置を取得する(ステップS42)。具体的には、GPS受信機207で受信されたGPS位置に対応する単位空間の位置を、自機の現在の位置として取得することができる。次に、決定部24は、ステップS41で取得された進路制御情報の方策データに基づいて、自機が次に進むべき進路を決定する(ステップS43)。
【0124】
より詳細には、第1UAV2aの決定部は、真の方策データの進路制御情報に基づいて、現在の単位空間の位置を状態stとして、各状態stにて、行動価値関数Qの値が最大な行動aである進路を選択することで、順次進むべき進路を決定する。同様に、第2UAV2bの決定部24は、疑似方策データの進路制御情報に基づいて、各状態stにて、行動価値関数Qの値が最大な行動aである進路を選択することで、順次進むべき進路を決定する。
【0125】
飛行制御部25は、決定部24によって決定された、次に進むべき進路に基づいて、自機の飛行を制御する(ステップS44)。より詳細には、飛行制御部25は、現在の位置から次に進むべき進路の制御指令を演算して、モータ209に対して制御指令値を送信することができる。第1UAV2aおよび第2UAV2bの各々は、目的地点の単位空間に到達するまで(ステップS45:NO)、現在いる単位空間の位置である状態stを取得し(ステップS42)、時刻ステップごとに次に進むべき進路aを決定し(ステップS43)、決定した進路aに基づく飛行制御を行う(ステップS44)ステップを繰り返す。
【0126】
その後、第1UAV2aおよび第2UAV2bの各々が、目的地点の単位空間の位置に到達すると(ステップS45:YES)、処理は終了する。このように、第1UAV2aおよび第2UAV2bを含む複数のUAV2の各々は、進路制御情報に基づいて、各状態stにて、行動価値関数Qの値が最大な行動aを選択することで、目的地点まで集団で飛行することができる。第1UAV2aおよび第2UAV2bを含む複数のUAV2は、目的地点において、画像の撮影など予め設定されたタスクを実行することができる。
【0127】
以上説明したように、本実施の形態に係る制御装置1によれば、複数のUAV2のうちから選択された第1UAV2aの現在の位置に基づいて、学習済みの強化学習モデルにより獲得された進路の方策を疑似する疑似方策データを、敵対的学習により構築された学習済み生成器121’によって生成する。さらに、生成された疑似方策データを含む情報を、複数のUAV2を目的地点まで集団で移動させるための進路制御情報として、各UAV2に設定する。そのため、UAV2ごとの報酬設計の複雑性を抑制しつつ、集団行動を制御することができる。
【0128】
なお、説明した実施の形態では、制御装置1はDQNを用いた強化学習およびGANを用いた敵対的学習により学習済みDQNに類似する疑似DQNを生成して、複数のUAV2を目的地点まで誘導するための制御情報として各UAV2に設定する場合について説明した。しかし、制御装置1は、説明した第1学習部11および第2学習部12において、敵対的模倣学習(Generative Adversarial Imitation Learning:GAIL)を採用してもよい。
【0129】
GAILでは、GANと同様に生成器と識別器とを使用する。生成器は現在の位置を入力として選択する進路(行動)の確率である方策を出力する。識別器は、状態と行動とからなる方策データを入力として、その方策データがエキスパートのものであるか、生成器が生成した疑似方策データであるのかの確率を出力する。生成器は、自身が生成した状態と行動とからなる疑似方策データに対する識別器からの出力を報酬とみなして学習される。なお、GAILを用いた場合には、識別器には、訓練データであるエキスパートの方策データはサンプルされたデータが入力される。一方、説明した実施の形態に係る識別器122では、エキスパートによる全ての方策データに対応する、第1UAV2aの進路の方策データの全てを訓練データとして入力する。
【0130】
以上、本発明の制御装置、制御方法、および制御システムにおける実施の形態について説明したが、本発明は説明した実施の形態に限定されるものではなく、請求項に記載した発明の範囲において当業者が想定し得る各種の変形を行うことが可能である。
【符号の説明】
【0131】
1…制御装置、2…UAV、2a…第1UAV、2b…第2UAV、10…取得部、11…第1学習部、12…第2学習部、13…記憶部、14…生成部、15…設定部、20…制御情報記憶部、21…制御情報取得部、22…飛行情報記憶部、23…位置情報取得部、24…決定部、25…飛行制御部、201、101…バス、202、102…プロセッサ、203、103…主記憶装置、204、104…通信インターフェース、205、105…補助記憶装置、206、106…入出力I/O、107…表示装置、110…環境、111…メインQN、112…DQN損失算出、113…ターゲットQN、114…経験データ、120…雑音、121…生成器、122…識別器、123…出力、124…訓練データ、125…目的関数Eのブロック、207…GPS受信機、208…センサ、209…モータ、210…プロペラ、211…バッテリ、A…移動空間、NW…無線通信ネットワーク。
【要約】
【課題】報酬設計の複雑性を抑制しつつ、集団行動を制御することを目的とする。
【解決手段】
第1学習部11による学習によって得られた第1UAV2aが現在の位置から順次進むべき進路の方策を真の方策データとして、真の方策データに類似する疑似方策データを生成する生成器121と、生成器121によって生成された疑似方策データと真の方策データとを識別する識別器122とを有する生成モデルの敵対的学習を行う第2学習部12と、第2学習部122の敵対的学習によって得られた学習済み生成器121’を用いて、真の方策データに類似する疑似方策データを生成する生成部14と、生成部14により生成された疑似方策データを含む情報を、複数のUAV2移の進路を制御する制御情報として、各移動体UAV2に設定する設定部15とを備える。
【選択図】
図1