(57)【要約】【課題】車両においてニューラルネットワークモデルの学習を効率的に行うことができる機械学習装置を提供する。【解決手段】車両に設けられた機械学習装置は、ニューラルネットワークモデルの学習計画を作成する学習計画部８１と、複数の入力パラメータの実測値と、少なくとも一つの出力パラメータの実測値とを取得して訓練データセットを作成するデータセット作成部８２と、車両が停車しているときにニューラルネットワークモデルの学習を行う学習部８３と、車両の停車期間を予測する停車期間予測部８４とを備える。データセット作成部は、複数の入力パラメータのそれぞれの範囲に基づいて定められた複数の学習領域に訓練データセットを振り分ける。学習部は学習領域毎にニューラルネットワークモデルの学習を行う。学習計画部は、停車期間においてニューラルネットワークモデルの学習が中断しないように、複数の学習領域を停車期間に割り当てる。【選択図】図５
2020119246.tif 000002
【特許請求の範囲】
【請求項１】
車両に設けられた機械学習装置であって、
複数の入力パラメータから少なくとも一つの出力パラメータを出力するニューラルネットワークモデルの学習計画を作成する学習計画部と、
前記複数の入力パラメータの実測値と、該実測値に対応する前記少なくとも一つの出力パラメータの実測値とを取得して訓練データセットを作成するデータセット作成部と、
前記学習計画に基づいて、前記車両が停車しているときに前記訓練データセットを用いて前記ニューラルネットワークモデルの学習を行う学習部と、
前記車両の停車期間を予測する停車期間予測部と
を備え、
前記データセット作成部は、前記複数の入力パラメータのそれぞれの範囲に基づいて定められた複数の学習領域に前記訓練データセットを振り分け、
前記学習部は学習領域毎に前記ニューラルネットワークモデルの学習を行い、
前記学習計画部は、前記停車期間において前記ニューラルネットワークモデルの学習が中断しないように、前記複数の学習領域を前記停車期間に割り当てる、機械学習装置。
【請求項２】
前記複数の学習領域は、小学習領域と、該小学習領域を包含する大学習領域とを含み、該小学習領域及び該大学習領域は該小学習領域が該大学習領域よりもデータ密度が高くなるように定められ、
前記学習計画部は前記小学習領域と前記大学習領域とを選択的に前記停車期間に割り当てる、請求項１に記載の機械学習装置。
【請求項３】
前記複数の学習領域に学習の優先順位が付与されている、請求項１に記載の機械学習装置。
【請求項４】
前記学習計画部は、出現頻度が相対的に高い前記入力パラメータの値を含む学習領域の学習の優先順位を、出現頻度が相対的に低い前記入力パラメータの値を含む学習領域の学習の優先順位よりも高くする、請求項３に記載の機械学習装置。
【請求項５】
前記学習計画部は、前記車両が走行している道路の情報又は該車両に設けられた内燃機関の暖機状態に応じて前記学習の優先順位を変更する、請求項３に記載の機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機械学習装置に関する。
【背景技術】
【０００２】
従来、入力層、隠れ層及び出力層を含むニューラルネットワークモデルを用いて所定の入力パラメータから所定の出力パラメータを算出することが知られている。例えば、特許文献１に記載の内燃機関の制御装置では、学習済みのニューラルネットワークモデルを用いて、内燃機関の燃焼室に吸入される吸入ガスの流量が推定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１２２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、学習済みのニューラルネットワークモデルが車両に適用される場合、経年劣化等によって車両の特性が変化する場合がある。この場合、入力パラメータと出力パラメータとの対応関係が変化し、ニューラルネットワークモデルによる出力パラメータの算出精度が低下する。また、車両の特性は車両毎に若干異なる。
【０００５】
このため、出力パラメータの算出精度を向上させるべく、車両において学習のための訓練データセットを取得し、車両においてニューラルネットワークモデルの学習を行うことが考えられる。しかしながら、学習のために使用可能な制御装置は車両の走行中には車両の駆動源（内燃機関、電動機等）を制御する必要がある。このため、演算負荷の高い学習を車両の走行中に行うことは困難である。
【０００６】
そこで、車両の停車中にニューラルネットワークモデルの学習を行うことが考えられる。しかしながら、学習時間が停車期間よりも長い場合、停車期間中に学習を完了させることができない。この結果、ニューラルネットワークモデルを適切な頻度で更新することができず、ニューラルネットワークモデルによる出力パラメータの算出精度が悪化するおそれがある。
【０００７】
そこで、上記課題に鑑みて、本発明の目的は、車両においてニューラルネットワークモデルの学習を効率的に行うことができる機械学習装置を提供することにある。
【課題を解決するための手段】
【０００８】
本開示の要旨は以下のとおりである。
【０００９】
（１）車両に設けられた機械学習装置であって、複数の入力パラメータから少なくとも一つの出力パラメータを出力するニューラルネットワークモデルの学習計画を作成する学習計画部と、前記複数の入力パラメータの実測値と、該実測値に対応する前記少なくとも一つの出力パラメータの実測値とを取得して訓練データセットを作成するデータセット作成部と、前記学習計画に基づいて、前記車両が停車しているときに前記訓練データセットを用いて前記ニューラルネットワークモデルの学習を行う学習部と、前記車両の停車期間を予測する停車期間予測部とを備え、前記データセット作成部は、前記複数の入力パラメータのそれぞれの範囲に基づいて定められた複数の学習領域に前記訓練データセットを振り分け、前記学習部は学習領域毎に前記ニューラルネットワークモデルの学習を行い、前記学習計画部は、前記停車期間において前記ニューラルネットワークモデルの学習が中断しないように、前記複数の学習領域を前記停車期間に割り当てる、機械学習装置。
【００１０】
（２）前記複数の学習領域は、小学習領域と、該小学習領域を包含する大学習領域とを含み、該小学習領域及び該大学習領域は該小学習領域が該大学習領域よりもデータ密度が高くなるように定められ、前記学習計画部は前記小学習領域と前記大学習領域とを選択的に前記停車期間に割り当てる、上記（１）に記載の機械学習装置。
【００１１】
（３）前記複数の学習領域に学習の優先順位が付与されている、上記（１）に記載の機械学習装置。
【００１２】
（４）前記学習計画部は、出現頻度が相対的に高い前記入力パラメータの値を含む学習領域の学習の優先順位を、出現頻度が相対的に低い前記入力パラメータの値を含む学習領域の学習の優先順位よりも高くする、上記（３）に記載の機械学習装置。
【００１３】
（５）前記学習計画部は、前記車両が走行している道路の情報又は該車両に設けられた内燃機関の暖機状態に応じて前記学習の優先順位を変更する、上記（３）に記載の機械学習装置。
【発明の効果】
【００１４】
本発明によれば、車両においてニューラルネットワークモデルの学習を効率的に行うことができる機械学習装置が提供される。
【図面の簡単な説明】
【００１５】
【図１】図１は、第一実施形態に係る機械学習装置が適用される内燃機関を概略的に示す図である。
【図２】図２は、ＥＣＵの構成を概略的に示す図である。
【図３】図３は、単純な構成を有するニューラルネットワークの一例を示す。
【図４】図４は、ＥＣＵの機能ブロック図である。
【図５】図５は、停車期間の予測結果の一例を示す図である。
【図６】図６は、第一実施形態における複数の学習領域を概略的に示す図である。
【図７】図７は、本発明の第一実施形態におけるデータセット作成処理の制御ルーチンを示すフローチャートである。
【図８】図８は、本発明の第一実施形態における停車期間予測処理の制御ルーチンを示すフローチャートである。
【図９】図９は、本発明の第一実施形態における学習計画作成処理の制御ルーチンを示すフローチャートである。
【図１０】図１０は、本発明の第一実施形態における学習処理の制御ルーチンを示すフローチャートである。
【図１１】図１１は、第二実施形態における複数の学習領域を概略的に示す図である。
【図１２】図１２は、本発明の第二実施形態における学習計画作成処理の制御ルーチンを示すフローチャートである。
【図１３】図１３は、本発明の第三実施形態における学習領域設定処理の制御ルーチンを示すフローチャートである。
【図１４】図１４は、本発明の第四実施形態における学習領域番号変更処理の制御ルーチンを示すフローチャートである。
【図１５】図１５は、本発明の第五実施形態における学習領域番号変更処理の制御ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下の説明では、同様な構成要素には同一の参照番号を付す。
【００１７】
＜第一実施形態＞
最初に、図１〜図１０を参照して、本発明の第一実施形態について説明する。
【００１８】
＜内燃機関全体の説明＞
図１は、第一実施形態に係る機械学習装置が適用される内燃機関を概略的に示す図である。内燃機関１は、点火プラグによって混合気が点火される火花点火式内燃機関（例えばガソリンエンジン）であり、車両に設けられる。
【００１９】
内燃機関１は機関本体３を備える。機関本体３は、複数の気筒２が形成されたシリンダブロックと、吸気ポート及び排気ポートが形成されたシリンダヘッドと、クランクケースとを備える。シリンダヘッドには、吸気ポートを開閉するように構成された吸気弁と、排気ポートを開閉するように構成された排気弁と、燃焼室内に燃料を直接噴射する燃料噴射弁と、火花を発生させる点火プラグとが設けられている。
【００２０】
本実施形態では、気筒２の数は四つである。各気筒２には吸気マニホルド４及び排気マニホルド５が接続されている。
【００２１】
吸気マニホルド４は吸気管６を介してターボチャージャ７のコンプレッサ７ａの出口に連結される。コンプレッサ７ａの入口は吸気管６を介してエアクリーナ８に連結される。吸気管６内には、スロットル弁駆動アクチュエータによって駆動されるスロットル弁９が配置される。さらに、吸気管６周りには吸気管６内を流れる吸入空気を冷却するためのインタークーラ１３が配置される。なお、インタークーラ１３は吸気マニホルド４に内蔵されていてもよい。吸気マニホルド４及び吸気管６は、空気を気筒２内に導く吸気通路を形成する。
【００２２】
一方、排気マニホルド５は排気管２７を介してターボチャージャ７のタービン７ｂの入口に連結される。タービン７ｂの出口は排気管２７を介して触媒２９に連結される。触媒２９は、例えば、排気ガス中のＨＣ、ＣＯ、ＮＯｘ等を浄化する三元触媒である。排気マニホルド５及び排気管２７は、混合気の燃焼によって生じた排気ガスを気筒２から排出する排気通路を形成する。
【００２３】
排気通路と吸気通路とは排気ガス再循環通路（ＥＧＲ通路）１４を介して互いに連結される。ＥＧＲ通路１４は、排気通路を流れる排気ガスの一部をＥＧＲガスとして吸気通路に還流させる。また、ＥＧＲ通路１４には電子制御式のＥＧＲ制御弁１５が設けられている。ＥＧＲ制御弁１５は、排気通路から吸気通路に還流されるＥＧＲガスの量を調整する。さらに、ＥＧＲ通路１４には、ＥＧＲガスを冷却するＥＧＲクーラ１６が設けられている。
【００２４】
本実施形態では、ＥＧＲ通路１４は触媒２９よりも下流側の排気通路とコンプレッサ７ａよりも上流側の吸気通路とに接続されている。したがって、内燃機関１はいわゆる低圧ループ方式（ＬＰＬ方式）のＥＧＲシステムを備える。なお、内燃機関１は他の方式のＥＧＲシステムを備えていてもよい。例えば、内燃機関１はいわゆる高圧ループ方式（ＨＰＬ方式）のＥＧＲシステムを備えていてもよい。この場合、ＥＧＲ通路は例えば排気マニホルド５と吸気マニホルド４とに接続される。
【００２５】
なお、内燃機関１の構成は上記構成に限定されない。したがって、気筒配列、燃料の噴射態様、吸排気系の構成、動弁機構の構成、過給機の構成及び過給機の有無のような内燃機関の具体的な構成は、図１に示した構成と異なっていてもよい。例えば、燃料噴射弁は、吸気ポート内に燃料を噴射するように配置されていてもよい。
【００２６】
＜ＥＣＵの構成＞
内燃機関１を搭載する車両には、電子制御ユニット（ＥＣＵ）が設けられている。図２は、ＥＣＵの構成を概略的に示す図である。ＥＣＵ６０は、通信インターフェース６１、メモリ６２及びプロセッサ６３を含み、車両の各種制御を実行する。例えば、内燃機関１の各種制御が各種センサの出力等に基づいてＥＣＵ６０によって実行される。なお、本実施形態では、一つのＥＣＵ６０が設けられているが、機能毎に複数のＥＣＵが設けられていてもよい。
【００２７】
通信インターフェース６１は、ＣＡＮ（Controller Area Network）等の規格に準拠した車内ネットワークにＥＣＵ６０を接続するためのインターフェース回路を有する。ＥＣＵ６０は通信インターフェース６１を介して他の車載機器と通信する。
【００２８】
メモリ６２は、例えば、揮発性の半導体メモリ（例えば、ＲＡＭ）及び不揮発性の半導体メモリ（例えば、ＲＯＭ）を有する。メモリ６２は、プロセッサ６３において実行されるプログラム、プロセッサ６３によって各種処理が実行されるときに使用される各種データ等を記憶する。
【００２９】
プロセッサ６３は、一つ又は複数のＣＰＵ(Central Processing Unit)及びその周辺回路を有し、各種処理を実行する。なお、プロセッサ６３は、論理演算ユニット又は数値演算ユニットのような演算回路を更に有していてもよい。通信インターフェース６１、メモリ６２及びプロセッサ６３は信号線を介して互いに接続されている。
【００３０】
ＥＣＵ６０は、車内ネットワークを介してアクチュエータ９１に接続され、アクチュエータ９１を制御する。本実施形態では、アクチュエータ９１は、燃料噴射弁、点火プラグ、スロットル弁駆動アクチュエータ、ＥＧＲ制御弁１５等を含む。
【００３１】
また、車両にはＧＰＳ受信機９２が設けられている。ＧＰＳ受信機９２は、３個以上のＧＰＳ衛星から信号を受信し、車両の現在位置（例えば、車両の緯度及び経度）を検出する。ＧＰＳ受信機９２は車内ネットワークを介してＥＣＵ６０に接続され、ＧＰＳ受信機９２の出力はＥＣＵ６０に送信される。
【００３２】
また、車両には地図データベース９３が設けられている。地図データベース９３は地図情報を記憶している。地図情報には、道路の位置情報、道路の形状情報（例えばカーブと直線部との種別、カーブの曲率半径、道路勾配等）、道路種別、制限車速等の道路情報が含まれる。地図データベース９３は車内ネットワークを介してＥＣＵ６０に接続され、ＥＣＵ６０は地図データベース９３から地図情報を取得する。
【００３３】
また、車両にはナビゲーションシステム９４が設けられている。ナビゲーションシステム９４は、ＧＰＳ受信機９２によって検出された車両の現在位置、地図データベース９３の地図情報、車両のドライバによる入力等に基づいて、目的地までの車両の走行ルートを設定する。ナビゲーションシステム９４は車内ネットワークを介してＥＣＵ６０に接続され、ナビゲーションシステム９４によって設定された走行ルートはＥＣＵ６０に送信される。なお、ＧＰＳ受信機９２及び地図データベース９３はナビゲーションシステム９４に組み込まれていてもよい。
【００３４】
また、車両には通信モジュール９５が設けられている。通信モジュール９５は、車両と車両の外部との通信を可能とする機器である。通信モジュール９５は、例えば、データ通信モジュール（ＤＣＭ（Data communication module)）、近距離無線通信モジュール等を含む。車両はデータ通信モジュールを介して車両の外部のサーバ等と通信する。また、車両は、近距離無線モジュールを介して、路車間通信によって路側機と通信し、車車間通信によって車両と通信する。通信モジュール９５によって受信された情報はＥＣＵ６０に送信される。
【００３５】
また、ＥＣＵ６０には、エアフロメータ７１、空燃比センサ７２、ＮＯｘセンサ７３、クランク角センサ７４、負荷センサ７５、トルクセンサ７６及び車速センサ７７の出力が入力される。
【００３６】
エアフロメータ７１は吸気通路内の空気の流量を検出する。図１に示されるように、エアフロメータ７１はエアクリーナ８とコンプレッサ７ａとの間の吸気管６に配置される。エアフロメータ７１はＥＣＵ６０に電気的に接続され、エアフロメータ７１の出力はＥＣＵ６０に送信される。
【００３７】
空燃比センサ７２は排気ガスの空燃比を検出する。図１に示されるように、空燃比センサ７２はタービン７ｂと触媒２９との間の排気管２７に配置される。空燃比センサ７２はＥＣＵ６０に電気的に接続され、空燃比センサ７２の出力はＥＣＵ６０に送信される。
【００３８】
ＮＯｘセンサ７３は排気ガス中の窒素酸化物（ＮＯｘ）濃度を検出する。図１に示されるように、ＮＯｘセンサ７３はタービン７ｂと触媒２９との間の排気管２７に配置される。ＮＯｘセンサ７３はＥＣＵ６０に電気的に接続され、ＮＯｘセンサ７３の出力はＥＣＵ６０に送信される。
【００３９】
クランク角センサ７４は内燃機関１のクランクシャフトが所定角度（例えば１０度）回転する毎に出力パルスを発生させる。クランク角センサ７４はＥＣＵ６０に電気的に接続され、クランク角センサ７４の出力はＥＣＵ６０に送信される。ＥＣＵ６０はクランク角センサ７４の出力に基づいて機関回転数を算出する。
【００４０】
負荷センサ７５は、車両に設けられたアクセルペダルに接続され、アクセルペダルの踏み込み量を検出する。負荷センサ７５はＥＣＵ６０に電気的に接続され、負荷センサ７５の出力はＥＣＵ６０に送信される。ＥＣＵ６０は負荷センサ７５の出力に基づいて機関負荷を算出する。
【００４１】
トルクセンサ７６は、例えば内燃機関１のクランクシャフトに配置され、内燃機関１の出力トルクを検出する。トルクセンサ７６はＥＣＵ６０に電気的に接続され、トルクセンサ７６の出力はＥＣＵ６０に送信される。
【００４２】
車速センサ７７は、車両に設けられ、車両の速度を検出する。車速センサ７７はＥＣＵ６０に電気的に接続され、車速センサ７７の出力はＥＣＵ６０に送信される。
【００４３】
また、本実施形態では、ＥＣＵ６０は、ニューラルネットワークモデルの学習を行うように車両に設けられた機械学習装置としても機能する。
【００４４】
＜ニューラルネットワークモデルの概要＞
最初に、図３を参照して、ニューラルネットワークモデルの概要について説明する。図３は、単純な構成を有するニューラルネットワークモデルの一例を示す。
【００４５】
図３における丸印は人工ニューロンを表す。人工ニューロンは、通常、ノード又はユニットと称される（本明細書では、「ノード」と称す）。図３において、Ｌ＝１は入力層を示し、Ｌ＝２及びＬ＝３は隠れ層を示し、Ｌ＝４は出力層を示している。なお、隠れ層は中間層とも称される。
【００４６】
図３において、ｘ1及びｘ2は入力層（Ｌ＝１）の各ノード及びそのノードからの出力値を示しており、ｙは出力層（Ｌ＝４）のノード及びその出力値を示している。同様に、ｚ1(L=2)、ｚ2(L=2)及びｚ3(L=2)は隠れ層（Ｌ＝２）の各ノード及びそのノードからの出力値を示しており、ｚ1(L=3)及びｚ2(L=3)は隠れ層（Ｌ＝３）の各ノード及びそのノードからの出力値を示している。
【００４７】
入力層の各ノードでは入力がそのまま出力される。一方、隠れ層（Ｌ＝２）の各ノードには、入力層の各ノードの出力値ｘ1及びｘ2が入力され、隠れ層（Ｌ＝２）の各ノードでは、それぞれ対応する重みｗ及びバイアスｂを用いて総入力値ｕが算出される。例えば、図３において隠れ層（Ｌ＝２）のｚk(L=2)（ｋ＝１、２、３）で示される各ノードにおいて算出される総入力値ｕk(L=2)は、次式のようになる（Ｍは入力層のノードの数）。
【数１】
2020119246.tif 000003
次いで、この総入力値ｕk(L=2)は活性化関数ｆにより変換され、隠れ層（Ｌ＝２）のｚk(L=2)で示されるノードから、出力値ｚk(L=2)（＝ｆ（ｕk(L=2)））として出力される。一方、隠れ層（Ｌ＝３）の各ノードには、隠れ層（Ｌ＝２）の各ノードの出力値ｚ1(L=2)、ｚ2(L=2)及びｚ3(L=2)が入力され、隠れ層（Ｌ＝３）の各ノードでは、それぞれ対応する重みｗ及びバイアスｂを用いて総入力値ｕ（＝Σｚ・ｗ＋ｂ）が算出される。この総入力値ｕは同様に活性化関数により変換され、隠れ層（Ｌ＝３）の各ノードから、出力値ｚ1(L=3)、ｚ2(L=3)として出力される、活性化関数は例えばシグモイド関数σである。
【００４８】
また、出力層（Ｌ＝４）のノードには、隠れ層（Ｌ＝３）の各ノードの出力値ｚ1(L=3)及びｚ2(L=3)が入力され、出力層のノードでは、それぞれ対応する重みｗ及びバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出され、又はそれぞれ対応する重みｗのみを用いて総入力値ｕ（Σｚ・ｗ）が算出される。例えば、出力層のノードでは活性化関数として恒等関数が用いられる。この場合、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力層のノードから出力される。
【００４９】
＜ニューラルネットワークモデルにおける学習＞
本実施形態では、誤差逆伝播法を用いて、ニューラルネットワークモデルにおける各重みｗの値及び各バイアスｂの値が学習される。誤差逆伝播法は周知であるため、誤差逆伝播法の概要について、以下に簡単に説明する。なお、バイアスｂは重みｗの一種なので、以下の説明では、バイアスｂは重みｗの一つとされている。
【００５０】
図３に示したようなニューラルネットワークモデルにおいて、Ｌ＝２、Ｌ＝３又はＬ＝４の各層のノードへの総入力値ｕ(L)における重みをｗ(L)で表すと、誤差関数Ｅの重みｗ(L)による微分、すなわち、勾配∂Ｅ／∂ｗ(L)は次式に書き換えられる。
【数２】
2020119246.tif 000004
ここで、ｚ(L-1)・∂ｗ(L)＝∂ｕ(L)であり、（∂Ｅ／∂ｕ(L)）＝δ(L)とすると、上記（１）式は次式に変換される。
【数３】
2020119246.tif 000005
【００５１】
ここで、ｕ(L)が変動すると、次の層の総入力値ｕ(L+1)の変化を通じて誤差関数Ｅの変動を引き起こすので、δ(L)を次式で表すことができる（ＫはＬ＋１層におけるノードの数）。
【数４】
2020119246.tif 000006
ここで、z(L)＝ｆ(u(L))と表すと、上記（３）式の右辺の総入力値ｕk(L+1)は次式で表される。
【数５】
2020119246.tif 000007
ここで、上記（３）式の右辺第１項（∂Ｅ／∂ｕ(L+1)）はδ(L+1)である。また、上記（３）式の右辺第２項（∂uk(L+1)／∂u(L)）は次式で表される。
【数６】
2020119246.tif 000008
したがって、δ(L)は、次式で表される。
【数７】
2020119246.tif 000009
すなわち、δ(L+1)が求まると、δ(L)を求めることができることになる。
【００５２】
ニューラルネットワークモデルの学習が行われる場合、或る入力値ｘ及びその入力値ｘに対する出力値の正解データｙtを含む訓練データセットが用いられる。或る入力値ｘに対する出力層からの出力値がｙであった場合、誤差関数として二乗誤差が用いられている場合には、誤差関数Ｅは、Ｅ＝１／２(ｙ−ｙt)2となる。また、図３の出力層（Ｌ＝４）のノードでは、出力値ｙ＝ｆ(u(L))となる。このため、出力層（Ｌ＝４）のノードにおけるδ(L)の値は、次式で示されるようになる。
【数８】
2020119246.tif 000010
ここで、出力層の活性化関数ｆ(u(L))が恒等関数である場合、ｆ’(u(L))＝１となる。したがって、δ(L)＝ｙ−ｙtとなり、δ(L)が求まる。
【００５３】
δ(L)が求まると、上記（６）式を用いて前層のδ(L-1)が求まる。このようにして順次、前層のδが求められ、これらδの値を用いて、上記（２）式から、各重みｗについて誤差関数Ｅの微分、すなわち、勾配∂Ｅ／∂ｗ(L)か求められる。勾配∂Ｅ／∂ｗ(L)か求められると、この勾配∂Ｅ／∂ｗ(L)を用いて、誤差関数Ｅの値が減少するように、重みｗの値が更新される。すなわち、重みｗの学習が行われることになる。
【００５４】
＜車両におけるニューラルネットワークモデルの学習＞
本実施形態では、図３に示したようなニューラルネットワークモデルが車両（具体的にはＥＣＵ６０）に実装される。また、本実施形態では、ニューラルネットワークモデルの対象は内燃機関１である。このため、ニューラルネットワークモデルは内燃機関１の複数の入力パラメータから内燃機関１の少なくとも一つの出力パラメータを出力する。
【００５５】
ニューラルネットワークモデルの学習（すなわち、重みｗ及びバイアスｂの設定）は車両の出荷前に行われる。ニューラルネットワークモデルの学習では、入力パラメータの実測値と、入力パラメータの実測値と対応する出力パラメータの実測値との組合せを含む訓練データセットが用いられる。具体的には、多数の訓練データセットを用いて、上述した誤差逆伝播法によってニューラルネットワークモデルにおける重みｗ及びバイアスｂの値が繰り返し更新される。この結果、ニューラルネットワークモデルが学習され、学習済みのニューラルネットワークモデルが作成される。
【００５６】
しかしながら、多数の訓練データセットは、ニューラルネットワークモデルが実装される車両に設けられる実際の内燃機関１を用いることなく、エンジンベンチ等によって訓練データ作成用の内燃機関を用いて予め取得される。また、内燃機関１の特性は訓練データ作成用の内燃機関の特性と若干異なる場合がある。このため、学習済みのニューラルネットワークモデルが内燃機関１の特性に正確に適合しないおそれがある。また、経年劣化等によって内燃機関１の特性が変化する場合もある。
【００５７】
このため、本実施形態では、ニューラルネットワークモデルによって算出される出力パラメータの精度を向上させるべく、ＥＣＵ６０を用いて車両においてもニューラルネットワークモデルの学習を行う。このことによって、ニューラルネットワークモデルが内燃機関１の特性に正確に適合され、ニューラルネットワークモデルによって算出される出力パラメータの精度が向上する。
【００５８】
図４は、ＥＣＵ６０の機能ブロック図である。本実施形態では、ＥＣＵ６０は、学習計画部８１、データセット作成部８２、学習部８３、停車期間予測部８４、演算部８５及び制御部８６を有する。これらは、ＥＣＵ６０のメモリ６２に記憶されたプログラムをＥＣＵ６０のプロセッサ６３が実行することによって実現される機能ブロックである。
【００５９】
学習計画部８１は、複数の入力パラメータから少なくとも一つの出力パラメータを出力するニューラルネットワークモデルの学習計画を作成する。データセット作成部８２は、複数の入力パラメータの実測値と、これら実測値と対応する出力パラメータの実測値とを取得して訓練データセットを作成する。訓練データセットは、複数の入力パラメータの実測値と、これら実測値と対応する出力パラメータの実測値との組合せを含む。学習部８３は、学習計画部８１によって作成された学習計画に基づいて、データセット作成部８２によって車両において取得された訓練データセットを用いてニューラルネットワークモデルの学習を行う。
【００６０】
ニューラルネットワークモデルはＥＣＵ６０のメモリ６２に記憶されている。ニューラルネットワークモデルは、例えば図３に示される構成を有する。なお、ニューラルネットワークモデルの層数は三つ以上の任意の数であってもよい。また、入力層のノードの数は二つ以上の任意の数であってもよい。また、各隠れ層及び出力層のノードの数は、それぞれ、一つ以上の任意の数であってもよい。
【００６１】
停車期間予測部８４は車両の停車期間（以下、単に「停車期間」と称する）を予測する。具体的には、停車期間予測部８４は、停車期間が発生する日時（停車日時）と、停車期間の時間長さ（停車時間）とを予測する。なお、車両の停車とは、車速がゼロの状態を意味する。このため、車両の停車には、車両が信号機の前で一時停止している状態、渋滞によって車両が一時停止している状態、車両が自宅等の駐車場に駐車している状態等が含まれる。
【００６２】
通勤、通学、買い物等の用途のために車両が使用される場合、車両が用いられる時間帯はほぼ一定であることが多い。このため、停車期間予測部８４は、例えば、車両の走行履歴情報に基づいて停車期間を予測する。この場合、過去の所定期間における車両の走行履歴情報が例えばＥＣＵ６０のメモリ６２に記憶される。なお、車両の走行履歴情報は、車両に設けられた他の記憶装置に記憶されてもよい。
【００６３】
走行履歴情報には、日付、曜日、時間帯、天候、車両の位置、車両の走行の有無等が含まれる。また、車両のドライバを撮影して画像を生成するドライバモニタカメラが車両に設けられている場合、ドライバ情報が走行履歴情報に含まれていてもよい。この場合、停車期間を予測するためにドライバモニタカメラによって車両のドライバを特定することによって、複数人によって車両が使用される場合であっても、停車期間の予測精度を向上させることができる。
【００６４】
また、停車期間予測部８４は、ＧＰＳ受信機９２によって検出される車両の現在位置、ナビゲーションシステム９４によって設定される車両の走行ルート等に基づいて停車期間を予測してもよい。また、停車期間予測部８４は、通信モジュール９５によってサーバ、路側機又は他車両から受信された情報（信号機情報、渋滞情報、天候情報等）に基づいて停車期間を予測してもよい。また、停車期間予測部８４は上記の予測方法を組み合わせて停車期間を予測してもよい。
【００６５】
停車期間予測部８４は将来の所定期間における停車期間を予測する。図５は、停車期間の予測結果の一例を示す図である。この例では、停車期間予測部８４は将来の三日間（８月９日〜８月１１日）の期間における車両の停車期間を予測している。図５には、車両の走行が予測される走行期間と、車両の停車が予測される停車期間（斜線部分）とが示されている。走行期間の幅は走行期間の時間長さを示し、停車期間の幅は停車期間の時間長さを示している。連続する停車期間にはそれぞれ停車期間番号（ｐ＝１〜７）が付与されている。
【００６６】
ところで、ＥＣＵ６０は内燃機関１の制御装置としても機能する。このため、ＥＣＵ６０は、車両が走行するときには、走行用の動力を得るために内燃機関１を制御する。このため、ニューラルネットワークモデルの学習のために使用可能なＥＣＵ６０の演算リソースが限られる。しかしながら、ニューラルネットワークモデルの学習では、重みｗ及びバイアスｂを更新するために多くの演算を行う必要がある。このため、演算負荷の高い学習をＥＣＵ６０によって車両の走行中に行うことは困難である。また、車両の走行中に学習を行うためにＥＣＵ６０の処理能力を向上させること、又は学習のために追加のＥＣＵを設けることは車両のコストを増加させる。
【００６７】
そこで、本実施形態では、学習部８３は、車両が停止しているときにニューラルネットワークモデルの学習を行う。このことによって、ＥＣＵ６０の演算リソースが空いているときにニューラルネットワークモデルの学習を行うことができる。
【００６８】
しかしながら、ニューラルネットワークモデルの学習時間が停車期間よりも長い場合、停車期間中に学習を完了させることができない。この結果、ニューラルネットワークモデルを適切な頻度で更新することができず、ニューラルネットワークモデルによる出力パラメータの算出精度が悪化するおそれがある。
【００６９】
学習に用いられる訓練データセットの数が多いほど、ニューラルネットワークモデルの学習時間は長くなる。このため、学習時間を短くするためには、一回の学習において用いられる訓練データセットの数を絞る必要がある。
【００７０】
ニューラルネットワークモデルの複数の入力パラメータはそれぞれ所定範囲を有する。所定範囲は、例えば、内燃機関１において出現しうる値の上限値と下限値との間の範囲に設定される。入力パラメータの全ての範囲における訓練データセットを用いて学習が行われると、学習のために膨大な時間が必要となり、停車期間中に学習を完了させることができない。
【００７１】
そこで、本実施形態では、作成された訓練データセットを複数の学習領域に振り分け、学習領域毎に学習領域内の訓練データセットを用いてニューラルネットワークモデルの学習を行う。このことによって、一回当たりの学習時間を減少させることができ、ひいてはニューラルネットワークモデルの更新頻度を高めることができる。したがって、車両においてニューラルネットワークモデルの学習を効率的に行うことができる。
【００７２】
上述した処理を行うために、データセット作成部８２は、複数の入力パラメータのそれぞれの範囲に基づいて定められた複数の学習領域に訓練データセットを振り分ける。図６は、第一実施形態における複数の学習領域を概略的に示す図である。この例では、ニューラルネットワークモデルの入力パラメータとして二つのパラメータ（入力パラメータＡ及び入力パラメータＢ）が用いられている。
【００７３】
入力パラメータＡは所定範囲を有し、所定範囲が複数の領域に分割されている。同様に、入力パラメータＢは所定範囲を有し、所定範囲が複数の領域に分割されている。この例では、入力パラメータＡ及び入力パラメータＢにおいて、分割後の複数の領域は同一の幅を有する。
【００７４】
入力パラメータＡ及び入力パラメータＢによって画定される空間（図６の例では二次元空間）が複数の学習領域に分割される。各学習領域は、入力パラメータＡの一つの範囲と入力パラメータＢの一つの範囲とによって画定される。各学習領域には学習領域番号（ｉ＝１〜ｎ）が付与される。なお、複数の入力パラメータによって画定される空間及び学習領域の次元は入力パラメータの数と等しくなる。また、学習領域の数は、複数の入力パラメータの全ての領域の数を乗じた値となる。
【００７５】
学習部８３は学習領域毎にニューラルネットワークモデルの学習を行う。学習計画部８１は、停車期間においてニューラルネットワークモデルの学習が中断しないように、複数の学習領域を停車期間に割り当てる。言い換えれば、学習計画部８１は、停車期間において各学習領域におけるニューラルネットワークモデルの学習が完了するように、複数の学習領域を停車期間に割り当てる。このことによって、連続する停車期間内に各学習領域におけるニューラルネットワークモデルの学習を完了させることができ、ひいてはニューラルネットワークモデルの更新頻度を高めることができる。
【００７６】
図５の例では、第１停車期間（ｐ＝１）に第１学習領域（ｉ＝１）が割り当てられ、第２停車期間（ｐ＝２）に第２学習領域（ｉ＝２）が割り当てられ、第３停車期間（ｐ＝３）に第３学習領域（ｉ＝３）が割り当てられ、第４停車期間（ｐ＝４）に第４学習領域（ｉ＝４）及び第５学習領域（ｉ＝５）が割り当てられ、第５停車期間（ｐ＝５）に第６学習領域（ｉ＝１）〜第１２学習領域（ｉ＝１２）が割り当てられ、第６停車期間（ｐ＝６）に第１３学習領域（ｉ＝１３）及び第１４学習領域（ｉ＝１４）が割り当てられ、第７停車期間（ｐ＝７）に第１５学習領域（ｉ＝１５）及び第１６学習領域（ｉ＝１６）が割り当てられている。
【００７７】
演算部８５はニューラルネットワークモデルを用いて出力パラメータを算出する。具体的には、演算部８５は入力パラメータをニューラルネットワークモデルに入力することによってニューラルネットワークモデルに出力パラメータを出力させる。このことによって、センサ等によって出力パラメータの実測値を検出することなく、入力パラメータに対応する出力パラメータを予測することができる。
【００７８】
制御部８６は、演算部８５によって算出された出力パラメータの値に基づいて車両を制御する。本実施形態では、制御部８６は、演算部８５によって算出された出力パラメータの値に基づいて、内燃機関１を制御する。例えば、出力パラメータが排気ガス中のＮＯｘ濃度である場合、演算部８５によって算出されたＮＯｘ濃度の予測値が目標濃度よりも高いときには、制御部８６は、ＮＯｘ濃度が低下するようにＥＧＲ制御弁１５の開度を大きくする。
【００７９】
以下、図７〜図１０のフローチャートを参照して、車両においてニューラルネットワークモデルの学習を行うための制御について詳細に説明する。
【００８０】
＜データセット作成処理＞
図７は、本発明の第一実施形態におけるデータセット作成処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって所定の時間間隔で繰り返し実行される。
【００８１】
最初に、ステップＳ１０１において、データセット作成部８２は、入力パラメータの実測値と、これら実測値に対応する出力パラメータの実測値を取得する。入力パラメータ及び出力パラメータの実測値は、センサ等によって検出された値、ＥＣＵ６０からアクチュエータ９１に出力される指令値に基づいて算出された値等である。
【００８２】
次いで、ステップＳ１０２において、データセット作成部８２は入力パラメータの実測値と出力パラメータの実測値とを組み合わせることによって訓練データセットを作成する。
【００８３】
次いで、ステップＳ１０３において、データセット作成部８２は訓練データセットを学習領域に振り分ける。このとき、訓練データセットの入力パラメータの実測値が、学習領域を画定する入力パラメータの範囲に含まれるように、訓練データセットが学習領域に振り分けられる。訓練データセットは、対応する学習領域の学習領域番号ｉと共にＥＣＵ６０のメモリ６２に記憶される。メモリ６２に記憶された訓練データセットは古いデータから順に消去され、最新の所定数の訓練データセットがメモリ６２に記憶される。なお、訓練データセットは、車両に設けられた他の記憶装置に記憶されてもよい。ステップＳ１０３の後、本制御ルーチンは終了する。
【００８４】
＜停車期間予測処理＞
図８は、本発明の第一実施形態における停車期間予測処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって所定の時間間隔で繰り返し実行される。
【００８５】
最初に、ステップＳ２０１において、停車期間予測部８４は、上述したような予測方法を用いて停車期間を予測する。次いで、ステップＳ２０２において、停車期間予測部８４は、図５の例に示されるように停車期間に停車期間番号ｐを付与する。ステップＳ２０２の後、本制御ルーチンは終了する。
【００８６】
＜学習計画作成処理＞
図９は、本発明の第一実施形態における学習計画作成処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって所定の時間間隔で繰り返し実行される。
【００８７】
最初に、ステップＳ３０１において、学習計画部８１は学習領域番号ｉ及び停車期間番号ｐを１に設定する。
【００８８】
次いで、ステップＳ３０２において、学習計画部８１は、第ｉ学習領域に訓練データセットが存在しているか否かを判定する。学習計画部８１は、第ｉ学習領域に振り分けられた訓練データセットがＥＣＵ６０のメモリ６２に記憶されている場合には、第ｉ学習領域に訓練データセットが存在していると判定する。ステップＳ３０２において第ｉ学習領域に訓練データセットが存在していると判定された場合、本制御ルーチンはステップＳ３０３に進む。
【００８９】
ステップＳ３０３では、学習計画部８１は、第ｐ停車期間の停車時間ＳＴｐが第ｉ学習領域の学習時間ＬＴｉ以上であるか否かを判定する。このとき、学習計画部８１は、第ｉ学習領域に振り分けられた訓練データセットの数に基づいて第ｉ学習領域の学習時間ＬＴｉを算出する。訓練データセットの数が多いほど、第ｉ学習領域の学習時間ＬＴｉは長くなる。一方、第ｐ停車期間の停車時間ＳＴｐは、停車期間予測部８４によって予測された値が用いられる。
【００９０】
ステップＳ３０３において第ｐ停車期間の停車時間ＳＴｐが第ｉ学習領域の学習時間ＬＴｉ以上であると判定された場合、本制御ルーチンはステップＳ３０４に進む。この場合、第ｐ停車期間内に第ｉ学習領域におけるニューラルネットワークモデルの学習を完了可能である。このため、ステップＳ３０４において、学習計画部８１は第ｐ停車期間に第ｉ学習領域を割り当てる。
【００９１】
次いで、ステップＳ３０５において、学習計画部８１は、次の学習領域も第ｐ停車期間に振り分け可能であるか否かを判定すべく、第ｐ停車期間の停車時間ＳＴｐを更新する。具体的には、学習計画部８１は、第ｐ停車期間の停車時間ＳＴｐから第ｉ学習領域の学習時間ＬＴｉを減算した値を新たな停車時間ＳＴｐに設定する。
【００９２】
ステップＳ３０５の後、本制御ルーチンはステップＳ３０８に進む。また、ステップＳ３０２において第ｉ学習領域に訓練データセットが存在していないと判定された場合も、本制御ルーチンはステップＳ３０８に進む。ステップＳ３０８では、学習計画部８１は学習領域番号ｉに１を加算する。次いで、ステップＳ３０９において、学習計画部８１は学習領域番号ｉがｎ＋１であるか否かを判定する。図６に示されるように、ｎは、予め定められた学習領域の総数である。
【００９３】
ステップＳ３０９において学習領域番号ｉがｎ＋１であると判定された場合、本制御ルーチンは終了する。なお、各学習領域における訓練データセット及び停車期間の予測結果は図７及び図８の制御ルーチンによって繰り返し更新される。このため、次の制御ルーチンにおいて、学習領域の割り当てが最初から再開される。
【００９４】
一方、ステップＳ３０９において学習領域番号ｉがｎ以下であると判定された場合、本制御ルーチンはステップＳ３１０に進む。ステップＳ３１０では、学習計画部８１は停車期間番号ｐを１に設定する。ステップＳ３１０の後、本制御ルーチンはステップＳ３０２に戻り、次の学習領域の割り当ての可否が判定される。
【００９５】
また、ステップＳ３０３において第ｐ停車期間の停車時間ＳＴｐが第ｉ学習領域の学習時間ＬＴｉ未満であると判定された場合、本制御ルーチンはステップＳ３０６に進む。ステップＳ３０６では、学習計画部８１は、第ｉ学習領域を割り当て可能な他の停車期間を探るべく、停車期間番号に１を加算する。
【００９６】
次いで、ステップＳ３０７において、学習計画部８１は、停車期間番号ｐがｍ＋１であるか否かを判定する。ｍは、予測された停車期間の総数であり、図５の例では７である。ステップＳ３０７において停車期間番号ｐがｍ以下であると判定された場合、本制御ルーチンはステップＳ３０３に戻り、次の停車期間への割り当ての可否が判定される。
【００９７】
一方、ステップＳ３０７において停車期間番号ｐがｍ＋１であると判定された場合、第ｉ学習領域を割り当て可能な停車期間が存在しないため、ステップＳ３０８において学習領域番号ｉに１が加算される。
【００９８】
次いで、ステップＳ３０９において、学習計画部８１は学習領域番号ｉがｎ＋１であるか否かを判定する。学習領域番号ｉがｎ＋１であると判定された場合、本制御ルーチンは終了する。一方、学習領域番号ｉがｎ以下であると判定された場合、本制御ルーチンはステップＳ３１０に進み、以後の処理は上述したとおりである。
【００９９】
上述したように、本制御ルーチンでは、学習領域番号ｉが小さい学習領域から順に割り当ての可否が判定される。この結果、相対的に小さい学習領域番号ｉを有する学習領域が、相対的に大きい学習領域番号ｉを有する学習領域よりも優先的に停車期間に割り当てられる。すなわち、本実施形態では、学習領域番号ｉは学習の優先順位を示し、学習領域番号ｉが小さいほど、その学習領域の学習の優先順位が高くなる。したがって、複数の学習領域に学習の優先順位が付与されていると言える。なお、図６の例では学習領域の並び順に従って優先順位が付与されているが、例えば優先順位がランダムに付与されてもよい。
【０１００】
＜学習処理＞
図１０は、本発明の第一実施形態における学習処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって繰り返し実行される。
【０１０１】
最初に、ステップＳ４０１において、学習部８３は、現在が停車期間であるか否かを判定する。例えば、学習部８３は、車速センサ７７によって検出された車両の速度がゼロである状態が所定時間以上続いた場合に、現在が停車期間であると判定する。ステップＳ４０１において現在が停車期間ではないと判定された場合、すなわち現在が走行期間であると判定された場合、本制御ルーチンは終了する。
【０１０２】
一方、ステップＳ４０１において現在が停車期間であると判定された場合、本制御ルーチンはステップＳ４０２に進む。ステップＳ４０２では、学習部８３は、停車期間予測部８４によって予測された停車期間の日時と現在の日時とを照合することによって現在の停車期間の停車期間番号ｐを特定する。
【０１０３】
次いで、ステップＳ４０２において、学習部８３は、ステップＳ４０２において特定した停車期間番号ｐの停車期間に学習領域が割り当てられているか否かを判定する。学習領域が割り当てられていないと判定された場合、本制御ルーチンは終了する。一方、学習領域が割り当てられていると判定された場合、本制御ルーチンはステップＳ４０４に進む。
【０１０４】
ステップＳ４０４では、学習部８３は、割り当てられた学習領域におけるニューラルネットワークモデルの学習を行う。具体的には、学習部８３は、割り当てられた学習領域における訓練データセットを用いて、上述した誤差逆伝播法によってニューラルネットワークモデルにおける重みｗ及びバイアスｂの値を繰り返し更新する。ステップＳ４０４の後、本制御ルーチンは終了する。
【０１０５】
また、学習部８３は、学習の終了後、ニューラルネットワークモデルを更新する。具体的には、学習部８３は、ニューラルネットワークモデルにおける重みｗ及びバイアスｂの値を、学習によって更新された最終的な値に変更する。演算部８５は更新後のニューラルネットワークモデルを用いて出力パラメータを算出する。
【０１０６】
＜第二実施形態＞
第二実施形態に係る機械学習装置は、以下に説明する点を除いて、基本的に第一実施形態に係る機械学習装置の構成及び制御と同様である。このため、以下、本発明の第二実施形態について、第一実施形態と異なる部分を中心に説明する。
【０１０７】
第一実施形態では、複数の学習領域は、それぞれ、入力パラメータの範囲の異なる組合せによって画定される。一方、第二実施形態では、複数の学習領域は、小学習領域と、小学習領域を包含する大学習領域とを含む。小学習領域及び大学習領域は、小学習領域が大学習領域よりもデータ密度が高くなるように定められる。すなわち、小学習領域は、出現頻度が相対的に高い入力パラメータの範囲によって画定され、大学習領域と小学習領域との差分領域は、出現頻度が相対的に低い入力パラメータの範囲によって画定される。
【０１０８】
学習部８３は小学習領域と大学習領域とを選択的に停車期間に割り当てる。この場合、ニューラルネットワークモデルの学習において小学習領域における訓練データセットが常に用いられることとなる。このため、出現頻度が相対的に高い入力パラメータの範囲について、ニューラルネットワークモデルの学習を促進することができる。この結果、車両の典型的な走行状態においてニューラルネットワークモデルによる出力パラメータの算出精度を向上させることができる。
【０１０９】
図１１は、第二実施形態における複数の学習領域を概略的に示す図である。この例では、第２学習領域（ｉ＝２）が第１学習領域（ｉ＝１）を包含し、第３学習領域（ｉ＝３）が第１学習領域（ｉ＝１）及び第２学習領域（ｉ＝２）を包含している。したがって、第１学習領域が小学習領域に相当し、第２学習領域及び第３学習領域が大学習領域に相当する。なお、大学習領域の数は２以外の他の数であってもよい。
【０１１０】
例えば、小学習領域及び大学習領域は、複数の入力パラメータのそれぞれの範囲の出現頻度の予測に基づいて、小学習領域が大学習領域よりもデータ密度が高くなるように予め定められる。また、小学習領域及び大学習領域は、車両の出荷後の所定期間において取得された入力パラメータの実測値に基づいて、小学習領域が大学習領域よりもデータ密度が高くなるように定められてもよい。
【０１１１】
＜学習計画作成処理＞
第二実施形態では、図７、図８及び図１０の制御ルーチンに加えて、図９の制御ルーチンの代わりに図１２の制御ルーチンが実行される。図１２は、本発明の第二実施形態における学習計画作成処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって所定の時間間隔で繰り返し実行される。
【０１１２】
最初に、ステップＳ５０１において、図９のステップＳ３０１と同様に、学習計画部８１は、第ｉ学習領域に訓練データセットが存在しているか否かを判定する。学習領域番号ｉの初期値は１である。第ｉ学習領域に訓練データセットが存在していないと判定された場合、本制御ルーチンは終了する。一方、第ｉ学習領域に訓練データセットが存在していると判定された場合、本制御ルーチンはステップＳ５０２に進む。なお、第２学習領域及び第３学習領域が第１学習領域を包含しているため、第１学習領域に訓練データセットが存在している場合、第２学習領域及び第３学習領域にも訓練データセットが存在している。
【０１１３】
ステップＳ５０２では、学習計画部８１は第ｐ停車期間の停車時間ＳＴｐが第３学習領域の学習時間ＬＴ３以上であるか否かを判定する。このとき、学習計画部８１は、第３学習領域に振り分けられた訓練データセットの数に基づいて第３学習領域の学習時間ＬＴ３を算出する。訓練データセットの数が多いほど、第３学習領域の学習時間ＬＴ３は長くなる。一方、第ｐ停車期間の停車時間ＳＴｐは、停車期間予測部８４によって予測された値が用いられる。停車期間番号ｐの初期値は１である。
【０１１４】
ステップＳ５０２において第ｐ停車期間の停車時間ＳＴｐが第３学習領域の学習時間ＬＴ３以上であると判定された場合、本制御ルーチンはステップＳ５０３に進む。ステップＳ５０３では、学習計画部８１は第ｐ停車期間に第３学習領域を割り当てる。
【０１１５】
次いで、ステップＳ５０８において、学習計画部８１は、次の停車期間への割り当ての可否を判定すべく、停車期間番号ｐに１を加算する。次いで、ステップＳ５０９において、学習計画部８１は、停車期間番号ｐがｍ＋１であるか否かを判定する。ｍは、予測された停車期間の総数である。
【０１１６】
ステップＳ５０９において停車期間番号ｐがｍ以下であると判定された場合、本制御ルーチンは終了する。一方、ステップＳ５０９において停車期間番号ｐがｍ＋１であると判定された場合、本制御ルーチンはステップＳ５１０に進む。ステップＳ５１０では、学習計画部８１は停車期間番号ｐを１（初期値）にリセットする。ステップＳ５１０の後、本制御ルーチンは終了する。
【０１１７】
また、ステップＳ５０２において第ｐ停車期間の停車時間ＳＴｐが第３学習領域の学習時間ＬＴ３未満であると判定された場合、本制御ルーチンはステップＳ５０４に進む。ステップＳ５０４では、学習計画部８１はｐ停車期間の停車時間ＳＴｐが第２学習領域の学習時間ＬＴ２以上であるか否かを判定する。このとき、学習計画部８１は、第２学習領域に振り分けられた訓練データセットの数に基づいて第２学習領域の学習時間ＬＴ２を算出する。訓練データセットの数が多いほど、第２学習領域の学習時間ＬＴ２は長くなる。なお、第３学習領域が第２学習領域を包含しているため、第２学習領域の学習時間ＬＴ２は第３学習領域の学習時間ＬＴ３以下となる。
【０１１８】
ステップＳ５０４において第ｐ停車期間の停車時間ＳＴｐが第２学習領域の学習時間ＬＴ２以上であると判定された場合、本制御ルーチンはステップＳ５０５に進む。ステップＳ５０５では、学習計画部８１は第ｐ停車期間に第２学習領域を割り当てる。次いで、ステップＳ５０８〜ステップＳ５１０が、上述したように実行される。
【０１１９】
一方、ステップＳ５０４において第ｐ停車期間の停車時間ＳＴｐが第２学習領域の学習時間ＬＴ２未満であると判定された場合、本制御ルーチンはステップＳ５０６に進む。ステップＳ５０６では、学習計画部８１はｐ停車期間の停車時間ＳＴｐが第１学習領域の学習時間ＬＴ１以上であるか否かを判定する。このとき、学習計画部８１は、第１学習領域に振り分けられた訓練データセットの数に基づいて第１学習領域の学習時間ＬＴ１を算出する。訓練データセットの数が多いほど、第１学習領域の学習時間ＬＴ１は長くなる。なお、第３学習領域及び第２学習領域が第１学習領域を包含しているため、第１学習領域の学習時間ＬＴ１は第３学習領域の学習時間ＬＴ３及び第２学習領域の学習時間ＬＴ２以下となる。
【０１２０】
ステップＳ５０６において第ｐ停車期間の停車時間ＳＴｐが第１学習領域の学習時間ＬＴ１以上であると判定された場合、本制御ルーチンはステップＳ５０７に進む。ステップＳ５０７では、学習計画部８１は第ｐ停車期間に第１学習領域を割り当てる。次いで、ステップＳ５０８〜ステップＳ５１０が、上述したように実行される。
【０１２１】
一方、ステップＳ５０６において第ｐ停車期間の停車時間ＳＴｐが第１学習領域の学習時間ＬＴ１未満であると判定された場合、本制御ルーチンはステップＳ５０８に進み、ステップＳ５０８〜ステップＳ５１０が、上述したように実行される。
【０１２２】
＜第三実施形態＞
第三実施形態に係る機械学習装置は、以下に説明する点を除いて、基本的に第一実施形態に係る機械学習装置の構成及び制御と同様である。このため、以下、本発明の第三実施形態について、第一実施形態と異なる部分を中心に説明する。
【０１２３】
第三実施形態では、第一実施形態と同様に、複数の学習領域に学習の優先順位が付与される。一方、第三実施形態では、第一実施形態と異なり、学習計画部８１は、出現頻度が相対的に高い入力パラメータの値を含む学習領域の学習の優先順位を、出現頻度が相対的に低い入力パラメータの値を含む学習領域の学習の優先順位よりも高くする。このため、出現頻度が相対的に高い入力パラメータの範囲について、ニューラルネットワークモデルの学習を促進することができる。この結果、車両の典型的な走行状態においてニューラルネットワークモデルによる出力パラメータの算出精度を向上させることができる。
【０１２４】
第三実施形態では、複数の入力パラメータによって画定される空間が複数の初期領域に分割される。複数の初期領域は、車両において取得された入力パラメータの実測値の取得回数に基づいて三つの学習領域（第１学習領域、第２学習領域及び第３学習領域）に振り分けられる。初期領域は、図５に示されるような学習領域と同様の領域である。なお、第三実施形態において、学習領域の数は二つ以上の任意の数であってもよい。
【０１２５】
第三実施形態では、第一実施形態と同様に、図７〜図１０の制御ルーチンが実行される。このとき、第三実施形態では、図７のステップＳ１０３においてデータセット作成部８２は訓練データセットを学習領域及び初期領域に振り分ける。この場合、訓練データセットは、対応する学習領域の学習領域番号ｉ及び対応する初期領域の初期領域番号ｑと共にＥＣＵ６０のメモリ６２に記憶される。
【０１２６】
＜学習領域設定処理＞
また、第三実施形態では、図７〜図１０の制御ルーチンに加えて、図１３の制御ルーチンが実行される。図１３は、本発明の第三実施形態における学習領域設定処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって所定の時間間隔で繰り返し実行される。
【０１２７】
最初に、ステップＳ６０１において、学習計画部８１は、第ｑ初期領域に振り分けられた訓練データセットの数Ｎｑが第１基準値Ｒ１以上であるか否かを判定する。第１基準値Ｒ１は予め定められる。初期領域番号ｑの初期値は１である。
【０１２８】
ステップＳ６０１において訓練データセットの数Ｎｑが第１基準値Ｒ１以上であると判定された場合、本制御ルーチンはステップＳ６０２に進む。ステップＳ６０２では、学習計画部８１は、第ｑ初期領域の学習領域番号ｉを１に設定する。
【０１２９】
次いで、ステップＳ６０７において、学習計画部８１は、次の初期領域の学習領域番号ｉを設定すべく、初期領域番号ｑに１を加算する。次いで、ステップＳ６０８において、学習計画部８１は、初期領域番号ｑがｋ＋１であるか否かを判定する。ｋは、予め定められた初期領域の総数である。
【０１３０】
ステップＳ６０８において初期領域番号ｑがｋ以下であると判定された場合、本制御ルーチンは終了する。一方、ステップＳ６０８において初期領域番号ｑがｋ＋１であると判定された場合、本制御ルーチンはステップＳ６０９に進む。ステップＳ６０９では、学習計画部８１は初期領域番号ｑを１（初期値）にリセットする。ステップＳ６０９の後、本制御ルーチンは終了する。
【０１３１】
一方、ステップＳ６０１において訓練データセットの数Ｎｑが第１基準値Ｒ１未満であると判定された場合、本制御ルーチンはステップＳ６０３に進む。ステップＳ６０３では、学習計画部８１は、第ｑ初期領域に振り分けられた訓練データセットの数Ｎｑが第２基準値Ｒ２以上であるか否かを判定する。第２基準値Ｒ２は、予め定められ、第１基準値Ｒ１よりも小さい値に設定される。
【０１３２】
ステップＳ６０３において訓練データセットの数Ｎｑが第２基準値Ｒ２以上であると判定された場合、本制御ルーチンはステップＳ６０４に進む。ステップＳ６０４では、学習計画部８１は、第ｑ初期領域の学習領域番号ｉを２に設定する。図９の制御ルーチンにおいて第１学習領域は第２学習領域よりも優先的に停車期間に割り当てられる。このため、第２学習領域は第１学習領域よりも学習の優先順位が低い。次いで、ステップＳ６０７〜ステップＳ６０９が、上述したように実行される。
【０１３３】
一方、ステップＳ６０３において訓練データセットの数Ｎｑが第２基準値Ｒ２未満であると判定された場合、本制御ルーチンはステップＳ６０５に進む。ステップＳ６０５では、学習計画部８１は、第ｑ初期領域に振り分けられた訓練データセットの数Ｎｑが第３基準値Ｒ３以上であるか否かを判定する。第３基準値Ｒ３は、予め定められ、第１基準値Ｒ１及び第２基準値Ｒ２よりも小さい値に設定される。
【０１３４】
ステップＳ６０５において訓練データセットの数Ｎｑが第３基準値Ｒ３以上であると判定された場合、本制御ルーチンはステップＳ６０６に進む。ステップＳ６０６では、学習計画部８１は、第ｑ初期領域の学習領域番号ｉを３に設定する。図９の制御ルーチンにおいて第１学習領域及び第２学習領域は第３学習領域よりも優先的に停車期間に割り当てられる。このため、第３学習領域は第１学習領域及び第２学習領域よりも学習の優先順位が低い。次いで、ステップＳ６０７〜ステップＳ６０９が、上述したように実行される。
【０１３５】
＜第四実施形態＞
第四実施形態に係る機械学習装置は、以下に説明する点を除いて、基本的に第一実施形態に係る機械学習装置の構成及び制御と同様である。このため、以下、本発明の第四実施形態について、第一実施形態と異なる部分を中心に説明する。
【０１３６】
第四実施形態では、学習部８３は複数のニューラルネットワークモデルの学習を行う。複数のニューラルネットワークモデルは、それぞれ、異なる種類の出力パラメータを出力する。
【０１３７】
例えば、学習部８３は６つのニューラルネットワークモデルの学習を行う。例えば、第１ニューラルネットワークモデルにおいて、入力パラメータが、機関回転数、新気量及び点火時期を含み、出力パラメータが排気ガス中の炭化水素（ＨＣ）濃度を含む。また、第２ニューラルネットワークモデルにおいて、入力パラメータが、機関回転数、新気量及びＥＧＲガス量を含み、出力パラメータが排気ガス中のＮＯｘ濃度を含む。また、第３ニューラルネットワークモデルにおいて、入力パラメータが、機関回転数、新気量、ＥＧＲ量及び点火時期を含み、出力パラメータが排気ガス中の一酸化炭素（ＣＯ）濃度を含む。また、第４ニューラルネットワークモデルにおいて、入力パラメータが、機関回転数、新気量及び燃料噴射量を含み、出力パラメータが車両の燃費を含む。また、第５ニューラルネットワークモデルにおいて、入力パラメータが、機関回転数、新気量及び点火時期を含み、出力パラメータが内燃機関１の出力トルクを含む。また、第６ニューラルネットワークモデルにおいて、入力パラメータが、機関回転数、新気量及び燃料噴射量を含み、出力パラメータが排気ガス中の二酸化炭素（ＣＯ2）濃度を含む。
【０１３８】
この場合、入力パラメータ及び出力パラメータの実測値は以下のように取得可能である。機関回転数は、クランク角センサ７４の出力に基づいて算出される。新気量はエアフロメータ７１によって検出される。点火時期はＥＣＵ６０から点火プラグへの指令値に基づいて算出される。ＥＧＲガス量はＥＧＲ制御弁１５の開度等に基づいて算出される。燃料噴射量はＥＣＵ６０から燃料噴射弁への指令値に基づいて算出される。排気ガス中のＮＯｘ濃度はＮＯｘセンサ７３によって検出される。車両の燃費は例えば走行距離を燃料使用量で除算することによって算出される。排気ガス中のＨＣ濃度、ＣＯ濃度及びＣＯ2濃度は例えば空燃比センサ７２の出力に基づいて算出される。なお、これら濃度は、所定成分の濃度を検出する排気センサによって直接検出されてもよい。
【０１３９】
第四実施形態では、複数のニューラルネットワークモデルのそれぞれについて、複数の入力パラメータによって画定される空間が複数の学習領域に分割される。ニューラルネットワークモデルが異なる学習領域には、異なる学習領域番号が付与される。また、第一実施形態と同様に、複数の学習領域に学習の優先順位が付与される。
【０１４０】
異なる出力パラメータを出力する複数のニューラルネットワークモデルが学習される場合、ニューラルネットワークモデルの学習の優先順位は、車両が走行している道路の情報等に応じて変化する。このため、学習計画部８１は、車両が走行している道路の情報に基づいて、複数の学習領域に付与された学習の優先順位を変更する。このことによって、ニューラルネットワークモデルを車両の走行状態に適合させることができる。
【０１４１】
例えば、車両が走行している道路が上り坂である場合、内燃機関１によって上り坂に必要な動力を発生させる必要がある。このため、内燃機関１の出力トルクの算出精度を向上させるべく、内燃機関１の出力トルクを出力するニューラルネットワークモデル（第５ニューラルネットワークモデル）の学習の優先順位が最も高くなる。
【０１４２】
そこで、学習計画部８１は、車両が走行している道路が上り坂である場合には、車両が走行している道路が上り坂でない場合に比べて、第５ニューラルネットワークモデルに対応する学習領域の優先順位を高くする。
【０１４３】
＜学習領域番号変更処理＞
第四実施形態では、図７〜図１０の制御ルーチンに加えて、図１４の制御ルーチンが実行される。図１４は、本発明の第四実施形態における学習領域番号変更処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって所定の時間間隔で繰り返し実行される。
【０１４４】
最初に、ステップＳ８０１において、学習計画部８１は、車両が走行している道路が上り坂であるか否かを判定する。例えば、学習計画部８１は、ＧＰＳ受信機９２によって検出される車両の現在位置と、地図データベース９３に記憶された地図情報とに基づいて、車両が走行している道路が上り坂であるか否かを判定する。
【０１４５】
ステップＳ８０１において車両が走行している道路が上り坂ではないと判定された場合、本制御ルーチンはステップＳ８０３に進む。ステップＳ８０３では、学習計画部８１は学習領域番号ｉを初期化する。すなわち、全ての学習領域の学習領域番号ｉが、予め定められた初期値に設定される。ステップＳ８０３の後、本制御ルーチンは終了する。
【０１４６】
一方、ステップＳ８０１において道路が上り坂であると判定された場合、本制御ルーチンはステップＳ８０２に進む。ステップＳ８０２では、学習計画部８１は学習領域番号ｉを初期値から変更する。具体的には、学習計画部８１は、内燃機関１の出力トルクを出力する第５ニューラルネットワークモデルに対応する学習領域の学習領域番号ｉを小さくする。例えば、第６ニューラルネットワークモデル、第４ニューラルネットワークモデル、第３ニューラルネットワークモデル、第１ニューラルネットワークモデル、第２ニューラルネットワークモデル及び第５ニューラルネットワークモデルの順で、対応する学習領域の学習領域番号ｉが小さくされる。ステップＳ８０２の後、本制御ルーチンは終了する。
【０１４７】
なお、車両が高速道路を走行している場合、所定範囲（例えば８０ｋｍ／ｈ〜１２０ｋｍ／ｈ）の車両の速度の出現頻度が高くなる。このため、学習計画部８１は、車両が走行している道路が高速道路である場合には、車両が走行している道路が高速道路でない場合に比べて、所定範囲の車両の速度を含む学習領域の優先順位を高くしてもよい。この場合、学習部８３は、入力パラメータとして車両の速度を含むニューラルネットワークモデルの学習を行う。また、この場合、学習部８３は一つのみのニューラルネットワークモデルの学習を行ってもよい。
【０１４８】
＜第五実施形態＞
第五実施形態に係る機械学習装置は、以下に説明する点を除いて、基本的に第四実施形態に係る機械学習装置の構成及び制御と同様である。このため、以下、本発明の第五実施形態について、第四実施形態と異なる部分を中心に説明する。
【０１４９】
第四実施形態のように、ニューラルネットワークモデルの対象が内燃機関１であり、異なる出力パラメータを出力する複数のニューラルネットワークモデルが学習される場合、ニューラルネットワークモデルの学習の優先順位は、内燃機関１の暖機状態に応じて変化する。このため、学習計画部８１は、内燃機関１の暖機状態に基づいて、複数の学習領域に付与された学習の優先順位を変更する。このことによって、ニューラルネットワークモデルを内燃機関１の状態に適合させることができる。
【０１５０】
内燃機関１の暖機が完了していない場合、触媒２９の浄化性能が低下する。このため、排気エミッションの悪化を抑制すべく、排気ガス中の有害物質濃度（ＮＯｘ、ＨＣ及びＣＯ）の算出精度を向上させる必要がある。一方、内燃機関１の暖機が完了している場合には、車両の燃費が優先される。このため、学習計画部８１は、内燃機関１の暖機が完了していない場合には、内燃機関１の暖機が完了している場合に比べて、排気ガス中の有害物質濃度を出力するニューラルネットワークモデル（第１ニューラルネットワークモデル〜第３ニューラルネットワークモデル）に対応する学習領域の優先順位を高くし、車両の燃費を出力するニューラルネットワークモデル（第４ニューラルネットワークモデル）に対応する学習領域の優先順位を低くする。
【０１５１】
＜学習領域番号変更処理＞
第五実施形態では、図７〜図１０の制御ルーチンに加えて、図１５の制御ルーチンが実行される。図１５は、本発明の第五実施形態における学習領域番号変更処理の制御ルーチンを示すフローチャートである。本制御ルーチンは、ＥＣＵ６０によって所定の時間間隔で繰り返し実行される。
【０１５２】
最初に、ステップＳ９０１において、学習計画部８１は、内燃機関１の暖機状態を取得する。具体的には、学習計画部８１は、内燃機関１の暖機が完了しているか否かを判定する。この判定は、例えば、内燃機関１に設けられた水温センサの出力、内燃機関１の排気通路に設けられた排気温センサの出力、エアフロメータ７１の出力に基づいて算出される積算新気量等に基づいて行われる。
【０１５３】
次いで、ステップＳ９０２において、学習計画部８１は学習領域番号ｉを変更する。具体的には、学習計画部８１は、内燃機関１の暖機が完了していない場合には、内燃機関１の暖機が完了している場合に比べて、排気ガス中の有害物質濃度を出力する第１ニューラルネットワークモデル〜第３ニューラルネットワークモデルに対応する学習領域の学習領域番号ｉを小さくし、車両の燃費を出力する第４ニューラルネットワークモデルに対応する学習領域の学習領域番号ｉを大きくする。
【０１５４】
例えば、内燃機関１の暖機が完了していない場合、第６ニューラルネットワークモデル、第５ニューラルネットワークモデル、第４ニューラルネットワークモデル、第３ニューラルネットワークモデル、第２ニューラルネットワークモデル及び第１ニューラルネットワークモデルの順で、対応する学習領域の学習領域番号ｉが小さくされる。一方、内燃機関１の暖機が完了している場合、第６ニューラルネットワークモデル、第５ニューラルネットワークモデル、第３ニューラルネットワークモデル、第１ニューラルネットワークモデル、第２ニューラルネットワークモデル及び第４ニューラルネットワークモデルの順で、対応する学習領域の学習領域番号ｉが小さくされる。ステップＳ９０２の後、本制御ルーチンは終了する。
【０１５５】
＜その他の実施形態＞
以上、本発明に係る好適な実施形態を説明したが、本発明はこれら実施形態に限定されるものではなく、特許請求の範囲の記載内で様々な修正及び変更を施すことができる。
【０１５６】
例えば、ニューラルネットワークモデルの対象は、車両に関するものである限り、上述した内燃機関１以外であってもよい。例えば、ニューラルネットワークモデルの対象は、車両自体、圧縮自着火式内燃機関（ディーゼルエンジン）、トランスミッション等であってもよい。
【０１５７】
また、機械学習装置を搭載する車両は、駆動源として電動機を備えるハイブリッド車両（ＨＶ）、プラグインハイブリッド車両（ＰＨＶ）又は電気自動車（ＥＶ）であってもよい。この場合、ニューラルネットワークモデルの対象は、電動機、電動機に電力を供給するバッテリ等であってもよい。
【０１５８】
また、ニューラルネットワークモデルの入力パラメータ及び出力パラメータとして、ニューラルネットワークモデルの対象に応じて様々なパラメータを用いることができる。入力パラメータ又は出力パラメータの実測値を検出するためのセンサは、入力パラメータ及び出力パラメータの種類に応じて選択される。
【０１５９】
また、上述した実施形態は、任意に組み合わせて実施可能である。例えば、第四実施形態は第五実施形態と組合せ可能である。この場合、例えば、図１４の制御ルーチンにおいて、ステップＳ８０３の代わりに図１５のステップＳ９０１及びステップＳ９０２が実行される。
【符号の説明】
【０１６０】
１    内燃機関
６０    電子制御ユニット（ＥＣＵ）
８１    学習計画部
８２    データセット作成部
８３    学習部
８４    停車期間予測部
【図１】
2020119246.tif 000011
【図２】
2020119246.tif 000012
【図３】
2020119246.tif 000013
【図４】
2020119246.tif 000014
【図５】
2020119246.tif 000015
【図６】
2020119246.tif 000016
【図７】
2020119246.tif 000017
【図８】
2020119246.tif 000018
【図９】
2020119246.tif 000019
【図１０】
2020119246.tif 000020
【図１１】
2020119246.tif 000021
【図１２】
2020119246.tif 000022
【図１３】
2020119246.tif 000023
【図１４】
2020119246.tif 000024
【図１５】
2020119246.tif 000025