(57)【要約】【課題】より柔軟な学習を行うことができる学習装置、学習方法、およびプログラムを提供すること。【解決手段】車両の行動を示す情報を生成するプランナ（３１０）と、前記車両の行動を示す情報に基づく情報をシミュレータまたは実環境（４００）に入力することで前記シミュレータまたは実環境から得られる帰還情報を含む、複数の被評価情報のそれぞれを評価した複数の個別報酬を導出し、前記複数の個別報酬に基づいて、前記車両の行動に対する報酬を導出する報酬導出部（３６０）と、を備え、前記プランナは、前記報酬導出部により導出された報酬を最適化する強化学習を行う、学習装置（３００）。【選択図】図４
2020035222.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）コントローラ（不図示）などによってＲＡＭ３００−３に展開されて、ＣＰＵ３００−２によって実行される。これによって、プランナ３１０と、制御演算部３２０と、認識部３３０と、妥当性評価部３４０と、リスク計算部３５０と、報酬導出部３６０とのうち一部または全部が実現される。
【００６９】
以上説明した実施形態によれば、より柔軟な学習を行うことができる。
【００７０】
上記説明した実施形態は、以下のように表現することができる。
プログラムを記憶した記憶装置と、ハードウェアプロセッサとを備え、
前記ハードウェアプロセッサは、前記プログラムを実行することにより、
車両の行動を示す情報を生成し、
前記車両の行動を示す情報に基づく情報をシミュレータまたは実環境に入力することで前記シミュレータまたは実環境から得られる帰還情報を含む、複数の被評価情報のそれぞれを評価した複数の個別報酬を導出し、
前記複数の個別報酬に基づいて、前記車両の行動に対する報酬を導出する、
ように構成されている、
学習装置。
【００７１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００７２】
１  車両
１００  自動運転制御装置
３００  学習装置
３１０  プランナ
３２０  制御演算部
３３０  認識部
３４０  妥当性評価部
３５０  リスク計算部
３６０  報酬導出部
３７０  用途毎報酬関数マップ
【図１】
2020035222.tif 000003
【図２】
2020035222.tif 000004
【図３】
2020035222.tif 000005
【図４】
2020035222.tif 000006
【図５】
2020035222.tif 000007
【図６】
2020035222.tif 000008
【図７】
2020035222.tif 000009
【図８】
2020035222.tif 000010
【図９】
2020035222.tif 000011
【図１０】
2020035222.tif 000012
【図１１】
2020035222.tif 000013
【図１２】
2020035222.tif 000014
【図１３】
2020035222.tif 000015