(57)【要約】【課題】より実空間に近いシミュレーション環境で学習を行うこと。【解決手段】複数の個別学習部（３００（ｋ））を備える学習装置（３００）であって、それぞれの個別学習部は、自身に対応する動作主体の動作を規定する情報を生成するプランナ（３１０（ｋ））と、前記動作主体の動作を規定する情報に基づく情報をシミュレータ（４００）に入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出する報酬導出部（３６０（ｋ））と、を備え、前記プランナは、前記報酬導出部により導出された報酬に基づく強化学習を行い、前記複数の個別学習部のうち少なくとも二つは、前記報酬導出部が導出する報酬が最大化される動作が異なる、学習装置。【選択図】図４
2020035221.tif 000002
【特許請求の範囲】
【請求項１】
複数の個別学習部を備える学習装置であって、
それぞれの個別学習部は、
自身に対応する動作主体の動作を規定する情報を生成するプランナと、
前記動作主体の動作を規定する情報に基づく情報をシミュレータに入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出する報酬導出部と、を備え、
前記プランナは、前記報酬導出部により導出された報酬に基づく強化学習を行い、
前記複数の個別学習部のうち少なくとも二つは、前記報酬導出部が導出する報酬が最大化される動作が異なる、
学習装置。
【請求項２】
前記複数の個別学習部のうち少なくとも二つは、前記プランナが情報を生成する前提となる動作主体の動作特性が異なる、
請求項１記載の学習装置。
【請求項３】
前記複数の個別学習部のうち少なくとも二つは、前記報酬導出部が前記被評価情報を評価する規則が異なる、
請求項１または２記載の学習装置。
【請求項４】
前記動作とは、移動である、
請求項１から３のうちいずれか１項記載の学習装置。
【請求項５】
請求項１から４のうちいずれか１項記載の学習装置と、
前記シミュレータと、
を備えるシミュレーションシステム。
【請求項６】
コンピュータが、
複数の個別学習部として機能し、
それぞれの個別学習部は、
自身に対応する動作主体の動作を規定する情報を生成し、
前記動作主体の動作を規定する情報に基づく情報をシミュレータに入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出し、
前記導出された報酬に基づく強化学習を行い、
前記複数の個別学習部のうち少なくとも二つは、前記報酬が最大化される動作が異なる、
学習方法。
【請求項７】
コンピュータを、
複数の個別学習部として機能させ、
それぞれの個別学習部は、
自身に対応する動作主体の動作を規定する情報を生成し、
前記動作主体の動作を規定する情報に基づく情報をシミュレータに入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出し、
前記導出された報酬に基づく強化学習を行い、
前記複数の個別学習部のうち少なくとも二つは、前記報酬が最大化される動作が異なる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、シミュレーションシステム、学習方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、車両が自律的に走行する自動運転の分野において、ＡＩ（人工知能）・機械学習によって走行プランを決定しようとする試みがなされている。また、観測値に基づいて行動を決定し、実環境やシミュレータからのフィードバックに基づく報酬を計算してモデルパラメータを最適化する強化学習についても研究および実用化が進められている。これに関連し、車両の状態を変更させるための操作量を、強化学習によって生成する方法が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−６５９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
強化学習において、シミュレータ上では、複数の動作主体が動作する環境が想定される場合がある。従来の技術では、複数の動作主体の動作をそれぞれ規定するための仕組みが十分に検討されておらず、実空間に近いシミュレーション環境で学習を行うことができない場合があった。
【０００５】
本発明は、このような事情を考慮してなされたものであり、より実空間に近いシミュレーション環境で学習を行うことができる学習装置、シミュレーションシステム、学習方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
この発明に係る学習装置、学習方法、またはプログラムは、以下の構成を採用した。
【０００７】
（１）：本発明の一態様に係る学習装置は、複数の個別学習部を備える学習装置であって、それぞれの個別学習部は、自身に対応する動作主体の動作を規定する情報を生成するプランナと、前記動作主体の動作を規定する情報に基づく情報をシミュレータに入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出する報酬導出部と、を備え、前記プランナは、前記報酬導出部により導出された報酬に基づく強化学習を行い、前記複数の個別学習部のうち少なくとも二つは、前記報酬導出部が導出する報酬が最大化される動作が異なる学習装置である。
【０００８】
（２）：上記（１）の態様において、前記複数の個別学習部のうち少なくとも二つは、前記プランナが情報を生成する前提となる動作主体の動作特性が異なるもの。
【０００９】
（３）：上記（１）または（２）の態様において、前記複数の個別学習部のうち少なくとも二つは、前記報酬導出部が前記被評価情報を評価する規則が異なるもの。
【００１０】
（４）：上記（１）から（３）のうちいずれかの態様において、前記動作とは、移動であるもの。
【００１１】
（５）：本発明の他の態様に係るシミュレーションシステムは、上記（１）から（４）のいずれかの態様の学習装置と、前記シミュレータと、を備えるシミュレーションシステムである。
【００１２】
（６）：本発明の他の態様に係る学習方法は、コンピュータが、複数の個別学習部として機能し、それぞれの個別学習部は、自身に対応する動作主体の動作を規定する情報を生成し、前記動作主体の動作を規定する情報に基づく情報をシミュレータに入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出し、前記導出された報酬に基づく強化学習を行い、前記複数の個別学習部のうち少なくとも二つは、前記報酬が最大化される動作が異なる学習方法である。
【００１３】
（７）：本発明の他の態様に係るプログラムは、コンピュータを、複数の個別学習部として機能させ、それぞれの個別学習部は、自身に対応する動作主体の動作を規定する情報を生成し、前記動作主体の動作を規定する情報に基づく情報をシミュレータに入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出し、前記導出された報酬に基づく強化学習を行い、前記複数の個別学習部のうち少なくとも二つは、前記報酬が最大化される動作が異なる、プログラムである。
【発明の効果】
【００１４】
（１）〜（７）の態様によれば、より実空間に近いシミュレーション環境で学習を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】学習装置３００の役割について説明するための図である。
【図２】車両１の構成図である。
【図３】第１制御部１２０および第２制御部１６０の機能構成図である。
【図４】学習装置３００の構成図である。
【図５】プランナ３１０による処理の内容を模式的に示す図である。
【図６】個別学習部３００（１）の構成図である。
【図７】用途毎報酬関数マップ３７０に含まれる報酬関数マップのそれぞれを例示した図である。
【図８】用途毎報酬関数マップ３７０に含まれる報酬関数マップのそれぞれを例示した図である。
【図９】用途毎報酬関数マップ３７０に含まれる報酬関数マップのそれぞれを例示した図である。
【図１０】用途毎報酬関数マップ３７０に含まれる報酬関数マップのそれぞれを例示した図である。
【図１１】用途毎報酬関数マップ３７０に含まれる報酬関数マップのそれぞれを例示した図である。
【図１２】用途毎報酬関数マップ３７０に含まれる報酬関数マップのそれぞれを例示した図である。
【図１３】学習装置３００により実行される処理の流れの一例を示すフローチャートである。
【図１４】学習装置３００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照し、本発明の学習装置、シミュレーションシステム、学習方法、およびプログラムの実施形態について説明する。
【００１７】
［概要］
図１は、学習装置３００の役割について説明するための図である。学習装置３００は、一以上のプロセッサにより実現される。学習装置３００は、内部演算によって導出した行動（アクション）をシミュレータ４００に入力し、それによって生じた環境の変化等に基づく報酬を導出または取得し、報酬を最大化する行動（動作）を学習する装置である。動作とは、例えば、シミュレーション空間上での移動である。移動以外の動作が学習対象とされてもよいが、以下の説明では動作とは移動を意味するものとする。シミュレータ４００は、学習装置３００との間で、地図情報などの、シミュレーションの前提となる環境情報を共有する。学習装置３００の学習結果は、行動決定モデルとして車両１に搭載される。学習装置３００とシミュレータ４００を合わせたものが、シミュレーションシステムＳである。
【００１８】
行動決定モデルは、車両１に搭載されたＡＩ（Artificial Intelligence；人工知能）を動作させるためのパラメータであってもよいし、ルールベースで行動を決定する際のパラメータであってもよいし、それらの両者を含んでもよい。行動決定モデルは、複数の性格を有する行動決定モデル群であってもよいし、車両１の利用者が選択した性格を有する行動決定モデルであってもよい。
【００１９】
シミュレータ４００は、車両１と同等の性能を有する仮想車両、その他の交通参加者（動作者の一例）を、学習装置３００から指示された動作情報に基づいてシミュレーション環境上で同時に動作させ、各交通参加者の位置変化などを反映させた帰還情報を学習装置３００に返す。
【００２０】
［車両］
まず、行動決定モデルを搭載する対象の車両１の一例について説明する。車両１は、少なくとも部分的に、自動的に（運転者の操作に依らずに）走行（走る、曲がる、止まる）を制御する自動運転車両（或いは運転支援機能付き車両）である。
【００２１】
図２は、車両１の構成図である。車両１は、例えば、二輪や三輪、四輪等の車両であり、その駆動源は、ディーゼルエンジンやガソリンエンジンなどの内燃機関、電動機、或いはこれらの組み合わせである。電動機は、内燃機関に連結された発電機による発電電力、或いは二次電池や燃料電池の放電電力を使用して動作する。
【００２２】
車両１は、例えば、カメラ１０と、レーダ装置１２と、ファインダ１４と、物体認識装置１６と、通信装置２０と、ＨＭＩ（Human Machine Interface）３０と、車両センサ４０と、ナビゲーション装置５０と、ＭＰＵ（Map Positioning Unit）６０と、運転操作子８０と、自動運転制御装置１００と、走行駆動力出力装置２００と、ブレーキ装置２１０と、ステアリング装置２２０とを備える。これらの装置や機器は、ＣＡＮ（Controller Area Network）通信線等の多重通信線やシリアル通信線、無線通信網等によって互いに接続される。
【００２３】
カメラ１０は、例えば、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の固体撮像素子を利用したデジタルカメラである。カメラ１０は、車両１の任意の箇所に取り付けられる。レーダ装置１２は、車両１の周辺にミリ波などの電波を放射すると共に、物体によって反射された電波（反射波）を検出して少なくとも物体の位置（距離および方位）を検出する。ファインダ１４は、ＬＩＤＡＲ（Light Detection and Ranging）である。ファインダ１４は、車両１の周辺に光を照射し、散乱光を測定する。ファインダ１４は、発光から受光までの時間に基づいて、対象までの距離を検出する。照射される光は、例えば、パルス状のレーザー光である。物体認識装置１６は、カメラ１０、レーダ装置１２、およびファインダ１４のうち一部または全部による検出結果に対してセンサフュージョン処理を行って、物体の位置、種類、速度などを認識する。物体認識装置１６は、認識結果を自動運転制御装置１００に出力する。物体認識装置１６は、カメラ１０、レーダ装置１２、およびファインダ１４の検出結果をそのまま自動運転制御装置１００に出力してよい。
【００２４】
通信装置２０は、例えば、セルラー網やＷｉ−Ｆｉ網、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＤＳＲＣ（Dedicated Short Range Communication）などを利用して、車両１の周辺に存在する他車両と通信し、或いは無線基地局を介して各種サーバ装置と通信する。ＨＭＩ３０は、車両１の乗員に対して各種情報を提示すると共に、乗員による入力操作を受け付ける。ＨＭＩ３０は、各種表示装置、スピーカ、ブザー、タッチパネル、スイッチ、キーなどを含む。車両センサ４０は、車両１の速度を検出する車速センサ、加速度を検出する加速度センサ、鉛直軸回りの角速度を検出するヨーレートセンサ、車両１の向きを検出する方位センサ等を含む。
【００２５】
ナビゲーション装置５０は、例えば、ＧＮＳＳ（Global Navigation Satellite System）受信機５１と、ナビＨＭＩ５２と、経路決定部５３とを備える。ナビゲーション装置５０は、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの記憶装置に第１地図情報５４を保持している。ＧＮＳＳ受信機５１は、ＧＮＳＳ衛星から受信した信号に基づいて、車両１の位置を特定する。車両１の位置は、車両センサ４０の出力を利用したＩＮＳ（Inertial Navigation System）によって特定または補完されてもよい。ナビＨＭＩ５２は、表示装置、スピーカ、タッチパネル、キーなどを含む。経路決定部５３は、例えば、ＧＮＳＳ受信機５１により特定された車両１の位置（或いは入力された任意の位置）から、ナビＨＭＩ５２を用いて乗員により入力された目的地までの経路（以下、地図上経路）を、第１地図情報５４を参照して決定する。第１地図情報５４は、例えば、道路を示すリンクと、リンクによって接続されたノードとによって道路形状が表現された情報である。地図上経路は、ＭＰＵ６０に出力される。ナビゲーション装置５０は、例えば、乗員の保有するスマートフォンやタブレット端末等の端末装置の機能によって実現されてもよい。ナビゲーション装置５０は、通信装置２０を介してナビゲーションサーバに現在位置と目的地を送信し、ナビゲーションサーバから地図上経路と同等の経路を取得してもよい。
【００２６】
ＭＰＵ６０は、例えば、推奨車線決定部６１を含み、ＨＤＤやフラッシュメモリなどの記憶装置に第２地図情報６２を保持している。第２地図情報６２は、第１地図情報５４よりも高精度な地図情報である。推奨車線決定部６１は、ナビゲーション装置５０から提供された地図上経路を複数のブロックに分割し（例えば、車両進行方向に関して１００［ｍ］毎に分割し）、第２地図情報６２を参照してブロックごとに推奨車線を決定する。推奨車線決定部６１は、左から何番目の車線を走行するといった決定を行う。推奨車線決定部６１は、地図上経路に分岐箇所が存在する場合、車両１が、分岐先に進行するための合理的な経路を走行できるように、推奨車線を決定する。
【００２７】
運転操作子８０は、例えば、アクセルペダル、ブレーキペダル、シフトレバー、ステアリングホイール、異形ステア、ジョイスティックその他の操作子を含む。運転操作子８０には、操作量あるいは操作の有無を検出するセンサが取り付けられており、その検出結果は、自動運転制御装置１００、もしくは、走行駆動力出力装置２００、ブレーキ装置２１０、およびステアリング装置２２０のうち一部または全部に出力される。
【００２８】
自動運転制御装置１００は、例えば、第１制御部１２０と、第２制御部１６０とを備える。図３は、第１制御部１２０および第２制御部１６０の機能構成図である。第１制御部１２０は、例えば、認識部１３０と、行動計画生成部１４０とを備える。第１制御部１２０は、例えば、ＡＩによる機能と、予め与えられたルールベースのモデルによる機能とを並行して実現する。例えば、「交差点を認識する」機能は、ディープラーニング等による交差点の認識と、予め与えられた条件（パターンマッチング可能な信号、道路標示などがある）に基づく認識とが並行して実行され、双方に対してスコア付けして総合的に評価することで実現されてよい。これによって、自動運転の信頼性が担保される。
【００２９】
認識部１３０は、カメラ１０、レーダ装置１２、およびファインダ１４から物体認識装置１６を介して入力された情報に基づいて、車両１の周辺にある物体の位置、および速度、加速度等の状態を認識する。
【００３０】
また、認識部１３０は、例えば、車両１が走行している車線（走行車線）を認識する。例えば、認識部１３０は、第２地図情報６２から得られる道路区画線のパターン（例えば実線と破線の配列）と、カメラ１０によって撮像された画像から認識される車両１の周辺の道路区画線のパターンとを比較することで、走行車線を認識する。認識部１３０は、走行車線を認識する際に、走行車線に対する車両１の位置や姿勢を認識する。認識部１３０は、例えば、車両１の基準点の車線中央からの乖離、および車両１の進行方向の車線中央を連ねた線に対してなす角度を、走行車線に対する車両１の相対位置および姿勢として認識する。
【００３１】
行動計画生成部１４０は、原則的には推奨車線決定部６１により決定された推奨車線を走行し、更に、車両１の周辺状況に対応できるように、車両１が自動的に（運転者の操作に依らずに）将来走行する目標軌道を生成する。目標軌道は、例えば、速度要素を含んでいる。例えば、目標軌道は、車両１の到達すべき地点（軌道点）を順に並べたものとして表現される。軌道点は、道なり距離で所定の走行距離（例えば数［ｍ］程度）ごとの車両１の到達すべき地点であり、それとは別に、所定のサンプリング時間（例えば０コンマ数［ｓｅｃ］程度）ごとの目標速度および目標加速度が、目標軌道の一部として生成される。また、軌道点は、所定のサンプリング時間ごとの、そのサンプリング時刻における車両１の到達すべき位置であってもよい。この場合、目標速度や目標加速度の情報は軌道点の間隔で表現される。
【００３２】
行動計画生成部１４０は、目標軌道を生成するにあたり、自動運転のイベントを設定してよい。自動運転のイベントには、定速走行イベント、低速追従走行イベント、車線変更イベント、交差点通過イベント、分岐イベント、合流イベント、テイクオーバーイベントなどがある。行動計画生成部１４０は、起動させたイベントに応じた目標軌道を生成する。
【００３３】
第２制御部１６０は、行動計画生成部１４０によって生成された目標軌道を、予定の時刻通りに車両１が通過するように、走行駆動力出力装置２００、ブレーキ装置２１０、およびステアリング装置２２０を制御する。
【００３４】
第２制御部１６０は、例えば、取得部１６２と、速度制御部１６４と、操舵制御部１６６とを備える。取得部１６２は、行動計画生成部１４０により生成された目標軌道（軌道点）の情報を取得し、メモリ（不図示）に記憶させる。速度制御部１６４は、メモリに記憶された目標軌道に付随する速度要素に基づいて、走行駆動力出力装置２００またはブレーキ装置２１０を制御する。操舵制御部１６６は、メモリに記憶された目標軌道の曲がり具合に応じて、ステアリング装置２２０を制御する。速度制御部１６４および操舵制御部１６６の処理は、例えば、フィードフォワード制御とフィードバック制御との組み合わせにより実現される。一例として、操舵制御部１６６は、車両１の前方の道路の曲率に応じたフィードフォワード制御と、目標軌道からの乖離に基づくフィードバック制御とを組み合わせて実行する。
【００３５】
走行駆動力出力装置２００は、車両が走行するための走行駆動力（トルク）を駆動輪に出力する。走行駆動力出力装置２００は、例えば、内燃機関、電動機、および変速機などの組み合わせと、これらを制御するＥＣＵとを備える。ＥＣＵは、第２制御部１６０から入力される情報、或いは運転操作子８０から入力される情報に従って、上記の構成を制御する。
【００３６】
ブレーキ装置２１０は、例えば、ブレーキキャリパーと、ブレーキキャリパーに油圧を伝達するシリンダと、シリンダに油圧を発生させる電動モータと、ブレーキＥＣＵとを備える。ブレーキＥＣＵは、第２制御部１６０から入力される情報、或いは運転操作子８０から入力される情報に従って電動モータを制御し、制動操作に応じたブレーキトルクが各車輪に出力されるようにする。
【００３７】
ステアリング装置２２０は、例えば、ステアリングＥＣＵと、電動モータとを備える。電動モータは、例えば、ラックアンドピニオン機構に力を作用させて転舵輪の向きを変更する。ステアリングＥＣＵは、第２制御部１６０から入力される情報、或いは運転操作子８０から入力される情報に従って、電動モータを駆動し、転舵輪の向きを変更させる。
【００３８】
［学習装置］
図４は、学習装置３００の構成図である。学習装置３００は、複数の個別学習部３００（ｋ）を備える（ｋ∈Ｒ；Ｒは交通参加者の集合）。個別学習部３００（ｋ）は、例えば、ＣＰＵ（Central Processing Unit）などのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。プログラムは、予めＨＤＤやフラッシュメモリなどの記憶装置（非一過性記憶媒体）に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体（非一過性記憶媒体）に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
【００３９】
個別学習部３００（ｋ）は、主要な構成要素として、プランナ３１０（ｋ）と、動作情報生成部３２０（ｋ）と、報酬導出部３６０（ｋ）とを備える。これらの構成要素は、、例えば、ＣＰＵなどのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。これらの構成要素のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）などのハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【００４０】
プランナ３１０（ｋ）には、動作目標と、動作特性情報とが与えられる。動作目標とは、強化学習を行う際の交通参加者の動作の指針であり、例えば、移動方向を大まかに指定する情報を含む。動作特性情報とは、個別学習部３００（ｋ）が学習対象とする動作主体の動作に関する性格を示す情報である。例えば、加速度や速度を比較的許容する性格、加速度や速度をなるべく抑制する性格、物体との距離が短くても許容する性格、物体との距離を長く維持したい性格、といったものが数値化あるいは符号化された情報が、動作特性情報として与えられる。プランナ３１０（ｋ）には、シミュレータ４００からの帰還情報などの経時変化する各種情報が入力される。プランナ３１０（ｋ）は、プランナ３１０（ｋ）が対象とする主体の動作を規定する情報を生成する。プランナ３１０（ｋ）は、例えば、所定時間後（例えば、０．１秒後）の移動目標点を決定し、動作情報生成部３２０（ｋ）に出力する。プランナ３１０（ｋ）は、例えば、ポリシー３１５と乱数に基づいて移動目標点を決定する。ポリシー３１５（ｋ）は、ニューラルネットワークなどを利用したモデルであってもよいし、ルールベースのモデルであってもよい。例えば、プランナ３１０（ｋ）は、入力された各種情報とポリシー３１５（ｋ）に基づいて決定した移動目標点を、乱数に応じた方向および移動量でオフセットさせた軌道点を動作情報生成部３２０に出力する。
【００４１】
図５は、プランナ３１０（ｋ）による処理の内容を模式的に示す図である。図示する例では、プランナ３１０（ｋ）はニューラルネットワークに各種情報を入力し、出力層に動作特性情報と乱数要素を加算することで移動目標点を導出する。この場合、ニューラルネットワークの係数などがポリシー３１５（ｋ）に相当する。プランナ３１０（ｋ）は、ニューラルネットワークの中間層でイベントを導出するようにしてもよい。また、プランナ３１０（ｋ）は、ニューラルネットワーク内にルールベースの処理を包含するようにしてもよいし、ニューラルネットワークの枠外でルールベースの処理を行い、ニューラルネットワークのいずれかの層と結合（コンカチネット）するようにしてもよい。
【００４２】
動作情報生成部３２０（ｋ）は、移動目標点に移動するための交通参加者の動作を表現した動作情報を生成し、シミュレータ４００に出力する。なお、交通参加者が歩行者である場合のように、移動目標点に移動するのに特段の制御が必要でない場合、動作情報生成部３２０は、移動目標点を動作情報としてシミュレータ４００に出力してもよい。
【００４３】
報酬導出部３６０（ｋ）には、シミュレータ４００からの帰還情報その他の情報が入力される。報酬導出部３６０（ｋ）は、入力された情報（入力値）に基づいて、当該個別学習部３００（ｋ）が学習対象とする交通参加者毎に異なる規則に基づいて、報酬を導出する。なお、すべての個別学習部３００（ｋ）が互いに異なる規則に基づいて報酬を導出する必要は無く、一部の個別学習部３００（ｋ）が同じ規則に基づいて報酬を導出してもよい。「交通参加者毎に異なる規則」とは、少なくとも「交通参加者の種別に応じて異なる規則」を意味し、更に、「同じ種別の交通参加者であっても報酬導出に関する規則が異なること」を意味してもよい。これについては後述する。報酬導出部３６０により導出された報酬は、プランナ３１０（ｋ）に出力される。プランナ３１０（ｋ）は、報酬をＡ３Ｃなどの強化学習アルゴリズムに適用し、ポリシー３１５（ｋ）を更新する。これによって、好適な移動目標点の生成規則が学習される。
【００４４】
［車両を対象とする学習］
以下、個別学習部３００（ｋ）の機能について、より詳細に説明する。図６は、車両１のような自動運転車両を想定した個別学習部３００（１）の構成図である。個別学習部３００（１）の記憶装置には、用途毎報酬関数マップ３７０（１）が格納されている。個別学習部３００（１）は、例えば、プランナ３１０（１）と、動作情報生成部３２０（１）と、認識部３３０（１）と、妥当性評価部３４０（１）と、リスク計算部３５０（１）と、報酬導出部３６０（１）とを備える。
【００４５】
個別学習部３００（１）が以下に説明する処理を行う上で、各部によって同じ地図情報が共有されているものとする。共有される地図情報は、例えば、第２地図情報６２と同等の地図情報である。また、報酬の計算は最後に一度行われるのではなく、車両が仮想的に或いは実際に走行する間、繰り返し報酬が計算されて、計算結果が合計される。また、学習装置３００は、例えば、自動運転のイベントごとに学習を行う。
【００４６】
プランナ３１０（１）には、走行目標（動作目標の一例）が与えられる。走行目標とは、強化学習を行う際の車両の走行の指針であり、例えば、速度目標値、少なくとも部分的な目的地までの経路などを含む。また、プランナ３１０（１）には、シミュレータ４００からのセンサ検出結果、認識部３３０による認識結果などが入力される。センサ検出結果は、少なくとも車両センサ４０の検出値を含み、カメラ１０、レーダ装置１２、ファインダ１４、または物体認識装置１６の検出結果を含んでもよい。認識部３３０（１）は、車両１における認識部１３０と同等の機能を有し、シミュレーション環境における周辺物体の情報をプランナ３１０に出力する。
【００４７】
プランナ３１０（１）は、複数の軌道点を含む目標軌道を生成する。動作情報生成部３２０（１）には、軌道点のうち所定時間後（例えば、０．１秒後）の軌道点（移動目標点の一例）が入力される。これに限らず、複数の軌道点が動作情報生成部３２０に入力されてもよい。
【００４８】
動作情報生成部３２０（１）は、車両１における第２制御部と同等の機能を有し、走行駆動力出力装置２００、ブレーキ装置２１０、またはステアリング装置２２０に対する操作量を、シミュレータ４００に出力する。
【００４９】
妥当性評価部３４０（１）は、車両が軌道点に移動すること（行動）の妥当性を評価し、評価結果を報酬導出部３６０（１）に出力する。妥当性評価部３４０（１）は、例えば、車両の乗員の乗り心地に関する基準、移動可能性に関する基準などに基づいて行動の妥当性を評価する。車両の乗員の乗り心地に関する基準とは、例えば、加速度やジャーク（躍度）の絶対値が小さいほど妥当性を高く評価するという基準である。移動可能性に関する基準とは、例えば、車両が軌道点に移動するために必要な速度や加速度等が規定範囲内であれば妥当性を高く評価し、規定範囲外であれば妥当性を低く評価するという基準である。妥当性評価部３４０（１）は、車両の状態や周囲環境に応じて妥当性の基準を変更してもよい。例えば、車両の付近に障害物が存在する場合に、この障害物から回避するための急加速を行ったとしても、妥当性に低い値を与えなくてもよい。
【００５０】
リスク計算部３５０（１）は、センサ検出結果に基づいて、行動によるリスクを計算し、計算したリスクを報酬導出部３６０（１）に出力する。リスク計算部３５０（１）は、例えば、車両と周囲物体との距離が近い場合にリスクを高く計算する。
【００５１】
報酬導出部３６０（１）には、例えば、シミュレータ４００或いは認識部３３０（１）から、車両の速度、加速度、横位置、および車間距離が入力され、妥当性評価部３４０から妥当性の評価値が入力され、リスク計算部３５０（１）からリスクが入力される。横位置とは、道路の幅方向に関する位置である。これらの情報は、被評価情報の一例である。また、車両の速度、加速度、横位置、および車間距離は、帰還情報の一例である。報酬導出部３６０は、入力された情報（入力値）に対して、用途毎報酬関数マップ３７０（１）に基づく報酬関数を適用することで、行動に対する報酬（個別報酬）を導出する。個別報酬は、例えば、ゼロから１（所定値の一例）の間で導出される。
【００５２】
用途毎報酬関数マップ３７０（１）は、目標に対する評価特性が異なる複数の報酬関数マップを含む。図７〜１２は、用途毎報酬関数マップ３７０（１）に含まれる報酬関数マップのそれぞれを例示した図である。
【００５３】
図７に示す第１報酬関数マップは、入力値が目標値Ｔｇｔ１に一致すると１（所定値の一例）を返し、入力値と目標値Ｔｇｔ１との差分の絶対値が大きくなるほど小さい値を返す第１報酬関数を規定する。第１報酬関数の評価特性は、例えば、ガウス関数に基づいて設定される。第１報酬関数は、なるべく目標値Ｔｇｔ１に近づけたい入力値に適用される。報酬導出部３６０（１）は、例えば、高速道路などの最低速度が設けられているような道路における車両の速度を、第１報酬関数に入力して個別報酬を導出する。
【００５４】
図８に示す第２報酬関数マップは、入力値が目標値Ｔｇｔ２に一致すると１（所定値の一例）を返し、入力値と目標値Ｔｇｔ２との差分の絶対値が大きくなるほど小さい値を返す、但し、入力値が目標値Ｔｇｔ２を超える側における入力値と目標値Ｔｇｔ２との差分に対する個別報酬の低下度合いを、入力値が目標値Ｔｇｔ２を下回る側における入力値と目標値Ｔｇｔ２との差分に対する個別報酬の低下度合いよりも大きくしている。第２報酬関数の評価特性は、例えば、ガウス関数などの分布にスキュー（歪度）を作用させた分布に基づいて設定される。第２報酬関数は、なるべく目標値Ｔｇｔ２に近づけたく、且つ目標値Ｔｇｔ２を超えないことが望ましい入力値に適用される。報酬導出部３６０（１）は、例えば、車両の速度を第２報酬関数に入力して個別報酬を導出する。
【００５５】
図９に示す第３報酬関数マップは、入力値が目標値Ｔｇｔ３以上であれば１（所定値の一例）を返し、入力値が目標値Ｔｇｔ３を下回る場合、入力値と目標値Ｔｇｔ３との差分の絶対値が大きくなるほど小さい値を返す第３報酬関数を規定する。第３報酬関数は、目標値Ｔｇｔ３以上に維持することが望ましい入力値に適用される。報酬導出部３６０（１）は、例えば、車間距離を第３報酬関数に入力して個別報酬を導出する。
【００５６】
図１０に示す第４報酬関数マップは、入力値が目標値Ｔｇｔ４以下であれば１（所定値の一例）を返し、入力値が目標値Ｔｇｔ４を上回る場合、入力値と目標値Ｔｇｔ４との差分の絶対値が大きくなるほど小さい値を返す第４報酬関数を規定する。第４報酬関数は、目標値Ｔｇｔ４以上に維持することが望ましい入力値に適用される。報酬導出部３６０（１）は、例えば、リスクを第４報酬関数に入力して個別報酬を導出する。
【００５７】
図１１に示す第５報酬関数マップは、入力値が目標範囲ＴＡ５内であれば１（所定値の一例）を返し、入力値と目標範囲ＴＡ５の上限または下限との差分の絶対値が大きくなるほど（目標範囲ＴＡ５から外れるほど）小さい値を返す第５報酬関数を規定する。第５報酬関数は、なるべく目標範囲ＴＡ５内に収めたい入力値に適用される。報酬導出部３６０（１）は、例えば、加速度や横位置を、第５報酬関数に入力して個別報酬を導出する。加速度に適用する場合、標範囲ＴＡ５はゼロを含む。
【００５８】
図１２に示す第６報酬関数マップは、入力値が二つ以上の目標値（図では目標値Ｔｇｔ６（１）、目標値Ｔｇｔ６（２）の二つ）のいずれかに近づく程、大きい値を返す第６報酬関数を規定する。第６報酬関数は、複数の目標値のうちいずれかに近づけたい入力値に適用される。図１０の例では、目標値Ｔｇｔ６（１）に一致する場合、目標値Ｔｇｔ６（２）に一致する場合よりも大きい値を返すものとしているが、同じ値を返すようにしてもよい。報酬導出部３６０（１）は、例えば、横位置を、第６報酬関数に入力して個別報酬を導出する。この場合、目標値Ｔｇｔ６（１）、目標値Ｔｇｔ６（２）は、走行可能な二つの互いに隣接する車線の中央である。例えば走行車線の中央に対応する目標値Ｔｇｔ６（１）を走行している場合、追い越し車線の中央に対応する目標値Ｔｇｔ６（２）を走行している場合よりも個別報酬が高く導出される。
【００５９】
報酬導出部３６０（１）は、例えば、複数の入力値に基づいて求めた複数の個別報酬を、互いに乗算してトータルの報酬を計算する。上記の例では、報酬導出部３６０（１）は、式（１）に基づいてトータルの報酬を計算する。Ｆ１〜Ｆ６のそれぞれは、第１〜第６報酬関数に対応している。なお、報酬導出部３６０は、個別報酬同士を乗算するのに代えて、個別報酬の加重和等を求めることでトータルの報酬を計算してもよい。
報酬（トータル）＝Ｆ１（速度）またはＦ２（速度）×Ｆ３（車間距離）×Ｆ４（リスク）×Ｆ５（加速度）×Ｆ６（横位置）  …（１）
【００６０】
車両が仮想的に走行している間、繰り返しプランナ３１０（１）により生成された行動に対するトータルの報酬が導出され、一回の走行が終了すると、トータルの報酬を時間方向に合計した累積報酬が計算される。そして、プランナ３１０（１）は、累積報酬をＡ３Ｃなどの強化学習アルゴリズムに適用し、ポリシー３１５（１）を更新する。これによって、好適な軌道点の生成規則が学習される。
【００６１】
図１３は、個別学習部３００（１）により実行される処理の流れの一例を示すフローチャートである。まず、個別学習部３００（１）は、走行目標と報酬関数の初期設定を行い（ステップＳ５００）、次いでポリシー３１５の初期設定を行う（ステップＳ５０２）。
【００６２】
次に、プランナ３１０（１）が、ポリシー３１５（１）に従って軌道点を決定する（ステップＳ５０４）。個別学習部３００（１）は、動作情報生成部３２０（１）の処理を経て各種情報をシミュレータ４００に入力し、帰還情報を取得する（ステップＳ５０６）。
【００６３】
次に、報酬導出部３６０（１）が、帰還情報その他の情報に基づいて個別報酬を導出し、更にトータルの報酬を計算する（ステップＳ５０８）。そして、個別学習部３００（１）は、反復終了条件が満たされたか否かを判定する（ステップＳ５１０）。反復終了条件とは、例えば、ステップＳ５０４で決定された軌道点の数が所定数に到達したことである。反復終了条件が満たされていない場合、ステップＳ５０４に処理が戻される。
【００６４】
反復終了条件が満たされた場合、報酬導出部３６０（１）は、累積報酬を計算する（ステップＳ５１２）。次に、個別学習部３００（１）は、学習終了条件が満たされたか否かを判定する（ステップＳ５１４）。学習終了条件とは、例えばステップＳ５１２で計算された累積報酬が閾値以上となったことである。
【００６５】
学習終了条件が満たされていない場合、プランナ３１０（１）は、強化学習アルゴリズムに基づいてポリシー３１５（１）を更新し（ステップＳ５１６）、ステップＳ５０４に処理を戻す。学習終了条件が満たされた場合、個別学習部３００（１）は、ポリシー３１５（１）を確定する（ステップＳ５１８）。
【００６６】
［他の交通参加者に関する学習］
以下、前述した「交通参加者ごとに異なる規則」について再度説明する。交通参加者ごとに異なる規則は、例えば、報酬関数の相違によって実現される。また、交通参加者ごとに、報酬関数の一部が追加、または省略されてもよい。
【００６７】
例えば、交通参加者が歩行者の場合、車両に比して「加速度」に対するペナルティは小さくてよいため、図１１に示す第５報酬関数マップよりも平坦なマップが使用されることで報酬関数の相違が実現される。また、そもそも「車間距離」に関する報酬は意味が小さいため省略されてよく、「横位置」に関しては歩道に相当する位置を横位置とするのが好ましいため、図１２に示す第６報酬関数マップのピーク値を両端側にシフトしたマップが使用されてよい。また、横断歩道を横断するような場面では、一時的に「横位置」に関する報酬が固定されてもよい。
【００６８】
また、同じ交通参加者であっても、プランナ３１０（ｋ）に与えられる動作特性情報に対応する情報に基づいて、報酬関数が切り替えられてもよい。例えば、「スポーティな走行を望む運転者により運転される車両」と「安全志向の運転者により運転される車両」とで報酬関数が異なってよい。この場合、図１１に示す第５報酬関数マップに関して言うと、前者に対して後者よりも平坦なマップが使用されてよい。
【００６９】
このように、報酬関数を交通参加者ごとに異ならせることで、行動決定モデルと、多様性のあるシミュレーション環境を同時に生成することができる。この結果、より実空間に近いシミュレーション環境で学習を行うことができる。
【００７０】
以上説明した実施形態によれば、より実空間に近いシミュレーション環境で学習を行うことができる。
【００７１】
学習装置３００やシミュレータ４００は、以下のようなハードウェアによって実現される。図１４は、学習装置３００（またはシミュレータ４００）のハードウェア構成の一例を示す図である。図示するように、学習装置３００のは、通信コントローラ３００−１、ＣＰＵ３００−２、ワーキングメモリとして使用されるＲＡＭ（Random Access Memory）３００−３、ブートプログラムなどを格納するＲＯＭ（Read Only Memory）３００−４、フラッシュメモリやＨＤＤ（Hard Disk Drive）などの記憶装置３００−５、ドライブ装置３００−６などが、内部バスあるいは専用通信線によって相互に接続された構成となっている。通信コントローラ３００−１は、他装置との通信を行う。記憶装置３００−５には、ＣＰＵ３００−２が実行するプログラム３００−５ａが格納されている。このプログラムは、ＤＭＡ（Direct Memory Access）コントローラ（不図示）などによってＲＡＭ３００−３に展開されて、ＣＰＵ３００−２によって実行される。これによって、個別学習部３００（ｋ）およびその内部構成のうち一部または全部が実現される。また、シミュレータ４００の機能も同様に実現される。
【００７２】
上記説明した実施形態は、以下のように表現することができる。
プログラムを記憶した記憶装置と、ハードウェアプロセッサとを備え、
前記ハードウェアプロセッサは、前記プログラムを実行することにより、
複数の個別学習部として機能し、
それぞれの個別学習部は、
自身に対応する動作主体の動作を規定する情報を生成し、
前記動作主体の動作を規定する情報に基づく情報をシミュレータに入力することで前記シミュレータから得られる帰還情報を含む被評価情報を評価した報酬を導出し、
前記導出された報酬に基づく強化学習を行い、
前記複数の個別学習部のうち少なくとも二つは、前記報酬が最大化される動作が異なる、
ように構成されている、
学習装置。
【００７３】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００７４】
１  車両
１００  自動運転制御装置
３００  学習装置
３００（ｋ）  個別学習部
３１０（ｋ）  プランナ
３２０（ｋ）  動作情報生成部
３６０（ｋ）  報酬導出部
４００  シミュレータ
【図１】
2020035221.tif 000003
【図２】
2020035221.tif 000004
【図３】
2020035221.tif 000005
【図４】
2020035221.tif 000006
【図５】
2020035221.tif 000007
【図６】
2020035221.tif 000008
【図７】
2020035221.tif 000009
【図８】
2020035221.tif 000010
【図９】
2020035221.tif 000011
【図１０】
2020035221.tif 000012
【図１１】
2020035221.tif 000013
【図１２】
2020035221.tif 000014
【図１３】
2020035221.tif 000015
【図１４】
2020035221.tif 000016