(57)【要約】  本技術は、現実世界を模したシミュレータ環境において、様々な事象のシーンの様々なバリエーションを実現することができるようにする情報処理装置及び情報処理方法に関する。報酬提供部は、現実世界を模したシミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントに対して報酬を提供する。第１のエージェントに対しては、所定の報酬定義に従った報酬を提供される。また、第２のエージェントが第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、所定の報酬定義に敵対する敵対報酬定義として、第２のエージェントに対して、敵対報酬定義に従った報酬が提供される。本技術は、例えば、エージェントの強化学習に適用できる。
2018110305.tif 000002
【特許請求の範囲】
【請求項１】
現実世界を模したシミュレータ環境を生成するシミュレータ環境生成部と、
前記シミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントのうちの
前記第１のエージェントに対して、所定の報酬定義に従った報酬を提供するとともに、
前記第２のエージェントが前記第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、前記第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、前記所定の報酬定義に敵対する敵対報酬定義として、前記第２のエージェントに対して、前記敵対報酬定義に従った報酬を提供する
報酬提供部と
を備える情報処理装置。
【請求項２】
前記報酬提供部は、ユーザの操作に応じて、前記報酬のパラメータを調整する
請求項１に記載の情報処理装置。
【請求項３】
前記報酬のパラメータを調整するGUI(Graphical User Interface)を表示させる表示制御を行う表示制御部をさらに備える
請求項２に記載の情報処理装置。
【請求項４】
前記第１のエージェント及び前記第２のエージェントの学習状況に応じて、前記報酬のパラメータの調整を促すアラートの発行を制御する発行制御部をさらに備える
請求項２に記載の情報処理装置。
【請求項５】
前記報酬の変化パターンに応じて、前記学習状況を判定する判定部をさらに備える
請求項４に記載の情報処理装置。
【請求項６】
前記第１のエージェント又は前記第２のエージェントが、学習に失敗した場合と、前記第１のエージェント及び前記第２のエージェントが、学習に成功した場合とに、前記アラートを発行する
請求項４に記載の情報処理装置。
【請求項７】
現実世界を模したシミュレータ環境を生成することと、
前記シミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントのうちの
前記第１のエージェントに対して、所定の報酬定義に従った報酬を提供するとともに、
前記第２のエージェントが前記第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、前記第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、前記所定の報酬定義に敵対する敵対報酬定義として、前記第２のエージェントに対して、前記敵対報酬定義に従った報酬を提供することと
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置及び情報処理方法に関し、特に、例えば、現実世界を模したシミュレータ環境において、様々な事象のシーンの様々なバリエーションを実現することができるようにする情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
現実世界を模したシミュレータ環境において、そのシミュレータ環境の中で行動する（人工知能）エージェントに、目的と状況に応じた所望の行動をとるように、エージェントの行動決定則の学習を行う機械学習の枠組みに、強化学習と呼ばれる学習がある。【０００３】
強化学習では、エージェントが、観測することができる観測値をコンポーネントとする状態sに基づき、行動決定則としての学習モデルに従って行動aを決定する。エージェントは、学習モデルに従って決定した行動aをとり、その行動aに対して、行動aが所望の目的の達成に適切かどうかを表す報酬rを受ける。そして、エージェントは、行動a、行動aをとった後の状態s、行動aに対する報酬rとを用いて、将来的に受け取る報酬r（の総和）がより大になるように、学習モデルを更新する。エージェントは、更新後の学習モデルに従って、行動aを決定し、以下、同様の処理を繰り返す。【０００４】
強化学習に用いられる学習モデルとしては、例えば、Deep Q Net(Network)がある（例えば、非特許文献１を参照）。【０００５】
強化学習において、報酬rは、あらかじめ決められた報酬定義に従って算出される。報酬定義は、報酬を算出する指針であり、例えば、エージェントが行動aを行った後の状態sが、人がエージェントに期待する状態と照らし合わせて良かったか悪かったかを定量的に表現する関数等の数式等である。【０００６】
強化学習では、エージェントの行動に、探索的行動を織り交ぜ、特に、学習の初期では、ランダム的な行動を通じて、行動決定則としての学習モデルの学習が行われる。エージェントが探索的行動をとる過程では、実世界で、現実のハードウェアを用いると、実世界の環境及びハードウェアに大きな負荷がかかる。すなわち、最悪の場合には、実世界の物体とハードウェアとが衝突して、実世界の物体やハードウェアが破損することがある。【０００７】
そこで、実世界を模したシミュレータ環境を生成し、そのシミュレータ環境の中で、（仮想的な）エージェントを行動させるシミュレーションを行うことで、エージェントの強化学習が行われる。【０００８】
シミュレータ環境の中でのエージェントの学習の終了後、そのエージェント（の学習モデル）を実際の装置等に適用することにより、その装置等は、実世界において、適切な行動をとる（動作を行う）ことができる。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning.", Nature 518.7540(2015): 529-533.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、シミュレータ環境に、学習対象のエージェントAと、学習対象でない他のエージェントBとが共存する場合、エージェントBは、例えば、あらかじめ決められた規則に従って行動するようにプログラムされる。【００１１】
この場合、エージェントBは、プログラマがあらかじめ想定した行動しか行うことができず、その結果、シミュレータ環境において再現可能なシーンのバリエーションが限定的になる。【００１２】
一方、学習対象のエージェントAの学習については、実世界ではめったに起こらない例外的事象への適切な行動生成能力の重要性が大きい場合が多い。【００１３】
例えば、エージェントAが、車両制御則を学習する自動運転車両としてのエージェントであり、エージェントBが、自転車等の他の車両や歩行者等としてのエージェントである場合、自転車や歩行者等としてのエージェントBの行動は、例えば、現実的、標準的な物理モデルや行動モデルに従って、あらかじめプログラムされる。【００１４】
しかしながら、エージェントBの行動をプログラムするのでは、歩行者が車道に飛び出してくる事象や、車両が逆走している事象等の、例外的に起こりうる様々な事象のシーンの様々なバリエーションを、シミュレータ環境の中に再現することは難しい。【００１５】
本技術は、このような状況に鑑みてなされたものであり、現実世界を模したシミュレータ環境において、様々な事象のシーンの様々なバリエーションを実現することができるようにするものである。
【課題を解決するための手段】
【００１６】
本技術の情報処理装置は、現実世界を模したシミュレータ環境を生成するシミュレータ環境生成部と、前記シミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントのうちの前記第１のエージェントに対して、所定の報酬定義に従った報酬を提供するとともに、前記第２のエージェントが前記第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、前記第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、前記所定の報酬定義に敵対する敵対報酬定義として、前記第２のエージェントに対して、前記敵対報酬定義に従った報酬を提供する報酬提供部とを備える情報処理装置である。【００１７】
本技術の情報処理方法は、現実世界を模したシミュレータ環境を生成することと、前記シミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントのうちの前記第１のエージェントに対して、所定の報酬定義に従った報酬を提供するとともに、前記第２のエージェントが前記第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、前記第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、前記所定の報酬定義に敵対する敵対報酬定義として、前記第２のエージェントに対して、前記敵対報酬定義に従った報酬を提供することとを含む情報処理方法である。【００１８】
本技術の情報処理装置及び情報処理方法においては、現実世界を模したシミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントに対して、報酬が提供される。前記第１のエージェントに対しては、所定の報酬定義に従った報酬が提供される。また、前記第２のエージェントが前記第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、前記第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、前記所定の報酬定義に敵対する敵対報酬定義として、前記第２のエージェントに対しては、前記敵対報酬定義に従った報酬が提供される。【００１９】
なお、情報処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。【００２０】
また、情報処理装置は、コンピュータにプログラムを実行することにより実現することができる。かかるプログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【００２１】
本技術においては、現実世界を模したシミュレータ環境において、様々な事象のシーンの様々なバリエーションを実現することができる。【００２２】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００２３】
【図１】強化学習の概要を説明する図である。
【図２】本技術を適用したシミュレーションシステムの一実施の形態の機能的な構成例を示すブロック図である。
【図３】エージェントAの機能的な構成例を示すブロック図である。
【図４】シミュレータ環境生成部３２が生成するシミュレータ環境の例を模式的に示す平面図である。
【図５】エージェントAの状態sのコンポーネントの例を示す図である。
【図６】エージェントAの行動aの例を説明する図である。
【図７】エージェントAの学習部６５での学習と、行動決定部６６での行動決定の例を示す図である。
【図８】エージェントAの報酬定義の例を説明する図である。
【図９】エージェントBの例を説明する図である。
【図１０】エージェントAの処理の例を説明するフローチャートである。
【図１１】シミュレータ環境提供部３１の処理の例を説明するフローチャートである。
【図１２】エージェントAやBに対する報酬の変化パターンの例を模式的に示す図である。
【図１３】ユーザI/F４０に表示されるGUIの表示例を示す図である。
【図１４】アラートの発行を行うアラート発行処理の例を説明するフローチャートである。
【図１５】アラートの発行を行うアラート発行処理の例を説明するフローチャートである。
【図１６】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００２４】
＜強化学習の概要＞
【００２５】
図１は、強化学習の概要を説明する図である。
【００２６】
学習対象のエージェント１０は、仮想的なエージェントであり、経験DB(Database)１１、学習部１２、及び、行動決定部１３を有する。
【００２７】
エージェント１０は、現実世界を模したシミュレータ環境に置かれる。
【００２８】
エージェント１０では、行動決定部１３において、エージェント１０が観測することができる観測値をコンポーネントとする状態sに基づき、行動決定則π*(a|s)としての学習モデルに従って行動aが決定される。そして、エージェント１０は、シミュレータ環境において、行動決定部１３が決定した行動（以下、決定行動ともいう）aをとる。
【００２９】
行動決定則π*(a|s)は、例えば、様々な状態に対する行動aの確率分布であり、状態sに対して、確率が最も大の行動aが、エージェント１０のとるべき行動（決定行動）に決定される。
【００３０】
エージェント１０は、決定行動aに対して、その決定行動aが所望の目的の達成に適切かどうかを表す報酬rを、シミュレータ環境から受ける。
【００３１】
さらに、エージェント１０では、学習部１２が、（決定）行動a、行動aをとった後の状態s、行動aに対する報酬rとを用いて、将来的に受け取る報酬r（の総和）がより大になるように、エージェント１０の行動決定則π*(a|s)（としての学習モデル）の学習を行う。
【００３２】
そして、エージェント１０では、行動決定部１３において、行動aの後の状態sに基づき、学習後の行動決定則π*(a|s)に従って、次の行動aが決定され、以下、同様の処理が繰り返される。
【００３３】
いま、時刻tの状態s、行動a、及び、報酬rを、それぞれ、状態st、行動at、及び、報酬rtと表すこととすると、経験DB１１は、状態s、行動a、及び、報酬rの時系列(s1,a1,r1,s2,a2,r2,...sN,aN,rN,...)を記憶する。
【００３４】
学習部１２は、経験DB１１に記憶された状態s、行動a、及び、報酬rの時系列を用い、式（１）で定義される、期待報酬を最大化する行動決定則π*(a|s)の学習を行う。
【００３５】
π*(a|s)＝argmaxπE[ΣγtR(st,at,st+1)|s1=s(1)，a1=a(1)]
・・・（１）
【００３６】
式（１）において、argmaxπ[x]は、行動決定則πの中で、xを最大にする行動決定則πを表し、E[x]は、xの期待値を表す。Σは、tを初期値である1から∞に変えてのサメーションを表す。γは、割引率と呼ばれるパラメータで、0以上1未満の値が採用される。R(st,at,st+1)は、状態stにおいて、エージェント１０が行動atをとった結果、状態st+1になったときに得られる報酬rとしてのスカラ値を表す。s(1)は、時刻t=1のときの状態（の初期値）を表し、a(1)は、時刻t=1のときの行動（の初期値）を表す。
【００３７】
式（１）のE[ΣγtR(st,at,st+1)|s1=s(1)，a1=a(1)]は、期待報酬、すなわち、将来に亘って得られる報酬rの総和ΣγtR(st,at,st+1)の期待値を表す。
【００３８】
したがって、式（１）によれば、π*(a|s)は、行動決定則πの中で、期待報酬E[ΣγtR(st,at,st+1)|s1=s(1)，a1=a(1)]を最大にする行動決定則πである。
【００３９】
＜本技術を適用したシミュレーションシステムの一実施の形態＞
【００４０】
図２は、本技術を適用したシミュレーションシステムの一実施の形態の機能的な構成例を示すブロック図である。
【００４１】
図２において、シミュレーションシステムは、シミュレータ３０及びユーザI/F(Interface)４０を有する。
【００４２】
シミュレータ３０は、学習対象の（仮想的な）エージェントA（第１のエージェント）、及び、学習対象ではない（仮想的な）エージェントB（第２のエージェント）を有する。
【００４３】
なお、図２では、学習対象のエージェントが、エージェントAの１つだけであるが、学習対象のエージェントは、複数のエージェントであっても良い。学習対象でないエージェントについても同様である。すなわち、シミュレータ３０には、学習対象の１以上のエージェントと、学習対象でない１以上のエージェントとを置くことができる。
【００４４】
シミュレータ３０は、エージェントA及びBの他、シミュレータ環境提供部３１及び入出力制御部３６を有する。
【００４５】
シミュレータ環境提供部３１は、シミュレータ環境生成部３２、報酬提供部３３、及び、学習状況判定部３４を有し、シミュレータ環境の提供に関して各種の処理を行う。
【００４６】
シミュレータ環境生成部３２は、シミュレータ環境を生成して提供する。エージェントA及びＢは、シミュレータ環境生成部３２から提供されるシミュレータ環境の中を行動し、強化学習により行動決定則を学習する。
【００４７】
報酬提供部３３は、エージェントA及びB、並びに、シミュレータ環境を観測し、その観測結果に基づいて、エージェントA及びB（の行動a）に対する報酬rを算出して提供する。
【００４８】
なお、報酬提供部３３は、エージェントAに対する報酬を、あらかじめ決められた所定の報酬定義に従って算出するとともに、エージェントBに対する報酬を、エージェントAの報酬定義に敵対する敵対報酬定義に従って算出する。
【００４９】
エージェントAの報酬定義に敵対する敵対報酬定義とは、エージェントBがエージェントAの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、エージェントAの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を意味する。
【００５０】
報酬が小という場合には、正の値の報酬が小さい場合の他、報酬が0又は負の値である場合が含まれる。
【００５１】
学習状況判定部３４は、例えば、報酬提供部３３が算出するエージェントAやBに対する報酬の変化パターンに応じて、エージェントA及びB（の行動決定則π*(a|s)）の学習の学習状況を判定する。
【００５２】
入出力制御部３６は、ユーザI/F４０に対する情報の入出力を制御する。
【００５３】
ユーザI/F４０は、タッチパネル、ディスプレイ、スピーカ、キーボード、ポインティングデバイス、通信I/F等の、ユーザとの間で情報をやりとるするためのデバイスで構成される。
【００５４】
入出力制御部３６は、ユーザI/F４０を構成するタッチパネルやディスプレイに、GUI(Graphical User Interface)等の画像その他の情報を表示させる表示制御部として機能する。
【００５５】
また、入出力制御部３６は、ユーザI/F４０を構成するスピーカから、音声その他の音響を出力させる出力制御部として機能する。
【００５６】
さらに、入出力制御部３６は、ユーザによるユーザI/F４０としてのタッチパネルや、キーボード、ポインティングデバイス、操作可能なGUI等の操作の入力を受け付ける受付部として機能する。
【００５７】
また、入出力制御部３６は、エージェントAやBの学習状況に応じて、ユーザI/F４０からアラートを発行させる発行制御部として機能する。すなわち、入出力制御部３６は、例えば、ユーザI/F４０を構成するタッチパネルや、ディスプレイ、スピーカから、アラートとしてのメッセージを出力（表示）させる。また、入出力制御部３６は、例えば、ユーザI/F４０を構成する通信I/Fに、アラートとしてのメールその他のメッセージを送信させる。
【００５８】
＜エージェントA及びBの構成例＞
【００５９】
図３は、図２のエージェントAの機能的な構成例を示すブロック図である。
【００６０】
なお、エージェントBも、図３のエージェントAと同様に構成することができる。
【００６１】
エージェントAは、行動計画部６１、周囲環境情報取得部６２、データ取得部６３、データベース６４、学習部６５、行動決定部６６、及び、行動制御部６７を有する。
【００６２】
行動計画部６１は、行動計画として、例えば、エージェントAの目標経路の設定を行う。さらに、行動計画部６１は、エージェントAの目標経路上に、例えば、等間隔に、ポイント（以下、ウェイポイント(way point)ともいう）を設定する。
【００６３】
周囲環境情報取得部６２は、シミュレータ環境の中のエージェントAの周囲の環境の情報（以下、周囲環境情報ともいう）を取得する。
【００６４】
すなわち、周囲環境情報取得部６２は、例えば、シミュレータ環境の中のエージェントAの周囲にある物体までの距離を、LiDAR等の距離センサでセンシングして得られる距離情報（現実世界において距離センサでセンシングしたならば得られるであろう距離情報）を、周囲環境情報として取得する。
【００６５】
データ取得部６３は、エージェントAが観測することができる観測値を取得し、その観測値をコンポーネントとするベクトルを、状態sとして求める。例えば、データ取得部６３は、行動計画部６１で設定されるウェイポイント（の座標）や、周囲環境情報取得部６２で取得される周囲環境情報としての距離情報等を取得し、それらをコンポーネントとするベクトルを、状態sとして求める。
【００６６】
また、データ取得部６３は、行動決定部６６で決定された行動aや、報酬提供部３３（図２）から提供される報酬rを取得する。
【００６７】
そして、データ取得部６３は、状態s、行動a、及び、報酬rを、時系列に、データベース６４に供給する。
【００６８】
データベース６４は、データ取得部６３から供給される状態s、行動a、及び、報酬rの時系列を記憶する。
【００６９】
学習部６５は、データベース６４に記憶された状態s、行動a、及び、報酬rを必要に応じて用いて、行動決定則π*(a|s)としての学習モデルの学習（更新）を行う。学習モデルとしては、例えば、Deep Q Netを採用することができる。
【００７０】
行動決定部６６は、データベース６４に記憶された最新の状態sに基づき、学習部６５での学習後のDeep Q Netに従って、行動aを決定し、その行動a（の情報）を、行動制御部６７に供給する。
【００７１】
行動制御部６７は、行動決定部６６からの（決定）行動aをとるように、エージェントAを制御する。
【００７２】
＜シミュレーション環境の例＞
【００７３】
図４は、シミュレータ環境生成部３２（図２）が生成するシミュレータ環境の例を模式的に示す平面図である。
【００７４】
図４のシミュレータ環境は、現実世界のある道路交通環境を模した環境になっている。
【００７５】
以下では、エージェントAとして、学習により行動を自動化させる自動車（自動運転車両）のエージェントを用いるとともに、エージェントBとして、現実世界で自動車と共存する人や自転車のエージェントを用いることとし、そのようなエージェントA及びBが、シミュレータ環境に置かれていることを前提として、説明を行う。
【００７６】
＜エージェントAの状態sのコンポーネントの例＞
【００７７】
図５は、エージェントAの状態sのコンポーネントの例を示す図である。
【００７８】
エージェントAの状態sのコンポーネントとしては、シミュレータ環境の中のエージェントAの周囲にある物体までの距離を、LiDAR等の距離センサでセンシングして得られる距離情報（現実世界において距離センサでセンシングしたならば得られるであろう距離情報）を採用することができる。
【００７９】
距離情報は、エージェントAの周囲の複数の方向について得ることができる。エージェントAの状態sのコンポーネントとしては、距離情報を得た方向（距離情報の方向）も採用することができる。
【００８０】
また、エージェントAの状態sのコンポーネントとしては、目標経路上の、エージェントAの近い位置の複数のウェイポイントの、エージェントAの位置を基準とする相対座標（Δx，Δy）を採用することができる。
【００８１】
さらに、エージェントAの状態sのコンポーネントとしては、エージェントAの速度を採用することができる。
【００８２】
エージェントAの状態sとしては、複数フレームの各方向の距離情報、距離情報の各方向、複数のウェイポイントの相対座標（Δx，Δy）、エージェントAの速度をコンポーネントとする810次元等の複数次元のベクトルを採用することができる。
【００８３】
＜エージェントAの行動の例＞
【００８４】
図６は、エージェントAの行動aの例を説明する図である。
【００８５】
自動車のエージェント（自動車を模したエージェント）であるエージェントAの行動aの対象としては、例えば、図６のＡに示すように、自動車を操縦するときに操作されるステアリングや、アクセルペダル、ブレーキペダル等がある。
【００８６】
ここでは、説明を簡単にするため、エージェントAの行動aの対象として、ステアリングとアクセルペダルとを採用することとする。さらに、エージェントAの行動aとしては、ステアリングを所定の角加速度で動かすこと、及び、アクセルペダルを所定の加速度で動かすことを採用することとする。また、ステアリングの角加速度としては、時計回りの方向を正として、−α，０，＋αの３つの角加速度を採用するとともに、アクセルペダルの加速度としては、アクセルペダルを踏み込む方向を正として、−β，０，＋βを採用することとする。
【００８７】
この場合、エージェントAの行動aは、ステアリングの３つの角加速度−α，０，＋αと、アクセルペダルの３つの加速度−β，０，＋βとの組み合わせの9種類になる。
【００８８】
この9種類の行動aを、a=1,2,...,9のシンボルで表すこととする。
【００８９】
＜エージェントAの学習と行動決定の例＞
【００９０】
図７は、エージェントAの学習部６５での学習と、行動決定部６６での行動決定の例を示す図である。
【００９１】
学習部６５では、期待報酬を最大化する行動決定則π*(a|s)の学習として、例えば、Deep Q Netの学習（深層強化学習）が行われる。
【００９２】
本実施の形態では、Deep Q Netは、複数フレームの各方向の距離情報、距離情報の各方向、複数のウェイポイントの相対座標（Δx，Δy）、エージェントAの速度をコンポーネントとする810次元等の複数次元のベクトルを、状態sとして、その状態sの入力に対して、9シンボルの行動a=1,2,...,9それぞれに対する価値関数Q(s,1)，Q(s,2)，．．．，Q(s,9)の関数値を出力する。
【００９３】
学習部６５での学習では、ある状態sにおいて、エージェントAが、ある行動aをとったときの報酬rに応じて、価値関数Q(s,a)が更新される。例えば、報酬rが大きければ、関数値が大になるように、価値関数Q(s,a)が更新される。
【００９４】
行動決定部６６では、状態sに基づき、学習（更新）後のDeep Q Netに従って、行動aが決定される。
【００９５】
すなわち、行動決定部６６は、状態sを、Deep Q Netに入力し、その入力によって得られる9シンボルの行動a=1,2,...,9それぞれに対する価値関数Q(s,1)，Q(s,2)，．．．，Q(s,9)の中で、関数値が最も大きい価値関数Q(s,a)に対する行動a=f(s)=argmaxaQ(s,a)が、決定行動に決定される。
【００９６】
＜エージェントAの報酬定義の例＞
【００９７】
図８は、エージェントAの報酬定義、すなわち、エージェントAに対する報酬rの算出に用いる報酬定義の例を説明する図である。
【００９８】
エージェントAの報酬定義は、安全運転の指標となる変数として、例えば、「衝突しない」ことを表す変数R1、「経路に沿った適切な車速」で走行することを表す変数R2、及び、「経路追従」（経路から離れないこと）を表す変数R3を用いて表すことができる。
【００９９】
変数R1として、例えば、衝突が生じた場合に1を採用し、衝突が生じていない場合に0を採用することとする。変数R2として、例えば、エージェントAの速度を表す速度ベクトルv1と、エージェントAに最も近い２つのウェイポイントを結ぶベクトルv2との内積を採用することとする。変数R3として、例えば、エージェントAと、エージェントAに最も近い１つのウェイポイントとの間の距離を採用することとする。変数R1ないしR3は、報酬の算出の元となる尺度であるということができる。
【０１００】
この場合、エージェントAの報酬定義は、例えば、ω１，ω２，ω３を重みとして、例えば、式（２）で表すことができる。
【０１０１】
r＝ω１R1＋ω２R2＋ω３R3
・・・（２）
【０１０２】
重みω１，ω２，ω３としては、例えば、ω１＝-20000，ω２＝300，ω３＝-500等を採用することができる。
【０１０３】
式（２）の報酬定義によれば、重みω１，ω２，ω３の設定により、R1ないしR3のうちのいずれに重きをおいた報酬設定にするのかを調整することができる。
【０１０４】
例えば、重みω１を負の大きな値に設定した場合には、エージェントAが、シミュレータ環境において、壁や、人、エージェントA以外の他の車両に衝突したときに、大きな負の値の報酬rが算出される。また、例えば、重みω２を大に設定した場合には、エージェントAが、目標経路に沿って適切な車速で移動しているときに、大きな正の報酬rが算出される。
【０１０５】
＜エージェントB＞
【０１０６】
図９は、エージェントBの例を説明する図である。
【０１０７】
エージェントBとしては、例えば、人（歩行者）のエージェントを採用することができる。エージェントBは、例えば、目標として与えられた目標地点に移動すること（行動）を学習し、現在地から目標地点までの位置ベクトルに応じて決められた範囲内の速度で移動する行動をとることが可能であるように構成する。
【０１０８】
さらに、エージェントBは、図９に示すように、エージェントBから一定距離内に位置する（一番近い）エージェントAの、エージェントBの位置を基準とする相対位置（座標）と、速度ベクトルv1との観測が可能であることとする。
【０１０９】
また、エージェントBについては、学習モデルとして、例えば、エージェントAと同様に、Deep Q Netを採用することとする。エージェントBの状態sとしては、上述のエージェントAの相対位置や速度ベクトルv1等をコンポーネントとするベクトルを採用することができる。
【０１１０】
図２で説明したように、報酬提供部３３において、エージェントBに対する報酬rは、エージェントAの報酬定義に敵対する敵対報酬定義に従って算出される。
【０１１１】
図８で説明したエージェントAの報酬定義に敵対する敵対報酬定義としては、エージェントBが、エージェントAの進路に飛び出して衝突するような行動に対して、正の報酬が算出される報酬定義を採用することができる。
【０１１２】
具体的には、例えば、エージェントAのNステップ（時刻）先の予測位置ppまでの、エージェントBの位置を基準とする相対距離が小さいほど正の報酬が算出される報酬定義を、敵対報酬定義として採用することができる。
【０１１３】
また、例えば、エージェントAの報酬が負の報酬である場合や、エージェントAが、エージェントBに衝突した場合に、正の報酬が算出される報酬定義を、敵対報酬定義として採用することができる。
【０１１４】
エージェントBの報酬定義としては、以上のような敵対報酬定義の他、エージェントBの適切な行動に関わる指標として、「平均移動速度が一定値（例えば、実環境中での人の平均歩行速度）付近に収まる」等を採用し、その指標が実現されている場合に正の報酬が算出される報酬定義を加えることができる。
【０１１５】
エージェントBの報酬の指標を表す数値の変数を、U1,U2,U3,・・・と表すとともに、重みをV1,V2,V3,・・・と表すこととし、エージェントBの報酬定義としては、報酬rを、例えば、式（３）に従ってで算出する報酬定義を採用することとする。
【０１１６】
r＝U1×V1＋U2×V2＋U3×V3＋・・・
・・・（３）
【０１１７】
＜エージェントA及びBの処理の例＞
【０１１８】
図１０は、図３のエージェントAの処理の例を説明するフローチャートである。
【０１１９】
ステップＳ１１において、エージェントAのデータ取得部６３は、最新の状態s、報酬r、及び、行動aを取得し、データベース６４に記憶させて、処理は、ステップＳ１２に進む。
【０１２０】
ステップＳ１２では、学習部６５は、データベース６４に記憶された状態s、行動a、及び、報酬rを用いて、学習モデルとしてのDeep Q Netの学習（更新）を行い、処理は、ステップＳ１３に進む。
【０１２１】
ステップＳ１３では、行動決定部６６が、データベース６４に記憶された最新の状態sに基づき、学習部６５での学習後のDeep Q Netに従って、行動aを決定し、処理は、ステップＳ１４に進む。
【０１２２】
ステップＳ１４では、行動制御部６７は、行動決定部６６からの（決定）行動aをとるように、エージェントAを制御する。そして、処理は、ステップＳ１４からステップＳ１１に戻り、以下、同様の処理が繰り返される。
【０１２３】
なお、エージェントBでも、エージェントAと同様の処理が行われる。
【０１２４】
＜シミュレータ環境提供部３１の処理の例＞
【０１２５】
図１１は、図２のシミュレータ環境提供部３１の処理の例を説明するフローチャートである。
【０１２６】
ステップＳ２１において、シミュレータ環境生成部３２は、シミュレータ環境を生成し、処理は、ステップＳ２２に進む。図１０の処理を行うエージェントA及びBは、シミュレータ環境生成部３２が生成するシミュレータ環境の中におかれる。
【０１２７】
ステップＳ２２では、報酬提供部３３は、エージェントA及びB、並びに、シミュレータ環境を観測し、その観測結果に基づき、図８で説明したエージェントAの報酬定義に従って、エージェントA（の行動a）に対する報酬rを算出する。
【０１２８】
さらに、報酬提供部３３は、エージェントA及びB、並びに、シミュレータ環境の観測結果に基づき、図９で説明したエージェントBの報酬定義、すなわち、エージェントAの報酬定義に敵対する敵対報酬定義に従って、エージェントB（の行動a）に対する報酬rを算出する。
【０１２９】
そして、報酬提供部３３は、エージェントAに対する報酬rを、エージェントAに提供するとともに、エージェントBに対する報酬rを、エージェントBに提供して、処理は、ステップＳ２３からステップＳ２２に戻り、以下、同様の処理が繰り返される。
【０１３０】
以上のように、報酬提供部３３では、エージェントAに対して、所定の報酬定義に従った報酬が提供されるとともに、エージェントBに対して、エージェントAの報酬定義に敵対する敵対報酬定義に従った報酬が提供されるので、エージェントBは、ワーストケースや、例外的に起こりうる様々な事象（例えば、自転車や人等の飛び出し等）を起こす行動をとる。その結果、シミュレータ環境において、様々な事象のシーンの様々なバリエーションを実現することができる。
【０１３１】
さらに、そのような様々な事象のシーンの様々なバリエーションが実現されるシミュレータ環境の中で、車両のエージェントであるエージェントAの学習を行うことにより、エージェントAは、例外的な事象を含む様々な事象に対して、ロバストで適切な行動を行う行動決定則を獲得することができる。そして、その行動決定則を、車両制御に適用することにより、自動運転を実現することができる。
【０１３２】
その他、シミュレータ環境生成部３２が生成するシミュレータ環境において、エージェントA及びBの学習を行い、その後、他のシミュレータ環境で、例えば、自動運転の学習を行ったエージェントCを、学習済みのエージェントBとともに、シミュレータ環境生成部３２が生成するシミュレータ環境の中に導入することにより、エージェントCの環境適用度、すなわち、例えば、エージェントCの自動運転の学習の適切さを、定量的に測ることができる。
【０１３３】
＜報酬rの変化パターン＞
【０１３４】
図１２は、エージェントAやBに対する報酬の変化パターンの例を模式的に示す図である。
【０１３５】
図１２において、横軸は、ステップ数（時間）を表し、縦軸は、報酬を表す。
【０１３６】
道路交通環境を模したシミュレータ環境の中で、エージェントA及びBが学習を行うと、エージェントBは、始めは、ランダムな行動をしているが、学習が適切に進行していくと、次第に、エージェントAに接近してぶつかりに行くような行動をとるようになる。
【０１３７】
一方、エージェントAは、やはり、始めは、ランダムな行動（動き）をしているが、学習が適切に進行していくと、次第に、目標経路に沿って、壁等に衝突しないように行動しつつ、かつ、エージェントBの飛び出しを回避するような行動をとるようになる。
【０１３８】
エージェントBは、エージェントAの報酬定義に敵対する敵対報酬定義に従った報酬を受けるので、シミュレータ環境では、現実世界でまれにしか起こらないような例外的な事象（例えば、人や自転車の飛び出し等）を生み出すことができる。そして、エージェントAは、そのような例外的事象に遭遇した際の適切な行動（例えば、エージェントBとの衝突を避ける等）を学習することができる。
【０１３９】
エージェントAやBが学習の結果行う行動は、例えば、エージェントAやBの報酬定義としての式（２）や式（３）を規定する重みωｉやViの値等の学習条件の設定によって変化する。
【０１４０】
学習条件の設定によっては、学習が失敗することがあり得る。そこで、学習の途中で、例えば、重みωｉやViの値等の学習条件を、適切なタイミングで、適切に調整することで、学習を適切に進行させることが可能になる。このような学習条件の調整は、学習難易度調整と呼ばれ、学習条件を、適宜調整しながら行う学習は、カリキュラム学習と呼ばれる。
【０１４１】
カリキュラム学習では、例えば、学習の始めでは、簡単な目標を達成する行動を学習するように、学習条件が設定され、学習の進捗に応じて、難しい目標を達成する行動を学習するように、学習条件が設定される。
【０１４２】
具体的には、学習の始めでは、例えば、学習条件としての式（２）の重みωｉのうちの重みω１及びω２を０に固定する調整を行い、学習がある程度適切に進行した場合には、学習条件としての式（２）の重みωｉのうちの重みω１だけを０に固定する調整を行うことができる。学習がさらに適切に進行した場合には、学習条件としての式（２）の重みω１の固定を解除し、重みω１ないしω３をいずれも固定せずに、学習を行うことができる。
【０１４３】
その他、学習の進捗に応じて、学習条件としてのエージェントBの数を徐々に増加する調整や、学習条件としてのエージェントBの速度を徐々に増加する調整、学習条件としての、異なる速度のエージェントBの数を徐々に増加する調整等を行うことができる。
【０１４４】
学習条件の調整（設定）は、学習を戦略的に進行させるように、図２のシミュレーションシステムのオペレータの操作に応じて行うことができる。
【０１４５】
例えば、学習条件としての重みωｉやVi（の値）の調整は、ユーザがユーザI/F４０（図１）を操作することにより行うことができる。
【０１４６】
すなわち、入出力制御部３６は、ユーザI/F４０に、重みωｉやViを調整するGUIを表示させることができる。さらに、入出力制御部３６は、ユーザI/F４０に表示されたGUIの、オペレータによる操作を受け付け、報酬提供部３３は、入出力制御部３６が受け付けたGUIの操作に応じて、報酬のパラメータとしての重みωｉやViを調整することができる。
【０１４７】
エージェントA及びBが学習を行っている期間については、学習状況判定部３４（図２）において、エージェントA及びBそれぞれに提供される報酬のログを記録しておくことができる。
【０１４８】
エージェントAが複数導入されている場合には、複数のエージェントAそれぞれに提供される報酬のログを、個別に記録しても良いし、複数のエージェントAそれぞれに提供される報酬の平均値を記録しても良い。エージェントBについても、同様である。
【０１４９】
入出力制御部３６は、報酬のログを用いて、エージェントA及びBそれぞれに提供される報酬を時系列にプロットしたグラフ（以下、報酬グラフともいう）を、ユーザI/F４０に表示することができる。
【０１５０】
オペレータは、ユーザI/F４０に表示された報酬グラフを見て、学習状況（学習の進捗の度合い等）を確認し、その学習状況に基づいて、報酬のパラメータ（ここでは、重みωｉやVi）を調整するタイミングを判断することができる。
【０１５１】
なお、ユーザビリティの観点からは、オペレータが報酬グラフを見て、学習状況を確認し続けることは、オペレータの負担になる。
【０１５２】
そこで、学習状況判定部３４において、報酬グラフから、学習状況を判定し、入出力制御部３６において、学習状況に応じて、報酬のパラメータの調整を促すアラートの発行を制御することができる。
【０１５３】
アラートの発行は、例えば、報酬のパラメータの調整を促すメッセージを、ユーザI/F４０にポップアップで表示させることや、メールで送信させること、音声で出力させること等によって行うことができる。
【０１５４】
図１２は、エージェントAやBに対する報酬の報酬グラフの例を示している。
【０１５５】
図１２の報酬グラフは、エージェントAやBに対する報酬の移動平均値の時系列になっている。
【０１５６】
エージェントAやBの学習が適切に進行している場合には、図１２のＡに示すように、報酬グラフの変化パターンは、上昇を続けるパターンp1となる。したがって、報酬グラフの変化パターンがパターンp1である場合には、学習状況は、エージェントAやBの行動を適切に改善するように、学習が順調に進行している状況であると判定することができる。
【０１５７】
エージェントAやBの学習が収束した場合には、図１２のＢに示すように、報酬グラフの変化パターンは、上昇後に、一定期間以上収束する（変化幅が所定の閾値以内に収まる）パターンp2となる。したがって、報酬グラフの変化パターンがパターンp2である場合には、学習状況は、現在の学習条件（タスク難易度）での学習が成功している状況であると判定することができる。
【０１５８】
エージェントAやBの学習が適切に進行していない場合（学習に失敗している場合）には、図１２のＣに示すように、報酬グラフの変化パターンは、学習の開始時（又は報酬のパラメータの調整後）の報酬から、一定期間以上、ほとんど変化しないパターンp3となる。したがって、報酬グラフの変化パターンがパターンp3である場合には、学習状況は、学習に失敗している状況であると判定することができる。
【０１５９】
なお、エージェントAやBの学習が適切に進行している場合には、報酬グラフが、図１２のＡに示したように、上昇を続けるケースの他、例えば、図１２のＤに示すように、上昇後、一時、下降し、又は、ほとんど変化しなくなり、その後、再び、上昇を開始するケースがある。
【０１６０】
上昇後、一時、下降し、又は、ほとんど変化しなくなり、その後、再び、上昇する図１２のＤの報酬グラフの変化パターンは、図１２のＡの上昇を続けるパターンp1に一致しないが、学習が適切に進行している場合に現れるパターンである点、及び、最終的に上昇している点で、パターンp1と一致するので、図１２のＤの報酬グラフの変化パターンは、パターンp1に分類することとする。
【０１６１】
学習状況判定部３４は、報酬グラフの変化パターンを判定することにより、学習状況を判定し、報酬グラフの変化パターンの判定結果を、学習状況の判定結果として出力する。
【０１６２】
入出力制御部３６は、学習状況判定部３４による学習状況の判定結果としての報酬グラフの変化パターン（の判定結果）に応じて、ユーザI/F４０に、報酬のパラメータの調整を促すアラートを発行させる。
【０１６３】
例えば、学習状況判定部３４において、報酬グラフの変化パターンが、図１２のＡやＤのパターンp1であると判定された場合、学習が順調に進行しているので、入出力制御部３６は、特にアラートを発行させない。さらに、シミュレータ環境提供部３１は、エージェントA及びBに、学習をそのまま続行させる。
【０１６４】
また、例えば、学習状況判定部３４において、報酬グラフの変化パターンが、図１２のＢのパターンp2であると判定された場合、現在の学習条件での学習が成功し、収束しているので、入出力制御部３６は、その旨を表すメッセージ「学習は収束。重みパラメータ再設定要求」をユーザI/F４０に表示させることにより、アラートを発行する。さらに、シミュレータ環境提供部３１は、エージェントA及びBに、学習をサスペンドさせる。
【０１６５】
アラートとしてのメッセージ「学習は収束。重みパラメータ再設定要求」を受けたオペレータは、GUIを操作することにより、報酬のパラメータの調整や、その他の学習条件の再設定を行い、さらに、GUIを操作することにより、学習の再開を指示し、エージェントA及びBに、学習を再開させることができる。
【０１６６】
又は、アラートとしてのメッセージ「学習は収束。重みパラメータ再設定要求」を受けたオペレータは、エージェントA及びBの学習が十分に行われたと判断して、GUIを操作することにより、エージェントA及びBの学習を終了させることができる。
【０１６７】
また、例えば、学習状況判定部３４において、報酬グラフの変化パターンが、図１２のＣのパターンp3であると判定された場合、現在の学習条件での学習が失敗しているので、入出力制御部３６は、その旨を表すメッセージ「学習は失敗。重みパラメータ再設定要求」をユーザI/F４０に表示させることにより、アラートを発行する。さらに、シミュレータ環境提供部３１は、エージェントA及びBに、学習をサスペンドさせる。
【０１６８】
アラートとしてのメッセージ「学習は失敗。重みパラメータ再設定要求」を受けたオペレータは、GUIを操作することにより、報酬のパラメータの調整や、その他の学習条件の再設定を行い、さらに、GUIを操作することにより、学習の再開を指示し、エージェントA及びBに、学習を再開させることができる。
【０１６９】
学習が失敗した場合に、その学習に失敗した期間の学習結果（以下、失敗結果ともいう）を引き継いで、学習が再開されると、失敗結果が、再開後の学習に悪影響を与えることがあり得る。そこで、学習が失敗した場合には、エージェントA及びBは、学習が収束したときの最新の学習結果（学習が収束したことがない場合には、あらかじめ決められた初期値等）を引き継ぎ、学習を再開することができる。エージェントA及びBの過去の学習結果は、エージェントA及びBで、それぞれ管理、記憶すること、又は、シミュレータ環境提供部３１で、管理、記憶することができる。
【０１７０】
＜GUIの表示例＞
【０１７１】
図１３は、ユーザI/F４０に表示されるGUIの表示例を示す図である。
【０１７２】
図１３では、GUIとして、シミュレータ環境、スライダ８１及び８２、並びに、アラートとしてのメッセージ（以下、アラートメッセージともいう）が表示されている。
【０１７３】
スライダ８１は、エージェントAの報酬のパラメータとしての重みωｉを調整するときに操作される。スライダ８２は、エージェントBの報酬のパラメータとしての重みViを調整するときに操作される。
【０１７４】
図１３のＡは、エージェントAの報酬グラフの変化パターンが、図１２のＣのパターンp3になっている場合のGUIの表示例を示している。
【０１７５】
エージェントAの報酬グラフの変化パターンがパターンp3になっている場合、現在の学習条件でのエージェントAの学習が失敗しているので、図１３のＡのアラートメッセージは、エージェントAの学習が失敗していることを報知し、エージェントAの報酬のパラメータ（重みωｉ）の調整を促すメッセージ「エージェントＡの学習失敗。重みパラメータ再設定してください」になっている。
【０１７６】
なお、図１３のＡでは、エージェントAの報酬のパラメータのみの調整を促すために、スライダ８１及び８２のうちの、エージェントA用のスライダ（エージェントAの報酬のパラメータを調整するためのスライダ）８１が、操作可能なイネーブル状態になっており、エージェントB用のスライダ８２は、操作できないディセーブル状態になっている。
【０１７７】
この場合、エージェントBの学習が失敗しておらず、適切に進行しているときに、オペレータが、誤って、エージェントB用のスライダ８２を操作することを防止することができる。さらに、オペレータは、エージェントA用のスライダ８１を操作すべきことを容易に認識することができる。
【０１７８】
図１３のＢは、エージェントA及びBの両方の報酬グラフの変化パターンが、図１２のＢのパターンp2になっている場合のGUIの表示例を示している。
【０１７９】
エージェントA及びBの両方の報酬グラフの変化パターンが、いずれもパターンp2になっている場合、エージェントA及びBの両方の学習が成功しているので、図１３のＢのアラートメッセージは、エージェントA及びBの学習が成功していることを報知し、エージェントA及びBの報酬のパラメータ（重みωｉ及びVi）の調整を促すメッセージ「学習収束。重みパラメータ再設定してください」になっている。
【０１８０】
また、図１３のＢでは、エージェントA用のスライダ８１、及び、エージェントB用のスライダ８２のいずれも、操作可能なイネーブル状態になっている。
【０１８１】
したがって、オペレータは、エージェントA用のスライダ８１、及び、エージェントB用のスライダ８２を操作すべきことを容易に認識することができる。
【０１８２】
図１３のＣは、エージェントBの報酬グラフの変化パターンが、図１２のＣのパターンp3になっている場合のGUIの表示例を示している。
【０１８３】
エージェントBの報酬グラフの変化パターンがパターンp3になっている場合、現在の学習条件でのエージェントBの学習が失敗しているので、図１３のＣのアラートメッセージは、エージェントBの学習が失敗していることを報知し、エージェントBの報酬のパラメータ（重みVi）の調整を促すメッセージ「エージェントＢの学習失敗。重みパラメータ再設定してください」になっている。
【０１８４】
なお、図１３のＣでは、エージェントBの報酬のパラメータのみの調整を促すために、スライダ８１及び８２のうちの、エージェントB用のスライダ８２が、操作可能なイネーブル状態になっており、エージェントA用のスライダ８１は、操作できないディセーブル状態になっている。
【０１８５】
この場合、エージェントAの学習が失敗しておらず、適切に進行しているときに、オペレータが、誤って、エージェントA用のスライダ８１を操作することを防止することができる。さらに、オペレータは、エージェントB用のスライダ８２を操作すべきことを容易に認識することができる。
【０１８６】
なお、図１３では、エージェントA及びBの両方の報酬グラフの変化パターンが、いずれもパターンp2になっており、エージェントA及びBの両方の学習が成功している場合に、図１３のＢに示したように、「学習収束。重みパラメータ再設定してください」等の、学習が成功していること等を表すアラートメッセージ（以下、成功メッセージともいう）を表示するアラートの発行を行うこととしたが、成功メッセージを表示するアラートの発行は、エージェントA及びBのそれぞれについて、個別に行うことができる。
【０１８７】
すなわち、例えば、エージェントAの報酬グラフの変化パターンが、パターンp2になっており、エージェントAの学習が成功している場合には、エージェントBの学習状況にかかわらず、エージェントAの学習が成功していること等を表す成功メッセージを表示するアラートの発行を行うことができる。
【０１８８】
この場合、スライダ８１及び８２については、図１３のＡと同様に、エージェントA用のスライダ８１はイネーブル状態にし、エージェントB用のスライダ８２はディセーブル状態にすることができる。
【０１８９】
また、例えば、エージェントBの報酬グラフの変化パターンが、パターンp2になっており、エージェントBの学習が成功している場合には、エージェントAの学習状況にかかわらず、エージェントBの学習が成功していること等を表す成功メッセージを表示するアラートの発行を行うことができる。
【０１９０】
この場合、スライダ８１及び８２については、図１３のＣと同様に、エージェントB用のスライダ８２はイネーブル状態にし、エージェントA用のスライダ８１はディセーブル状態にすることができる。
【０１９１】
＜アラート発行処理＞
【０１９２】
図１４は、図１２及び図１３で説明したようなアラートの発行を行うアラート発行処理の例を説明するフローチャートである。
【０１９３】
図１５は、図１４に続くフローチャートである。
【０１９４】
アラート発行処理では、ステップＳ４１において、学習状況判定部３４が、最新の所定期間のエージェントA及びBそれぞれの報酬グラフを取得し、処理は、ステップＳ４２に進む。
【０１９５】
ステップＳ４２では、学習状況判定部３４は、エージェントAの報酬グラフの変化パターンに基づき、エージェントAの学習状況を判定する。すなわち、ステップＳ４２では、学習状況判定部３４は、エージェントAの報酬グラフの変化パターンが、図１２のＣのパターンp3であるかどうかを判定する。
【０１９６】
ステップＳ４２において、エージェントAの報酬グラフの変化パターンがパターンp3でないと判定された場合、処理は、ステップＳ４３ないしＳ４６をスキップして、ステップＳ４７に進む。
【０１９７】
また、ステップＳ４２において、エージェントAの報酬グラフの変化パターンがパターンp3であると判定された場合、エージェントAは学習を中断して、処理は、ステップＳ４３に進む。
【０１９８】
ステップＳ４３では、入出力制御部３６は、アラートメッセージとしての変数textに、エージェントAの学習が失敗していることを報知し、エージェントAの報酬のパラメータ（重みωｉ）の調整を促すメッセージ「エージェントＡの学習失敗。重みパラメータ再設定してください」をセットする。
【０１９９】
さらに、ステップＳ４３では、入出力制御部３６は、アラートメッセージとしての変数textにセットされたメッセージをユーザI/F４０に表示させることによるアラートの発行を行い、処理は、ステップＳ４４に進む。
【０２００】
ステップＳ４４では、入出力制御部３６は、すべてのスライダ８１及び８２のアクティベーションをディセーブル状態に初期化し、スライダ８１及び８２を操作不能状態にして、処理は、ステップＳ４５に進む。
【０２０１】
ステップＳ４５では、入出力制御部３６は、エージェントA用のスライダ８１のアクティベーションをイネーブル状態に設定し、操作可能状態にして、処理は、ステップＳ４５に進む。
【０２０２】
以上により、図１３のＡの表示が行われ、その結果、ユーザは、エージェントAの学習に失敗し、エージェントAの報酬のパラメータの調整が必要であることを認識することができる。さらに、ユーザは、エージェントA用のスライダ８１を操作することにより、エージェントAの報酬のパラメータの調整を行うことができる。
【０２０３】
ステップＳ４６では、入出力制御部３６は、ユーザI/F４０が学習を再開するように操作されたかどうかを判定し、操作されていないと判定した場合、処理は、ステップＳ４６に戻る。
【０２０４】
また、ステップＳ４６において、ユーザI/F４０が学習を再開するように操作されたと判定された場合、エージェントAは、学習を再開し、処理は、ステップＳ４７に進む。
【０２０５】
ステップＳ４７では、学習状況判定部３４は、エージェントBの報酬グラフの変化パターンに基づき、エージェントBの学習状況を判定する。すなわち、ステップＳ４７では、学習状況判定部３４は、エージェントBの報酬グラフの変化パターンが、図１２のＣのパターンp3であるかどうかを判定する。
【０２０６】
ステップＳ４７において、エージェントBの報酬グラフの変化パターンがパターンp3でないと判定された場合、処理は、ステップＳ４８ないしＳ５１をスキップして、図１５のステップＳ６１に進む。
【０２０７】
また、ステップＳ４７において、エージェントBの報酬グラフの変化パターンがパターンp3であると判定された場合、エージェントBは学習を中断して、処理は、ステップＳ４８に進む。
【０２０８】
ステップＳ４８では、入出力制御部３６は、アラートメッセージとしての変数textに、エージェントBの学習が失敗していることを報知し、エージェントBの報酬のパラメータ（重みωｉ）の調整を促すメッセージ「エージェントＢの学習失敗。重みパラメータ再設定してください」をセットする。
【０２０９】
さらに、ステップＳ４８では、入出力制御部３６は、アラートメッセージとしての変数textにセットされたメッセージをユーザI/F４０に表示させることによるアラートの発行を行い、処理は、ステップＳ４９に進む。
【０２１０】
ステップＳ４９では、入出力制御部３６は、すべてのスライダ８１及び８２のアクティベーションをディセーブル状態に初期化し、スライダ８１及び８２を操作不能状態にして、処理は、ステップＳ５０に進む。
【０２１１】
ステップＳ５０では、入出力制御部３６は、エージェントB用のスライダ８１のアクティベーションをイネーブル状態に設定し、操作可能状態にして、処理は、ステップＳ５０に進む。
【０２１２】
以上により、図１３のＣの表示が行われ、その結果、ユーザは、エージェントBの学習に失敗し、エージェントBの報酬のパラメータの調整が必要であることを認識することができる。さらに、ユーザは、エージェントB用のスライダ８２を操作することにより、エージェントBの報酬のパラメータの調整を行うことができる。
【０２１３】
ステップＳ５１では、入出力制御部３６は、ユーザI/F４０が学習を再開するように操作されたかどうかを判定し、操作されていないと判定した場合、処理は、ステップＳ５１に戻る。
【０２１４】
また、ステップＳ５１において、ユーザI/F４０が学習を再開するように操作されたと判定された場合、エージェントBは、学習を再開し、処理は、図１５のステップＳ６１に進む。
【０２１５】
図１５のステップＳ６１では、学習状況判定部３４は、エージェントA及びBの報酬グラフの変化パターンに基づき、エージェントA及びBの学習状況を判定する。すなわち、ステップＳ４２では、学習状況判定部３４は、エージェントA及びBの報酬グラフの変化パターンが、いずれも、図１２のＢのパターンp2であるかどうかを判定する。
【０２１６】
ステップＳ６１において、エージェントA及びBの報酬グラフの変化パターンの一方、又は、両方が、パターンp2でないと判定された場合、処理は、図１４のステップＳ４１に戻る。
【０２１７】
また、ステップＳ６１において、エージェントA及びBの報酬グラフの変化パターンが、いずれもパターンp2であると判定された場合、エージェントA及びBは学習を中断して、処理は、ステップＳ６２に進む。
【０２１８】
ステップＳ６２では、入出力制御部３６は、アラートメッセージとしての変数textに、エージェントA及びBの両方の学習が成功していることを報知し、エージェントA及びBの報酬のパラメータ（重みωｉ及びVi）の調整を促すメッセージ「学習収束。重みパラメータ再設定してください」をセットする。
【０２１９】
さらに、ステップＳ６２では、入出力制御部３６は、アラートメッセージとしての変数textにセットされたメッセージをユーザI/F４０に表示させることによるアラートの発行を行い、処理は、ステップＳ６３に進む。
【０２２０】
ステップＳ６３では、入出力制御部３６は、すべてのスライダ８１及び８２のアクティベーションをイネーブル状態に初期化し、スライダ８１及び８２を操作可能状態にして、処理は、ステップＳ６４に進む。
【０２２１】
以上により、図１３のＢの表示が行われ、その結果、ユーザは、エージェントA及びBの学習が収束したこと、及び、必要に応じて、エージェントA及びBの報酬のパラメータを調整することができることを認識することができる。さらに、ユーザは、エージェントA用のスライダ８１を操作することにより、エージェントAの報酬のパラメータの調整を行うとともに、エージェントB用のスライダ８２を操作することにより、エージェントBの報酬のパラメータの調整を行うことができる。
【０２２２】
ステップＳ６４では、入出力制御部３６は、ユーザI/F４０が学習を再開するように操作されたかどうかを判定し、操作されていないと判定した場合、処理は、ステップＳ６４に戻る。
【０２２３】
また、ステップＳ６４において、ユーザI/F４０が学習を再開するように操作されたと判定された場合、エージェントA及びBは、学習を再開する。そして、処理は、ステップＳ６４から図１４のステップＳ４１に戻り、以下、同様の処理が繰り返される。
【０２２４】
なお、本実施の形態では、エージェントAとして、自動運転を行う車両のエージェントを採用するとともに、エージェントBとして、自転車等の他の車両や人等のエージェントを採用し、自動運転の行動決定則を学習する自動運転の分野に、本技術を適用した場合について説明したが、本技術は、その他、自動運転の分野以外の様々な分野の行動決定則の学習に適用することができる。
【０２２５】
すなわち、本技術は、例えば、ワクチン開発の分野や、農作物品種改良の分野等に適用することができる。
【０２２６】
例えば、ワクチン開発の分野については、エージェントAとして、ワクチンのエージェントを採用するとともに、エージェントBとして、ウイルスのエージェントを採用することで、ウイルスに有効なワクチンの行動決定則を学習することができる。
【０２２７】
また、例えば、農作物品種改良の分野については、エージェントAとして、ある品種（新種）の農作物のエージェントを採用するとともに、エージェントBとして、害虫のエージェントを採用することで、害虫に強い品種の行動決定則を学習することができる。
【０２２８】
＜本技術を適用したコンピュータの説明＞
【０２２９】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０２３０】
図１６は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
【０２３１】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やROM１０３に予め記録しておくことができる。
【０２３２】
あるいはまた、プログラムは、リムーバブル記録媒体１１１に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体１１１としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【０２３３】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク１０５にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【０２３４】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵しており、CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されている。
【０２３５】
CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、入力部１０７が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、CPU１０２は、ハードディスク１０５に格納されたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。
【０２３６】
これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０２３７】
なお、入力部１０７は、キーボードや、マウス、マイク等で構成される。また、出力部１０６は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【０２３８】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含む。
【０２３９】
また、プログラムは、１のコンピュータ（プロセッサ）により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０２４０】
さらに、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０２４１】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２４２】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２４３】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２４４】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２４５】
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【０２４６】
なお、本技術は、以下の構成をとることができる。
【０２４７】
＜１＞
現実世界を模したシミュレータ環境を生成するシミュレータ環境生成部と、
前記シミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントのうちの
前記第１のエージェントに対して、所定の報酬定義に従った報酬を提供するとともに、
前記第２のエージェントが前記第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、前記第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、前記所定の報酬定義に敵対する敵対報酬定義として、前記第２のエージェントに対して、前記敵対報酬定義に従った報酬を提供する
報酬提供部と
を備える情報処理装置。
＜２＞
前記報酬提供部は、ユーザの操作に応じて、前記報酬のパラメータを調整する
＜１＞に記載の情報処理装置。
＜３＞
前記報酬のパラメータを調整するGUI(Graphical User Interface)を表示させる表示制御を行う表示制御部をさらに備える
＜２＞に記載の情報処理装置。
＜４＞
前記第１のエージェント及び前記第２のエージェントの学習状況に応じて、前記報酬のパラメータの調整を促すアラートの発行を制御する発行制御部をさらに備える
＜２＞又は＜３＞に記載の情報処理装置。
＜５＞
前記報酬の変化パターンに応じて、前記学習状況を判定する判定部をさらに備える
＜４＞に記載の情報処理装置。
＜６＞
前記第１のエージェント又は前記第２のエージェントが、学習に失敗した場合と、前記第１のエージェント及び前記第２のエージェントが、学習に成功した場合とに、前記アラートを発行する
＜４＞又は＜５＞に記載の情報処理装置。
＜７＞
現実世界を模したシミュレータ環境を生成することと、
前記シミュレータ環境の中を行動し、その行動に対する報酬に応じて、行動決定則を学習する第１のエージェント及び第２のエージェントのうちの
前記第１のエージェントに対して、所定の報酬定義に従った報酬を提供するとともに、
前記第２のエージェントが前記第１のエージェントの報酬を小にする状況になるように行動した場合に得られる報酬が大になり、前記第１のエージェントの報酬を大にするように行動した場合に得られる報酬が小になる報酬定義を、前記所定の報酬定義に敵対する敵対報酬定義として、前記第２のエージェントに対して、前記敵対報酬定義に従った報酬を提供することと
を含む情報処理方法。
【符号の説明】
【０２４８】
１０  エージェント，  １１  経験DB，  １２  学習部，  １３  行動決定部，  ３０  シミュレータ，  ３１  シミュレータ環境提供部，  ３２  シミュレータ環境生成部，  ３３  報酬提供部，  ３４  学習状況判定部，  ３６  入出力制御部，  ４０  ユーザI/F，  ６１  行動計画部，  ６２  周囲環境情報取得部，  ６３  データ取得部，  ６４  データベース，  ６５  学習部，  ６６  行動決定部，  ６７  行動制御部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
2018110305.tif 000003
【図２】
2018110305.tif 000004
【図３】
2018110305.tif 000005
【図４】
2018110305.tif 000006
【図５】
2018110305.tif 000007
【図６】
2018110305.tif 000008
【図７】
2018110305.tif 000009
【図８】
2018110305.tif 000010
【図９】
2018110305.tif 000011
【図１０】
2018110305.tif 000012
【図１１】
2018110305.tif 000013
【図１２】
2018110305.tif 000014
【図１３】
2018110305.tif 000015
【図１４】
2018110305.tif 000016
【図１５】
2018110305.tif 000017
【図１６】
2018110305.tif 000018
【国際調査報告】
2018110305.tif 000019
2018110305.tif 000020
2018110305.tif 000021
2018110305.tif 000022