(58)【調査した分野】(Int.Cl.,DB名)
前記重み付け和において使用される重みは、前記重み付け和の計算に使用される前記操作が抽出された前記操作系列の、推論された時刻が過去に遡るものほど、値が小さくなるように設定されている、請求項1に記載の自動操縦ロボットの制御装置。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について図面を参照して詳細に説明する。
図1は、実施形態におけるドライブロボットを用いた試験環境の説明図である。試験装置1は、車両2、シャシーダイナモメータ3、及びドライブロボット4を備えている。
車両2は、床面上に設けられている。シャシーダイナモメータ3は、床面の下方に設けられている。車両2は、車両2の駆動輪2aがシャシーダイナモメータ3の上に載置されるように、位置づけられている。車両2が走行し駆動輪2aが回転する際には、シャシーダイナモメータ3が反対の方向に回転する。
ドライブロボット4は、車両2の運転席2bに搭載されて、車両2を走行させる。ドライブロボット4は、第1アクチュエータ4cと第2アクチュエータ4dを備えており、これらはそれぞれ、車両2のアクセルペダル2cとブレーキペダル2dに当接するように設けられている。
【0013】
ドライブロボット4は、制御装置10によって制御されている。より詳細には、制御装置10は、ドライブロボット4の第1アクチュエータ4cと第2アクチュエータ4dを制御することにより、車両2のアクセルペダル2cとブレーキペダル2dの開度を変更、調整する。
制御装置10は、ドライブロボット4を、車両2が規定された指令車速に従って走行するように制御する。すなわち、制御装置10は、車両2のアクセルペダル2cとブレーキペダル2dの開度を変更することで、規定された走行パターン(モード)に従うように、車両1を走行制御する。より詳細には、制御装置10は、走行開始から時間が経過するに従い、各時間に到達すべき車速である指令車速に従うように、車両2を走行制御する。
【0014】
制御装置10は、互いに通信可能に設けられた、ドライブロボット制御部20と、学習部30を備えている。
ドライブロボット制御部20は、ドライブロボット4の制御を行うための制御信号を生成し、ドライブロボット4に送信することで、ドライブロボット4を制御する。学習部30は、後に説明するような機械学習器に対して強化学習を行い、学習モデルを生成する。この学習モデルの出力を基に、ドライブロボット4の制御を行うための制御信号が生成される。
ドライブロボット制御部20は、例えば、ドライブロボット4の筐体外部に設けられた、コントローラ等の情報処理装置である。学習部30は、例えばパーソナルコンピュータ等の情報処理装置である。
【0015】
図2は、制御装置10のブロック図である。ドライブロボット制御部20は、指令車速記憶部21、走行状態取得部22、及び車両操作制御部23を備えている。学習部30は、操作内容推論部31、報酬計算部32、強化学習部33、及び学習用データ記憶部34を備えている。
これら制御装置10の構成要素のうち、走行状態取得部22、車両操作制御部23、操作内容推論部31、報酬計算部32、及び強化学習部33は、例えば上記の各情報処理装置内のCPUにより実行されるソフトウェア、プログラムであってよい。また、指令車速記憶部21及び学習用データ記憶部34は、上記各情報処理装置内外に設けられた半導体メモリや磁気ディスクなどの記憶装置により実現されていてよい。
【0016】
後に説明するように、操作内容推論部31は、ある時刻における走行状態を基に、当該時刻よりも後の車両2の操作の系列である操作系列を推論する。この、車両2の操作系列の推論を効果的に行うために、特に操作内容推論部31は、後に説明するように機械学習器を備えており、推論した操作系列に基づいたドライブロボット4の操作の後の時刻における走行状態に基づいて計算された報酬を基に機械学習器を強化学習して学習モデル(第1学習モデル、操作推論学習モデル)40を生成する。操作内容推論部31は、性能測定のために実際に車両2を走行制御させる際には、この学習が完了した第1学習モデル(操作推論学習モデル)40を使用して、車両2の操作系列を推論する。
すなわち、制御装置10は大別して、強化学習時における操作系列の学習と、性能測定のために車両を走行制御させる際における操作系列の推論の、2通りの動作を行う。説明を簡単にするために、以下ではまず、操作系列の学習時における、制御装置10の各構成要素の説明をした後に、車両2の性能測定に際して操作系列を推論する場合での各構成要素の挙動について説明する。
図2においては、各構成要素が太線と細線の2種類の矢印で結ばれて、データや処理の流れが示されている。車両2の性能測定に際して操作系列を推論する場合でのデータや処理の流れは、太線により示されている。操作系列の学習時におけるデータや処理の流れは、太線と細線の双方の矢印により示されている。
【0017】
まず、操作系列の学習時における、ドライブロボット制御部20の構成要素の挙動を説明する。
指令車速記憶部21には、モードに関する情報に基づいて生成された、指令車速が記憶されている。モードは、例えば、走行開始から経過した時間と、その時に到達すべき車速との関係であり、したがって指令車速記憶部21には、実際には、経過時間と指令車速の関係が表現された、例えばテーブルやグラフ、関数等が格納されている。
【0018】
走行状態取得部22は、現在時点における、車両2の走行状態を取得する。車両2の走行状態は、車両2に備えられた様々な図示されない計測器や、車両2を操作するドライブロボット4内に記録された操作実績から取得され得る。すなわち、車両2の走行状態は、現在時点における車両2の動作状況を数値化して表現したものであり、この値を取得する手段は、車両2の計測器による計測値に限られず、ドライブロボット4によって取得可能な値をも含む。
走行状態としては、前回の走行状態取得時刻からのアクセルペダル操作の、ドライブロボット4の操作実績中の操作量(以下、アクセルペダル検出量と呼称する)、前回の走行状態取得時刻からのブレーキペダル操作の、ドライブロボット4の操作実績中の操作量(以下、ブレーキペダル検出量と呼称する)、車両2において検出されたエンジン回転数(以下、エンジン回転数検出量と呼称する)、車両2において検出された車速(以下、検出車速と呼称する)を含む。
走行状態は、更に、当該走行状態が取得された時刻において、車両2が実現すべき指令車速を含む。
【0019】
上記の走行状態の各々は、スカラー値であってもよいが、複数の値により実現されていてもよい。
走行状態の各々は、後述する機械学習器を学習させて学習モデル(第1学習モデル40)を生成する際の入力として主に使用される。このため、走行状態の各々に関し、走行状態が取得された時点のみではなく、その前後の複数の時刻において値を取得し、機械学習器の入力とすることにより、過去の経過や将来の推測を活かしてより効果的に学習することができる可能性がある。
例えば、アクセルペダル検出量、ブレーキペダル検出量、エンジン回転数検出量、検出車速等の、車両2の状態を実際に観測、計測することにより取得される走行状態については、機械学習器の学習アルゴリズムにおいて使用する過去の観測データの参照時間を観測データ参照時間T
obsとすると、観測データ参照時間T
obsの系列として、複数の値を有していてもよい。
また、上記のような観測データとは異なり、指令車速記憶部21に値が格納されており全ての時刻における値が随時参照可能な状態となっている指令車速については、機械学習器の学習アルゴリズムにおいて使用する将来の指令車速の参照時間を指令車速参照時間T
refとすると、指令車速参照時間T
refの系列として、複数の値を有していてもよい。
本実施形態においては、走行状態の各々は、複数の値により実現されている。
【0020】
走行状態取得部22は、車両2に備えられた様々な図示されない計測器やドライブロボット4内に記録された操作実績等から、アクセルペダル検出量、ブレーキペダル検出量、エンジン回転数検出量、検出車速を取得する。
また、走行状態取得部22は、指令車速記憶部21から、指令車速を取得する。
走行状態取得部22は、これらの取得した走行状態を、学習部30へ送信する。
【0021】
車両操作制御部23は、次に説明する操作内容推論部31が、走行状態取得部22が送信した送信状態を基に推論した、操作系列を受信し、これを基にしてドライブロボット4を制御する制御信号を生成して、ドライブロボット4へ送信する。
【0022】
次に、操作系列の学習時における、学習部30の構成要素の挙動を説明する。
学習部30の操作内容推論部31は、機械学習器を備えている。この機械学習器は、強化学習されることにより、第1学習モデル40(操作推論学習モデル)が生成される。第1学習モデル40は、車両2の操作系列を推論するのに使用される。本実施形態においては、機械学習器は、強化学習により機械学習される。すなわち、機械学習器は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される、適切な学習パラメータが学習された学習済みモデル40を生成するものである。
学習部30は、この機械学習器を強化学習するに際し、強化学習に必要な入力となる、走行データを蓄積する。制御装置10が、学習がまだ終了していない、学習途中の機械学習器によって推論された操作によって車両2を走行制御することにより、走行データが蓄積される。この走行データにより機械学習器を強化学習した後に、この出力となる操作を用いて再度走行データを蓄積し、機械学習器を再度学習する。このように、機械学習器を繰り返し更新することにより、最終的に強化学習された、学習済みの第1学習モデル40が生成される。
以下、説明を簡単にするため、操作内容推論部31が備えている機械学習器と、これが学習されて生成される学習モデルをともに、第1学習モデル40と呼称する。
【0023】
操作内容推論部31は、ある時刻(第1の時刻)において、走行状態取得部22から走行状態を受信すると、これを基に、学習中の第1学習モデル40により、第1の時刻より後の車両2の操作系列を推論する。
【0024】
第1学習モデル40は、所定の第1の時間間隔をおいて、車両2の操作系列を推論する。この、第1学習モデル40における推論の間隔を、以降、ステップ周期T
stepと呼称する。
ドライブロボット制御部20は、後述するように、ドライブロボット4を制御する制御信号を、ドライブロボット4へと、所定の第2の時間間隔をおいて送信する。この、制御信号の送信間隔を制御周期T
sとすると、本実施形態におけるステップ周期T
stepは、制御周期T
sよりも大きな値である。このため、第1学習モデル40は、一度の推論により、ステップ周期T
stepに含まれる複数の制御周期T
sに相当する、複数の、車両2の操作、すなわち操作系列を出力する。
【0025】
また、第1学習モデル40は、上記のように、第1の時刻より後の、少なくともステップ周期T
step後までの将来の複数の時刻における車両2の操作系列を推論するが、この推論の対象となる時間間隔は、本実施形態においては、ステップ周期T
stepよりも大きい。すなわち、第1学習モデル40は、実際には、ステップ周期T
step後までの時間範囲内における車両2の操作を推論すると同時に、ステップ周期T
step後よりも更に将来の時刻における、車両2の操作を、同一の操作系列として推論する。この、第1学習モデル40によって推論する時間範囲を、行動出力時間T
predと呼称する。この場合においては、操作内容推論部31は、第1学習モデル40によって、第1の時刻から行動出力時間T
pred後までの時間範囲内の、複数の制御周期T
sに相当する複数の時刻における操作を系列として推論する。
このようにした場合においては、第1学習モデル40は、実際に車両2が操作されるステップ周期T
step後までの操作系列を推測するに際し、ステップ周期T
stepよりも更に後の時刻における車両2の操作を推測するため、将来の状況を見越した推測をするようになる可能性がある。
【0026】
図3は、第1学習モデル40のブロック図である。
本実施形態においては、第1学習モデル40は、中間層を3層とした全5層の全結合型のニューラルネットワークにより実現されている。第1学習モデル40は、入力層41、中間層42、及び出力層43を備えている。
図3においては、各層が矩形として描かれており、各層に含まれるノードは省略されている。
【0027】
入力層41は、複数の入力ノードを備えている。複数の入力ノードの各々は、例えばアクセルペダル検出量s1、ブレーキペダル検出量s2から、指令車速sNに至るまでの、走行状態sの各々に対応するように設けられている。
既に説明したように、各走行状態sは、複数の値により実現されている。例えば、
図3においては、一つの矩形として示されている、アクセルペダル検出量s1に対応する入力は、実際には、アクセルペダル検出量s1の複数の値の各々に対応するように、入力ノードが設けられている。
各入力ノードには、走行状態取得部22から受信した、対応する走行状態sの値が格納される。
【0028】
中間層42は、第1中間層42a、第2中間層42b、及び第3中間層42cを備えている。
中間層42の各ノードにおいては、前段の層(例えば、第1中間層42aの場合は入力層41、第2中間層42bの場合は第1中間層42a)の各ノードから、この前段の層の各ノードに格納された値と、前段の層の各ノードから当該中間層42のノードへの重みを基にした演算がなされて、当該中間層42のノード内に演算結果が格納される。
【0029】
出力層43においても、中間層42の各々と同様な演算が行われ、出力層43に備えられた各出力ノードに演算結果が格納される。複数の出力ノードの各々は、操作系列aの各々に対応するように設けられている。本実施形態においては、車両2の操作の対象は、アクセルペダル2cとブレーキペダル2dであり、これに対応して、操作系列aは、例えばアクセルペダル操作系列a1とブレーキペダル操作系列a2となっている。
既に説明したように、各操作系列aは、複数の値により実現されている。例えば、
図3においては、一つの矩形として示されている、アクセルペダル操作系列a1に対応する出力は、実際には、アクセルペダル操作系列a1の複数の値の各々に対応するように、出力ノードが設けられている。
【0030】
操作内容推論部31は、上記のように、第1の時刻における走行状態sを基に、第1の時刻より後の行動出力時間T
predまでにおける車両2の操作系列aを推論し、ドライブロボット制御部20の車両操作制御部23へ送信する。
この操作系列aに基づき、車両操作制御部23はステップ周期T
stepの間、ドライブロボット4を操作する。
そして、走行状態取得部22は、操作後の車両2の、第1の時刻よりも後の第2の時刻における走行状態sを再度取得する。
操作内容推論部31は、第1の時刻における走行状態s、これに対して推論され実際に実行された操作系列a、及び第2の時刻における走行状態sを、次に説明する報酬計算部32に送信する。
【0031】
報酬計算部32は、操作内容推論部31から、第1の時刻における走行状態s、操作系列a、及び第2の時刻における走行状態sを受信する。報酬計算部32は、報酬を計算する。報酬は、操作系列a、及びこれに伴う第2の時刻における走行状態sが望ましくないほど小さい値を、望ましいほど大きい値を、有するように設計されている。後述の強化学習部33においては、行動価値(評価値)が、報酬が大きいほど高くなるように計算され、第1学習モデル40はこの行動価値が高くなるような操作系列aを出力するように、強化学習が行われる。
報酬計算部32は、第1の時刻における走行状態s、これに対応して推論された操作系列a、当該操作系列aを基に新たに生成された第2の時刻における走行状態s、及び計算した報酬を、学習用データ記憶部34に送信し、保存する。
このようにして、操作系列aの推論、この操作系列aがドライブロボット4によって実行された後の走行状態sの取得と、及び報酬の計算が、強化学習に十分なデータが蓄積されるまで、繰り返し行われる。
学習用データ記憶部34に、強化学習に十分な量の走行データが蓄積されると、次に説明する強化学習部33により強化学習が実行される。
【0032】
強化学習部33は、学習用データ記憶部34から、複数の走行データを取得し、これを使用して、第2学習モデル50を学習する。第2学習モデル50は、機械学習器が学習されることにより、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される、適切な学習パラメータが学習された学習済みモデルとなる。
学習部30は全体として、第1学習モデル40が推論した操作系列aがどの程度適切であったかを示す行動価値を計算し、第1学習モデル40が、この行動価値が高くなるような操作系列aを出力するように、強化学習を行う。行動価値は、走行状態sと、これに対する操作系列aを引数として、報酬が大きいほど行動価値Qを高くするように設計された関数Qとして表わされる。本実施形態においては、この関数Qの計算を、走行状態sと操作系列aを入力として、行動価値Qを出力するように設計された、関数近似器としての第2学習モデル50により行う。
【0033】
強化学習部33は、学習用データ記憶部34から走行状態sと操作系列aを受信し、第2学習モデル50を機械学習させる。
図4は、第2学習モデル50のブロック図である。
第2学習モデル50の入力層51においては、入力ノードが、例えばアクセルペダル検出量s1、ブレーキペダル検出量s2から、指令車速sNに至るまでの、走行状態sの各々と、及び、例えばアクセルペダル操作系列a1とブレーキペダル操作系列a2の、操作系列aの各々に対応するように設けられている。第2学習モデル50は、第1学習モデル40と同様な構造のニューラルネットワークにより実現されているため、構造上の詳細な説明を割愛する。
第1学習モデル40の出力層53においては、出力ノードは、例えば1つであり、これが、計算された行動価値Qの値に相当する。
【0034】
強化学習部33は、TD(Temporal Difference)誤差、すなわち、操作系列aを実行する前の行動価値と、操作系列aを実行した後の行動価値の誤差を小さくして、行動価値Qとして適切な値が出力されるように、重みやバイアスの値等、ニューラルネットワークを構成する各パラメータの値を、誤差逆伝搬法、確率的勾配降下法により調整する。このように、現状の第1学習モデル40によって推論された操作系列aを適切に評価できるように、第2学習モデル50を学習させる。
第2学習モデル50の学習が進むと、第2学習モデル50は、より適切な行動価値Qの値を出力するようになる。すなわち、第2学習モデル50が出力する行動価値Qの値が学習前とは変わるため、これに伴い、行動価値Qが高くなるような操作系列aを出力するように設計された第1学習モデル40を更新する必要がある。このため、操作内容推論部31は第1学習モデル40を学習する。
具体的には、操作内容推論部31は、例えば行動価値Qの負値を損失関数とし、これをできるだけ小さくするような、すなわち行動価値Qが大きくなるような操作系列aを出力するように、重みやバイアスの値等、ニューラルネットワークを構成する各パラメータの値を、誤差逆伝搬法、確率的勾配降下法により調整して、第1学習モデル40を学習させる。
第1学習モデル40が学習され更新されると、出力される操作系列aが変化するため、再度走行データを蓄積し、これを基に第2学習モデル50を学習する。
このように、学習部30は、第1学習モデル40と第2学習モデル50の学習を繰り返すことにより、これら学習モデル40、50を強化学習する。
【0035】
次に、実際に車両2の性能測定に際して操作系列を推論する場合での、すなわち、第1学習モデル40の強化学習が終了した後における、制御装置10の各構成要素の挙動について説明する。
【0036】
走行状態取得部22は、現在時点における、車両2の走行状態を取得する。
走行状態取得部22は、車両2に備えられた様々な図示されない計測器やドライブロボット4内に記録された操作実績等から、アクセルペダル検出量、ブレーキペダル検出量、エンジン回転数検出量、検出車速を取得する。
また、走行状態取得部22は、指令車速記憶部21から、指令車速を取得する。
走行状態取得部22は、これらの取得した走行状態を、学習部30へ送信する。
【0037】
学習部30の操作内容推論部31は、ある時刻(第1の時刻)において、走行状態取得部22から走行状態を取得すると、これを基に、学習済みの第1学習モデル40により、第1の時刻より後の車両2の操作系列aを推論する。
この第1学習モデル40は、操作系列aに基づいたドライブロボット4の操作の後の、第1の時刻より後の第2の時刻における走行状態sに基づいて計算された報酬を基に、強化学習されている、学習済みのモデルである。
【0038】
操作内容推論部31は、学習部30によって事前に強化学習されて、重みやバイアスの値等の、ニューラルネットワークを構成する各パラメータの値が調整、決定された、学習済みの第1学習モデル40が、例えばCPU上でプログラムとして実行されることで、車両2の操作系列aを推論する。
操作内容推論部31は、推論した操作系列aを、車両操作制御部23へ送信する。
【0039】
車両操作制御部23は、操作内容推論部31から操作系列aを受信し、この操作系列aに基づき、ステップ周期T
stepの間、ドライブロボット4を制御する制御信号を生成して、ドライブロボット4に送信することにより、ドライブロボット4を操作する。
図5は、車両操作制御部23の説明図である。
図5においては、第1学習モデル40の推論の間隔であるステップ周期T
stepおきの複数の時刻T
i(i=1〜M)の各々において、操作内容推論部31によって推論された操作系列a
i(i=1〜M)の関係が示されている。本実施形態においては、操作系列a
i(i=1〜M)の各々は、アクセルペダル操作系列a1である場合を考える。すなわち、操作系列は、本来であれば操作系列a1
i(i=1〜M)と記載すべきところ、記載を簡単にするために操作系列a
i(i=1〜M)と記載する。操作系列a
i(i=1〜M)は、ブレーキペダル操作系列a2であっても構わない。
説明の都合上、操作系列aが推論された時刻が過去に遡るほど、これに付された添え字iは、大きな値となるように示されている。すなわち、時刻T
i(i=1〜M)のうち最も過去の時刻は時刻T
Mであり、これに対応して時刻T
Mに操作内容推論部31によって推論された操作系列aは操作系列a
Mである。また、時刻T
i(i=1〜M)のうち最も新しい時刻は時刻T
1であり、これに対応する操作系列aは操作系列a
1である。
時刻T
Mにおいては、時刻T
Mから時刻T
0までの操作系列a
Mが、操作内容推論部31により推論されている。時刻T
0は、時刻T
MのT
pred後の時刻であり、かつ時刻T
1のステップ周期T
step後の時刻である。また、時刻T
M−1においては、時刻T
M−1からT
pred後の時刻までの操作系列a
M−1が、操作内容推論部31により推論されている。以降、同様に、例えば時刻T
1においては、時刻T
1からT
pred後の時刻までの操作系列a
1が、操作内容推論部31により推論されている。
【0040】
ここで、操作系列a
Mから操作系列a
1までの、M個の操作系列aにおいては、その全てに、時刻T
1から時刻T
0までの時間の操作が含まれている。すなわち、時刻T
1から時刻T
0までの任意の時刻T
tにおいては、当該時刻T
tにおけるM個の操作a
i、t(i=1〜M)が、それぞれ異なる時刻T
i(i=1〜M)において推論されている。
車両操作制御部23は、操作内容推論部31により最新の操作系列a
1が推論されたとしても、これをそのまま用いてドライブロボット4を操作する制御信号を生成しない。車両操作制御部23は、実際に制御を行う制御時刻T
tにおいて実際に使用する操作である最終操作値a
tを、最新の操作系列a
1を含む、過去複数回において操作内容推論部31により推論された操作系列a
i(i=1〜M)内の操作a
i、t(i=1〜M)を基に、以下のように算出する。
【0041】
車両操作制御部23は、1より大きい係数xを基にして以下の式(1)により算出される重みα
i(i=1〜M)を、内部に格納している。
【数1】
上式により表される重みα
iは、α
1からα
Mまでの総計が1となる。係数xは、ドライブロボット4により車両2を走行制御するときの車速誤差が最小となるように、予め実験的に求めることで決定される。
車両操作制御部23は、制御時刻T
tに対して推論された複数の操作a
i,tを操作系列a
i(i=1〜M)の各々から抽出して、この各々に対し、上記の重みα
iを次の式(2)により適用して、制御時刻T
tにおける最終操作値a
tを算出する。
【数2】
【0042】
制御時刻T
tにおける最終操作値a
tを算出する時点においては、操作系列aの最初の操作に相当する時刻からステップ周期T
stepの時間内に当該時刻T
tが含まれる、最新の操作系列a
1以外の操作系列a
i(i=2〜M)は、操作内容推論部31において過去に推論されている。したがって、上式(2)の成分のうち、α
i×a
i、t(i=2〜M)の総和に関しては、最新の操作系列a
1の推論時に、計算を完了させておくことが可能である。このようにすることで、最新の操作系列a
1が推論された後に、α
1×a
1、tを計算し、これを上記総和に加算するのみで、時刻T
tの最終操作値a
tを算出可能となる。
【0043】
車両操作制御部23は、上記のように、制御周期T
sごとに、過去複数回において推論された操作系列a
i(i=1〜M)の各々から、次にドライブロボット4を制御する制御時刻T
tに相当する操作a
i、t(i=1〜M)を抽出し、これら抽出された複数の操作a
i、t(i=1〜M)の重み付け和を計算することで最終操作値a
tを計算する。
車両操作制御部23は、最終操作値a
tに基づきドライブロボット4を制御する制御信号を生成して、ドライブロボット4に送信することで、ドライブロボット4を制御する。
【0044】
次に、
図1〜
図5、及び
図6、
図7を用いて、上記のドライブロボット4の制御装置10によりドライブロボット4を制御する方法を説明する。
図6は、ドライブロボット4の制御方法における、学習時のフローチャートである。
図7は、ドライブロボット4の制御方法における、性能測定のために車両2を走行制御させる際のフローチャートである。
まず、
図6を用いて、操作系列aの学習時における動作を説明する。
【0045】
学習が開始されると(ステップS1)、走行環境や第1学習モデル40、第2学習モデル50等の各パラメータが初期設定される(ステップS3)。
その後、車両2の走行データを収集する(ステップS5)。より詳細には、制御装置10が、学習がまだ終了していない、学習途中の第1学習モデル40によって推論された操作系列によって車両2を走行制御することにより、走行データが蓄積される。走行データは、第1の時刻における走行状態s、操作系列a、第2の時刻における走行状態sと、及び受信した報酬の組み合わせである。
【0046】
十分な走行データが学習用データ記憶部34に蓄積されると、これを用いて、第1学習モデル40と第2学習モデル50を強化学習し、学習モデル40、50を更新する(ステップS7)。
第1学習モデル40と第2学習モデル50の更新が終了すると、これら第1学習モデル40と第2学習モデル50の学習が終了したか否かを判定する(ステップS9)。
学習が終了していないと判定された場合には(ステップS9のNo)、ステップS5へ遷移する。すなわち、制御装置10は走行データを更に収集し、これを用いた第1学習モデル40と第2学習モデル50の更新を繰り返す。
学習が終了したと判定された場合には(ステップS9のYes)、学習処理を終了する(ステップS11)。
【0047】
次に、
図7を用いて、実際に車両2の性能測定に際して操作系列を推論する場合での、すなわち、第1学習モデル40の強化学習が終了した後において、車両2を走行制御する際の動作について説明する。
【0048】
車両2が走行を開始すると(ステップS51)、走行環境が初期設定され、この時点での走行状態sを初期状態として観測する(ステップS53)。
走行状態sの観測は、次のように行われる。
走行状態取得部22が、現在時点における、車両2の走行状態sを取得する。
走行状態取得部22は、車両2に備えられた様々な図示されない計測器やドライブロボット4内に記録された操作実績等から、アクセルペダル検出量、ブレーキペダル検出量、エンジン回転数検出量、検出車速を取得する。
また、走行状態取得部22は、指令車速記憶部21から、指令車速を取得する。
走行状態取得部22は、これらの取得した走行状態sを、学習部30へ送信する。
【0049】
操作内容推論部31は、走行状態取得部22から、走行状態sを受信する。操作内容推論部31は、走行状態sを受信した時刻を第1の時刻として、受信した走行状態sを基に、学習済みの第1学習モデル40により、第1の時刻より後の車両2の操作系列aを推論する(ステップS55)。
【0050】
操作内容推論部31は、この、学習済みの第1学習モデル40が推論した操作系列aを、ドライブロボット制御部20の車両操作制御部23へ送信する。
操作内容推論部31は、上式(1)、(2)を用いて、ドライブロボット4の最終操作値を算出する。
車両操作制御部23は、最終操作値に基づきドライブロボット4を制御する制御信号を生成して、ドライブロボット4に送信することで、ドライブロボット4を制御する。
車両操作制御部23は、操作内容推論部31による推論の間隔に相当するステップ周期T
stepの間、ドライブロボット4を操作する。
そして、走行状態取得部22は、操作後の車両2の走行状態sを、ステップS53と同様な要領で、再度取得する(ステップS57)。
走行状態取得部22は、操作後の車両2の走行状態sを、学習部30へ送信する。
【0051】
制御装置10は、車両2の走行が終了したか否かを判定する(ステップS59)。
走行が終了していないと判定された場合には(ステップS59のNo)、ステップS55へ遷移する。すなわち、制御装置10は、ステップS57で取得した走行状態sを基にした操作系列aの推論と、更なる走行状態sの観測を繰り返す。
走行が終了したと判定された場合には(ステップS59のYes)、走行処理を終了する(ステップS61)。
【0052】
次に、上記のドライブロボットの制御装置及び制御方法の効果について説明する。
【0053】
本実施形態におけるドライブロボット(自動操縦ロボット)の制御装置10は、車両2に搭載されて車両2を走行させるドライブロボット4を、車両2が規定された指令車速に従って走行するように制御するものであって、車速と指令車速を含む、車両2の走行状態sを取得する走行状態取得部22と、走行状態sを基に、車両2を指令車速に従って走行させるような、将来の複数の時刻における車両2の操作の系列である操作系列aを推論するように機械学習されている第1学習モデル(操作推論学習モデル)40により、操作系列aを推論する操作内容推論部31と、過去複数回において推論された操作系列a
i(i=1〜M)の各々から、次にドライブロボット4を制御する制御時刻T
tに相当する操作a
i、t(i=1〜M)を抽出し、これら抽出された複数の操作a
i、t(i=1〜M)の重み付け和を計算することで最終操作値a
tを計算し、当該最終操作値a
tに基づきドライブロボット4を制御する制御信号を生成して、ドライブロボット4に送信する。
また、本実施形態におけるドライブロボット(自動操縦ロボット)の制御方法は、車両2に搭載されて車両2を走行させるドライブロボット4を、車両2が規定された指令車速に従って走行するように制御するものであって、車速と指令車速を含む、車両2の走行状態sを取得し、走行状態sを基に、車両2を指令車速に従って走行させるような、将来の複数の時刻における車両2の操作の系列である操作系列aを推論するように機械学習されている第1学習モデル(操作推論学習モデル)40により、操作系列aを推論し、過去複数回において推論された操作系列a
i(i=1〜M)の各々から、次にドライブロボット4を制御する制御時刻T
tに相当する操作a
i、t(i=1〜M)を抽出し、これら抽出された複数の操作a
i、t(i=1〜M)の重み付け和を計算することで最終操作値a
tを計算し、当該最終操作値a
tに基づきドライブロボット4を制御する制御信号を生成して、ドライブロボット4に送信する。
上記のような構成によれば、第1学習モデル40が操作系列aを推論するに際し基づく、車両2の走行状態は、指令車速を含む。また、第1学習モデル40は、車両2を指令車速に従って走行させるような、将来の複数の時刻における車両2の操作の系列である操作系列aを推論するように機械学習されている。このため、第1学習モデル40は、指令車速に高精度で追従するような操作系列aを推論可能である。
【0054】
ここで、上記のような構成によれば、操作内容推論部31における複数の推論において、同一の制御時刻T
tに実行すべき操作a
i、t(i=1〜M)がそれぞれ推論されており、これを抽出し重み付け和を計算して、制御時刻T
tの最終操作値a
tを算出している。
すなわち、制御時刻T
tの最終操作値a
tを算出するに際し、複数の推論において導出された複数の操作を基に、これらの重み付け和を計算しているため、単一の推論において導出された操作のみを基にした場合に比べると、時系列に沿った一連の操作が平滑化されてなめらかなものとなる。
また、最終操作値a
tを算出する際に重み付け和が計算される対象となるのは、複数の推論の各々における、同一の制御時刻T
tに実行すべき操作a
i、t(i=1〜M)である。このため、当該制御時刻T
tとは異なる、過去の、あるいは将来の、他の時刻の操作は計算の対象とならない。このように、他の時刻における操作の演算への影響が排除され、指令車速への追従性が損なわれることが抑制される。
以上により、指令車速に高い精度で追従させつつ、なめらかに車両を操作可能な、自動操縦ロボットの制御装置及び制御方法を実現可能となる。
【0055】
例えば、車両2への悪影響を低減することを目的として、車両操作制御部23が最終操作値a
tを算出する際に、アクセルペダルとブレーキペダルが同時に操作されないようにし、かつ、第1学習モデル40がこれら双方の操作を出力している場合には、前の操作において対象となったペダルを操作対象とするような実装が考えられる。このような場合においては、ペダル操作を他のペダルへと切り替えるに際し、第1学習モデル40が、双方のペダルの操作を一旦ゼロとするような操作を推論するのが望ましい。
例えば、操作に関して他の時刻の操作との移動平均やローパスフィルタ等を適用した場合においては、ある時刻にペダル操作を切り替えようとしてゼロの値を出力しようとしたとしても、値がゼロではない他の時刻の操作の影響を受けて、ゼロではない値が出力され、結果としてペダル操作が切り替えられないような場合が生じ得る。
これに対し、上記のような構成によれば、複数の推論の各々における当該時刻の操作が適切にゼロとなっていれば、当該時刻の操作としてゼロの値を出力可能となるため、ペダル操作の切り替えに遅れが生じない。
【0056】
更に、重み付け和を計算する対象は、異なる複数の推論における、同一の制御時刻T
tに実行すべき操作a
i、t(i=1〜M)であるため、他の時刻の操作結果と演算を行う場合に比べると、予測の頑健性を向上させることができる。
【0057】
また、重み付け和において使用される重みα
i(i=1〜M)は、重み付け和の計算に使用される操作a
i、t(i=1〜M)が抽出された操作系列a
i(i=1〜M)の、推論された時刻T
i(i=1〜M)が過去に遡るものほど、値が小さくなるように設定されている。
上記のような構成によれば、操作系列a
i(i=1〜M)が推論される基となる、操作内容推論部31に入力される走行状態sが新しいものであるほど、これに対応して出力される操作系列a
i(i=1〜M)には、より大きな重みα
i(i=1〜M)が適用される。このため、最新の推論結果に対して過去の推論結果を考慮して最終操作値a
tを計算しているにもかかわらず、最新の推論結果が過去の推論結果に過度に影響されて指令車速への追従性が損なわれる可能性を低減可能である。
【0058】
また、車両操作制御部23は、過去複数回において推論された操作系列a
i(i=1〜M、操作系列が推論された時刻T
i(i=1〜M)が過去に遡るほどiは大きな値となる)の各々から、制御時刻T
tに対して抽出された複数の操作をa
i,t(i=1〜M)としたときに、1より大きい係数xを基にして上記の式(1)により算出される重みα
i(i=1〜M)を上記の式(2)に適用して、最終操作値a
tを算出する。
上記のような構成によれば、最終操作値a
tを適切に算出可能である。
【0059】
[実施形態の第1変形例]
次に、上記実施形態として示したドライブロボットの制御装置及び制御方法の変形例を説明する。本変形例におけるドライブロボット4の制御装置は、上記実施形態のドライブロボット4の制御装置10とは、重みα
i(i=1〜M)の設定が異なっている。
より詳細には、本変形例においては、車速として有され得る値の範囲は、1以上の車速区分閾値により複数の車速域に区分され、係数xは、複数の車速域の各々に対して、低い車速に対応する車速域ほど大きい値となるように設定されている。
【0060】
重みα
i(i=1〜M)は、車両2の車速域ごとに、適した範囲が異なる可能性がある。例えば、車速域が低い車速となるほど、指令車速に追従するために機敏なペダル操作が必要となる。
ここで、上記の式(1)においては、係数xの値が大きくなるほど、iが大きい場合の重みα
iの値が小さくなり、iが小さい場合の重みα
iの値が大きくなる。すなわち、係数xの値を大きくすることで、重み付け和により最終操作値a
tを算出する際に、新しく推論された操作系列a
iに対応して乗算される重みα
iの値を大きくして、現時刻に近い予測の重要度を高めることができる。
例えば、車速域ごとに適した係数xの値を、予め実験的に求めておき、車速に応じてxを変更しながらドライブロボット4を制御することによって、操作のなめらかさと、指令車速への追従性を、バランスよく両立させることができる。
【0061】
本第1変形例が、既に説明した実施形態と同様な効果を奏することは言うまでもない。
【0062】
[実施形態の第2変形例]
次に、
図8を用いて、上記実施形態として示したドライブロボットの制御装置及び制御方法の変形例を説明する。
図8は、本変形例におけるドライブロボットの制御装置の、第1学習モデル60のブロック図である。本変形例におけるドライブロボット4の制御装置は、上記実施形態のドライブロボット4の制御装置10とは、係数xは、第1学習モデル(操作推論学習モデル)60の出力値であり、第1学習モデル60は、走行状態sを基に、係数xを推論するように機械学習されている点が異なっている。
すなわち、
図8に示される第1学習モデル60においては、出力ノード63として係数xに対応するノードが追加されており、係数xが、車速への追従性を高めることができる値となるように、第1学習モデル40が強化学習される。
【0063】
本第2変形例が、既に説明した実施形態と同様な効果を奏することは言うまでもない。
【0064】
なお、本発明のドライブロボットの制御装置及び制御方法は、図面を参照して説明した上述の実施形態及び各変形例に限定されるものではなく、その技術的範囲において他の様々な変形例が考えられる。
【0065】
例えば、上記実施形態においては、第1学習モデル40及び第2学習モデル50を学習させる際には、実際に車両2を走行させて走行データを観測、取得するように説明したが、これに限られない。例えば、学習時においては、車両2の代わりにシミュレータを使用してもよい。
また、上記実施形態においては、操作の対象はアクセルペダル2cとブレーキペダル2dであり、走行状態は、アクセルペダル2cとブレーキペダル2dの検出量を含むように構成されていたが、これに限られない。
また、学習モデル40、50の構成は、上記実施形態において説明したものに限られないのは、言うまでもない。例えば、学習モデル40、50において、中間層42、52の数を、3より小さい、または3より多い数とする等、多くの変形例が想定されるが、本発明の主旨を損なわない限りにおいて、どのような構成を備えていてもよい。
更には、上記実施形態においては、第1学習モデル40は強化学習されたが、これに限られず、本発明の主旨が損なわれない限り、他の機械学習方法により学習されてもよい。
【0066】
これ以外にも、本発明の主旨を逸脱しない限り、上記実施形態及び各変形例で挙げた構成を取捨選択したり、他の構成に適宜変更したりすることが可能である。
【解決手段】車両2が規定された指令車速に従って走行するように制御する、自動操縦ロボット4の制御装置10であって、車速と指令車速を含む、車両2の走行状態を取得する走行状態取得部22と、走行状態を基に、車両2を指令車速に従って走行させるような、将来の複数の時刻における車両2の操作の系列である操作系列を推論するように機械学習されている操作推論学習モデル40により、操作系列を推論する操作内容推論部31と、過去複数回において推論された操作系列の各々から、次に自動操縦ロボット4を制御する制御時刻に相当する操作を抽出し、これら抽出された複数の操作の重み付け和を計算することで最終操作値を計算し、最終操作値に基づき自動操縦ロボット4を制御する制御信号を生成して、自動操縦ロボット4に送信する、車両操作制御部23と、を備える。