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

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

▶ 国立大学法人電気通信大学の特許一覧

特開2024-74163協調行動導出システム及び協調行動導出方法
<>
  • 特開-協調行動導出システム及び協調行動導出方法 図1
  • 特開-協調行動導出システム及び協調行動導出方法 図2
  • 特開-協調行動導出システム及び協調行動導出方法 図3
  • 特開-協調行動導出システム及び協調行動導出方法 図4
  • 特開-協調行動導出システム及び協調行動導出方法 図5
  • 特開-協調行動導出システム及び協調行動導出方法 図6
  • 特開-協調行動導出システム及び協調行動導出方法 図7
  • 特開-協調行動導出システム及び協調行動導出方法 図8
  • 特開-協調行動導出システム及び協調行動導出方法 図9
  • 特開-協調行動導出システム及び協調行動導出方法 図10
  • 特開-協調行動導出システム及び協調行動導出方法 図11
  • 特開-協調行動導出システム及び協調行動導出方法 図12
  • 特開-協調行動導出システム及び協調行動導出方法 図13
  • 特開-協調行動導出システム及び協調行動導出方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024074163
(43)【公開日】2024-05-30
(54)【発明の名称】協調行動導出システム及び協調行動導出方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240523BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022185269
(22)【出願日】2022-11-18
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 開催日 令和3年11月22日 公益社団法人計測自動制御学会 システム・情報部門学術講演会(オンライン)
(71)【出願人】
【識別番号】504133110
【氏名又は名称】国立大学法人電気通信大学
(74)【代理人】
【識別番号】110000925
【氏名又は名称】弁理士法人信友国際特許事務所
(72)【発明者】
【氏名】▲高▼玉 圭樹
(72)【発明者】
【氏名】福本 有季子
(57)【要約】
【課題】複数のエージェントが作動する環境において、各エージェントが他のエージェントと干渉せずに行動できる適切な協調行動計画を導出する。
【解決手段】エキスパート行動系列入力処理と、エキスパートの行動系列を使って演算処理した結果に基づいて、エキスパートの特徴量を更新するエキスパート行動系列特徴量更新処理と、エキスパートの特徴量とエージェントの特徴量とを比較して差分を得る特徴量比較処理と、行動系列を示すパラメータを特徴量比較処理により得た差分により更新する報酬関数更新処理と、報酬関数更新処理により更新された行動系列を示すパラメータを出力する出力処理とを行う。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のエージェントの行動系列を最適化して、協調行動を導出する協調行動導出システムであり、
前記複数のエージェント以外の、特定のエージェントをエキスパートとし、前記エキスパートの行動系列を入力として得るエキスパート行動系列入力部と、
前記エキスパート行動系列入力部が得た前記エキスパートの行動系列を使って演算処理した結果に基づいて、前記エキスパートの特徴量を更新するエキスパート行動系列特徴量更新部と、
前記エキスパート行動系列特徴量更新部で得た前記エキスパート行動系列の特徴量と、前記エージェント行動系列特徴量計算部で計算された前記エージェント行動系列の特徴量とを比較して差分を得る特徴量比較部と、
前記行動系列を示すパラメータを、前記特徴量比較部で得た差分により更新する報酬関数更新部と、
前記報酬関数更新部で更新された前記行動系列を示すパラメータを出力する出力部と、を備え、
前記出力部が出力する前記行動系列を示すパラメータから、前記複数のエージェントの協調行動を得る
協調行動導出システム。
【請求項2】
さらに、前記エキスパート行動系列入力部が得た前記エキスパートの行動系列を特徴量に変換するエキスパート行動系列特徴量変換部と、
前記エキスパート行動系列特徴量変換部で得た特徴量から、行動系列のアーカイブと状態の干渉度を考慮して、前記エージェントの行動系列を示す特徴量を計算するエージェント行動系列特徴量計算部と、
前記行動系列の群を選定するエージェント行動系列群選定部と、とを備え、
前記エキスパート行動系列特徴量更新部は、前記エージェント行動系列群選定部で選定された行動系列に基づいて、前記エキスパートの特徴量を更新する
請求項1に記載の協調行動導出システム。
【請求項3】
前記エージェント行動系列特徴量計算部が前記エージェントの特徴量を計算する際には、エージェント行動系列のアーカイブを取得すると共に、エージェント行動系列の各状態の非干渉度を推定して計算する
請求項2に記載の協調行動導出システム。
【請求項4】
前記エージェント行動系列群選定部は、前記エージェント行動系列の特徴量計算部で得た非干渉度に従って、前記行動系列のアーカイブ内から行動系列を選定するものである
請求項3に記載の協調行動導出システム。
【請求項5】
前記特徴量比較部が得る差分は、現在と1つ前の更新時点の干渉回数合計の差分である
請求項4に記載の協調行動導出システム。
【請求項6】
前記出力部が出力する前記行動系列を示すパラメータは、複数の行動を示す行動系列である
請求項1に記載の協調行動導出システム。
【請求項7】
複数のエージェントの行動系列を最適化して、協調行動を導出する協調行動導出方法であり、
前記複数のエージェント以外の、特定のエージェントをエキスパートとし、前記エキスパートの行動系列を入力として得るエキスパート行動系列入力処理と、
前記行動系列入力処理により得た前記エキスパートの行動系列を使って演算処理した結果に基づいて、前記エキスパートの特徴量を更新するエキスパート行動系列特徴量更新処理と、
前記エキスパート行動系列特徴量更新処理により得た前記エキスパート行動系列の特徴量と、前記エージェント行動系列特徴量計算処理で計算された前記エージェント行動系列の特徴量とを比較して差分を得る特徴量比較処理と、
前記行動系列を示すパラメータを、前記特徴量比較処理により得た差分により更新する報酬関数更新処理と、
前記報酬関数更新処理により更新された前記行動系列を示すパラメータを出力する出力処理と、を含み、
前記出力処理により得られた前記行動系列を示すパラメータから、前記複数のエージェントの協調行動を得る
協調行動導出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば複数のエージェントが作動する環境において、それぞれのエージェントが他のエージェントと衝突などが発生しない干渉しない状態に行動できる協調行動計画を導出する協調行動導出システム及び協調行動導出方法に関する。
【背景技術】
【0002】
近年、複数の行動主体(エージェント)が存在するマルチエージェント環境において、共通の目的(あるいは異なる目的)を達成するために、自身の行動を調整し、知的な集団行動を生み出すことで複雑な問題を解決するための技術開発がなされている。例えば、自律移動可能なロボットを1つの空間内に複数台配置して、各ロボットが他のロボットと衝突することなく自律移動できるようにするための技術開発がなされている。
【0003】
エージェントが移動する行動を調整する場合、例えば1台のエージェントが全てのエージェントの行動を制御する中央集権型の制御手法が知られている。この手法は、エージェントの情報収集が可能である旨の仮定がなされているので、実世界への適用を考えると収集した情報が常に正確であるとは限らないことを想定しなければならない。
【0004】
これに対して、複数のエージェント間で情報共有をすることで、自身の行動を決定する分散制御型の制御手法についても開発が進んでいる。しかしながら、通信の遅延や通信障害が激しい場合には、個々のエージェントの制御が困難になる。
【0005】
そこで、このような環境下でエージェントの適切な協調行動を獲得する手法として「強化学習」という手法がよく使われている。この手法では協調行動達成時に「報酬」与えることで協調行動をエージェントに獲得させることができるようになる。しかし,あらゆる組み合わせの協調行動を事前に網羅して報酬を与えるように準備することは現実的に限界があるため、エキスパートと呼ばれるお手本の行動からその背景にある報酬(厳密には報酬関数)を推定する「逆強化学習」が研究されている。
【0006】
例えば、エージェント間で直接的な通信をせず、他エージェントの行動の推測から自身の利益の最大化を考えるゲーム理論の考えを取り入れた逆強化学習手法の開発が進んでいる(非特許文献1参照)。
非特許文献1に記載された手法では、エージェントがナッシュ均衡に従うと仮定した上でエージェント間の通信を行うことなく、エージェントを制御している。ナッシュ均衡とは、他エージェントの行動に対してどのエージェントも最適な行動をとっている安定した状態のことを指し、マルチエージェントにおいて最適行動解として定義されることが多い。この手法では、エージェントが合理的な行動を必ずとることを前提としている。
【0007】
一方、エージェントは合理的な行動を必ず取れるとは限らないので、そのような行動を前提として、最適行動を求める手法も知られている。具体的には、準最適解のエキスパート行動とナッシュ均衡解のマージンを最小化するようにエージェントを制御する手法が知られている。
【先行技術文献】
【特許文献】
【0008】
【非特許文献1】Tummalapalli S. Reddy, Vamsikrishna Gopikrishna, Gergely Zaruba, and Manfred Huber. Inverse reinforcement learning for decentralized non-cooperative multiagent systems. In Proceedings of the IEEE International Conference on Systems, Man, and Cybernetics, pages 1930-1935, 2012.
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、複数のエージェントが相互作用するマルチエージェント環境では、僅かな環境変化や他エージェントの行動変化によって最適な協調行動が変化する可能性があり、その変化に合わせて協調行動を獲得することは容易ではない。例えば、複数のエージェントの内の一つが故障して、移動途中で停止してしまった場合、他のエージェントは停止したエージェントを避ける動作が必要になるが、従来の手法では、そのような突発的な事態の発生に迅速に対処するのは困難であった。
故に、協調行動を導出する上では、他のエージェントの行動によって「変化する」実現可能な協調行動、つまり変化にロバストな(耐性のある)協調行動が求められることが重要である。しかし、従来提案された手法では、ロバストな協調行動への対応ができているとは言えなかった。
【0010】
本発明は、複数のエージェントが作動する環境において、それぞれのエージェントが他のエージェントと干渉せずに行動できるロバストな協調行動計画を導出することが可能な、協調行動導出システム及び協調行動導出方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の協調行動導出システムは、複数のエージェントの行動系列を最適化して、協調行動を導出する協調行動導出システムであり、
複数のエージェント以外の、特定のエージェントをエキスパートとし、
エキスパートの行動系列を入力として得るエキスパート行動系列入力部と、
行動系列入力部が得たエキスパートの行動系列を使って演算処理した結果に基づいて、エキスパートの特徴量を更新するエキスパート行動系列特徴量更新部と、
エキスパート特徴量更新部で得たエキスパートの特徴量と、特徴量計算部で計算されたエージェントの特徴量とを比較して差分を得る特徴量比較部と、
行動系列を示すパラメータを、特徴量比較部で得た差分により更新する報酬関数更新部と、
報酬関数更新部で更新された行動系列を示すパラメータを出力する出力部と、を備え、
出力部が出力する行動系列を示すパラメータから、複数のエージェントの協調行動を得るようにした。
【0012】
また、本発明の協調行動導出方法は、複数のエージェントの行動系列を最適化して、協調行動を導出する協調行動導出方法であり、
複数のエージェント以外の、特定のエージェントをエキスパートとし、
エキスパートの行動系列を入力として得るエキスパート行動系列入力処理と、
行動系列入力処理により得たエキスパート行動系列入力部が得たエキスパートの行動系列を使って演算処理した結果に基づいて、エキスパートエキスパートの特徴量を更新するエキスパート特徴量更新処理と、
エキスパート特徴量更新処理により得たエキスパートの特徴量と、特徴量計算部で計算されたエージェントの特徴量とを比較して差分を得る特徴量比較処理と、
行動系列を示すパラメータを、特徴量比較処理により得た差分により更新する報酬関数更新処理と、
報酬関数更新処理により更新された行動系列を示すパラメータを出力する出力処理と、を含み、
出力処理により得られた行動系列を示すパラメータから、複数のエージェントの協調行動を得るようにした。
【発明の効果】
【0013】
本発明によれば、複数台のエージェントの行動を導出する際に、各エージェントがそれぞれ行動を決定する分散型の制御を行いながら、エージェント同士で情報通信をすることなく、衝突しない行動経路を導出することが可能になる。
また、本発明によれば、複数の経路の導出が可能になるので,故障を含むエージェントの想定外の動きに対して適切な経路を選ぶことができる。特に、複数の経路を保持することで、狭い輸送エリアでエージェントが想定外の動きをしても、衝突しない最短経路を見出すことが可能になる。このため、例えば、本発明を複数ロボットによる物資輸送に適用することにより、物流輸送の安全性や効率性が実現される。
さらに、本発明は、エージェントの追加や削除といった環境の変化にも柔軟性を有する効果を有する。
【図面の簡単な説明】
【0014】
図1】本発明の一実施の形態例による協調行動導出システムの例を示す構成図である。
図2】本発明の一実施の形態例による協調行動導出システムによる処理の流れを示すフローチャートである。
図3】本発明の一実施の形態例による協調行動の例を示す図である。
図4】本発明の一実施の形態例による協調行動の例(故障したエージェントを回避する例)を示す図である。
図5】本発明の一実施の形態例により選択される経路の例を示す図である。
図6】本発明の一実施の形態例による経路ごとの干渉リスクを示す図である。
図7】本発明の一実施の形態例による経路選択処理の説明図(その1)である。
図8】本発明の一実施の形態例による経路選択処理の説明図(その2)である。
図9】本発明の一実施の形態例による経路選択処理の説明図(その3)である。
図10】本発明の一実施の形態例による経路選択処理の例を示す図である。
図11】本発明の一実施の形態例による経路選択の具体例を示す図である。
図12図11の例の経路選択で協調並びに衝突が発生した回数を示す図である。
図13図11の例の経路選択でゴールまでのステップ数を従来例(左側)と本発明の一実施の形態例(右側)とで比較した図である。
図14図11の例の経路選択で1つしか経路を持たないために衝突が発生する例(a)と、代替経路が設定される例(b)を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の一実施の形態例(以下、「本例」と称する)の協調行動導出システム及び協調行動導出方法を、添付図面を参照して説明する。
本例の協調行動導出システム及び協調行動導出方法は、エキスパートと呼ばれる見本となる行動軌跡から、その行動の背景にある報酬を推定する逆強化学習に着目したものである。
【0016】
逆強化学習で推定された報酬は、強化学習に適用することでエキスパートの方策(ある状態である行動を起こす確率)を獲得することができる。
しかし、他エージェントの不確実な行動を考慮したエキスパート設計は困難であることから、本例では、利己的なエキスパート行動を他エージェントとの相互作用のみに基づいて徐々に協調行動へ修正することにより、情報共有なしに他エージェントにロバストな協調行動を導く報酬関数を推定可能とする逆強化学習手法を発明した。
【0017】
具体的には、本例の場合、学習中に獲得した「複数」の行動軌跡を他エージェントとの「各状態における非干渉度」と「行動自体の非干渉度」の2つの観点に基づいて一般化した。そして、「各状態における非干渉度」と「行動自体の非干渉度」の2つの観点をエキスパート行動に反映することで、想定外の行動に対してロバストな協調行動を獲得するようにした。
また、本例では、故障エージェントが存在する環境において、他エージェントと干渉する前に各エージェントが推定した報酬関数に従って行動の再選択をすることで、再学習なしに回避行動が導出できることを示した。
ここで、本例の技術の前提となる、強化学習による最適行動の導出例と、逆強化学習による最適行動の導出例を説明する。
【0018】
[強化学習による最適行動の導出例]
強化学習(Reinforcement Learning:RL)とは、ある環境におけるエージェントが状態sを観測し、行動を選択・実行し、その行動に対する報酬を環境から受け取ることで最適な方策 π(s)を獲得する手法である。
ここでは、強化学習の代表的な手法であるQ学習をエージェントの最適方策学習に採用する。Q学習とは、状態sにおける行動aの価値であるQ値Q(s,a)の見積もりから方策を算出する。
【0019】
Q値は、以下の[数1]式で更新され、rは状態sから次状態s′へ遷移する際に得られる報酬値である。α(0<α≦1)は学習率、γ(0<γ≦1)は割引率である。A(s′)は次状態s′で取り得る行動の集合で、a′はA(s′)の要素で次状態s′における行動である。この更新式は次状態で選択可能な行動の中で最大のQ値に近づけることを意味し、反復的に更新を繰り返すことで現状態のQ値の精度を高めることが行われる。
【0020】
【数1】
【0021】
また、行動の選択手法として、例えば、ε-greedy選択手法とソフトマックス選択手法が適用可能である。
ε-greedy選択手法は、ε(0≦ε≦1)の確率で現在の状態で取り得る行動をランダムに選択し、1-εの確率で現在の状態において最大のQ値を持つ行動を選択する。
ソフトマックス選択手法は、Q値の比によって確率的に行動を選択する手法であり、比の計算にマイナス値を扱う場合はボルツマン分布を採用する。ある状態sにおける行動aを選択する確率p(a|s)は、以下の[数2]式で求めることができる。ここで、τは温度パラメータである。
【0022】
【数2】
【0023】
[逆強化学習による最適行動の導出例]
最適な方策を学習する強化学習に対して、逆強化学習(Inverse Reinforcement Learning:IRL)とは最適な行動を手本にその行動の背景にある報酬を推定する手法である。具体的には、エキスパートと呼ばれる最適な行動軌跡を基に、その行動軌跡を導く報酬関数を推定する。ここで報酬関数とは、各状態の報酬の大きさを評価する関数である。
ここでは、逆強化学習手法の1つであるMaximum Entropy Inverse Reinforcement Learning (MaxEntIRL)を用いる。MaxEntIRLとは、ある報酬関数上でエキスパートの行動軌跡が得られる確率を最大化すると共に、最大エントロピーの原理に基づき、観測が不十分で、情報が未知な状態には一様に、すなわちエントロピーが最大になるように報酬値を見積もる手法である。MaxEntIRLを適用することで、行動探索中にエキスパート行動とは異なる行動を獲得できる可能性がある。
【0024】
以下、MaxEntIRLのメカニズムとアルゴリズムについて説明する。
MaxEntIRLでは、エージェントの行動軌跡とエキスパートの行動軌跡が一致するように報酬関数のパラメータθ(報酬値に相当)を学習する。入力するエキスパートの行動軌跡とは、一連の訪れる状態と行動のペアの系列(以降、「行動系列」と呼ぶ)である。最大学習反復数、すなわち最大サイクル数に到達するまで、以下の手順を繰り返す。
(1) 現在の報酬関数に従って学習したエージェントの方策を計算する。
(2) 算出した方策から各状態の到達頻度を計算する。
(3) エキスパートの状態到達頻度と、(2)で求めた状態到達頻度が一致するように報酬関数のパラメータθを更新する。
【0025】
各手順の詳細を説明する。
・方策計算
現在の報酬関数の上で強化学習(既に説明したQ学習等)を用いて、エージェントの方策π(s)を求める。このメカニズムをインナーループ学習と呼ぶ。
・状態到達頻度計算
算出したエージェントの方策から、[数3]式によって、エージェントの状態到達頻度 (state visited frequency:SVF)P(si)を求める.μt(si)はエキスパートがステップtのときにある状態siに到達する頻度で、Tはエージェントの最大ステップ数である。
【0026】
【数3】
【0027】
ここで、μt(si)は[数4]式によって求める。Aはそれぞれ行動の集合,Sは状態の集合で、前のステップt-1の全て状態から状態siに訪れる頻度を計算することによって求める。
【0028】
【数4】
【0029】
・報酬関数の更新
報酬関数R(s)は[数5]式で定義されており、各状態の報酬値のパラメータθ(={θ01, ..., θ|s|})を更新することで最適な報酬関数を求める。Φ(s)は状態sを特徴に変換する関数であり、例えば各状態をone-hotベクトルで表現するならば、Φ(s1)={0,1, ..., 0}のように表現される。
【0030】
【数5】
【0031】
また訪れた一連の状態である行動系列ζの特徴量fζは、Φ(s)を用いて[数6]式で求められる。
そのため、行動系列ζに関する報酬関数R(ζ)は[数5]式に従ってR(ζ)=θTfζと表される。
【0032】
【数6】
【0033】
次に、[数7][数8]に従ってエキスパート行動の特徴量であるfexpertとエージェントの特徴量であるfagentを計算する。Mは行動系列の数で、P(s|θ)はパラメータθで学習した時の状態sの到達頻度である。
【0034】
【数7】
【0035】
【数8】
【0036】
最適なパラメータθは、エージェントの特徴量がエキスパートの特徴量と等しくなるときに得られるため、パラメータθは[数9]式及び[数10]式で示すように対数尤度関数の最尤推定によって求め、学習率αを用いて[数11]式で更新する。
【0037】
【数9】
【0038】
【数10】
【0039】
【数11】
【0040】
次に、MaxEntIRLのアルゴリズムについて説明する。
M個のエキスパートの行動系列ζを入力とし(Step1)、報酬関数R(s)のパラメータθを0から1の間のランダム値で初期化する(Step 2)。エキスパート行動系列の特徴量fexpertを計算後(Step 3)、最大学習反復数MAX_CYCLE になるまで、以下のStep5-Step9を繰り返す(Step 4)。
(i) 報酬関数R(s)を現在のパラメータθと状態sの特徴量 Φ(s)によって更新する(Step 5)。
(ii) 強化学習によってR(s)下でのエージェントの方策π(s)を算出する(Step 6)。
(iii) エージェントの状態到達頻度確率P(s|θ)を計算する(Step7)。
(iv) エキスパートの特徴量とエージェントの特徴量が一致するように、∇L(θ)によって、最適なパラメータθの最尤推定によって求める(Step 8)。
(v) パラメータθを、学習率をかけて更新する (Step 9)。
【0041】
本例では、以上説明した逆強化学習による最適行動の導出を行うMaxEntIRLをマルチエージェントに拡張して、学習中に獲得した行動系列をアーカイブする処理と、アーカイブ内の行動系列を一般化する処理、並びにエキスパート行動の特徴量の更新をする処理を追加するものである。
本例は分散型のマルチエージェントをターゲットにしており、各エージェントがこれらのメカニズムを独立して行い、エージェント間で情報の共有はしないことを前提としている。
【0042】
本例の場合、全てのエージェントが、Q値、報酬関数、学習中に獲得した行動系列ζiの集合(行動系列群)Z=ζ0, ..., ζLをもつ(Lは行動系列数)。
そして、処理を行うための機能として、MaxEntIRLの機能に、行動系列群Zを格納するための行動系列をアーカイブする機能、アーカイブ内からエージェント間の干渉の少ない行動系列群を選択しそれらの一般化をする機能、及び一般化した行動系列を用いてエキスパート行動の特徴量を更新する機能が追加される。
【0043】
入力として、各エージェントに自身のエキスパート(ここでは他エージェントを考慮していない利己的なエキスパート)の行動系列を与え、各エージェントは、ある環境内で状態sを観測し、行動aを実行し、報酬rを受け取る。そして、各エージェントは、行動aを実行した出力として、エージェント毎の報酬関数を得る。
【0044】
ここで、本例の処理を行う機能について説明すると、行動系列アーカイブを得るために、インナーループ学習中に現在の報酬関数上で獲得された行動系列群Z=ζ0, ..., ζLをアーカイブし、干渉の少ない行動系列群を一般化するために、各状態における他エージェントとの干渉確率を算出し、干渉の少ない行動系列群を選択する。なお、状態sに対する干渉確率は、{状態sで他エージェントと干渉した回数}/{全状態の他エージェントと干渉した合計回数}で求める。
【0045】
次に、干渉削減のための行動系列を一般化する機能について説明する。
ここでは、エキスパート行動の特徴量を修正するために、アーカイブ内の干渉が少ない行動系列を選択して評価する。干渉が少ない行動系列は複数存在するため、複数の干渉が少ない行動系列を選択し、それらを一般化する。具体的には、以下の(i)、(ii)の処理を行う。
【0046】
(i)各状態の非干渉度を求める。
(ii)上記を用いてアーカイブ内から干渉削減のための行動系列を選択し、一般化する。
【0047】
(ii)での干渉削減のための行動系列を選択すために、以下の[数12]式に基づいて状態s,方向aの非干渉度QC(s, a) (Collision-based Q)を算出する。QC(s, a)は状態sからs′への状態遷移確率であるPss′を用い、状態sから遷移可能な全ての次状態s′の非干渉度(1-状態s′の干渉回数|全状態の干渉回数合計)と、割引率γで割り引いた次状態の非干渉度の見積もり(Σa′∈A π(s′,a′)QC(s′,a′))の和となる。
【0048】
【数12】
【0049】
そして、上記のQC(s, a)を基に,アーカイブ内の行動系列を以下の手順で選択する。
まず、アーカイブ内のある行動系列をζi={(st0,at0), ...,(stT, atT)}で表し、アーカイブされた行動系列群を状態毎の行動別にグループを分ける。具体的には、上下の行動があれば、ステップt0では状態st0で上に行く行動系列群と、下に行く行動系列群に分ける。そして、各グループ内から非干渉度の高い順に、QC(st0,at0)/Σat0∈AQC(st0,at0)割合分の行動系列を選択する。このように、ステップt0にて各グループで選択された行動系列群をZ0とする。
【0050】
次にステップt1にて,ステップt0と同じ要領で行動系列群Z0をグループ分け・行動系列を選択し、行動系列群Z1とする.ステップ tT になるまで繰り返す.そして、行動系列群 Z0, ..., ZT を[数13]式に統合する。これによって、fnon collisionが干渉削減のための行動系列の特徴量になる。統合後はfnon collisionの値が0から1の範囲となるように正規化する。
【0051】
【数13】
【0052】
エキスパート行動の特徴量更新処理を行う機能について説明すると、学習率αが固定の場合は、[数14]式に示すように、干渉削減のための行動系列の特徴量fnon collision、エキスパート行動系列の特徴量fexpert、学習率αを用いて、fexpertを更新する。この更新を繰り返すことで、徐々にエキスパート行動をエージェント間の干渉が少ない行動に修正する。
【0053】
【数14】
【0054】
一方、学習率αを適切に変動させる場合は、[数15]式[数16]式に示すように、干渉削減のための行動系列の特徴量fnon collision、エキスパート行動の特徴量fexpert、変動学習率diffを用いて、fexpertを更新する。考え方としては、他エージェントとの干渉回数が減少傾向にあるか、増加傾向にあるかによって、現在の学習が良い/悪い方向に学習しているのかを判断できるため、[数15]式に示すように、減少傾向の場合はfnon collisionに近づけ、増加傾向の場合は現在のエキスパート行動を維持するように更新する。エキスパート行動系列の特徴量の更新度合い(変動学習率)を示すdiffは、[数16]式に示すように計算する。なお、diffにおける全状態の干渉回数は他エージェントとの干渉回数は同義であるため、その干渉割合を(cycle-lからcycleまでの)窓幅lの移動平均によって算出し、cycle時点とcycle-1時点で干渉割合の差をtanh 関数に導入する。tanh 関数は値を-1.0 から1.0 の範囲の数値として出力する関数である。
【0055】
【数15】
【0056】
【数16】
【0057】
次に、本例の協調行動導出システムで行われる処理のアルゴリズムを説明する。
まず、エージェントがN体とすると、各エージェントに他エージェントの行動を考慮していない利己的なエキスパートの行動系列ζを入力する(Step1)。
次に、N体分の報酬関数{R1(s), ..., RN (s)}のパラメータ{θ1, ..., θN }を、0から1の間のランダム値で初期化する(Step 2)。
そして、各エージェントのエキスパート行動系列の特徴量fexpertを計算後(Step3)、以下のStep5-Step12を、最大学習反復数MAX_CYCLE 回繰り返す(Step 4)。
【0058】
(i)各エージェントの報酬関数{R(s)1, ..., R(s)N}をパラメータ{θ1, ..., θN }と状態sの特徴量{Φ(s), ..., Φ(s)N}によって更新する (Step5)。(ii)各エージェントは自身の報酬関数{R(s)1, ..., R(s)N}下で強化学習から方策{π(s)1, ..., π(s)N}を求め、各エージェントは強化学習中に獲得した行動系列群{Z1, ...,ZN}を得る (Step6)。(iii)干渉削減のための行動系列群を選択し、その特徴量{f non_collision, ・・・ ,f non_collision}を計算し、エキスパート行動系列の特徴量{f expert, ・・・ ,f exper}を更新する(Step7,8,9)。(iv)k番目のエージェントの状態到達頻度{P(si|θ)1, ..., P(si|θ)N}を求める(Step10)。
(v)エキスパートの特徴量とエージェントの特徴量が一致するように {∇L(θ)1, ..., ∇L(θ)N}によって,最適なパラメータ{θ1, ..., θN }を求める(Step11)。(vi) パラメータ{θ1, ..., θN }に、学習率をかけて更新する(Step 12)。
【0059】
[協調行動導出システムの構成]
次に、ここまでメカニズムとアルゴリズムを説明した本例の協調行動導出システムについて、ロボットの制御に適用した場合の具体的な構成例について説明する。
図1は、本例の協調行動導出システムの構成を示す。
本例の協調行動導出システムは、エージェントとして複数台のロボットA~Aを用意し、複数台のロボットA~Aを決められた室内などの環境で自律移動させる際の、それぞれのロボットA~Aの行動を導出するものである。
【0060】
各ロボットA~Aは、通信装置30を介して協調行動導出装置10と通信を行う構成になっている。そして、各ロボットA~Aは、協調行動導出装置10からロボットA~Aごとに適切な行動情報を取得して、その取得した行動情報に従って自律移動を行う。但し、各ロボットA~Aは、協調行動導出装置10からの指示に基づいてそれぞれが単独で行動を決定する分散型の制御で行動するロボットであり、ロボットA~A相互間で衝突を避けるための通信や統括的な制御は行わない。
【0061】
協調行動導出装置10は、情報処理装置であるコンピュータで構成される。すなわち、図1に示すように、協調行動導出装置10としてのコンピュータは、プロセッサであるCPU(中央処理ユニット:Central Processing Unit)10a、ワークメモリ10b、記憶部10c、及び他の機器とデータの送受信を行うためのインターフェース10dを備える。
記憶部10cとしては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)、あるいは半導体メモリなどが使用される。
CPU10aは、記憶部10cが記憶したプログラムをワークメモリ10b上で実行することで、以下に説明する協調行動導出装置10としての各処理部が構成される。
【0062】
次に、協調行動導出装置10が協調行動を導出する処理機能について説明する。
協調行動導出装置10は、エキスパート行動系列入力部11、エキスパート行動系列特徴量変換部12、エージェント行動系列特徴量計算部13、エージェント行動系列記憶部14、干渉度推定部15、エージェント行動系列群選定部16、エキスパート行動系列特徴量更新部17、特徴量比較部18、報酬関数更新部19、及び出力部20を備える。
【0063】
エキスパート行動系列入力部11は、エージェントとしての複数台のロボットA~Aとは別のエキスパートとして用意されたロボットの行動系列を入力として得る。エキスパートの行動系列は、他エージェントを考慮していない行動であり、1つのパターンの最適協調行動を模範とする行動系列である。
【0064】
エキスパート行動系列特徴量変換部12は、エキスパート行動系列入力部11が得たエキスパートの行動系列を特徴量に変換する。
エージェント行動系列特徴量計算部13は、強化学習でエージェント行動を算出する。エージェント行動系列特徴量計算部13が強化学習でエージェント行動を算出する際には、エージェント行動系列記憶部14に記憶されたアーカイブを参照すると共に、干渉度推定部15における状態の干渉度の推定結果を参照する。
エージェント行動系列群選定部16は、行動系列群を選定する。エキスパート行動系列特徴量更新部17は、エキスパートの特徴量を更新する。特徴量比較部18は、エキスパートの行動系列の特徴量とエージェントの行動系列の特徴量とを比較して、差の特徴量Δdを得る。
報酬関数更新部19は、エキスパートとエージェントのそれぞれの状態のパラメータθを、特徴量比較部18で得られた差の特徴量Δdの分だけ更新する。
出力部20は、得られた報酬関数を、該当するエージェントであるロボットに出力する。
【0065】
[協調行動導出システムで行われる処理の流れ]
図2は、図1に示す構成にて行われる処理の流れを示すフローチャートである。
まず、エキスパート行動系列入力処理として、エージェントとしての複数台のロボットA~Aの中のエキスパートの行動系列を入力として得る(ステップ101)。
【0066】
そして、エキスパート行動系列特徴量変換部12が、エキスパート行動系列入力部11で得たエキスパートの行動系列を特徴量に変換するエキスパート行動系列特徴量変換処理を行うと共に、エージェント行動系列特徴量計算部13が強化学習で獲得したエージェント行動系列の特徴量を算出する計算処理(エージェント行動系列特徴量計算処理)を行う(ステップ102)。なお、エージェント行動系列特徴量計算部13は、強化学習でエージェント行動を算出する際に、エージェント行動系列記憶部14に記憶されたアーカイブを参照すると共に、干渉度推定部15での状態の干渉度の推定結果を参照する。
そして、エージェント行動系列群選定部16が、行動系列群を選定する行動系列群選定処理(エージェント行動系列群選定処理)を行う(ステップ103)。
【0067】
次に、エキスパート行動系列特徴量更新部17は、エキスパート行動系列の特徴量を更新する(エキスパート行動系列特徴量更新処理:ステップ104)。そして、特徴量比較部18は、エキスパートの行動特徴量とエージェントの行動特徴量とを比較して、差の特徴量Δdを得る特徴量比較処理を行う(ステップ105)。
ステップS105で、差の特徴量Δdが得られると、報酬関数更新部19は、エキスパートとエージェントの各状態のパラメータθを、差の特徴量Δdの分だけ更新する報酬関数更新処理を行う(ステップ106)。
そして、ステップ102からステップ106までの処理を所定の回数繰り返し実行し、所定の回数繰り返した後、出力部20が報酬関数を出力する。出力した報酬関数は、通信装置30を介してエージェントであるそれぞれのロボットA~Aに供給される。すると、各ロボットA~Aは、報酬が高い経路への移動を行う。
【0068】
[報酬に基づいてロボットが動作を行う例]
図3は、報酬に基づいてロボットが動作を行う例を示す。
ここでは、図3の左端に示すように、3×3の9マスの空間内で、2台のロボットA,Aがそれぞれに割り当てられたゴールg1,g2に移動する行動を想定する。この2台のロボットA,Aの行動が、本例でのエキスパート行動、つまりお手本になる。
ロボットAとゴールg1とを結ぶ矢印がロボットAのエキスパート行動である。また、ロボットAとゴールg2とを結ぶ矢印がロボットAのエキスパート行動である。
【0069】
この2台のロボットA,Aが、図3の左端に示す行動を同時に行ったとき、図3の左から2つ目に示すように、2台のロボットA,Aは、中央のマスで衝突してしまう。
このため、図3の右から2つ目に示すように、少なくともいずれかのエキスパート行動を修正する必要が生じる。図3の例では、ロボットAのエキスパート行動を修正せず、ロボットAのエキスパート行動を修正している。
【0070】
このようにエキスパート行動を修正したときの報酬が、図3の右端に示される。
すなわち、ロボットAの行動の報酬として、図3に示すように、エキスパート行動の経路上の各マスに報酬X11,X12,X13,X14を設定する。この報酬X11~X14は、ゴールg1に近づくほど大きな報酬としてある。
同様に、ロボットAの行動の報酬として、図3に示すように、エキスパート行動の経路上の各マスに報酬X21,X22,X23,X24を設定する。この報酬X21~X24についても、ゴールg2に近づくほど大きな報酬としてある。
【0071】
このようにして、報酬に基づいて各ロボットの移動経路が選択されるが、経路が一つの場合、他のロボットを回避できない状態が発生する可能性がある。
例えば、図4の左端に示すように、2台のロボットA、Aがそれぞれのゴールg1,g2に移動することを想定し、図4の左から2つ目に示すようにロボットAの経路が急遽変更した場合、ロボットAのルートが1つのときはマス1aでロボットAと衝突してしまう。また、図4の右から2つ目に示すように、マス1bでロボットAが故障して停止した場合、ロボットAのルートが1つのときはマス1bで故障したロボットAと衝突してしまう。
この衝突を回避するために、本例の協調行動導出システムでは、図4の右端に示すように、ロボットAの報酬に基づいた経路として、経路r1と経路r2の複数の経路を提示して、例えば経路r1で移動できない場合に、経路r2で移動させて、ゴールg1に到達できるようにした。
【0072】
[具体的な行動系列の例]
次に、図5から図10を参照して、具体的な衝突回避に貢献する行動系列の選択の例について説明する。
まず、図5に示すように、スタート地点「S」(初期状態)から、途中地点「0,1,2,3」のいずれかを通過して、ゴール地点「G」(最終状態)に移動する状態を想定する。
この図5の状態の場合、各地点を結ぶ経路として、{S,0,2,G}、{S,1,3,G}、{S,0,3,G}、{S,1,G}の4つがアーカイブとしてエージェント行動系列記憶部14に記憶される。
【0073】
このように、ロボットの移動経路が複数設定される場合には、干渉度推定部15において、干渉しづらさを示す状態の非干渉度を得る処理が行われる。この非干渉度QC(s,a)を得る処理は、[数12]式の演算で行われ、図6に示すように、干渉リスクの高いエリアと、干渉リスクの低いエリアとに分かれる。すなわち、状態2で干渉する回数が200回、その他の状態0,1,3で干渉する回数がいずれも50回であるとすると、状態Sが0のとき干渉リスク大とし、状態Sが1のとき干渉リスク小と見積もる。
【0074】
そして、エージェント行動系列群選定部16は、図7及び図8に示すように、非干渉度QC(s,a)に従って、アーカイブ内の行動系列から、非干渉度QC(s,a)が高い行動系列を順に選んでいく。
例えば、図7に示すように、地点「S」では、地点「0」への行動時の非干渉度QC(s,1)が大きく、地点「0」への行動時の非干渉度QC(s,0)が小さくなるので、地点「S」から地点「0」への行動が選択される。なお、選択される行動数はアーカイブ数×非干渉度の割合(QC(s,0)/(QC(s,0)+QC(s,1)))とする。
同様に、図8に示すように、地点「0」では、地点「2」への行動時の非干渉度QC(0,2)が大きく、地点「3」への行動時の非干渉度QC(0,3)が小さくなるので、地点「0」から地点「2」への行動が選択される。
【0075】
すなわち、図9に示すように、非干渉度QC(s,a)に従ってアーカイブ内から行動系列を選定する処理を繰り返して、例えば行動系列{S,0,2,G}は3回選択し、行動系列{S,0,3,G}は1回選択したとする。
このとき、図9の右端に示すように、地点「S」,「0」,「G」の特徴量は1(4回数中4回選択)、地点「1」の特徴量は0(4回数中0回選択)、地点「2」の特徴量は0.75(4回数中3回選択)、地点「3」の特徴量は0.25(4回数中0回選択)のように求まる。
このようにして、エージェント行動系列群選定部16では、行動系列群(複数の行動系列)を1つの特徴量に変換する処理が行われ、行動系列群が選定される。
【0076】
図10は、エキスパート行動系列特徴量更新部17での特徴量の更新処理を示す。
例えば、図10の左側に示すように、エキスパート行動系列の特徴量fexpertとして、行動系列{S,0,3,G}となっていた場合に、[数14]式で説明した特徴量の更新が行われることで、図10の中央に示すような、選定した行動系列群の特徴量
non collisionを優先的に更新する場合(例えば、状態1で干渉した分,fnon collisionの行動系列(S,0,2,G)の干渉回数が減ったとき、fnon collisionを優先的に更新する場合)と、図10の右側に示すような、エキスパート行動系列の特徴量fexpertを優先的に更新した場合(例えば、状態2で干渉した分、fexpertの行動系列(S,0,3,G)の干渉回数が減ったとき、fexpertを優先的に更新する場合)とが得られ、現在と1つ前の更新時点の干渉回数合計の差分で、特徴量が更新されていく。
【0077】
[従来手法と本例による行動系列群選定処理の比較]
次に、実際に複数台のエージェント(ロボット)の行動をシミュレーションした例を説明する。
ここでは、図11に示すように、エージェンA、B、C、Dが、それぞれ個別のスタート地点(StartA, StartB, StartC, StartD)から、ゴール(GoalA, GoalB, GoalC, GoalD)に移動する例とした。但し、ゴールGoalB,とGoalCは、同じ地点である。
このような行動について、
【0078】
図12は、本例によりシミュレーションした結果Daと、従来手法であるMaxEntIRLの手法によりシミュレーションした結果Dcと、1つの協調行動のみを導く手法であるA-MAIRLの手法によりシミュレーションした結果Dbとを示す。
図12の横軸は繰り返した回数を示し、縦軸は衝突した回数を示す。縦軸の値が大きいほど、衝突を回避できないことを示し、縦軸の値が小さいほど、衝突を回避して協調行動できたことを示す。
【0079】
本例の結果Daの場合には、行動系列群で同時に協調行動を探索して、協調できる経路を早く見いだし、衝突回数が収束している。一方、A-MAIRLの手法の結果Dbでは、1つの協調行動を探索しており、新たな協調行動の発見に時間が必要であり、衝突回数の収束が遅くなっている。また、MaxEntIRLの手法によりシミュレーションした結果Dcでは、エキスパートが最適でないため、衝突回避できない状態になっている。
【0080】
次に、図12の結果から得られた協調行動のロバスト性を比較する。
ここでは、図11に示した行動の内で、エージェントAが故障して停止した場合を想定する。この故障位置はランダムに設定してある。エージェントB,C,Dは、それぞれ本例の協調行動に従って行動し、他エージェントと衝突する場合は、行動を選択し直し、それでも衝突する場合はステップ数を一つ増やすものとする。
【0081】
図13の左側は、A-MAIRLの手法の結果であり、図13の右側は、本例の手法による結果を示す。いずれの手法の結果でも、エージェントDのステップ数は7でほぼ同じである。一方、エージェントB,Cのステップ数は、本例の手法の場合には約8と約8.5弱であるのに対して、A-MAIRLの手法の場合それよりも大きなステップ数である。したがって、本例の場合にはランダムに故障が発生するエージェントAの影響が小さく、従来手法ではランダムに故障が発生するエージェントAの影響が大きい。
【0082】
つまり、図14(a)に示すように1つの経路しか持たないA-MAIRLの手法の場合、エージェントAにランダムな故障が発生したときに対応ができない。
これに対して、本例の場合には、図14(b)に示すように、導かれる代替経路が複数存在し、不確実な行動に合わせて衝突回避が可能になっている。
【0083】
なお、ここまでの説明では、ロボットが自立移動する場合に、協調行動を導出する例について説明したが、本発明は、その他の各種の協調行動導出処理に適用が可能である。
また、上述した実施の形態例では、図1で説明しエキスパート行動系列入力部11が得たエキスパートの行動系列を特徴量に変換するエキスパート行動系列特徴量変換部12と、エキスパート行動系列特徴量変換部12で得た特徴量から、行動系列のアーカイブと状態の干渉度を考慮して、エージェントの行動系列を示す特徴量を計算するエージェント行動系列特徴量計算部13と、行動系列の群を選定するエージェント行動系列群選定部16とを備え、エキスパート行動系列特徴量更新部17は、エージェント行動系列群選定部16で選定された行動系列に基づいて、エキスパートの特徴量を更新するようにした。このような構成が好ましいことは説明した通りであるが、エキスパート行動系列特徴量更新部17での更新を適切に行うことが可能であれば、エキスパート行動系列特徴量変換部12、エージェント行動系列特徴量計算部13、及びエージェント行動系列群選定部16以外の処理構成による演算処理の結果で、エキスパート行動系列特徴量更新部17がエキスパート行動系列の特徴量を更新してもよい。
【符号の説明】
【0084】
10…協調行動導出装置、10a…CPU、10b…ワークメモリ、10c…記憶部、10d…インターフェース、11…エキスパート行動系列入力部、12…エキスパート行動系列特徴量変換部、13…エージェント行動系列特徴量計算部、14…エージェント行動系列記憶部、15…干渉度推定部、16…エージェント行動系列群選定部、17…エキスパート特徴量更新部、18…特徴量比較部、19…報酬関数更新部、20…出力部、30…通信装置、A~A…ロボット(エージェント)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14