(57)【要約】【課題】追加の学習用データセットを用いて、モデルの精度を向上することができる。【解決手段】ニューラルネットワークを用いた内燃機関の制御装置において、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが存在していないときには、追加候補の学習用データが、追加の学習用データセットとして記憶部に記憶される。データ取得部が、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが既に存在しているときには、追加候補の学習用データの品質が予め定められた品質よりも低くない限り、記憶部に記憶されている既存の学習用データセットが、追加候補の学習用データセットに基づき更新される。【選択図】図６
2019148243.tif 000002
【特許請求の範囲】
【請求項１】
電子制御ユニットを具備しており、該電子制御ユニットが、機関の運転に関係する入力データを取得するデータ取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、入力データが入力層に入力され、入力データに応じて変化する出力値が出力層から出力される内燃機関の制御装置において、予め求められている既存の学習用データセットに基づいてニューラルネットワークの重みが事前に学習されており、データ取得部が、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが存在していないときには、追加候補の学習用データが、追加の学習用データセットとして記憶部に記憶され、データ取得部が、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが既に存在しているときには、追加候補の学習用データの品質が予め定められた品質よりも低くない限り、記憶部に記憶されている既存の学習用データセットが、追加候補の学習用データセットに基づき更新され、該演算部により、該追加の学習用データセットおよび該更新された学習用データセットに基づいてニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて入力データに応じた出力値が出力される内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の制御装置に関する。
【背景技術】
【０００２】
ニューラルネットワークを用いた内燃機関の制御装置において、予め定められた運転条件の範囲内における、機関回転数、吸入空気量等の機関の運転パラメータの値と、燃焼室内への吸入ガス量の計測値との関係が、学習用データセットの形で予め求められており、この学習用データセットを用いてニューラルネットワークの重みを学習することにより、機関の運転パラメータの値と、燃焼室内への吸入ガス量との関係をモデル化した吸入ガス量モデルがニューラルネットワークにより作成され、機関運転時に、この吸入ガス量モデルを用いて、機関の運転パラメータの値から、燃焼室内への吸入ガス量を推定するようにした内燃機関の制御装置が公知である（例えば特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１２２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ニューラルネットワークを用いた内燃機関の制御装置では、上述の吸入ガス量モデルのように、モデルは、通常、予め定められた運転条件の範囲内において予め求められている学習用データセットを用いてニューラルネットワークにより作成される。ところが、実際には、後になって、予め定められた運転条件の範囲外における学習用データセットを取得できる場合があり、この場合には、この学習用データセットを既存の学習用データセットに追加し、この追加の学習用データセットも用いてモデルを更新することが、モデルの精度を向上する上で好ましいと言える。また、後になって、既存の学習用データセットについて新たな学習用データセットを取得できる場合があり、この場合には、新たな学習用データの品質が予め定められた品質よりも低くない限り、既存の学習用データセットを更新することが、モデルの精度を向上する上で好ましいと言える。しかしながら、上述の公知の内燃機関の制御装置では、追加の学習用データセットを用いてモデルを更新することについても、既存の学習用データセットを更新することについても、配慮されていない。
【０００５】
そこで、本発明では、電子制御ユニットを具備しており、電子制御ユニットが、機関の運転に関係する入力データを取得するデータ取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、入力データが入力層に入力され、入力データに応じて変化する出力値が出力層から出力される内燃機関の制御装置において、予め求められている既存の学習用データセットに基づいてニューラルネットワークの重みが事前に学習されており、データ取得部が、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが存在していないときには、追加候補の学習用データが、追加の学習用データセットとして記憶部に記憶され、データ取得部が、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが既に存在しているときには、追加候補の学習用データの品質が予め定められた品質よりも低くない限り、記憶部に記憶されている既存の学習用データセットが、追加候補の学習用データセットに基づき更新され、演算部により、追加の学習用データセットおよび更新された学習用データセットに基づいてニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて入力データに応じた出力値が出力される。
【発明の効果】
【０００６】
学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが存在していないときには、追加候補の学習用データを、追加の学習用データセットとして記憶し、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが既に存在しているときには、追加候補の学習用データの品質が予め定められた品質よりも低くない限り、既存の学習用データセットが、追加候補の学習用データセットに基づき更新し、追加の学習用データセットおよび更新された学習用データセットに基づいてニューラルネットワークの重みを学習することにより、モデルの精度を向上することができる。
【図面の簡単な説明】
【０００７】
【図１】図１は内燃機関の全体図である。
【図２】図２はニューラルネットワークの一例を示す図である。
【図３】図３Ａおよび図３Ｂはシグモイド関数σの値の変化を示す図である。
【図４】図４Ａおよび図４Ｂは夫々、ニューラルネットワークと、隠れ層のノードからの出力値を示す図である。
【図５】図５Ａは出力層のノードからの出力値を示す図であり、図５Ｂはニューラルネットワークを示す図であり、図５Ｃは出力層のノードからの出力値を示す図である。
【図６】図６は、学習処理を実行するためのフローチャートである。
【図７】図７は、学習処理を実行するための別の実施例を示すフローチャートである。
【図８】図８は運転領域を示す図である。
【図９】図９は、学習処理を実行するための更に別の実施例を示すフローチャートである。
【図１０】図１０Ａおよび図１０Ｂは夫々、データ点と、データ反映率とを示す図である。
【発明を実施するための形態】
【０００８】
＜内燃機関の全体構成＞
【０００９】
図１に内燃機関の全体図を示す。図１を参照すると、１は機関本体、２は各気筒の燃焼室、３は各気筒の燃焼室２内に配置された点火栓、４は各気筒に燃料、例えば、ガソリンを供給するための燃料噴射弁、５はサージタンク、６は吸気枝管、７は排気マニホルドを夫々示す。サージタンク５は吸気ダクト８を介して排気ターボチャージャ９のコンプレッサ９ａの出口に連結され、コンプレッサ９ａの入口は吸入空気量検出器１０を介してエアクリーナ１１に連結される。吸気ダクト８内にはアクチュエータ１３により駆動されるスロットル弁１２が配置され、スロットル弁１２にはスロットル弁開度を検出するためのスロットル弁開度センサ１４が取り付けられている。また、吸気ダクト８周りには吸気ダクト８内を流れる吸入空気を冷却するためのインタクーラ１５が配置される。
【００１０】
一方、排気マニホルド７は排気ターボチャージャ９の排気タービン９ｂの入口に連結され、排気タービン９ｂの出口は排気管１６を介して排気浄化用触媒コンバータ１７に連結される。排気マニホルド７とサージタンク５とは排気ガス再循環（以下、ＥＧＲと称す）通路１８を介して互いに連結され、ＥＧＲ通路１８内にはＥＧＲ制御弁１９が配置される。各燃料噴射弁４は燃料分配管２０に連結され、この燃料分配管２０は燃料ポンプ２１を介して燃料タンク２２に連結される。排気管１６内には排気ガス中のNOX濃度を検出するためのNOXセンサ２３が配置されている。また、エアクリーナ１１内には大気温を検出するための大気温センサ２４が配置されている。
【００１１】
電子制御ユニット３０はデジタルコンピュータからなり、双方向性バス３１によって互いに接続されたROM（リードオンリメモリ）３２、RAM（ランダムアクセスメモリ）３３、CPU（マイクロプロセッサ）３４、入力ポート３５および出力ポート３６を具備する。入力ポート３５には、吸入空気量検出器１０、スロットル弁開度センサ１４、NOXセンサ２３および大気温センサ２４の出力信号が、対応するAD変換器３７を介して入力される。アクセルペダル４０にはアクセルペダル４０の踏込み量に比例した出力電圧を発生する負荷センサ４１が接続され、負荷センサ４１の出力電圧は対応するAD変換器３７を介して入力ポート３５に入力される。更に入力ポート３５にはクランクシャフトが例えば３０°回転する毎に出力パルスを発生するクランク角センサ４２が接続される。CPU３４内ではクランク角センサ４２の出力信号に基づいて機関回転数が算出される。一方、出力ポート３６は対応する駆動回路３８を介して点火栓３、燃料噴射弁４、スロットル弁駆動用アクチュエータ１３、ＥＧＲ制御弁１９および燃料ポンプ２１に接続される。
＜ニューラルネットワークの概要＞
【００１２】
本発明による実施例では、ニューラルネットワークを用いて内燃機関の性能を表す種々の値を推定するようにしている。図２はこのニューラルネットワークの一例を示している。図２における丸印は人工ニューロンを表しており、ニューラルネットワークにおいては、この人工ニューロンは、通常、ノード又はユニットと称される（本願では、ノードと称す）。図２においてL＝１は入力層、L＝２および L＝３は隠れ層、L＝４は出力層を夫々示している。また、図２において、ｘ１およびｘ２ は入力層 ( L＝１) の各ノードからの出力値を示しており、ｙ は出力層 ( L＝４) のノードからの出力値を示しており、ｚ１、ｚ２ およびｚ３ は隠れ層 ( L＝２) の各ノードからの出力値を示しており、ｚ１およびｚ２ は隠れ層 ( L＝３) の各ノードからの出力値を示している。なお、隠れ層の層数は、１個又は任意の個数とすることができ、入力層のノードの数および隠れ層のノードの数も任意の個数とすることができる。なお、本発明による実施例では、出力層のノードの数は１個とされている。
【００１３】
入力層の各ノードでは入力がそのまま出力される。一方、隠れ層 ( L＝２) の各ノードには、入力層の各ノードの出力値ｘ１およびｘ２ が入力され、隠れ層 ( L＝２) の各ノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕが算出される。例えば、図２において隠れ層 ( L＝２) のｚｋ（ｋ＝１，２，３）で示されるノードにおいて算出される総入力値ｕｋは、次式のようになる。
【数１】
2019148243.tif 000003
次いで、この総入力値ｕｋは活性化関数ｆにより変換され、隠れ層 ( L＝２) のｚｋで示されるノードから、出力値ｚｋ(= f (ｕｋ)) として出力される。隠れ層 ( L＝２) の他のノードについても同様である。一方、隠れ層 ( L＝３) の各ノード には、隠れ層 ( L＝２) の各ノードの出力値ｚ１、ｚ２ およびｚ３ が入力され、隠れ層 ( L＝3 ) の各ノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出される。この総入力値ｕは同様に活性化関数により変換され、隠れ層 ( L＝3 ) の各ノードから、出力値ｚ１ 、ｚ２ として出力される、なお、本発明による実施例では、この活性化関数としてシグモイド関数σが用いられている。
【００１４】
一方、出力層 ( L＝４) のノード には、隠れ層 ( L＝３) の各ノードの出力値ｚ１ およびｚ２ が入力され、出力層 のノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出されるか、又は、夫々対応する重みｗのみを用いて総入力値ｕ（Σｚ・ｗ）が算出される。本発明による実施例では、出力層のノードでは恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力される。
＜ニューラルネットワークによる関数の表現＞
【００１５】
さて、ニューラルネットワークを用いると任意の関数を表現することができ、次に、このことについて簡単に説明する。まず初めに、活性化関数として用いられているシグモイド関数σについて説明すると、シグモイド関数σは、σ（ｘ）＝１/（１＋exp（-ｘ））で表され、図３Ａに示されるようにｘの値に応じて０と１の間の値を取る。ここで、ｘをｗｘ＋ｂに置き換えると、シグモイド関数σは、σ（ｗｘ＋ｂ）＝１/（１＋exp（-ｗｘ―ｂ））で表される。ここで、ｗの値を大きくしていくと、図３Ｂにおいて曲線σ１、σ２、σ３で示されるように、シグモイド関数σ（ｗｘ＋ｂ）の曲線部分の傾斜が次第に急になり、ｗの値を無限大にすると、図３Ｂにおいて曲線σ４で示されるように、シグモイド関数σ（ｗｘ＋ｂ）は、ｘ＝−ｂ/ｗ（ｗｘ＋ｂ＝０となるｘ、即ち、σ（ｗｘ＋ｂ）＝０．５となるｘにおいて、図３Ｂに示されるように、ステップ状に変化するようになる。このようなシグモイド関数σの性質を利用すると、ニューラルネットワークを用いて任意の関数を表現することができる。
【００１６】
このことを説明するに当たり、初めに、図４Ａに示されるような１個のノードからなる入力層 ( Ｌ＝１) と、２個のノードからなる隠れ層 ( Ｌ＝２) と、１個のノードからなる出力層 ( Ｌ＝３) とにより構成されるニューラルネットワークについて説明する。このニューラルネットワークでは、図４Ａに示されるように、入力層 ( Ｌ＝１) のノードには入力値ｘが入力され、隠れ層 ( Ｌ＝２) においてｚ１で示されるノードには、重みｗ１(Ｌ２) およびバイアスｂ１を用いて算出された入力値ｕ＝ｘ・ｗ１(Ｌ２)＋ｂ１ が入力される。この入力値ｕはシグモイド関数σ（ｘ・ｗ１(Ｌ２)＋ｂ１）により変換され、出力値ｚ１ として出力される。同様に、隠れ層 ( Ｌ＝２) においてｚ２で示されるノードには、重みｗ２(Ｌ２)およびバイアスｂ２ を用いて算出された入力値ｕ＝ｘ・ｗ2(Ｌ２)＋ｂ2 が入力され、この入力値ｕはシグモイド関数σ（ｘ・ｗ2(Ｌ２)＋ｂ2）により変換され、出力値ｚ2 として出力される。
【００１７】
一方、出力層 ( Ｌ＝３)  のノード には、隠れ層 ( Ｌ＝２) の各ノードの出力値ｚ１ およびｚ２ が入力され、出力層 のノードでは、夫々対応する重みｗ１(ｙ) およびｗ２(ｙ) を用いて総入力値ｕ（Σｚ・ｗ＝ｚ１・ｗ１(ｙ) ＋ｚ２・ｗ２(ｙ)）が算出される。前述したように、本発明による実施例では、出力層のノードでは恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力される。
【００１８】
さて、図４Ｂは、図４Ａにおける重みｗ１(Ｌ２) およびｗ2(Ｌ２) の値を大きくすることにより、シグモイド関数σの値を、図３Ｂに示されるように、ステップ状に変化させた場合を示している。図４Ｂの（Ｉ）には、ｘ＝―ｂ１ /ｗ１(Ｌ２) において、シグモイド関数σ（ｘ・ｗ１(Ｌ２)＋ｂ１ ）の値がステップ状に増大するように重みｗ１(Ｌ２)およびバイアスｂ１が設定されたときの隠れ層 ( Ｌ＝２) のノードからの出力値ｚ１が示されている。また、図４Ｂの（II）には、ｘ＝―ｂ１ /ｗ１(Ｌ２) よりも少し大きいｘ＝−ｂ２ /ｗ２(Ｌ２) においてシグモイド関数σ（ｘ・ｗ2(Ｌ２)＋ｂ2）の値がステップ状に減少するように重みｗ２(Ｌ２)およびバイアスｂ２ が設定されたときの隠れ層 ( Ｌ＝２) のノードからの出力値ｚ２が示されている。また、図４Ｂの（III）には、隠れ層 ( Ｌ＝２) の各ノードからの出力値ｚ１ とｚ２ の和（ｚ１ ＋ｚ２ ）が実線で示されている。図４Ａに示されるように、各出力値ｚ１ 、ｚ２ には、夫々対応する重みｗ１(ｙ) およびｗ２(ｙ) が乗算されており、図４Ｂの（III）には、ｗ１(ｙ) 、ｗ２(ｙ) ＞１であるときの出力値ｙが破線で示されている。
【００１９】
このように、図４Ａに示されるニューラルネットワークにおいて、隠れ層 ( Ｌ＝２) の一対のノードにより、図４Ｂの（III）に示されるような短冊状の出力値ｙが得られる。従って、隠れ層 ( Ｌ＝２) の対をなすノード数を増大し、隠れ層 ( Ｌ＝２) の各ノードにおける重みｗおよびバイアスｂの値を適切に設定すると、図５Ａにおいて破線の曲線で示すような関数ｙ＝ｆ(ｘ）を近似する関数を表現できることになる。なお、図５Ａでは、各短冊が接するように描かれているが、実際には、各短冊は部分的に重なる場合がある。また、実際には、ｗの値は無限大とはならないために、各短冊は、正確な短冊状にはならず、図３Ｂにおいてσ３で示される曲線部分の上半分のような曲線状となる。なお、詳細な説明は省略するが、図５Ｂに示されるように、異なる二つの入力値ｘＩおよびｘ２に対し、隠れ層 ( Ｌ＝２)において夫々対応する一対のノードを設けると、図５Ｃに示されるように、入力値ｘＩおよびｘ２に応じた柱状の出力値ｙが得られる。この場合、各入力値ｘＩ、ｘ２に対し、隠れ層 ( Ｌ＝２) に多数の対をなすノードを設けると、夫々異なる入力値ｘＩおよびｘ２に応じた複数個の柱状の出力値ｙが得られ、従って、入力値ｘＩおよびｘ２ と出力値ｙとの関係を示す関数を表現できることがわかる。なお、異なる三つ以上の入力値ｘがある場合でも同様に、入力値ｘと出力値ｙとの関係を示す関数を表現できる。
＜ニューラルネットワークにおける学習＞
【００２０】
一方、本発明による実施例では、誤差逆伝播法を用いて、ニューラルネットワーク内における各重みｗの値およびバイアスｂの値が学習される。この誤差逆伝播法は周知であり、従って、誤差逆伝播法についてはその概要を以下に簡単に説明する。なお、バイアスｂは重みｗの一種なので、以下の説明では、バイアスｂは重みｗの一つとされている。さて、図２に示すようなニューラルネットワークにおいて、Ｌ＝２，Ｌ＝３又は Ｌ＝４の各層のノードへの入力値ｕ（Ｌ）における重みをｗ（Ｌ）で表すと、誤差関数Ｅの重みｗ（Ｌ）による微分、即ち、勾配∂Ｅ/∂ｗ（Ｌ）は、書き換えると、次式で示されるようになる。
【数２】
2019148243.tif 000004
ここで、ｚ（Ｌ−１）・∂ｗ（Ｌ）＝ ∂ｕ（Ｌ）であるので、（∂Ｅ/∂ｕ（Ｌ））＝δ（Ｌ）とすると、上記（１）式は、次式でもって表すことができる。
【数３】
2019148243.tif 000005
【００２１】
ここで、ｕ（Ｌ）が変動すると、次の層の総入力値ｕ（Ｌ＋１）の変化を通じて誤差関数Ｅの変動を引き起こすので、δ（Ｌ）は、次式で表すことができる。
【数４】
2019148243.tif 000006
ここで、z（Ｌ）＝ｆ(u（Ｌ）) と表すと、上記（３）式の右辺に現れる入力値ｕk（Ｌ＋１）は、次式で表すことができる。
【数５】
2019148243.tif 000007
ここで、上記（３）式の右辺第１項（∂Ｅ/∂ｕ（Ｌ＋１））はδ（Ｌ＋１）であり、上記（３）式の右辺第２項（∂uｋ（Ｌ＋１） /∂u（Ｌ））は、次式で表すことができる。
【数６】
2019148243.tif 000008
従って、δ（Ｌ）は、次式で示される。
【数７】
2019148243.tif 000009
即ち、δ（Ｌ＋１）が求まると、δ（Ｌ）を求めることができることになる。
【００２２】
さて、或る入力値に対して教師データｙｔが求められており、この入力値に対する出力層からの出力値がｙであった場合、誤差関数として二乗誤差が用いられている場合には、二乗誤差Ｅは、Ｅ＝１/２(ｙ−ｙｔ)２で求められる。この場合、図２の出力層（Ｌ＝４）のノードでは、出力値ｙ＝ ｆ(u（Ｌ）) となり、従って、この場合には、出力層（Ｌ＝４）のノードにおけるδ（Ｌ）の値は、次式で示されるようになる。
【数８】
2019148243.tif 000010
ところで、本発明による実施例では、前述したように、ｆ(u（Ｌ）) は恒等関数であり、ｆ’(u（Ｌl）) ＝ １となる。従って、δ（Ｌ）＝ｙ−ｙｔ となり、δ（Ｌ）が求まる。
【００２３】
δ（Ｌ）が求まると、上式（６）を用いて前層のδ（Ｌ−１）が求まる。このようにして順次、前層のδが求められ、これらδの値を用いて、上式（２）から、各重みｗについて誤差関数Ｅの微分、即ち、勾配∂Ｅ/∂ｗ（Ｌ）か求められる。勾配∂Ｅ/∂ｗ（Ｌ）か求められると、この勾配∂Ｅ/∂ｗ（Ｌ）を用いて、誤差関数Ｅの値が減少するように、重みｗの値が更新される。即ち、重みｗの値の学習が行われることになる。なお、訓練データとしてバッチ、又はミニバッチが用いられる場合には、誤差関数Ｅとして、次の二乗和誤差Ｅが用いられる。
【数９】
2019148243.tif 000011
一方、二乗誤差を逐次算出するようにしたオンライン学習が行われる場合には、誤差関数Ｅとして、上述の二乗誤差Ｅが用いられる。
＜本発明による実施例＞
【００２４】
次に、本発明による実施例について説明する。上述したように、ニューラルネットワークを用いると、入力値ｘＩおよびｘ２ と出力値ｙとの関係を示す関数を表現することができ、従って、ニューラルネットワークを用いると、入力値ｘＩおよびｘ２ と出力値ｙとの関係をモデル化したモデルを構築することができる。具体的な一例を挙げると、入力値ｘＩが機関回転数であり、入力値ｘ２がアクセル開度であり、出力値ｙが機関からの排出ＮＯＸ量である場合が挙げられる。この場合には、ニューラルネットワークを用いて、機関からの排出ＮＯＸ量を推定するための排出ＮＯＸ量モデルが作成される。本発明による実施例では、予め定められた運転条件の範囲内において予め求められている入力値ｘＩおよびｘ２ と出力値ｙとの関係から学習用データセットが作成され、この学習用データセット、即ち、既存の学習用データセットに基づいてニューラルネットワークの重みが事前に学習され、それによりモデルが作成される。
【００２５】
ところが、実際には、後になって、予め定められた運転条件の範囲外における学習用データセットを取得できる場合があり、この場合には、この学習用データセットを既存の学習用データセットに追加し、この追加の学習用データセットも用いてモデルを更新することが、モデルの精度を向上する上で好ましいと言える。また、後になって、既存の学習用データセットについて新たな学習用データセットを取得できる場合があり、この場合には、新たな学習用データの品質が予め定められた品質よりも低くない限り、既存の学習用データセットを更新することが、モデルの精度を向上する上で好ましいと言える。そこで、本発明による実施例では、後になって、予め定められた運転条件の範囲外における学習用データセットを取得できる場合には、この学習用データセットを既存の学習用データセットに追加し、後になって、既存の学習用データセットについて新たな学習用データセットを取得できる場合には、新たな学習用データの品質が予め定められた品質よりも低くない限り、既存の学習用データセットを更新するようにしている。
【００２６】
次に、図６に示される学習処理ルーチンを参照しつつ、本発明による第１実施例について説明する。この学習処理ルーチンは、オンボードでもって、一定時間毎の割り込みによって実行される。図６を参照すると、まず初めに、ステップ１００において、新たな学習用データの追加候補（DATAnew）が取得される。次いで、ステップ１０１では、この学習用データ追加候補（DATAnew）についての、既存の学習用データの有無が確認される。次いで、ステップ１０２では、この学習用データ追加候補（DATAnew）について、既存の学習用データが存在しているか否かが判別される。学習用データ追加候補（DATAnew）について、既存の学習用データが存在していないときにはステップ１０３に進んで、学習用データ追加候補（DATAnew）が学習用データセット（DATAmdl）に追加される。次いで、ステップ１０６に進む。
【００２７】
ステップ１０６では、予め定められた運転条件の範囲外において、既存の学習用データが存在していない領域が存在する場合には、この既存の学習用データが存在していない領域について、この領域の周囲の領域の既存の学習用データの補間値から学習用データ推定値が作成され、学習用データセット（DATAmdl）に追加される。次いで、ステップ１０７では、学習用データセット（DATAmdl）に基づき、誤差逆伝播法を用いて、ニューラルネットワークの重みが学習される。即ち、モデルの更新が実行される。
【００２８】
一方、ステップ１０２において、学習用データ追加候補（DATAnew）について、既存の学習用データが存在していると判別されたときには、ステップ１０４に進んで、取得された学習用データ追加候補（DATAnew）のデータの品質が高いか否か、即ち、汎用性のあるデータであるか否かが判別される。例えば、学習用データ追加候補（DATAnew）が機関の定常運転時に取得されたデータであれば、品質の高いデータされ、学習用データ追加候補（DATAnew）が機関の過渡運転時に取得されたデータであれば、品質の高くないデータされる。ステップ１０４において、取得された学習用データ追加候補（DATAnew）のデータの品質が高いと判別されたときには、ステップ１０５に進んで、学習用データセット（DATAmdl）における既存の学習用データが、学習用データ追加候補（DATAnew）でよって更新される。これに対し、ステップ１０４において、取得された学習用データ追加候補（DATAnew）のデータの品質が高くないと判別されたときには、ステップ１０６にジャンプする。このとき、既存の学習用データセットの更新は行われない。
【００２９】
即ち、本発明による実施例では、電子制御ユニット３０を具備しており、電子制御ユニット３０が、機関の運転に関係する入力データを取得するデータ取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備している。入力データが入力層に入力されると共に、入力データに応じて変化する出力値が出力層から出力され、予め求められている既存の学習用データセットに基づいてニューラルネットワークの重みが事前に学習されている、データ取得部が、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが存在していないときには、追加候補の学習用データが、追加の学習用データセットとして記憶部に記憶される。これに対し、データ取得部が、学習用データの追加候補を取得したときに、追加候補の学習用データについて既存の学習用データが既に存在しているときには、追加候補の学習用データの品質が予め定められた品質よりも低くない限り、記憶部に記憶されている既存の学習用データセットが、追加候補の学習用データセットに基づき更新される。演算部により、追加の学習用データセットおよび更新された学習用データセットに基づいてニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて入力データに応じた出力値が出力される。
【００３０】
次に、図７に示される学習処理ルーチンを参照しつつ、本発明による第２実施例について説明する。この学習処理ルーチンも、オンボードでもって、一定時間毎の割り込みによって実行される。図７を参照すると、まず初めに、ステップ２００において、新たな学習用データの追加候補（DATAnew）の取得条件が判定される。例えば、新たな学習用データ追加候補（DATAnew）を取得すべき機関の運転条件、或いは、新たな学習用データ追加候補（DATAnew）が、外部に保持されているビッグデータであるか否か等が判定される。次いで、ステップ２０１では、新たな学習用データの追加候補（DATAnew）の取得条件が成立しているか否かが判別される。新たな学習用データの追加候補（DATAnew）の取得条件が成立していると判別されたときには、ステップ２０２に進んで、取得すべき学習用データ追加候補（DATAnew）が取得される。
【００３１】
次いで、ステップ２０３では、この学習用データ追加候補（DATAnew）についての、既存の学習用データの有無が確認される。この場合、入力が入力ｘ１と入力ｘ２の二つの入力からなる場合には、図８に示される如く、平面上において、各入力ｘ１、入力ｘ２の入力値について分割した各格子内の運転領域｛ｘ１、ｘ２｝における学習用データの有無が確認される。即ち、ステップ２０３では、学習用データ追加候補（DATAnew）の属する運転領域｛ｘ１、ｘ２｝内における既存の学習用データの有無が確認される。次いで、ついで、ステップ２０４では、学習用データ追加候補（DATAnew）の属する運転領域｛ｘ１、ｘ２｝内に、既存の学習用データが存在しているか否かが判別される。学習用データ追加候補（DATAnew）の属する運転領域｛ｘ１、ｘ２｝内に、既存の学習用データが存在していないときにはステップ２０５に進んで、学習用データ追加候補（DATAnew）が学習用データセット（DATAmdl）に追加される。次いで、ステップ２１１に進む。
【００３２】
ステップ２１１では、運転領域｛ｘ１、ｘ２｝の中で、既存の学習用データが存在していない領域が存在する場合には、この運転領域｛ｘ１、ｘ２｝について、この運転領域の周囲の運転領域の既存の学習用データの補間値から学習用データ推定値が作成され、学習用データセット（DATAmdl）に追加される。次いで、ステップ２１２では、学習用データセット（DATAmdl）に基づき、誤差逆伝播法を用いて、ニューラルネットワークの重みが学習される。即ち、モデルの更新が実行される。
【００３３】
一方、ステップ２０４において、学習用データ追加候補（DATAnew）の属する運転領域｛ｘ１、ｘ２｝内に、既存の学習用データが存在していると判別されたときには、ステップ２０６に進む。ステップ２０６およびステップ２０７では、取得された学習用データ追加候補（DATAnew）のデータの品質について判別される。この場合、この第２実施例でも、例えば、学習用データ追加候補（DATAnew）が機関の定常運転時に取得されたデータであれば、品質の高いデータされ、学習用データ追加候補（DATAnew）が機関の過渡運転時に取得されたデータであれば、品質の高くないデータされる。また、この第２実施例では、例えば、学習用データ追加候補（DATAnew）が、急停止とか急減速のような極端な過渡運転時に取得されたデータであれば、品質の悪いデータされる。
【００３４】
ステップ２０６では、取得された学習用データ追加候補（DATAnew）のデータの品質が悪いか否かが判別される。取得された学習用データ追加候補（DATAnew）のデータの品質が悪い場合には、ステップ２１１にジャンプする。このとき、既存の学習用データセットの更新は行われない。これに対し、取得された学習用データ追加候補（DATAnew）のデータの品質が悪くない場合には、ステップ２０７に進んで、取得された学習用データ追加候補（DATAnew）のデータの品質が高いか否かが判別される。取得された学習用データ追加候補（DATAnew）のデータの品質が高いと判別されたときには、ステップ２０８に進んで、取得された学習用データ追加候補（DATAnew）が、運転領域｛ｘ１、ｘ２｝についての更新データData h｛ｘ１、ｘ２｝とされる。次いで、ステップ２１０に進んで、学習用データセット（DATAmdl）の運転領域｛ｘ１、ｘ２｝における既存の学習用データが、更新データData h｛ｘ１、ｘ２｝でもって更新される。次いで、ステップ２１１を経てステップ２１２に進み、モデルの更新が実行される。
【００３５】
一方、ステップ２０７において、取得された学習用データ追加候補（DATAnew）のデータの品質が高くないと判別されたときには、ステップ２０９に進む。ところで、この第２実施例では、各運転領域｛ｘ１、ｘ２｝に対して、ｎ個の学習用データセットが格納されている。このステップ２０９では、取得された学習用データ追加候補（DATAnew）が新たな学習用データ追加候補（DATAnew）として格納されると共に最も古い学習用データ追加候補（DATAｎ―１）が廃棄され、次いで、格納されている全ての学習用データ追加候補の平均値、例えば、ガウシアンプロセスで畳み込み処理することにより得られた学習用データ追加候補の平均値が、運転領域｛ｘ１、ｘ２｝についての更新データData ｌ｛ｘ１、ｘ２｝とされる。次いで、ステップ２１０に進んで、学習用データセット（DATAmdl）の運転領域｛ｘ１、ｘ２｝における既存の学習用データが、更新データData ｌ｛ｘ１、ｘ２｝でもって更新される。次いで、ステップ２１１を経てステップ２１２に進み、モデルの更新が実行される。
【００３６】
次に、図９に示される学習処理ルーチンを参照しつつ、本発明による第３実施例について説明する。この学習処理ルーチンも、オンボードでもって、一定時間毎の割り込みによって実行される。なお、この第３実施例では、学習用データセットのデータ点の候補リスト（Data cand）が、例えば、図１０Ａに示されるように、入力ｘ１と入力ｘ２に対する格子点の形で予め作成されている。さて、図９を参照すると、まず初めに、ステップ３００において、新たな学習用データ（ｔData）が取得される。次いで、ステップ３０１では、新たな学習用データ（ｔData）の品質が高いか否かが判別される。この場合、この第２実施例でも、例えば、学習用データ追加候補（DATAnew）が機関の定常運転時に取得されたデータであれば、品質の高いデータとされ、学習用データ追加候補（DATAnew）が機関の過渡運転時に取得されたデータであれば、品質の高くないデータとされる。
【００３７】
次いで、ステップ３０２では、新たな学習用データ（ｔData）と、図１０Ａに示される学習用データセットのデータ点の候補リスト（Data cand）とが比較される。次いで、ステップ３０３では、新たな学習用データ（ｔData）と、新たな学習用データ（ｔData）に最も近接した学習用データセットのデータ点（図１０Ａ）との距離が、予め設定された距離以下であるか否かが判別される。新たな学習用データ（ｔData）と、新たな学習用データ（ｔData）に最も近接した学習用データセットのデータ点（図１０Ａ）との距離が、予め設定された距離以下である場合、即ち、新たな学習用データ（ｔData）と学習用データセットのデータ点（図１０Ａ）とが近接している場合には、新たな学習用データ（ｔData）が、対応する学習用データセットのデータ点（図１０Ａ）についての学習用データセットとして追加される。
【００３８】
次いで、ステップ３０９では、図１０Ａに示される学習用データセットのデータ点の中で、既存の学習用データが存在していないデータ点が存在する場合には、このデータ点について、このデータ点の周囲のデータ点の既存の学習用データの補間値から学習用データ推定値が作成され、学習用データセット（DATAmdl）に追加される。次いで、ステップ３１０では、学習用データセット（DATAmdl）に基づき、誤差逆伝播法を用いて、ニューラルネットワークの重みが学習される。即ち、モデルの更新が実行される。
【００３９】
一方、ステップ３０３において、新たな学習用データ（ｔData）と、新たな学習用データ（ｔData）に最も近接した学習用データセットのデータ点（図１０Ａ）との距離が、予め設定された距離以上であると判別されたときには、高品質の新たな学習用データ（ｔData）と低品質の新たな学習用データ（ｔData）とが、新たな学習用データ（ｔData）と、新たな学習用データ（ｔData）に最も近接した学習用データセットのデータ点（図１０Ａ）との距離により重み付けされて足し合わされる。
【００４０】
即ち、図１０Ｂにおいて、新たな学習用データと、新たな学習用データに最も近接した学習用データセットのデータ点との距離をＤとし、このデータ点のデータ値に対する、新たな学習用データのデータ値の反映率をＲとすると、新たな学習用データの品質が高い場合の反映率を示す反映曲線はＲＨで示されるようになり、新たな学習用データの品質が高くない場合の反映率を示す反映曲線はＲＬで示されるようになる。即ち、図１０Ｂに示されるように、距離Ｄが同一の場合には、新たな学習用データの品質が高い場合の反映率ΔＲＨの方が、新たな学習用データの品質が低い場合の反映率ΔＲＬよりも高くされる。ステップ３０７では、新たな学習用データのデータ値に反映率ΔＲＨ、ΔＲＬを乗算した値の和の平均値が、データ点のおける新たな学習用データ（ｔData３）とされる。
【００４１】
ステップ３０７において、データ点のおける新たな学習用データ（ｔData３）が求められると、ステップ３０８に進んで、データ点のおける新たな学習用データ（ｔData３）が、学習用データセットのデータ点についての学習用データセットとして追加される。次いで、ステップ３０９を経てステップ３１０に進み、モデルの更新が実行される。
【００４２】
一方、ステップ３０１において、新たな学習用データ（ｔData）の品質が高くないと判別されたときには、ステップ３０５に進んで、低品質の新たな学習用データ（ｔData）が、新たな学習用データ（ｔData）と、新たな学習用データ（ｔData）に最も近接した学習用データセットのデータ点（図１０Ａ）との距離により重み付けされて足し合わされる。即ち、ステップ３０５では、新たな学習用データのデータ値に反映率ΔＲＬ（図１０Ｂ）を乗算した値の和の平均値が、データ点のおける新たな学習用データ（ｔData２）とされる。
【００４３】
ステップ３０５において、データ点のおける新たな学習用データ（ｔData２）が求められると、ステップ３０６に進んで、データ点のおける新たな学習用データ（ｔData２）が、学習用データセットのデータ点についての学習用データセットとして追加される。次いで、ステップ３０９を経てステップ３１０に進み、モデルの更新が実行される。
【符号の説明】
【００４４】
１      内燃機関
２      燃焼室
３      点火栓
４      燃料噴射弁
１２    スロットル弁
１４    スロットル弁開度センサ
２３    NOXセンサ
２４    大気温センサ
３０    電子制御ユニット
【図１】
2019148243.tif 000012
【図２】
2019148243.tif 000013
【図３】
2019148243.tif 000014
【図４】
2019148243.tif 000015
【図５】
2019148243.tif 000016
【図６】
2019148243.tif 000017
【図７】
2019148243.tif 000018
【図８】
2019148243.tif 000019
【図９】
2019148243.tif 000020
【図１０】
2019148243.tif 000021