(57)【要約】【課題】演算モジュールの配信時の通信量を低減する。【解決手段】配信装置は、ニューラルネットワークによる演算を行う演算モジュールを含み階層化された複数の演算モジュールと、車両の周囲の状況が検出された検出結果とによって車両の制御情報を生成することにより、車両の挙動を制御する車載制御装置に対して、演算モジュールを配信する配信装置であって、車両から取得された検出結果及び制御情報が記憶される記憶部から、検出結果及び制御情報を取得する情報取得部と、情報取得部が取得する検出結果及び制御情報に基づいて、演算モジュールに対する学習を行う学習部と、学習部が行う学習により更新された演算モジュールである更新後演算モジュールのうち、所定の選択条件を満たす更新後演算モジュールを、配信対象演算モジュールとして選択する選択部と、選択部が選択した配信対象演算モジュールを、車載制御装置に対して配信する配信部とを備える。【選択図】図１
2019175349.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークによる演算を行うニューロ演算モジュールを含み階層化された複数の演算モジュールと、車両の周囲の状況が検出された検出結果とによって車両の制御情報を生成することにより、車両の挙動を制御する車載制御装置に対して、前記演算モジュールを配信する配信装置であって、
車両から取得された前記検出結果及び前記制御情報が記憶される記憶部から、前記検出結果及び前記制御情報を取得する情報取得部と、
前記情報取得部が取得する前記検出結果及び前記制御情報に基づいて、前記ニューロ演算モジュールに対する学習を行う学習部と、
前記学習部が行う学習により更新された前記ニューロ演算モジュールである更新後演算モジュールのうち、所定の選択条件を満たす前記更新後演算モジュールを、配信対象演算モジュールとして選択する選択部と、
前記選択部が選択した前記配信対象演算モジュールを、前記車載制御装置に対して配信する配信部と、
を備える配信装置。
【請求項２】
前記所定の選択条件とは、前記演算モジュールに対する学習の回数による条件であり、
前記選択部は、前記演算モジュールに対する学習回数が所定のしきい値を超える前記更新後演算モジュールを前記配信対象演算モジュールとして選択する
請求項１に記載の配信装置。
【請求項３】
前記所定の選択条件とは、前記学習部の学習による更新前の前記演算モジュールである更新前演算モジュールが出力する出力値と、前記更新後演算モジュールが出力する出力値との比較による条件であり、
前記選択部は、前記更新前演算モジュールが出力する出力値と、前記更新後演算モジュールが出力する出力値との差が所定の判定基準を超える前記更新後演算モジュールを、前記配信対象演算モジュールとして選択する
請求項１又は請求項２に記載の配信装置。
【請求項４】
前記所定の選択条件とは、前記学習部の学習による更新前の前記演算モジュールである更新前演算モジュールが出力する出力値と、前記更新後演算モジュールが出力する出力値との比較による条件であり、
前記選択部は、前記更新前演算モジュールを含む階層化された複数の前記演算モジュールが出力する出力値と、前記更新前演算モジュールが前記更新後演算モジュールに置換された前記複数の前記演算モジュールが出力する出力値との差に基づいて、前記配信対象演算モジュールを選択する
請求項１又は請求項２に記載の配信装置。
【請求項５】
前記選択部は、前記更新後演算モジュールが複数の階層に存在する場合に、前記階層ごとに、前記配信対象演算モジュールを選択する
請求項４に記載の配信装置。
【請求項６】
前記選択部は、前記階層のうち下層に存在する前記更新後演算モジュールを前記配信対象演算モジュールとして選択したのちに、前記階層のうち上層に存在する前記更新後演算モジュールを前記配信対象演算モジュールとして選択する
請求項５に記載の配信装置。
【請求項７】
前記配信対象演算モジュールは、配信対象の車両の種類に関連付けられており、
前記配信部は、車両の種類に応じた配信優先度に基づいて、複数の前記配信対象演算モジュールのなかから前記車両の種類に応じて選択される前記配信対象演算モジュールを配信する
請求項１から請求項６のいずれか一項に記載の配信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、配信装置に関する。
【背景技術】
【０００２】
従来の技術においては、自動車等の車両の挙動を制御する場合において、人間の指示や操作なしに自律的に動力、操舵装置、制動装置を制御するために、深層ニューラルネットワークに代表される機械学習を使った演算モジュールを用いることで、人間の指示や操作の代替となる行動決定の機能を実現している。この演算モジュールは、内部の変換パラメータに従って入力信号から出力信号を決定する機能を備えており、この内部の変換パラメータを機械学習によって適切に決定することで、自動車に搭載されたセンサや物体検出機能の出力信号を入力として、自動車がそのとき取るべき行動に対応した動力、操舵装置、制動装置の制御信号を決定することができるようになっている。（例えば、特許文献１を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２１１９１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したような演算モジュールは、学習をさせて更新することにより、自動車の挙動をより適切に制御することができるようになることが期待される。このように更新された演算モジュールは、学習が深化し自動車の挙動をより適切に制御することができるようになったタイミングで自動車に配信されることが望ましい。
しかしながら、上述した従来の技術では、演算モジュールの配信タイミングについてまでは検討がなされておらず、例えば、学習が深化した演算モジュールを自動車に対して一斉に配信すると、通信量が膨大になるという問題が生じるおそれがあった。
【０００５】
本発明は、車両の挙動を制御するための演算モジュールの配信時の通信量を低減することができる配信装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態は、ニューラルネットワークによる演算を行うニューロ演算モジュールを含み階層化された複数の演算モジュールと、車両の周囲の状況が検出された検出結果とによって車両の制御情報を生成することにより、車両の挙動を制御する車載制御装置に対して、前記演算モジュールを配信する配信装置であって、車両から取得された前記検出結果及び前記制御情報が記憶される記憶部から、前記検出結果及び前記制御情報を取得する情報取得部と、前記情報取得部が取得する前記検出結果及び前記制御情報に基づいて、前記ニューロ演算モジュールに対する学習を行う学習部と、前記学習部が行う学習により更新された前記ニューロ演算モジュールである更新後演算モジュールのうち、所定の選択条件を満たす前記更新後演算モジュールを、配信対象演算モジュールとして選択する選択部と、前記選択部が選択した前記配信対象演算モジュールを、前記車載制御装置に対して配信する配信部とを備える配信装置である。
【０００７】
また、本発明の一実施形態の配信装置において、前記所定の選択条件とは、前記演算モジュールに対する学習の回数による条件であり、前記選択部は、前記演算モジュールに対する学習回数が所定のしきい値を超える前記更新後演算モジュールを前記配信対象演算モジュールとして選択する。
【０００８】
また、本発明の一実施形態の配信装置において、前記所定の選択条件とは、前記学習部の学習による更新前の前記演算モジュールである更新前演算モジュールが出力する出力値と、前記更新後演算モジュールが出力する出力値との比較による条件であり、前記選択部は、前記更新前演算モジュールが出力する出力値と、前記更新後演算モジュールが出力する出力値との差が所定の判定基準を超える前記更新後演算モジュールを、前記配信対象演算モジュールとして選択する。
【０００９】
また、本発明の一実施形態の配信装置において、前記選択部は、前記更新前演算モジュールを含む階層化された複数の前記演算モジュールが出力する出力値と、前記更新前演算モジュールが前記更新後演算モジュールに置換された前記複数の前記演算モジュールが出力する出力値との差に基づいて、前記配信対象演算モジュールを選択する。
【００１０】
また、本発明の一実施形態の配信装置において、前記選択部は、前記更新後演算モジュールが複数の階層に存在する場合に、前記階層ごとに、前記配信対象演算モジュールを選択する。
【００１１】
また、本発明の一実施形態の配信装置において、前記選択部は、前記階層のうち下層に存在する前記更新後演算モジュールを前記配信対象演算モジュールとして選択したのちに、前記階層のうち上層に存在する前記更新後演算モジュールを前記配信対象演算モジュールとして選択する。
【００１２】
また、本発明の一実施形態の配信装置において、前記配信対象演算モジュールは、配信対象の車両の種類に関連付けられており、前記配信部は、車両の種類に応じた配信優先度に基づいて、複数の前記配信対象演算モジュールのなかから前記車両の種類に応じて選択される前記配信対象演算モジュールを配信する。
【発明の効果】
【００１３】
本発明によれば、車両の挙動を制御するための演算モジュールの配信時の通信量を低減することができる配信装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態の演算モジュール配信システムの機能構成の一例を示す図である。
【図２】本実施形態の制御情報の一例を示す図である。
【図３】本実施形態の車載制御装置の演算経路の一例を示す図である。
【図４】本実施形態の車載制御装置の処理の流れの一例を示す図である。
【図５】本実施形態の車載制御装置の処理の流れの第２の例を示す図である。
【図６】本実施形態の車載制御装置の処理の流れの第３の例を示す図である。
【図７】本実施形態の演算モジュールの構成の具体例を示す図である。
【図８】本実施形態の演算モジュールの学習手順の一例を示す図である。
【図９】本実施形態の選択部による配信対象演算モジュールの選択手順の一例を模式的に示す図である。
【図１０】本実施形態の配信装置の動作の一例を示す図である。
【図１１】本実施形態の学習部による演算モジュールの学習回数の一例を示す図である。
【図１２】本実施形態の選択部の演算モジュールの選択動作の一例を示す図である。
【図１３】本実施形態の選択部による演算モジュール間の比較の一例を示す図である。
【図１４】本実施形態の変形例における選択部による演算モジュール群間の比較の一例を示す図である。
【図１５】本実施形態の変形例における選択部による演算モジュール群間の第一段階の比較の一例を示す図である。
【図１６】本実施形態の変形例における選択部による演算モジュール群間の第二段階の比較の一例を示す図である。
【発明を実施するための形態】
【００１５】
［第１の実施形態］
以下、図を参照して本実施形態の演算モジュール配信システム１の概要について説明する。
図１は、本実施形態の演算モジュール配信システム１の機能構成の一例を示す図である。演算モジュール配信システム１は、車両ＣＲに対して演算モジュールを配信する配信装置７０と、ログデータ記憶部８０と、モジュールライブラリ９０とを備える。まず、車両ＣＲの機能構成について説明する。
【００１６】
［車両ＣＲの機能構成］
車両ＣＲは、車載制御装置１０と、検出情報生成部２０と、車載装置３０と、ロガー４０と、通信部５０と、モジュール更新部６０とを備えている。車載制御装置１０と検出情報生成部２０との間、及び車載制御装置１０と車載装置３０との間は、例えばＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの車載通信ネットワークによって相互に接続されており、情報の授受が可能である。
なお、本実施形態では、車載制御装置１０は、検出情報生成部２０や車載装置３０から独立した筐体を有する装置であるとして説明するがこれに限られない。車載制御装置１０は、検出情報生成部２０や車載装置３０と一体化された装置として構成されてもよい。
【００１７】
検出情報生成部２０は、車両ＣＲの各部の動作及び車両ＣＲの周囲の状況を検出し、検出情報を生成する。この検出情報生成部２０が生成する検出情報を、検出結果ＤＲとも称する。検出結果ＤＲには、車両ＣＲの各部の動作の検出結果と、車両ＣＲの周囲の状況の検出結果とが含まれていてもよいが、以下では車両ＣＲの周囲の状況の検出結果について説明し、車両ＣＲの各部の動作の検出結果についての説明は省略する。
【００１８】
検出情報生成部２０は、センサ部２００と検出結果処理部２１０とを備えている。
センサ部２００は、車両ＣＲの周囲の状況を検出するセンサ等であり、検出した結果を、検出結果処理部２１０を介して、又は直接、検出結果ＤＲとして車載制御装置１０に出力する。本実施形態の一例として、センサ部２００は、ＬＩＤＡＲ装置２０１と、ミリ波装置２０２と、ＧＮＳＳ装置２０３と、カメラ装置２０４とを備えている。
ＬＩＤＡＲ装置２０１は、ＬＩＤＡＲ（Ｌｉｇｈｔ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ、Ｌａｓｅｒ  Ｉｍａｇｉｎｇ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）による車両ＣＲの周囲の画像取得及び測距を行う。ＬＩＤＡＲ装置２０１は、画像取得結果及び測距結果を検出結果ＤＲとして出力する。
ミリ波装置２０２は、ミリ波を用いて車両ＣＲの周囲の形状検出及び測距を行う。ミリ波装置２０２は、形状検出結果及び測距結果を検出結果ＤＲとして出力する。
ＧＮＳＳ装置２０３は、ＧＮＳＳ（Ｇｌｏｂａｌ  Ｎａｖｉｇａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ  Ｓｙｓｔｅｍ）による測位衛星からの測位信号を受信する。ＧＮＳＳ装置２０３は、受信した測位信号を検出結果ＤＲとして出力する。
カメラ装置２０４は、可視光や赤外光を用いて車両ＣＲの周囲の画像取得及び測距を行う。カメラ装置２０４は、画像取得結果及び測距結果を検出結果ＤＲとして出力する。
【００１９】
検出結果処理部２１０は、センサ部２００が出力する検出結果ＤＲを処理することにより、車両ＣＲの周囲の状況を示す情報を生成する。本実施形態の一例では、検出結果処理部２１０は、検出結果処理部２１０は、画像認識部２１１と、物体検出部２１２と、位置推定部２１３とを備えている。
画像認識部２１１は、ＬＩＤＡＲ装置２０１やカメラ装置２０４が出力する画像取得結果及び測距結果に基づいて、これらの画像に含まれる物体の有無、物体の形状・大きさ・種類、物体までの距離、物体の移動速度などを認識する。画像認識部２１１は、画像認識の結果を検出結果ＤＲとして車載制御装置１０に出力する。
物体検出部２１２は、ミリ波装置２０２が出力する形状検出結果及び測距結果に基づいて、物体の有無、物体の形状・大きさ・種類、物体までの距離、物体の移動速度などを検出する。物体検出部２１２は、物体検出の結果を検出結果ＤＲとして車載制御装置１０に出力する。
位置推定部２１３は、ＧＮＳＳ装置２０３が出力する測位信号に基づいて、自車の位置を推定する。位置推定部２１３は、自車の位置推定の結果を検出結果ＤＲとして車載制御装置１０に出力する。
【００２０】
車載装置３０は、ＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）３００や不図示のアクチュエータ類を備えており、車両ＣＲの挙動を制御する。ＥＣＵ３００には、例えば、エンジンや走行用モータを駆動する走行制御ＥＣＵ３０１、ブレーキを制御するブレーキ制御ＥＣＵ３０２、ステアリングの舵角を制御するステアリングＥＣＵ３０３、前照灯や非常停止灯などの灯火を制御する灯火制御ＥＣＵ３０４などがある。
これらＥＣＵ３００は、車載制御装置１０から出力される制御情報ＣＭＤに基づいて動作し、アクチュエータ類を駆動するための情報や信号を出力する。
【００２１】
車載制御装置１０は、不図示のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えており、検出情報生成部２０によって生成される検出結果ＤＲに基づいて演算を行い、この演算の結果として制御情報ＣＭＤを生成する。本実施形態の車載制御装置１０は、この演算を複数の階層に階層化された演算モジュールＭによって行う。
【００２２】
すなわち、車載制御装置１０は、車両ＣＲの周囲の状況が検出された情報を少なくとも含む検出結果（検出情報）ＤＲに基づいて、車両ＣＲの挙動を制御する車載装置３０に与える制御情報ＣＭＤを、階層化された複数の演算モジュールＭによって生成する。
車載制御装置１０は、取得部１２０（不図示）と、演算モジュールＭと、出力部１３０（不図示）とを、ソフトウエア又はハードウエアによる機能部として備える。
【００２３】
取得部１２０は、検出情報生成部２０が出力する検出結果ＤＲを取得する。取得部１２０は、取得した検出結果ＤＲを正規化し、正規化後の情報を演算モジュールＭに供給する。例えば、ＬＩＤＡＲ装置２０１が１６方位を検出する装置である場合、取得部１２０は、１方位目のセンサ値、２方位目のセンサ値、…、１６方位目のセンサ値をそれぞれ０．０〜１．０の範囲の値に正規化する。取得部１２０は、正規化した値を１方位目、２方位目、…、１６方位目の順に並べたデータ列として演算モジュールＭに供給する。
【００２４】
出力部１３０は、演算モジュールＭが生成した制御情報ＣＭＤを車載装置３０に対して出力する。この出力部１３０が出力する制御情報ＣＭＤの一例を、図２を参照して説明する。
【００２５】
図２は、本実施形態の制御情報ＣＭＤの一例を示す図である。車両ＣＲに対して可能である操作が、制御情報ＣＭＤとして予め定義されている。出力部１３０は、これらの制御情報ＣＭＤのそれぞれについて、操作する場合には値「１」を、操作しない場合には値「０（ゼロ）」を出力する。同図に示す一例では、出力部１３０は、制御情報ＣＭＤ「ハンドル（ステアリング）を右に切る」及び、制御情報ＣＭＤ「アクセルを踏む」について、それぞれ値「１」を出力する。この制御情報ＣＭＤが出力される結果、車載装置３０のＥＣＵ３００が舵角及び走行のための動力を制御することにより、車両ＣＲは「右に曲がりながら加速」する。
【００２６】
図１に戻り、演算モジュールＭには、選択モジュール１００と制御モジュール１１０とがある。
選択モジュール１００は、取得部１２０が取得した検出結果ＤＲに基づいて、次階層の複数の演算モジュールＭの中から車両ＣＲの周囲の状況に応じた演算を行う演算モジュールＭを選択する。この選択モジュール１００は、ニューラルネットワークＮＮ（例えば、深層ニューラルネットワーク）によって演算を行う。以下の説明において、ニューラルネットワークＮＮによって演算を行う演算モジュールＭのことを、ニューロ演算モジュールＭＮともいう。
【００２７】
制御モジュール１１０は、選択モジュール１００によって選択され、検出結果ＤＲに基づいて制御情報ＣＭＤを生成する。
すなわち、演算モジュールＭは、選択モジュール１００が前段の演算モジュールＭとして、制御モジュール１１０が後段の演算モジュールＭとして、階層化されている。
【００２８】
［制御モジュールの階層化］
制御モジュール１１０の階層化について説明する。階層化された制御モジュール１１０には、前段制御モジュール１１０ａと、後段制御モジュール１１０ｂとがある。このうち、前段制御モジュール１１０ａは、検出結果ＤＲに基づいて、車両ＣＲの目標挙動ＴＢを判定する。後段制御モジュール１１０ｂは、前段制御モジュール１１０ａによって判定された車両ＣＲの目標挙動ＴＢに基づいて、車載装置３０に与える制御情報ＣＭＤを生成する。
【００２９】
ここで、車両ＣＲの目標挙動ＴＢとは、図２に示した一例においては「右に曲がりながら加速」である。この一例の場合、車両ＣＲは、例えば、交差点の右折レーンにおいて右折待ちをしており、同じく右折待ちをしている前車の進行に追従して交差点を右折する。検出情報生成部２０は、車両ＣＲが交差点の右折レーンにいることを示す検出結果ＤＲと、車両ＣＲの前車が進行して右折を開始したこと示す検出結果ＤＲとを、車載制御装置１０に供給する。前段制御モジュール１１０ａは、これらの検出結果ＤＲに基づいて、車両ＣＲの目標挙動ＴＢが「右に曲がりながら加速」することであると判定する。後段制御モジュール１１０ｂは、前段制御モジュール１１０ａによって判定された車両ＣＲの目標挙動ＴＢ、すなわち「右に曲がりながら加速」に基づいて、「ハンドル（ステアリング）を右に切る：値１」及び、制御情報ＣＭＤ「アクセルを踏む：値１」を制御情報ＣＭＤとして生成する。
図１に示す一例では、制御モジュール１１０のうち、制御モジュール１１１と制御モジュール１１２とが、前段制御モジュール１１０ａに相当し、制御モジュール１１５と制御モジュール１１６とが後段制御モジュール１１０ｂに相当する。すなわち、同図の一例では、制御モジュール１１１と制御モジュール１１５とが互いに階層化され、制御モジュール１１２と制御モジュール１１６とが互いに階層化されている。
【００３０】
［選択モジュールの階層化］
選択モジュール１００の階層化について説明する。階層化された選択モジュール１００には、前段選択モジュール１００ａと、後段選択モジュール１００ｂとがある。このうち、前段選択モジュール１００ａは、次階層の複数の選択モジュール１００の中から車両ＣＲの周囲の状況に応じた選択モジュール１００を選択する。後段選択モジュール１００ｂは、前段選択モジュール１００ａによって選択され、次階層の複数の演算モジュールＭの中から車両ＣＲの周囲の状況に応じた演算モジュールＭを選択する。
【００３１】
図１に示す一例では、選択モジュール１００のうち、選択モジュール１０１と選択モジュール１０２との間の関係では、選択モジュール１０１が前段選択モジュール１００ａに相当し、選択モジュール１０２が後段選択モジュール１００ｂに相当する。また、選択モジュール１０２と選択モジュール１０３との間の関係では、選択モジュール１０２が前段選択モジュール１００ａに相当し、選択モジュール１０３が後段選択モジュール１００ｂに相当する。
【００３２】
ロガー４０は、車載制御装置１０、検出情報生成部２０及び車載装置３０と接続されており、これら各部、各装置が出力する情報を一時記憶する。
【００３３】
通信部５０は、基地局ＢＳを介して配信装置７０との間において情報を送受信する。具体的には通信部５０は、ロガー４０に一時記憶されている情報を、配信装置７０に送信する。また、通信部５０は、配信装置７０が提供する演算モジュールＭの更新データを受信する。以下の説明において、配信装置７０が提供する演算モジュールＭの更新データのことを、配信対象演算モジュールＭＤＴとも記載する。
【００３４】
モジュール更新部６０は、通信部５０が配信対象演算モジュールＭＤＴを受信した場合に、車載制御装置１０の演算モジュールＭを、配信対象演算モジュールＭＤＴに更新する。この一例では、車載制御装置１０の演算モジュールＭは、例えばフラッシュメモリなどの書き換え可能な不揮発性メモリに記憶されている。この場合、モジュール更新部６０は、既に不揮発性メモリに記憶されている演算モジュールＭを、通信部５０が受信した配信対象演算モジュールＭＤＴに書き換える。
【００３５】
［配信装置７０の機能構成］
配信装置７０は、車両ＣＲから提供されるログデータに基づいて演算モジュールＭを再学習することにより演算モジュールＭを更新し、更新した演算モジュールＭを車両ＣＲに配布する。配信装置７０には、ログデータ記憶部８０と、モジュールライブラリ９０とが接続される。なお、これらログデータ記憶部８０とモジュールライブラリ９０とは、配信装置７０とは別体の装置として構成されるとして説明するがこれに限られない。配信装置７０と、ログデータ記憶部８０と、モジュールライブラリ９０とは、一部又は全部が一体の装置として構成されてもよい。
【００３６】
ログデータ記憶部８０には、車両ＣＲから取得された検出結果ＤＲ及び制御情報ＣＭＤが記憶される。以下の説明において、車両ＣＲから取得された検出結果ＤＲ及び制御情報ＣＭＤを総称してログデータともいう。
モジュールライブラリ９０には、配信装置７０が配信する演算モジュールＭが記憶される。配信装置７０は、モジュールライブラリ９０に記憶される演算モジュールＭから配信対象の演算モジュールＭを選択し、選択した演算モジュールＭを車両ＣＲに対して配信する。
【００３７】
配信装置７０は、配信装置通信部７１０と、情報取得部７２０と、学習部７３０と、選択部７４０とを備える。
配信装置通信部７１０は、車両ＣＲの通信部５０が送信するログデータを受信する。また、配信装置通信部７１０は、配信対象演算モジュールＭＤＴを車両ＣＲに対して送信する。
情報取得部７２０は、ログデータ記憶部８０（記憶部）から、検出結果ＤＲ及び制御情報ＣＭＤを取得する。
学習部７３０は、情報取得部７２０が取得する検出結果ＤＲ及び制御情報ＣＭＤに基づいて、ニューロ演算モジュールＭＮに対する学習を行う。
選択部７４０は、学習部７３０が行う学習により更新されたニューロ演算モジュールＭＮである更新後演算モジュールＭＡＴのうち、所定の選択条件を満たす更新後演算モジュールＭＡＴを、配信対象演算モジュールＭＤＴとして選択する。
【００３８】
選択部７４０は、配信対象モジュール選択部７４１と、配信先車両選択部７４２とを備える。配信対象モジュール選択部７４１は、モジュールライブラリ９０に記憶される演算モジュールＭのなかから、配信対象演算モジュールＭＤＴを選択する。配信先車両選択部７４２は、選択された配信対象演算モジュールＭＤＴの配信先の車両ＣＲを、複数の車両ＣＲのなかから選択する。
【００３９】
選択部７４０は、選択した配信対象演算モジュールＭＤＴを配信装置通信部７１０に供給する。配信装置通信部７１０は、選択部７４０が選択した配信対象演算モジュールＭＤＴを、車載制御装置１０に対して配信する。配信装置通信部７１０が配信対象演算モジュールＭＤＴを送信する場合には、配信装置通信部７１０は、配信部として機能する。
【００４０】
［車載制御装置１０の演算経路］
次に、図３を参照して、車載制御装置１０の演算経路について説明する。
図３は、本実施形態の車載制御装置１０の演算経路の一例を示す図である。選択モジュール１０１は、不図示の取得部１２０から検出結果ＤＲを取得する。選択モジュール１０１は、選択モジュール１０２又は制御モジュール１１２のいずれを選択するべきかを、検出結果ＤＲに基づいて判定する。この一例では、選択モジュール１０１は、選択モジュール１０２を選択する。次に、選択モジュール１０２は、選択モジュール１０３又は制御モジュール１１１のいずれを選択するべきかを、検出結果ＤＲに基づいて判定する。この一例では、選択モジュール１０２は、制御モジュール１１１を選択する。制御モジュール１１１は、車両ＣＲの目標挙動ＴＢを判定し、制御モジュール１１５に目標挙動ＴＢを供給する。制御モジュール１１５は、目標挙動ＴＢに基づいて制御情報ＣＭＤを生成する。生成された制御情報ＣＭＤは、不図示の出力部１３０によって各ＥＣＵ３００に供給される。
【００４１】
［車載制御装置の処理の流れ（実施例１）］
図４は、本実施形態の車載制御装置１０の処理の流れの一例を示す図である。この一例では、車載制御装置１０は、１つの選択モジュール１００と、２つの制御モジュール１１０とを演算モジュールＭとして備える。この一例の場合、車載制御装置１０の演算モジュールＭは、１段目の選択モジュール１００と、２段目の制御モジュール１１０との２層に階層化されている。
【００４２】
（ステップＳ１０）センサ部２００は、車両ＣＲの周囲の状況を検出して、検出した結果を検出結果ＤＲとして出力する。
（ステップＳ２０）検出結果処理部２１０は、ステップＳ１０において出力された検出結果ＤＲに基づいて、物体の有無、物体の形状・大きさ・種類、物体までの距離、物体の移動速度などを検出する。検出結果処理部２１０は、検出した結果を検出結果ＤＲとして車載制御装置１０に出力する。
（ステップＳ３０）車載制御装置１０の取得部１２０は、センサ部２００から出力される検出結果ＤＲ、又は検出結果処理部２１０から出力される検出結果ＤＲを取得する。
【００４３】
（ステップＳ４０）選択モジュール１００は、複数の制御モジュール１１０のうちから、ステップＳ３０において取得された検出結果ＤＲが示す車両ＣＲの周囲の状況に応じた制御モジュール１１０を選択する。
（ステップＳ５０）制御モジュール１１０は、検出結果ＤＲに基づいて制御情報ＣＭＤを生成する。ここで、選択モジュール１００が制御モジュール１１０−Ａを選択した場合（ステップＳ４０；Ａ）には、制御モジュール１１０−ＡによってステップＳ５０−１が実行される。選択モジュール１００が制御モジュール１１０−Ｂを選択した場合（ステップＳ４０；Ｂ）には、制御モジュール１１０−ＢによってステップＳ５０−２が実行される。
【００４４】
（ステップＳ６０）各ＥＣＵ３００は、ステップＳ５０において生成された制御情報ＣＭＤに基づいて、アクチュエータ類を駆動することにより、車両ＣＲの挙動を制御する。例えば、走行制御ＥＣＵ３０１は、制御情報ＣＭＤに基づいてエンジンや走行用モータを駆動する（ステップＳ６０−１）。ブレーキ制御ＥＣＵ３０２は、制御情報ＣＭＤに基づいてブレーキを制御する（ステップＳ６０−２）。ステアリングＥＣＵ３０３は、制御情報ＣＭＤに基づいて、ステアリングの舵角を制御する（ステップＳ６０−３）。
【００４５】
［車載制御装置の処理の流れ（実施例２）］
次に、図５を参照して、車載制御装置１０の処理の流れの第２の例について説明する。
図５は、本実施形態の車載制御装置１０の処理の流れの第２の例を示す図である。なお、以下の説明では、図４の一例において説明した各部及び各動作と同一のものについては、同一の符号を付してその説明を省略する。本実施例では、図４に示した実施例１に対して、制御モジュール１１０が複数の階層に分割されている点で異なる。
【００４６】
（ステップＳ１５０）前段制御モジュール１１０ａは、検出結果ＤＲに基づいて車両ＣＲの目標挙動ＴＢを生成する。ここで、選択モジュール１００が前段制御モジュール１１０ａ−Ａを選択した場合（ステップＳ４０；Ａ）には、前段制御モジュール１１０ａ−ＡによってステップＳ１５０−１が実行される。選択モジュール１００が前段制御モジュール１１０ａ−Ｂを選択した場合（ステップＳ４０；Ｂ）には、前段制御モジュール１１０ａ−ＢによってステップＳ１５０−２が実行される。
【００４７】
（ステップＳ１６０）後段制御モジュール１１０ｂは、車両ＣＲの目標挙動ＴＢと検出結果ＤＲとに基づいて制御情報ＣＭＤを生成する。ここで、選択モジュール１００が後段制御モジュール１１０ｂ−Ａを選択した場合（ステップＳ１５０；Ａ）には、後段制御モジュール１１０ｂ−ＡによってステップＳ１６０−１が実行される。選択モジュール１００が後段制御モジュール１１０ｂ−Ｂを選択した場合（ステップＳ１５０；Ｂ）には、後段制御モジュール１１０ｂ−ＢによってステップＳ１６０−２が実行される。
【００４８】
［車載制御装置の処理の流れ（実施例３）］
次に、図６を参照して、車載制御装置１０の処理の流れの第３の例について説明する。
図６は、本実施形態の車載制御装置１０の処理の流れの第３の例を示す図である。なお、以下の説明では、図４及び図５の一例において説明した各部及び各動作と同一のものについては、同一の符号を付してその説明を省略する。本実施例では、図４に示した実施例１に対して、選択モジュール１００が複数の階層に分割されている点で異なる。
【００４９】
（ステップＳ２４０）前段選択モジュール１００ａは、複数の後段選択モジュール１００ｂ（後段選択モジュール１００ｂ−Ａ及び１００ｂ−Ｂ）のうちから、ステップＳ３０において取得された検出結果ＤＲが示す車両ＣＲの周囲の状況に応じた後段選択モジュール１００ｂを選択する。
（ステップＳ２５０）後段選択モジュール１００ｂは、複数の制御モジュール１１０（制御モジュール１１０−Ａ１、１１０−Ａ２、１１０−Ｂ１及び１１０−Ｂ２）のうちから、ステップＳ３０において取得された検出結果ＤＲが示す車両ＣＲの周囲の状況に応じた制御モジュール１１０を選択する。
【００５０】
なお、上述した実施例２及び実施例３を組み合わせて演算モジュールＭが構成されていてもよい。
【００５１】
［車載制御装置の演算モジュール構成の具体例］
次に、図７を参照して、本実施形態の演算モジュールＭの構成の具体例について説明する。
図７は、本実施形態の演算モジュールＭの構成の具体例を示す図である。選択モジュール１００は、選択モジュール１０１〜選択モジュール１０４の４階層によって構成される。選択モジュール１０１〜選択モジュール１０４は、いずれもニューラルネットワークＮＮによって演算を行う。
【００５２】
制御モジュール１１０は、３つの制御モードＭＤに分類される。この制御モードＭＤには、ゆずりあいモードＭＤ１と、通常走行モードＭＤ２と、緊急行動モードＭＤ３とがある。
ゆずりあいモードＭＤ１は、ラウンドアバウトでの加減速（制御モジュール１１１）、レーン走行（制御モジュール１１５）によって構成される。
通常走行モードＭＤ２には、ラウンドアバウト・交差点周辺走行モードＭＤ２−１と、直線路走行モードＭＤ２−２とがある。ラウンドアバウト・交差点周辺走行モードＭＤ２−１には、さらに加減速モードＭＤ２−１−１と、停止モードＭＤ２−１−２とがある。
加減速モードＭＤ２−１−１は、対向車・合流先の車両に応じた加減速（制御モジュール１１３ａ）と、レーン走行（制御モジュール１１７ａ）とによって構成される。
停止モードＭＤ２−１−２は、一旦停止線での停止（制御モジュール１１３ｂ）と、レーン走行（制御モジュール１１７ｂ）とによって構成される。
直線路走行モードＭＤ２−２は、先行車に応じた加減速（制御モジュール１１３）と、レーン走行（制御モジュール１１７）とによって構成される。
緊急行動モードＭＤ３は、緊急停止（制御モジュール１１２）と、レーン走行（制御モジュール１１６）とによって構成される。
【００５３】
ここで、ラウンドアバウトでの加減速（制御モジュール１１１）及び緊急停止（制御モジュール１１２）は、いずれもニューラルネットワークＮＮによって演算を行う。
レーン走行（制御モジュール１１５、制御モジュール１１６、制御モジュール１１７、制御モジュール１１７ａ、及び制御モジュール１１７ｂ）は、いずれもニューラルネットワークＮＮとＰＩＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ−Ｉｎｔｅｇｒａｌ−Ｄｉｆｆｅｒｅｎｔｉａｌ）制御アルゴリズムとによって演算を行う。
先行車に応じた加減速（制御モジュール１１３）、対向車・合流先の車両に応じた加減速（制御モジュール１１３ａ）及び一旦停止線での停止（制御モジュール１１３ｂ）は、いずれもルールベース演算によって演算を行う。ルールベース演算とは、車載装置３０に与える制御情報ＣＭＤを算出する演算手順について、検出結果ＤＲと制御情報ＣＭＤとの対応関係が予め定められているものをいう。ルールベース演算の一例には、ｉｆ−ｔｈｅｎ−ｅｌｓｅによる条件分岐によって制御情報ＣＭＤを算出する演算方式がある。
【００５４】
選択モジュール１０１は、取得部１２０が取得した検出結果ＤＲに基づき、選択モジュール１０２又は緊急行動モードＭＤ３の制御モジュール１１０のうち、いずれか一方を選択する。一例として、車両ＣＲの走行中に、横道からの人の飛び出しや前車の積載物の落下などの緊急状態が発生した場合には、選択モジュール１０１は、緊急行動モードＭＤ３の制御モジュール１１０を選択する。選択モジュール１０１は、この一例のような緊急状態が発生していなければ選択モジュール１０２を選択する。
【００５５】
選択モジュール１０２は、検出結果ＤＲに基づき、ゆずりあいモードＭＤ１又は選択モジュール１０３のうち、いずれか一方を選択する。一例として、車両ＣＲがラウンドアバウト（環状交差点）を走行している状態では、車両同士が互いにゆずりあって走行することにより車両群全体が効率よく走行することができるという場合がある。このような場合には、選択モジュール１０２は、ゆずりあいモードＭＤ１を選択する。選択モジュール１０２は、ラウンドアバウトを走行していなければ選択モジュール１０３を選択する。
【００５６】
選択モジュール１０３は、選択モジュール１０４又は直線路走行モードＭＤ２−２のうち、いずれか一方を選択する。一例として、車両ＣＲがラウンドアバウトや交差点を走行する場合には、選択モジュール１０３は、選択モジュール１０４を選択する。車両ＣＲが直線路を走行する場合には、選択モジュール１０３は、直線路走行モードＭＤ２−２を選択する。
【００５７】
選択モジュール１０４は、加減速モードＭＤ２−１−１又は停止モードＭＤ２−１−２のうち、いずれか一方を選択する。一例として、車両ＣＲが信号機付きの交差点において停止（赤）信号が現示されている場合や一時停止標識のある交差点を走行する場合には、選択モジュール１０４は、停止モードＭＤ２−１−２を選択する。車両ＣＲがラウンドアバウト内に合流する場合や、ラウンドアバウト内を先行車に追従して走行する場合などには、選択モジュール１０４は、加減速モードＭＤ２−１−１を選択する。
【００５８】
各制御モードＭＤに属する制御モジュール１１０は、選択モジュール１００によって選択されると、出力部１３０を介して各ＥＣＵ３００に演算結果を制御情報ＣＭＤとして出力する。
【００５９】
［演算モジュールＭの学習手順］
次に、学習部７３０が行う演算モジュールＭの学習手順の一例について、図８を参照して説明する。
図８は、本実施形態の演算モジュールＭの学習手順の一例を示す図である。一例として、制御モジュール１１０が前段制御モジュール１１０ａと後段制御モジュール１１０ｂとの２階層で構成されており、選択モジュール１００が複数の前段制御モジュール１１０ａのうちから、特定の前段制御モジュール１１０ａを選択するように構成されている場合について説明する。
【００６０】
第１段階においては、後段制御モジュール１１０ｂの学習（例えば、機械学習）が行われる（図８（Ａ））。この後段制御モジュール１１０ｂには、ＰＩＤ制御アルゴリズムが含まれている。第１段階においては、このＰＩＤ制御のパラメータをどのような値にすればよいかを学習させる。
第２段階においては、学習済みの後段制御モジュール１１０ｂを前段制御モジュール１１０ａに接続して、前段制御モジュール１１０ａの学習が行われる（図８（Ｂ））。この第２段階においては、前段制御モジュール１１０ａごとに、システム設計者がどのような走行シーン向けの前段制御モジュール１１０ａであるかを決めて、その走行シーンのデータに基づいて学習させる。すなわち、前段制御モジュール１１０ａについて、特定の走行シーンだけに絞って学習させる。
第３段階においては、学習済みの後段制御モジュール１１０ｂ及び前段制御モジュール１１０ａを選択モジュール１００に接続して、選択モジュール１００を学習させる（図８（Ｃ））。この第３段階においては、検出結果ＤＲに対する前段制御モジュール１１０ａの挙動を観察しつつ、ある検出結果ＤＲについて、どの前段制御モジュール１１０ａを選択すればよいのかを探る。この結果、第３段階においては、ある検出結果ＤＲがどのような走行シーンを示しているのかを選択モジュール１００に学習させることになる。
【００６１】
すなわち、この一例では、ある演算モジュールＭの後段の演算モジュールＭは２つ以上あり、それぞれ異なる状況に特化して動力、操舵装置、制動装置の制御情報ＣＭＤを決定できるように機械学習した後に、前段の演算モジュールＭに接続される。前段のモジュールは自動車の走行中に得られたセンサ部２００や検出結果処理部２１０の検出結果ＤＲから状況判断を行い、そのときの状況に応じて後段の演算モジュールＭのいずれか１つを選択して動作させる。動作した後段の演算モジュールＭはセンサ部２００や検出結果処理部２１０の検出結果ＤＲから動力、操舵装置、制動装置の制御情報ＣＭＤを決定する。
【００６２】
［配信対象演算モジュールＭＤＴの選択］
次に、配信装置７０の選択部７４０による配信対象演算モジュールＭＤＴの選択手順について説明する。
【００６３】
図９は、本実施形態の選択部７４０による配信対象演算モジュールＭＤＴの選択手順の一例を模式的に示す図である。モジュールライブラリ９０には、更新前演算モジュールＭＢＦと、更新後演算モジュールＭＡＴとが記憶されている。ここで、更新前演算モジュールＭＢＦとは、学習部７３０による学習前の演算モジュールＭである。一例として、更新前演算モジュールＭＢＦとは、車両ＣＲに配信済みの配信対象演算モジュールＭＤＴと同一の演算モジュールＭである。更新前演算モジュールＭＢＦには、車両ＣＲの車載制御装置１０に含まれる各演算モジュールＭに対応する演算モジュールＭが含まれる。例えば、更新前演算モジュールＭＢＦには、図１に示した選択モジュール１０１に対応する更新前演算モジュールＭＢＦとしての更新前演算モジュールＭＢＦ１と、図１に示した選択モジュール１０２に対応する更新前演算モジュールＭＢＦとしての更新前演算モジュールＭＢＦ２とが含まれる。この一例では、モジュールライブラリ９０には、ｍ種類（ｍは自然数。）の更新前演算モジュールＭＢＦが記憶されている。すなわち、モジュールライブラリ９０には、更新前演算モジュールＭＢＦ１から更新前演算モジュールＭＢＦｍまでの更新前演算モジュールＭＢＦが記憶されている。これら更新前演算モジュールＭＢＦのうち、ｋ種類目（ｋは自然数。）の更新前演算モジュールＭＢＦを更新前演算モジュールＭＢＦｋと記載する。
【００６４】
学習部７３０（同図においては不図示）は、これらの各更新前演算モジュールＭＢＦについて、ログデータ記憶部８０に記憶されているログデータに基づいて学習を行う。学習部７３０は、学習を行った演算モジュールＭを更新後演算モジュールＭＡＴとして、モジュールライブラリ９０に記憶させる。具体的には、学習部７３０は、更新前演算モジュールＭＢＦ１に対して学習を行い、学習後の演算モジュールＭを更新後演算モジュールＭＡＴ１としてモジュールライブラリ９０に記憶させる。同様に、学習部７３０は、それぞれのｋ（ただし、１≦ｋ≦ｍ。）について、更新前演算モジュールＭＢＦｋに対して学習を行い、学習後の演算モジュールＭを更新後演算モジュールＭＡＴｋとしてモジュールライブラリ９０に記憶させる。
【００６５】
なお、学習部７３０は、ｍ種類の更新前演算モジュールＭＢＦのうち、すべての種類の更新前演算モジュールＭＢＦに対して学習を行ってもよい。また、学習部７３０が学習を行わない更新前演算モジュールＭＢＦがあってもよい。
また、学習部７３０は、更新後演算モジュールＭＡＴに対して繰り返し（複数回の）学習を行ってもよい。
【００６６】
選択部７４０は、モジュールライブラリ９０に記憶されている更新後演算モジュールＭＡＴのなかから、配信対象演算モジュールＭＤＴを選択する。同図の一例では、選択部７４０は、更新後演算モジュールＭＡＴｋを配信対象演算モジュールＭＤＴとして選択する。配信装置通信部７１０は、選択部７４０が選択した更新後演算モジュールＭＡＴｋを配信対象演算モジュールＭＤＴとして車両ＣＲに対して配信（送信）する。
【００６７】
［配信装置７０の動作］
図１０を参照して、本実施形態の配信装置７０の動作の一例について説明する。
図１０は、本実施形態の配信装置７０の動作の一例を示す図である。同図においては、学習に必要なログデータがログデータ記憶部８０に記憶されており、学習対象の演算モジュールＭがモジュールライブラリ９０に記憶されているとして説明する。
【００６８】
（ステップＳ１１０）学習部７３０は、モジュールライブラリ９０に記憶されている演算モジュールＭのなかから、学習対象の演算モジュールＭを選択する。
（ステップＳ１２０）学習部７３０は、ログデータ記憶部８０からログデータを取得する。
（ステップＳ１３０）学習部７３０は、ステップＳ１２０において取得したログデータに基づいて、ステップＳ１１０において選択した演算モジュールＭ（例えば、更新前演算モジュールＭＢＦ）に対する学習を実施する。学習部７３０は、学習後の演算モジュールＭを更新後演算モジュールＭＡＴとしてモジュールライブラリ９０に記憶させる。
【００６９】
（ステップＳ１４０）選択部７４０は、モジュールライブラリ９０に記憶されている更新後演算モジュールＭＡＴのうち、配信の対象となる演算モジュールＭを配信対象演算モジュールＭＤＴとして選択する。
（ステップＳ１５０）配信装置通信部７１０は、ステップＳ１４０において選択された配信対象演算モジュールＭＤＴを車両ＣＲに対して配信（送信）する。
次に、ステップＳ１４０の詳細について、すなわち、選択部７４０による配信対象演算モジュールＭＤＴの選択条件について説明する。
【００７０】
［配信対象演算モジュールＭＤＴの選択条件（１）学習回数による選択］
選択部７４０は、学習部７３０による演算モジュールＭの学習回数に基づいて、配信対象演算モジュールＭＤＴを選択する。以下、図１１を参照して、より具体的に説明する。
【００７１】
図１１は、本実施形態の学習部７３０による演算モジュールＭの学習回数の一例を示す図である。学習部７３０は、演算モジュールＭに対する学習を行うごとに、演算モジュールＭの学習回数を記録する。同図の一例では、更新後演算モジュールＭＡＴ１は、５００回の学習がなされている。これと同様に、更新後演算モジュールＭＡＴ２について１００回、更新後演算モジュールＭＡＴ３について３００回、…、更新後演算モジュールＭＡＴｋについて１０００回、…、更新後演算モジュールＭＡＴｍについて３００回の学習がなされている。
【００７２】
選択部７４０は、更新後演算モジュールＭＡＴのうち、学習回数が所定のしきい値を超えている演算モジュールＭを配信対象演算モジュールＭＤＴとして選択する。一例として、所定のしきい値が８００回である場合、選択部７４０は、８００回を超える学習がなされている更新後演算モジュールＭＡＴを、配信対象演算モジュールＭＤＴとして選択する。同図の一例では、選択部７４０は、所定のしきい値である８００回を超える学習回数の演算モジュールＭとして、更新後演算モジュールＭＡＴｋを配信対象演算モジュールＭＤＴとして選択する。
【００７３】
すなわち、この一例において所定の選択条件とは、演算モジュールＭに対する学習の回数による条件である。また、選択部７４０は、演算モジュールＭに対する学習回数が所定のしきい値を超える更新後演算モジュールＭＡＴを配信対象演算モジュールＭＤＴとして選択する。
なお、ここでは、選択部７４０は、１つの更新後演算モジュールＭＡＴを選択するとして説明したが、これに限られない。選択部７４０は、演算モジュールＭに対する学習回数が所定のしきい値を超える更新後演算モジュールＭＡＴが複数ある場合には、これら複数の更新後演算モジュールＭＡＴをそれぞれ配信対象演算モジュールＭＤＴとして選択してもよい。
【００７４】
［配信対象演算モジュールの選択条件（２）出力値どうしの比較による選択］
選択部７４０は、更新前演算モジュールＭＢＦの出力値と、更新後演算モジュールＭＡＴの出力値との比較結果に基づいて、配信対象演算モジュールＭＤＴを選択する。以下、図１２を参照して、より具体的に説明する。
【００７５】
図１２は、本実施形態の選択部７４０の演算モジュールＭの選択動作の一例を示す図である。
（ステップＳ２１０）選択部７４０は、演算モジュールＭに対する入力値ＩＮｉ（０＜ｉ≦Ｉ；ｉ、Ｉは自然数。）を用意する。一例として、選択部７４０は、ログデータ記憶部８０に記憶されているログデータのうち、検出結果ＤＲに基づいてＩ種類の入力値ＩＮを生成する。
（ステップＳ２２０）選択部７４０は、モジュール判定のためのモジュールカウンタｎをｎ＝１に初期化する。
（ステップＳ２３０）選択部７４０は、モジュール判定のための入力値カウンタｉをｉ＝１に初期化する。
【００７６】
（ステップＳ２４０）選択部７４０は、更新前演算モジュールＭＢＦｎに対して、ステップＳ２１０において生成した入力値ＩＮｉを入力（供給）し、その結果得られる更新前演算モジュールＭＢＦｎの出力値ＯＵＴｉ＿ｂｅｆｏｒｅを取得する。選択部７４０は、取得した出力値ＯＵＴｉ＿ｂｅｆｏｒｅを記憶部（不図示）に記憶させる。
【００７７】
（ステップＳ２５０）選択部７４０は、更新後演算モジュールＭＡＴｎに対して、ステップＳ２１０において生成した入力値ＩＮｉを入力（供給）し、その結果得られる更新後演算モジュールＭＡＴｎの出力値ＯＵＴｉ＿ａｆｔｅｒを取得する。選択部７４０は、取得した出力値ＯＵＴｉ＿ａｆｔｅｒを記憶部（不図示）に記憶させる。
【００７８】
（ステップＳ２６０）選択部７４０は、入力値カウンタｉが、入力値ＩＮの種類数Ｉに達しているか否かを判定する。選択部７４０は、入力値カウンタｉが、入力値ＩＮの種類数Ｉに達していないと判定した場合（ステップＳ２６０；ＮＯ）には、入力値カウンタｉをインクリメントして、処理をステップＳ２４０に戻す。選択部７４０は、入力値カウンタｉが、入力値の種類数Ｉに達していると判定した場合（ステップＳ２６０；ＹＥＳ）には、処理をステップＳ２７０に進める。
【００７９】
（ステップＳ２７０）選択部７４０は、ステップＳ２４０において得られた更新前演算モジュールＭＢＦｎの出力値ＯＵＴｉ＿ｂｅｆｏｒｅと、ステップＳ２５０において得られた更新後演算モジュールＭＡＴｎの出力値ＯＵＴｉ＿ａｆｔｅｒとを比較する。
【００８０】
図１３は、本実施形態の選択部７４０による演算モジュールＭ間の比較の一例を示す図である。選択部７４０は、更新前演算モジュールＭＢＦが出力する出力値ＯＵＴｉ＿ｂｅｆｏｒｅと、更新後演算モジュールＭＡＴが出力する出力値ＯＵＴｉ＿ａｆｔｅｒとを比較する。選択部７４０は、更新前演算モジュールＭＢＦが出力する出力値ＯＵＴｉ＿ｂｅｆｏｒｅと、更新後演算モジュールＭＡＴが出力する出力値ＯＵＴｉ＿ａｆｔｅｒとの差が所定の判定基準を超える更新後演算モジュールＭＡＴを、配信対象演算モジュールＭＤＴとして選択する。
【００８１】
ここで、所定の判定基準は、一例として出力値ＯＵＴどうしのユークリッド距離に基づいて定められる。この場合、選択部７４０は、ある演算モジュールＭの出力値ＯＵＴｉ＿ｂｅｆｏｒｅと出力値ＯＵＴｉ＿ａｆｔｅｒとの間のユークリッド距離が、所定の距離以上に離れている場合に、この演算モジュールＭを配信対象演算モジュールＭＤＴとして選択する。
【００８２】
なお、出力値ＯＵＴｉ＿ｂｅｆｏｒｅ及び出力値ＯＵＴｉ＿ａｆｔｅｒの組は、入力値ＩＮの種類数Ｉに応じた数、存在する。この場合、選択部７４０は、出力値ＯＵＴｉ＿ｂｅｆｏｒｅ及び出力値ＯＵＴｉ＿ａｆｔｅｒの組をベクトルとみなして、出力値ＯＵＴｉ＿ｂｅｆｏｒｅと出力値ＯＵＴｉ＿ａｆｔｅｒとの間のユークリッド距離の組数ぶんの平均値（つまり、平均ユークリッド距離）を算出する。選択部７４０は、ある演算モジュールＭについて算出した平均ユークリッド距離が、所定の距離以上に離れている場合に、この演算モジュールＭを配信対象演算モジュールＭＤＴとして選択する。
【００８３】
（ステップＳ２８０）図１２に戻り、選択部７４０は、モジュールカウンタｎが選択対象の演算モジュールＭのモジュール数ｍに達しているか否かを判定する。選択部７４０は、モジュールカウンタｎが、演算モジュールＭのモジュール数ｍに達していないと判定した場合（ステップＳ２８０；ＮＯ）には、モジュールカウンタｎをインクリメントして、処理をステップＳ２３０に戻す。選択部７４０は、モジュールカウンタｎが、演算モジュールＭのモジュール数ｍに達していると判定した場合（ステップＳ２８０；ＹＥＳ）には、処理を終了する。
【００８４】
［実施形態のまとめ］
以上説明したように、本実施形態の配信装置７０は、モジュールライブラリ９０に記憶されている更新後演算モジュールＭＡＴのなかから、配信対象演算モジュールＭＤＴを選択して配信する。このように構成された配信装置７０によれば、モジュールライブラリ９０に記憶されている更新後演算モジュールＭＡＴを、例えば、すべて配信する場合に比べて、演算モジュールＭの配信時の通信量を低減することができる。
【００８５】
また、本実施形態の配信装置７０は、選択部７４０が、演算モジュールＭに対する学習回数が所定のしきい値を超える更新後演算モジュールＭＡＴを配信対象演算モジュールＭＤＴとして選択する。ここで、学習回数が所定値を超えていれば、演算モジュールＭの学習結果が所定の程度で飽和し、出力値ＯＵＴがより安定する。このように構成された配信装置７０によれば、よく学習され、学習結果がより安定した演算モジュールＭを配信することができる。
【００８６】
また、本実施形態の配信装置７０は、選択部７４０が、選択部７４０は、更新前演算モジュールＭＢＦが出力する出力値ＯＵＴと、更新後演算モジュールＭＡＴが出力する出力値ＯＵＴとの差が所定の判定基準を超える更新後演算モジュールＭＡＴを、配信対象演算モジュールＭＤＴとして選択する。ここで、演算モジュールＭの学習前の出力値ＯＵＴと学習後の出力値ＯＵＴ間の差が大きければ、演算モジュールＭがよく学習されたことを示す。このように構成された配信装置７０によれば、よく学習された演算モジュールＭを配信することができる。
【００８７】
また、上述したように演算モジュールＭを構成することにより、配信装置７０は、演算モジュールＭ毎に学習させることができ、かつ学習済みの演算モジュールＭを用いて他の演算モジュールＭを学習させることができる。このため、配信装置７０によれば、すべての演算モジュールＭを同時に学習させる場合に比べて学習効率が高くなり、短期間で学習させることができる。つまり、配信装置７０によれば、車両ＣＲの挙動を制御するための演算モジュールＭの学習の難度を低減することができる。
【００８８】
なお、選択部７４０は、上述した演算モジュールＭに対する学習回数に基づく第１の選択条件と、更新前演算モジュールＭＢＦの出力値と更新後演算モジュールＭＡＴの出力値との比較結果に基づく第２の選択条件とを組み合わせて、配信対象演算モジュールＭＤＴを選択してもよい。
具体的には、選択部７４０は、学習回数が所定のしきい値を超える演算モジュールＭを配信候補として選択し、配信候補として選択した演算モジュールＭの中から、出力値を比較することにより配信対象演算モジュールＭＤＴを選択する。すなわち、選択部７４０は、第１の選択条件に基づいて絞り込まれた演算モジュールＭの中から、第２の選択条件に基づいて配信対象演算モジュールＭＤＴを選択する。ここで、第２の選択条件（例えば、演算モジュールＭの出力値どうしの比較結果）に基づく選択処理の処理負荷は、第１の選択条件（例えば、学習回数）に基づく選択処理の処理負荷よりも大きい。すなわち、選択部７４０は、処理負荷の比較的小さい選択条件を第１の選択条件として、処理負荷の比較的大きい選択条件を第２の選択条件として、複数段階の判定を行う。
このように構成することにより、本実施形態の配信装置７０は、処理負荷の比較的大きい選択条件のみによって判定を行う場合に比べ、選択部７４０による処理負荷を低減することができる。
【００８９】
［変形例（１）演算モジュール群の出力値どうしの比較による選択］
上述した実施形態においては、１つの演算モジュールＭについて更新前演算モジュールＭＢＦの出力値ＯＵＴと、更新後演算モジュールＭＡＴの出力値ＯＵＴとの比較を行うものとして説明した。本変形例においては、複数の演算モジュールＭを組み合わせた演算モジュール群について、更新前の演算モジュール群の出力値ＯＵＴと、更新後の演算モジュール群の出力値ＯＵＴとの比較を行う点で、上述した実施形態と異なる。ここで、更新後の演算モジュール群とは、更新前の演算モジュール群に含まれる演算モジュールＭのうち、更新対象の１（又は複数）の演算モジュールＭについて学習を行った後、この更新対象の演算モジュールＭを、更新前の演算モジュール群の該当する演算モジュールＭから置き換えた演算モジュール群のことである。
【００９０】
図１４は、本実施形態の変形例における選択部７４０による演算モジュール群間の比較の一例を示す図である。この一例において、更新前の演算モジュール群１０ａは、車両ＣＲの車載制御装置１０の演算モジュール群によって構成される。ここで、車両ＣＲの車載制御装置１０の演算モジュール群には、選択モジュール１０１、選択モジュール１０２、選択モジュール１０３、制御モジュール１１１、制御モジュール１１２、制御モジュール１１３、制御モジュール１１４、制御モジュール１１５及び制御モジュール１１６が含まれる（図１を参照）。
【００９１】
この場合、更新前の演算モジュール群１０ａは、選択モジュール１０１、選択モジュール１０２、選択モジュール１０３、制御モジュール１１１、制御モジュール１１２、制御モジュール１１３、制御モジュール１１４、制御モジュール１１５及び制御モジュール１１６を含む。
ここで、更新対象の演算モジュールＭが、制御モジュール１１１である場合について説明する。すなわちこの場合、制御モジュール１１１が、更新前演算モジュールＭＢＦｎに相当する。
【００９２】
この一例において、更新後の演算モジュール群１０ｂは、選択モジュール１０１、選択モジュール１０２、選択モジュール１０３、制御モジュール１１１、制御モジュール１１２、制御モジュール１１３、制御モジュール１１４、制御モジュール１１５及び制御モジュール１１６を含む。
この一例では、制御モジュール１１１についての学習が行われる。制御モジュール１１１が、更新後演算モジュールＭＡＴｎに相当する。
【００９３】
この変形例において、選択部７４０は、更新前の演算モジュール群１０ａの出力値ＯＵＴｉ＿ｂｅｆｏｒｅと、更新後の演算モジュール群１０ｂの出力値ＯＵＴｉ＿ａｆｔｅｒとの比較結果に基づいて、配信対象演算モジュールＭＤＴを選択する。すなわち、選択部７４０は、更新前演算モジュールＭＢＦを含む階層化された複数の演算モジュールＭが出力する出力値ＯＵＴと、更新前演算モジュールＭＢＦが更新後演算モジュールＭＡＴに置換された複数の演算モジュールＭが出力する出力値ＯＵＴとの差に基づいて、配信対象演算モジュールＭＤＴを選択する。
【００９４】
本変形例の配信装置７０は、単一の演算モジュールＭの出力結果だけでなく、階層化された演算モジュールＭの出力結果に基づいて、配信対象演算モジュールＭＤＴを選定する。このように構成された配信装置７０によれば、単一の演算モジュールＭの出力結果を比較する場合に比べて、より車両ＣＲの挙動に近い出力結果を比較することができる。つまり、このように構成された配信装置７０によれば、車両ＣＲの挙動により近い環境において、よく学習された演算モジュールＭを配信することができる。
【００９５】
［演算モジュールの階層に基づく選択］
図８を参照して上述したように、演算モジュールＭの学習が下層から上層に向けて行われる結果、更新後演算モジュールＭＡＴが複数の階層に存在する場合がある。この場合に、選択部７４０は、階層ごとに、配信対象演算モジュールＭＤＴを選択する。
【００９６】
具体的には、選択部７４０は、階層のうち下層に存在する更新後演算モジュールＭＡＴを配信対象演算モジュールＭＤＴとして選択したのちに、階層のうち上層に存在する更新後演算モジュールＭＡＴを配信対象演算モジュールＭＤＴとして選択する。
【００９７】
図１５及び図１６を参照して、より具体的に説明する。
図１５は、本実施形態の変形例における選択部７４０による演算モジュール群間の第一段階の比較の一例を示す図である。
ここでは、学習部７３０は、制御モジュール１１１及び制御モジュール１１５について学習を行う場合を一例にして説明する。この場合、制御モジュール１１１が上層の演算モジュールＭであり、制御モジュール１１５が下層の演算モジュールＭである。選択部７４０は、制御モジュール１１１及び制御モジュール１１５を配信対象演算モジュールＭＤＴとして選択するか否か（つまり、配信要否）を判定する。
この一例の場合、演算モジュール群１０ｃには、更新前の制御モジュール１１１（更新前演算モジュールＭＢＦ１１１）と、更新前の制御モジュール１１５（更新前演算モジュールＭＢＦ１１５）とが含まれる。
【００９８】
第一段階において、選択部７４０は、下層の演算モジュールＭ（この一例では、制御モジュール１１５）を差し替えた場合の出力比較を行う。より具体的には、選択部７４０は、演算モジュール群１０ｃに含まれる更新前演算モジュールＭＢＦ１１５を、更新後演算モジュールＭＡＴ１１５に差し替えて、演算モジュール群１０ｄを生成する。選択部７４０は、演算モジュール群１０ｃの出力値ＯＵＴｉ＿ｂｅｆｏｒｅと、演算モジュール群１０ｄの出力値ＯＵＴｉ＿ａｆｔｅｒとを比較する。
【００９９】
選択部７４０は、出力値ＯＵＴｉ＿ｂｅｆｏｒｅと出力値ＯＵＴｉ＿ａｆｔｅｒとの比較結果に基づいて、更新後演算モジュールＭＡＴ１１５の配信要否を判定する。ここでは選択部７４０が、更新後演算モジュールＭＡＴ１１５を配信対象として選択した場合を一例にして説明する。下層の演算モジュールＭを配信対象として選択する場合、選択部７４０は、当該演算モジュールＭの上層の演算モジュールＭについても配信要否を判定する。この一例では、選択部７４０は、更新後演算モジュールＭＡＴ１１５を配信対象として選択した場合、その上層の演算モジュールＭである更新後演算モジュールＭＡＴ１１１の配信要否を判定する。
【０１００】
図１６は、本実施形態の変形例における選択部７４０による演算モジュール群間の第二段階の比較の一例を示す図である。
第二段階において、選択部７４０は、上層の演算モジュールＭ（この一例では、制御モジュール１１１）を差し替えた場合の出力比較を行う。より具体的には、選択部７４０は、演算モジュール群１０ｄに含まれる上層の制御モジュール１１１（更新前演算モジュールＭＢＦ１１１）を、更新後演算モジュールＭＡＴ１１１に差し替えて、演算モジュール群１０ｅを生成する。選択部７４０は、演算モジュール群１０ｄの出力値ＯＵＴｉ＿ｂｅｆｏｒｅと、演算モジュール群１０ｅの出力値ＯＵＴｉ＿ａｆｔｅｒとを比較する。
【０１０１】
選択部７４０は、出力値ＯＵＴｉ＿ｂｅｆｏｒｅと出力値ＯＵＴｉ＿ａｆｔｅｒとの比較結果に基づいて、更新後演算モジュールＭＡＴ１１１の配信要否を判定する。
【０１０２】
なお、この一例において、選択部７４０は、下層の演算モジュールＭの配信要否を判定した後に、上層の演算モジュールＭの配信要否を判定しているがこれに限られない。選択部７４０は、上層の演算モジュールＭの配信要否を判定した後に、下層の演算モジュールＭの配信要否を判定してもよい。
【０１０３】
以上説明したように、本変形例の選択部７４０は、演算モジュールＭの階層ごとに演算モジュールＭの配信要否を判定する。このように構成された配信装置７０によれば、複数の演算モジュールＭをまとめて配信することができる。また、本変形例の選択部７４０は、複数の演算モジュールＭをまとめて配信する際に、下層（又は上層）の演算モジュールＭの差し替えによる上層（又は下層）の演算モジュールＭの差し替えの要否を判定する。すなわち、本変形例の選択部７４０は、演算モジュールＭの差し替えによる他の演算モジュールＭの配信要否を、階層間の影響を加味して判定する。
ここで、演算モジュールＭの階層間の影響を加味して配信する場合、配信対象の演算モジュールＭとともに、当該演算モジュールＭの上層に位置するすべての演算モジュールＭを配信することも考えられる。しかしながら、配信対象の演算モジュールＭの上層に位置するすべての演算モジュールＭを配信する場合には、配信する演算モジュールＭの数に応じて通信量が増大するという問題が生じる。
本変形例の配信装置７０によれば、上層の演算モジュールＭの配信要否を判定するため、配信対象の演算モジュールＭの上層に位置するすべての演算モジュールＭを配信する場合に比べて、通信量を低減することができる。
【０１０４】
［変形例（２）車両ＣＲの種類に応じて配信する］
更新後の演算モジュールＭの配信優先度が、車両ＣＲの種類によって定められていてもよい。ここで、更新後の演算モジュールＭ（更新後演算モジュールＭＡＴ）は、更新前の演算モジュールＭ（更新前演算モジュールＭＢＦ）に比べて、車両ＣＲの挙動をより適切に制御することができる。この場合、公共交通機関に用いられる種類の車両ＣＲ（例えば、バスやタクシーなど）や、走行による道路設備、周囲の環境等への影響が比較的大きい種類の車両ＣＲ（例えば、重機などの特殊車両や大型トラックなど）については、他の種類の車両ＣＲに比べて演算モジュールＭの配信優先度が高められていてもよい。
【０１０５】
この場合において、選択部７４０（配信先車両選択部７４２）は、車両ＣＲの種類に応じた配信優先度に基づいて、複数の配信対象演算モジュールＭＤＴのなかから車両ＣＲの種類に応じて選択する。また、配信装置通信部７１０は、選択された種類の車両ＣＲに対して、配信対象演算モジュールＭＤＴを配信する。
【０１０６】
このように構成された配信装置７０によれば、演算モジュールＭの更新優先度に応じて車両ＣＲの種類ごとに、演算モジュールＭが順次配信される。したがって、配信装置７０によれば、すべての種類の車両ＣＲに対してまとめて演算モジュールＭを配信する場合に比べて、演算モジュールＭの配信のための時間当たりの通信量を低減することができる。
【０１０７】
以上、本発明の実施形態及びその変形を説明したが、これらの実施形態及びその変形は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態及びその変形は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態及びその変形は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【０１０８】
なお、上述の各装置は内部にコンピュータを有している。そして、上述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【０１０９】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【０１１０】
１０…車載制御装置、１００…選択モジュール、１１０…制御モジュール、１２０…取得部、１３０…出力部、２０…検出情報生成部、３０…車載装置、４０…ロガー、５０…通信部、６０…モジュール更新部、７０…配信装置、７１０…配信装置通信部、７２０…情報取得部、７３０…学習部、７４０…選択部、８０…ログデータ記憶部、９０…モジュールライブラリ、ＣＭＤ…制御情報、ＤＲ…検出結果、Ｍ…演算モジュール
【図１】
2019175349.tif 000003
【図２】
2019175349.tif 000004
【図３】
2019175349.tif 000005
【図４】
2019175349.tif 000006
【図５】
2019175349.tif 000007
【図６】
2019175349.tif 000008
【図７】
2019175349.tif 000009
【図８】
2019175349.tif 000010
【図９】
2019175349.tif 000011
【図１０】
2019175349.tif 000012
【図１１】
2019175349.tif 000013
【図１２】
2019175349.tif 000014
【図１３】
2019175349.tif 000015
【図１４】
2019175349.tif 000016
【図１５】
2019175349.tif 000017
【図１６】
2019175349.tif 000018