(57)【要約】【課題】運転パラメータの値が予め設定されている範囲外であったとしても、適切な出力値を得ることができる。【解決手段】ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、機械の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大され、新たに取得された機械の運転パラメータの値に対し実測により得られた教師データを用いて、機械の運転パラメータの値に応じて変化する出力値と機械の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。【選択図】図２３
2020086673.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、上記機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、新たに取得された上記機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させ、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対して実測により得られた教師データおよび該予め設定されている範囲内における上記機械の運転パラメータの値に対して実測により得られた教師データを用いてニューラルネットワークの重みを学習し、重みの学習されたニューラルネットワークを用いて上記機械に関する特定の種別の運転パラメータの値に対する出力値が出力される機械学習装置。
【請求項２】
上記機械に内燃機関は含まない請求項１に記載の機械学習装置。
【請求項３】
電子制御ユニットを具備しており、該電子制御ユニットが、上記機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する特定の種別の運転パラメータの値が入力層に入力され、上記機械に関する特定の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される機械学習装置において、上記機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、該予め設定されている範囲内における上記機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、新たに取得された上記機械に関する特定の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、新たに取得された上記機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、該予め設定されている範囲内および該予め設定されている範囲外の上記機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する特定の種別の運転パラメータの値に対する出力値が出力される請求項１に記載の機械学習装置。
【請求項４】
電子制御ユニットを具備しており、該電子制御ユニットが、上記機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する特定の種別の運転パラメータの値が入力層に入力され、上記機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される機械学習装置において、上記機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、該予め設定されている範囲内における上記機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、該予め設定されている範囲内および該予め設定されている範囲外の新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、上記機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する特定の種別の運転パラメータの値に対する複数の出力値が出力される請求項１に記載の機械学習装置。
【請求項５】
ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、上記機械に関する複数の種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、新たに取得された上記機械に関する複数の種別の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させ、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対して実測により得られた教師データおよび該予め設定されている範囲内における上記機械の運転パラメータの値に対して実測により得られた教師データを用いてニューラルネットワークの重みを学習し、重みの学習されたニューラルネットワークを用いて上記機械に関する複数の種別の運転パラメータの値に対する出力値が出力される機械学習装置。
【請求項６】
上記機械に内燃機関は含まない請求項５に記載の機械学習装置。
【請求項７】
電子制御ユニットを具備しており、該電子制御ユニットが、上記機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する複数の種別の運転パラメータの値が入力層に入力され、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される機械学習装置において、上記機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が該予め設定されている範囲内である教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、該予め設定されている範囲内および該予め設定されている範囲外の新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する複数の種別の運転パラメータの値に対する出力値が出力される請求項５に記載の機械学習装置。
【請求項８】
電子制御ユニットを具備しており、該電子制御ユニットが、上記機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する複数の種別の運転パラメータの値が入力層に入力され、上記機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される機械学習装置において、上記機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が該予め設定されている範囲内である教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、該予め設定されている範囲内および該予め設定されている範囲外の新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する複数の種別の運転パラメータの値に対する複数の出力値が出力される請求項５に記載の機械学習装置。
【請求項９】
ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、上記機械に関する複数の種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークが予め形成されており、新たに取得された上記機械に関する複数の種別の運転パラメータの値の内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たなニューラルネットワークを形成し、該新たに取得された上記機械に関する複数の種別の運転パラメータの値に対して実測により得られた教師データを用いて新たなニューラルネットワークの重みを学習し、重みの学習されたニューラルネットワークを用いて上記機械に関する複数の種別の運転パラメータの値に対する出力値が出力される機械学習装置。
【請求項１０】
上記機械に内燃機関は含まない請求項９に記載の機械学習装置。
【請求項１１】
電子制御ユニットを具備しており、該電子制御ユニットが、上記機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなる複数個のニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する複数の種別の運転パラメータの値が入力層に入力され、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が対応する出力層から出力される機械学習装置において、上記機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されており、各種別の運転パラメータの値の該予め設定されている範囲を複数個に区分けすると共に、各種別の運転パラメータの値の区分けされた各範囲の組み合わせにより画定される複数の区分け領域が予め設定されており、該区分け領域毎にニューラルネットワークが作成されていると共に各ニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、新たに取得された上記機械に関する複数の種別の運転パラメータの値の属する区分け領域のニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、該少なくとも一つの種別の運転パラメータの値が属しかつ各種別の運転パラメータの値の予め設定された範囲の組み合わせにより画定される新たな領域が設定されると共に、該新たな領域に対し新たなニューラルネットワークが作成され、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように該新たなニューラルネットワークの重みが学習され、重みの学習された各ニューラルネットワークを用いて上記機械の運転パラメータの値に対する出力値が出力される請求項９に記載の機械学習装置。
【請求項１２】
上記機械に関する運転パラメータが二つの種別の運転パラメータからなり、該パラメータ値取得部により新たに取得された内燃機関に関する運転パラメータの内の一方の種別の運転パラメータの値が予め設定されている範囲外であり、他方の種別の運転パラメータの値が予め設定されている範囲内であるときには、上記新たな領域は、該一方の種別の運転パラメータの値に対し予め設定されている範囲外であって該他方の種別の運転パラメータの値が属する上記区分け領域と同一範囲内に、該他方の種別の運転パラメータの値が属する該区分け領域に隣接して設定される請求項１１に記載の機械学習装置。
【請求項１３】
該新たな領域に隣接する該区分け領域の内でニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が設定されていな区分け領域を除いた区分け領域のニューラルネットワークの出力層の一つ前の隠れ層のノードの個数の平均値に基づいて、該新たなニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が設定される請求項１１に記載の機械学習装置。
【請求項１４】
該新たな領域内に係る運転パラメータの値が入力層に入力された数の増大に応じて、該新たな領域の新たなニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させる請求項１３に記載の機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は機械学習装置に関する。
【背景技術】
【０００２】
ニューラルネットワークを用いた内燃機関の制御装置において、機関回転数、吸入空気量等の機関の運転パラメータの値に基づいて、燃焼室内への吸入ガス量が、実際の燃焼室内への吸入ガス量に一致するようにニューラルネットワークの重みを予め学習しておき、機関運転時に、重みの学習されたニューラルネットワークを用いて、機関の運転パラメータの値から、燃焼室内への吸入ガス量を推定するようにした内燃機関の制御装置が公知である（例えば特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１２２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、機関回転数のような内燃機関に関する特定の種別の運転パラメータの値の使用範囲は、機関の種類に応じて予め想定することができ、従って、通常は、機関の運転パラメータの値の予め想定される使用範囲に対し、ニューラルネットワークの出力値と、燃焼室内への実際の吸入ガス量のような実際の値との差が小さくなるようにニューラルネットワークの重みが予め学習される。しかしながら、実際には、機関の運転パラメータの値が、予め想定される使用範囲外となることがあり、この場合、予め想定される使用範囲外に対しては、実際の値に基づく学習が行われていないために、ニューラルネットワークを用いて演算された出力値が、実際の値から大きく乖離した値になってしまうという問題がある。このような問題は、内燃機関の分野に限らず、機械学習の対象となる種々の分野の機械について生ずる。
【０００５】
上記問題を解決するために、１番目の発明によれば、ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、上述の機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上述の機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、新たに取得された上述の機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させ、新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対して実測により得られた教師データおよび予め設定されている範囲内における上述の機械の運転パラメータの値に対して実測により得られた教師データを用いてニューラルネットワークの重みを学習し、重みの学習されたニューラルネットワークを用いて上述の機械に関する特定の種別の運転パラメータの値に対する出力値が出力される機械学習装置が提供される。
【０００６】
上記問題を解決するために、２番目の発明によれば、ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、上述の機械に関する複数の種別の運転パラメータの値の範囲が予め設定されていると共に、上述の機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、新たに取得された上述の機械に関する複数の種別の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させ、新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対して実測により得られた教師データおよび予め設定されている範囲内における上述の機械の運転パラメータの値に対して実測により得られた教師データを用いてニューラルネットワークの重みを学習し、重みの学習されたニューラルネットワークを用いて上述の機械に関する複数の種別の運転パラメータの値に対する出力値が出力される機械学習装置が提供される。
【０００７】
上記問題を解決するために、３番目の発明によれば、ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、上述の機械に関する複数の種別の運転パラメータの値の範囲が予め設定されていると共に、上述の機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークが予め形成されており、新たに取得された上述の機械に関する複数の種別の運転パラメータの値の内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たなニューラルネットワークを形成し、新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対して実測により得られた教師データを用いて新たなニューラルネットワークの重みを学習し、重みの学習されたニューラルネットワークを用いて上述の機械に関する複数の種別の運転パラメータの値に対する出力値が出力される機械学習装置が提供される。
【発明の効果】
【０００８】
上記の各発明において、新たに取得された機械の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの隠れ層のノードの個数を増大させることにより、或いは新たなニューラルネットワークを作成することにより、機械の運転パラメータの値が、予め設定されている範囲外の値となったときに、ニューラルネットワークを用いて演算された出力値が、実際の値から大きく乖離した値となるのを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は内燃機関の全体図である。
【図２】図２はニューラルネットワークの一例を示す図である。
【図３】図３Ａおよび図３Ｂはシグモイド関数σの値の変化を示す図である。
【図４】図４Ａおよび図４Ｂは夫々、ニューラルネットワークと、隠れ層のノードからの出力値を示す図である。
【図５】図５Ａおよび図５Ｂは夫々、隠れ層のノードからの出力値と、出力層のノードからの出力値を示す図である。
【図６】図６Ａおよび図６Ｂは夫々、ニューラルネットワークと、出力層のノードからの出力値を示す図である。
【図７】図７Ａおよび図７Ｂは、本願発明により解決しようとしている課題を説明するための図である。
【図８】図８Ａおよび図８Ｂは夫々、ニューラルネットワークと、ニューラルネットワークの入力値と出力値との関係を示す図である。
【図９】図９はニューラルネットワークを示す図である。
【図１０】図１０は、学習処理を実行するためのフローチャートである。
【図１１】図１１はニューラルネットワークの変形例を示す図である。
【図１２】図１２は、学習処理を実行するための別の実施例を示すフローチャートである。
【図１３】図１３はニューラルネットワークを示す図である。
【図１４】図１４Ａおよび図１４Ｂは、機関回転数等の予め設定されている範囲を示す図である。
【図１５】図１５はニューラルネットワークの変形例を示す図である。
【図１６】図１６は、学習処理を実行するための更に別の実施例を示すフローチャートである。
【図１７】図１７は、機関の運転パラメータの値に応じて区切られた学習済み区分け領域を示す図である。
【図１８】図１８Ａ、図１８Ｂおよび図１８Ｃは夫々、機関回転数と点火時期に対する教師データの分布、点火時期とスロットル開度に対する教師データの分布、および教師データと学習後の出力値との関係を示す図である。
【図１９】図１９Ａおよび図１９Ｂは、教師データと、学習後の出力値との関係を示す図である。
【図２０】図２０はエアコンの自動調整を行うための機械学習装置の全体図である。
【図２１】図２１はニューラルネットワークを示す図である。
【図２２】図２２Ａおよび図２２Ｂは、気温等の予め設定されている範囲を示す図である。
【図２３】図２３は、学習処理を実行するための更に別の実施例を示すフローチャートである。
【図２４】図２４Ａおよび図２４Ｂは、気温等の予め設定されている範囲を示す図である。
【図２５】図２５は、学習処理を実行するための更に別の実施例を示すフローチャートである。
【図２６】図２６は２次電池の劣化度を推定するための機械学習装置の全体図である。
【図２７】図２７はニューラルネットワークを示す図である。
【図２８】図２８Ａおよび図２８Ｂは、気温等の予め設定されている範囲を示す図である。
【図２９】図２９は、算出処理を実行するためのフローチャートである。
【図３０】図３０は、教師データ取得処理を実行するためのフローチャートである。
【図３１】図３１は、学習処理を実行するための更に別の実施例を示すフローチャートである。
【図３２】図３２Ａおよび図３２Ｂは、気温等の予め設定されている範囲を示す図である。
【図３３】図３３は、学習処理を実行するための更に別の実施例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
＜内燃機関の全体構成＞
【００１１】
まず初めに、本発明による機械学習装置を内燃機関に適用した場合について説明する。内燃機関の全体図を示す図１を参照すると、１は機関本体、２は各気筒の燃焼室、３は各気筒の燃焼室２内に配置された点火栓、４は各気筒に燃料、例えば、ガソリンを供給するための燃料噴射弁、５はサージタンク、６は吸気枝管、７は排気マニホルドを夫々示す。サージタンク５は吸気ダクト８を介して排気ターボチャージャ９のコンプレッサ９ａの出口に連結され、コンプレッサ９ａの入口は吸入空気量検出器１０を介してエアクリーナ１１に連結される。吸気ダクト８内にはアクチュエータ１３により駆動されるスロットル弁１２が配置され、スロットル弁１２にはスロットル弁開度を検出するためのスロットル弁開度センサ１４が取り付けられている。また、吸気ダクト８周りには吸気ダクト８内を流れる吸入空気を冷却するためのインタクーラ１５が配置される。
【００１２】
一方、排気マニホルド７は排気ターボチャージャ９の排気タービン９ｂの入口に連結され、排気タービン９ｂの出口は排気管１６を介して排気浄化用触媒コンバータ１７に連結される。排気マニホルド７とサージタンク５とは排気ガス再循環（以下、ＥＧＲと称す）通路１８を介して互いに連結され、ＥＧＲ通路１８内にはＥＧＲ制御弁１９が配置される。各燃料噴射弁４は燃料分配管２０に連結され、この燃料分配管２０は燃料ポンプ２１を介して燃料タンク２２に連結される。排気管１６内には排気ガス中のNOX濃度を検出するためのNOXセンサ２３が配置されている。また、エアクリーナ１１内には大気温を検出するための大気温センサ２４が配置されている。
【００１３】
電子制御ユニット３０はデジタルコンピュータからなり、双方向性バス３１によって互いに接続されたROM（リードオンリメモリ）３２、RAM（ランダムアクセスメモリ）３３、CPU（マイクロプロセッサ）３４、入力ポート３５および出力ポート３６を具備する。入力ポート３５には、吸入空気量検出器１０、スロットル弁開度センサ１４、NOXセンサ２３および大気温センサ２４の出力信号が、対応するAD変換器３７を介して入力される。アクセルペダル４０にはアクセルペダル４０の踏込み量に比例した出力電圧を発生する負荷センサ４１が接続され、負荷センサ４１の出力電圧は対応するAD変換器３７を介して入力ポート３５に入力される。更に入力ポート３５にはクランクシャフトが例えば３０°回転する毎に出力パルスを発生するクランク角センサ４２が接続される。CPU３４内ではクランク角センサ４２の出力信号に基づいて機関回転数が算出される。一方、出力ポート３６は対応する駆動回路３８を介して点火栓３、燃料噴射弁４、スロットル弁駆動用アクチュエータ１３、ＥＧＲ制御弁１９および燃料ポンプ２１に接続される。
＜ニューラルネットワークの概要＞
【００１４】
本発明による実施例では、ニューラルネットワークを用いて内燃機関の性能を表す種々の値を推定するようにしている。図２はこのニューラルネットワークの一例を示している。図２における丸印は人工ニューロンを表しており、ニューラルネットワークにおいては、この人工ニューロンは、通常、ノード又はユニットと称される（本願では、ノードと称す）。図２において L＝１は入力層、L＝２および L＝３は隠れ層、L＝４は出力層を夫々示している。また、図２において、ｘ１およびｘ２ は入力層 ( L＝１) の各ノードからの出力値を示しており、ｙ は出力層 ( L＝４) のノードからの出力値を示しており、ｚ１、ｚ２ およびｚ３ は隠れ層 ( L＝２) の各ノードからの出力値を示しており、ｚ１およびｚ２ は隠れ層 ( L＝３) の各ノードからの出力値を示している。なお、隠れ層の層数は、１個又は任意の個数とすることができ、入力層のノードの数および隠れ層のノードの数も任意の個数とすることができる。なお、図２には、出力層のノードの数が１個の場合が示されているが、出力層のノードの数は２個以上の複数個とすることができる。
【００１５】
入力層の各ノードでは入力がそのまま出力される。一方、隠れ層 ( L＝２) の各ノードには、入力層の各ノードの出力値ｘ１およびｘ２ が入力され、隠れ層 ( L＝２) の各ノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕが算出される。例えば、図２において隠れ層 ( L＝２) のｚｋ（ｋ＝１，２，３）で示されるノードにおいて算出される総入力値ｕｋは、次式のようになる。
【数１】
2020086673.tif 000003
次いで、この総入力値ｕｋは活性化関数ｆにより変換され、隠れ層 ( L＝２) のｚｋで示されるノードから、出力値ｚｋ(=f(uk))として出力される。隠れ層 ( L＝２) の他のノードについても同様である。一方、隠れ層 ( L＝３) の各ノード には、隠れ層 ( L＝２) の各ノードの出力値ｚ１、ｚ２ およびｚ３ が入力され、隠れ層 ( L＝3 ) の各ノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出される。この総入力値ｕは同様に活性化関数により変換され、隠れ層 ( L＝3 ) の各ノードから、出力値ｚ１ 、ｚ２ として出力される、なお、本発明による実施例では、この活性化関数としてシグモイド関数σが用いられている。
【００１６】
一方、出力層 ( L＝４) のノード には、隠れ層 ( L＝３) の各ノードの出力値ｚ１ およびｚ２ が入力され、出力層 のノードでは、夫々対応する重みｗおよびバイアスｂを用いて総入力値ｕ（Σｚ・ｗ＋ｂ）が算出されるか、又は、夫々対応する重みｗのみを用いて総入力値ｕ（Σｚ・ｗ）が算出される。本発明による実施例では、出力層のノードでは恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力される。
＜ニューラルネットワークによる関数の表現＞
【００１７】
さて、ニューラルネットワークを用いると任意の関数を表現することができ、次に、このことについて簡単に説明する。まず初めに、活性化関数として用いられているシグモイド関数σについて説明すると、シグモイド関数σは、σ（ｘ）＝１/（１＋exp（-ｘ））で表され、図３Ａに示されるようにｘの値に応じて０と１の間の値を取る。ここで、ｘをｗｘ＋ｂに置き換えると、シグモイド関数σは、σ（ｗｘ＋ｂ）＝１/（１＋exp（-ｗｘ―ｂ））で表される。ここで、ｗの値を大きくしていくと、図３Bにおいて曲線σ１、σ２、σ３で示されるように、シグモイド関数σ（ｗｘ＋ｂ）の曲線部分の傾斜が次第に急になり、ｗの値を無限大にすると、図３Bにおいて曲線σ４で示されるように、シグモイド関数σ（ｗｘ＋ｂ）は、ｘ＝−ｂ/ｗ（ｗｘ＋ｂ＝０となるｘ、即ち、σ（ｗｘ＋ｂ）＝０．５となるｘにおいて、図３Ｂに示されるように、ステップ状に変化するようになる。このようなシグモイド関数σの性質を利用すると、ニューラルネットワークを用いて任意の関数を表現することができる。
【００１８】
例えば、図４Ａに示されるような１個のノードからなる入力層 ( L＝１) と、２個のノードからなる隠れ層 ( L＝２) と、１個のノードからなる出力層 ( L＝３) とにより構成されるニューラルネットワークを用いて、２次関数に近似した関数を表現することができる。なお、この場合、出力層 ( L＝３)の個数を複数個にしても任意の関数を表現することができるが、容易に理解し得るように、出力層 ( L＝３)の ノードの個数が一個の場合を例にとって説明する。さて、図４Ａに示されるニューラルネットワークでは、図４Ａに示されるように、入力層 ( L＝１) のノードには入力値ｘが入力され、隠れ層 ( L＝２) においてｚ１で示されるノードには、重みｗ１(L２) およびバイアスｂ１を用いて算出された入力値ｕ＝ｘ・ｗ１(L２)＋ｂ１ が入力される。この入力値ｕはシグモイド関数σ（ｘ・ｗ１(L２)＋ｂ１）により変換され、出力値ｚ１ として出力される。同様に、隠れ層 ( L＝２) においてｚ２で示されるノードには、重みｗ２(L２)およびバイアスｂ２ を用いて算出された入力値ｕ＝ｘ・ｗ2(L２)＋ｂ2 が入力され、この入力値ｕはシグモイド関数σ（ｘ・ｗ2(L２)＋ｂ2）により変換され、出力値ｚ2 として出力される。
【００１９】
一方、出力層 ( L＝３)  のノード には、隠れ層 ( L＝２) の各ノードの出力値ｚ１ およびｚ２ が入力され、出力層 のノードでは、夫々対応する重みｗ１(ｙ) およびｗ２(ｙ) を用いて総入力値ｕ（Σｚ・ｗ＝ｚ１・ｗ１(ｙ) ＋ｚ２・ｗ２(ｙ)）が算出される。前述したように、本発明による実施例では、出力層のノードでは恒等関数が用いられており、従って、出力層のノードからは、出力層のノードにおいて算出された総入力値ｕが、そのまま出力値ｙとして出力される。
【００２０】
図４Ｂの（Ｉ）には、ｘ＝０においてシグモイド関数σ（ｘ・ｗ１(L２)＋ｂ１）の値がほぼ零となるように重みｗ１(L２)およびバイアスｂ１が設定されたときの隠れ層 ( L＝２) のノードからの出力値ｚ１が示されている。一方、シグモイド関数σ（ｘ・ｗ2(L２)＋ｂ2）において、例えば、重みｗ２(L２)をマイナスの値にすると、シグモイド関数σ（ｘ・ｗ2(L２)＋ｂ2）の曲線の形は、図４Ｂの（II）に示されるように、ｘの増大に伴い減少するような形となる。図４Ｂの（II）には、ｘ＝０においてシグモイド関数σ（ｘ・ｗ2(L２)＋ｂ2）の値がほぼ零となるように重みｗ２(L２)およびバイアスｂ２ が設定されたときの隠れ層 ( L＝２) のノードからの出力値ｚ２ の変化が示されている。
【００２１】
一方、図４Ｂの（III）には、隠れ層 ( L＝２) の各ノードからの出力値ｚ１ とｚ２ の和（ｚ１ ＋ｚ２ ）が実線で示されている。なお、図４Ａに示されるように、各出力値ｚ１ 、ｚ２ には、夫々対応する重みｗ１(ｙ) およびｗ２(ｙ) が乗算されており、図４Ｂの（III）には、ｗ１(ｙ) 、ｗ２(ｙ) ＞１でありかつｗ１(ｙ) ≒ｗ２(ｙ) であるときの出力値ｙの変化が破線Aで示されている。更に、図４Ｂの（III）には、ｗ１(ｙ) 、ｗ２(ｙ) ＞１でありかつｗ１(ｙ)＞ ｗ２(ｙ) であるときの出力値ｙの変化が一点破線Bで示されており、図４Ｂの（III）には、ｗ１(ｙ) 、ｗ２(ｙ) ＞１でありかつｗ１(ｙ)＜ ｗ２(ｙ) であるときの出力値ｙの変化が一点破線Cで示されている。図４Ｂの（III）において、Wで示される範囲内における破線Aの形状は、ｙ＝ａｘ２（ａは係数）で示されるような２次関数に近似した曲線を表しており、従って、図４Ａに示されるようなニューラルネットワークを用いることにより、２次関数に近似した関数を表現できることがわかる。
【００２２】
一方、図５Ａは、図４Ａにおける重みｗ１(L２) およびｗ2(L２) の値を大きくすることにより、シグモイド関数σの値を、図３Ｂに示されるように、ステップ状に変化させた場合を示している。図５Ａの（Ｉ）には、ｘ＝―ｂ１ /ｗ１(L２) において、シグモイド関数σ（ｘ・ｗ１(L２)＋ｂ１ ）の値がステップ状に増大するように重みｗ１(L２)およびバイアスｂ１が設定されたときの隠れ層 ( L＝２) のノードからの出力値ｚ１が示されている。また、図５Ａの（II）には、ｘ＝―ｂ１ /ｗ１(L２) よりも少し大きいｘ＝−ｂ２ /ｗ２(L２) においてシグモイド関数σ（ｘ・ｗ2(L２)＋ｂ2）の値がステップ状に減少するように重みｗ２(L２)およびバイアスｂ２ が設定されたときの隠れ層 ( L＝２) のノードからの出力値ｚ２が示されている。また、図５Ａの（III）には、隠れ層 ( L＝２) の各ノードからの出力値ｚ１ とｚ２ の和（ｚ１ ＋ｚ２ ）が実線で示されている。図４Ａに示されるように、各出力値ｚ１ 、ｚ２ には、夫々対応する重みｗ１(ｙ) およびｗ２(ｙ) が乗算されており、図５Ａの（III）には、ｗ１(ｙ) 、ｗ２(ｙ) ＞１であるときの出力値ｙが破線で示されている。
【００２３】
このように、図４Ａに示されるニューラルネットワークにおいて、隠れ層 ( L＝２) の一対のノードにより、図５Ａの（III）に示されるような短冊状の出力値ｙが得られる。従って、隠れ層 ( L＝２) の対をなすノード数を増大し、隠れ層 ( L＝２) の各ノードにおける重みｗおよびバイアスｂの値を適切に設定すると、図５Ｂにおいて破線の曲線で示すような関数ｙ＝ｆ(ｘ）を近似する関数を表現できることになる。なお、図５Bでは、各短冊が接するように描かれているが、実際には、各短冊は部分的に重なる場合がある。また、実際には、ｗの値は無限大ではないために、各短冊は、正確な短冊状にはならず、図３Bにおいてσ３で示される曲線部分の上半分のような曲線状となる。なお、詳細な説明は省略するが、図６Ａに示されるように、異なる二つの入力値ｘＩおよびｘ２に対し、隠れ層 ( L＝２)において夫々対応する一対のノードを設けると、図６Ｂに示されるように、入力値ｘＩおよびｘ２に応じた柱状の出力値ｙが得られる。この場合、各入力値ｘＩ、ｘ２に対し、隠れ層 ( L＝２) に多数の対をなすノードを設けると、夫々異なる入力値ｘＩおよびｘ２に応じた複数個の柱状の出力値ｙが得られ、従って、入力値ｘＩおよびｘ２ と出力値ｙとの関係を示す関数を表現できることがわかる。なお、異なる三つ以上の入力値ｘがある場合でも同様に、入力値ｘと出力値ｙとの関係を示す関数を表現できる。
＜ニューラルネットワークにおける学習＞
【００２４】
一方、本発明による実施例では、誤差逆伝播法を用いて、ニューラルネットワーク内における各重みｗの値およびバイアスｂの値が学習される。この誤差逆伝播法は周知であり、従って、誤差逆伝播法についてはその概要を以下に簡単に説明する。なお、バイアスｂは重みｗの一種なので、以下の説明では、バイアスｂは重みｗの一つとされている。さて、図２に示すようなニューラルネットワークにおいて、L＝２，L＝３又は L＝４の各層のノードへの入力値ｕ（L）における重みをｗ（L）で表すと、誤差関数Ｅの重みｗ（L）による微分、即ち、勾配∂Ｅ/∂ｗ（L）は、書き換えると、次式で示されるようになる。
【数２】
2020086673.tif 000004
ここで、ｚ（L−１）・∂ｗ（L）＝ ∂ｕ（L）であるので、（∂Ｅ/∂ｕ（L））＝δ（L）とすると、上記（１）式は、次式でもって表すことができる。
【数３】
2020086673.tif 000005
【００２５】
ここで、ｕ（L）が変動すると、次の層の総入力値ｕ（L＋１）の変化を通じて誤差関数Ｅの変動を引き起こすので、δ（L）は、次式で表すことができる。
【数４】
2020086673.tif 000006
ここで、z（L）＝ｆ(u（L）) と表すと、上記（３）式の右辺に現れる入力値ｕk（L＋１）は、次式で表すことができる。
【数５】
2020086673.tif 000007
ここで、上記（３）式の右辺第１項（∂Ｅ/∂ｕ（L＋１））はδ（L＋１）であり、上記（３）式の右辺第２項（∂uｋ（L＋１） /∂u（L））は、次式で表すことができる。
【数６】
2020086673.tif 000008
従って、δ（L）は、次式で表される。
【数７】
2020086673.tif 000009
即ち、δ（L＋１）が求まると、δ（L）を求めることができることになる。
【００２６】
さて、或る入力値に対して教師データｙｔが求められており、この入力値に対する出力層からの出力値がｙであった場合、誤差関数として二乗誤差が用いられている場合には、二乗誤差Ｅは、Ｅ＝１/２(ｙ−ｙｔ)２で求められる。この場合、図２の出力層（L＝４）のノードでは、出力値ｙ＝ ｆ(u（L）) となり、従って、この場合には、出力層（L＝４）のノードにおけるδ（L）の値は次式のようになる。
【数８】
2020086673.tif 000010
ところで、本発明による実施例では、前述したように、ｆ(u（L）) は恒等関数であり、ｆ’(u（L）) ＝ １となる。従って、δ（L）＝ｙ−ｙｔ となり、δ（L）が求まる。
【００２７】
δ（L）が求まると、上式（６）を用いて前層のδ（L−１）が求まる。このようにして順次、前層のδが求められ、これらδの値を用いて、上式（２）から、各重みｗについて誤差関数Ｅの微分、即ち、勾配∂Ｅ/∂ｗ（L）が求められる。勾配∂Ｅ/∂ｗ（L）が求められると、この勾配∂Ｅ/∂ｗ（L）を用いて、誤差関数Ｅの値が減少するように、重みｗの値が更新される。即ち、重みｗの値の学習が行われることになる。なお、出力層（L＝４）が複数個のノードを有する場合には、各ノードからの出力値をｙ１、ｙ２・・・、対応する教師データをｙｔ１、ｙｔ２・・・とすると、誤差関数Ｅとして、次の二乗和誤差Ｅが用いられる。
【数９】
2020086673.tif 000011
＜本発明による実施例＞
【００２８】
次に、図７Ａから図１０を参照しつつ、本発明による機械学習装置の第１実施例について説明する。この本発明による第１実施例では、図４Ａに示されるように、一個の入力層 ( L＝１)と、一層からなる隠れ層 ( L＝２)と、一個の出力層 ( L＝３)からなるニューラルネットワークが用いられている。また、この第１実施例は、図４Ａに示されるようなニューラルネットワークを用いて、出力値ｙが入力値ｘの２次関数で表されるように、ニューラルネットワークの重みの学習が行われた場合を示している。なお、図７Ａから図８Ｂにおいて、破線は真の２次関数の波形を示しており、黒で塗り潰された丸は教師データを示しており、リング状の丸は、入力値ｘに対応する出力値ｙと教師データとの差が小さくなるようにニューラルネットワークの重みの学習が行われた後の出力値ｙを示しており、実線の曲線は、学習終了後の入力値ｘと出力値ｙとの関係を示している。また、図７Ａから図８Ｂにおいて、ＡとＢとの間、即ち、Ｒは入力値ｘの予め設定されている範囲を示している。
【００２９】
さて、図７Ａおよび図７Ｂは、本願発明が解決しようとしている課題を説明するための図であり、従って、まず初めに、図７Ａおよび図７Ｂを参照しつつ、本願発明が解決しようとしている課題について説明する。図７Ａは、図４Ａに示されるように隠れ層 ( L＝２) のノードの個数が２個であるニューラルネットワークを用いて、予め設定されている範囲Ｒ内の入力値ｘに対し、出力量ｙが入力値ｘの２次関数ｙ＝ａｘ２ （ａは定数）となるようにニューラルネットワークの重みを学習した場合を示している。図７Ａに示されるように、ニューラルネットワークの隠れ層 ( L＝２) が２個のノードしか有さない場合でも、入力値ｘが予め設定されている範囲Ｒ内にある場合には、実線で示されるように、２次関数に近い関数が表現される。
【００３０】
即ち、入力値ｘの予め設定されている範囲Ｒについて学習が行われた場合には、予め設定されている範囲Ｒについては、複数のシグモイド関数σの曲線部分の適切な組み合わせにより、出力値ｙが２次関数に近い関数として表現される。しかしながら、入力値ｘの予め設定されている範囲Ｒ外については、学習が行われていないために、実線で示されるように、シグモイド関数σが大きく変化する曲線部分の両端の直線部分がそのまま出力値ｙとして現れる。従って、学習完了後の出力値ｙは、図７Ａにおいて実線で示されるように、入力値ｘの予め設定されている範囲Ｒ内においては、２次関数に近い関数の形で現れ、入力値ｘの予め設定されている範囲Ｒ外においては、入力値ｘに対してほとんど変化しない直線に近い形で現れる。従って、図７Ａに示されるように、入力値ｘの予め設定されている範囲Ｒ外においては、出力値ｙは破線で示される２次曲線に対して、大きく乖離している。
【００３１】
一方、図７Ｂは、入力値ｘが、例えば、図７Ｂにおいてｘ０ で示されるように、入力値ｘの予め設定されている範囲Ｒ外になってしまった場合において、入力値ｘがｘ０ のときの出力値ｙ０も教師データに含めて、ニューラルネットワークの重みが学習された場合を示している。このように、入力値ｘの予め設定されている範囲Ｒ外の出力値ｙ０も含めて学習が行われた場合には、図４Ｂのｚ１で示されるシグモイド関数σのｚ１＝１となる直線部分が出力値ｙ０を含むように上昇し、図４Ｂのｚ２で示されるシグモイド関数σが全体的に右に移動すると共にシグモイド関数σの値が全体的に低くなるために、図７Ｂにおいて実線で示されるように、予め設定されている範囲Ｒ内において、学習終了後の出力値ｙの値が２次曲線に対して大きく乖離してしまう。このように入力値ｘの予め設定されている範囲Ｒ外になってしまった場合には、適切な出力値ｙを得ることができない。
【００３２】
ところがこの場合、ニューラルネットワークの隠れ層 ( L＝２) のノードの個数を増大すると、入力値ｘが予め設定されている範囲Ｒ外になった場合でも、適切な出力値ｙが得られることが判明したのである。次に、このことについて、本発明による第１実施例を示す図８Ａおよび図８Ｂを参照しつつ説明する。図８Ｂは、図８Ａに示されるように、ニューラルネットワークの隠れ層 ( L＝２) のノードの個数を２個から３個に増大した状態で、入力値ｘがｘ０ のときの出力値ｙ０も教師データに含めて、ニューラルネットワークの重みを学習したときの学習結果を示している。このようにニューラルネットワークの隠れ層 ( L＝２) のノードの個数が増大せしめられると、図８Ｂにおいて実線で示されるように、出力値ｙの値が、破線で示される２次曲線に重なるようになる。従って、図８Ｂに示されるように、入力値ｘが、予め想定される使用範囲Ｒ外になった場合でも、ニューラルネットワークの隠れ層 ( L＝２) のノードの個数を増大することにより、適切な出力値ｙを得られることがわかる。そこで本発明による第１実施例では、入力値ｘが、予め設定されている範囲Ｒ外になった場合には、ニューラルネットワークの隠れ層 ( L＝２) のノードの個数を増大させるようにしている。
【００３３】
次に、図７Ａから図８Ｂに示される入力値ｘおよび出力値ｙの具体的な一例について説明する。内燃機関の分野においては、内燃機関に関する特定の種別の運転パラメータの値を入力値ｘとしたときに、実際の出力量ｙが入力値ｘの２次関数の形となる場合があり、そのような場合の一例として、内燃機関に関する特定の種別の運転パラメータの値、即ち、入力値ｘが機関回転数Ｎ（ｒｐｍ）であり、出力量ｙが排気損失量である場合がある。この場合、機関回転数Ｎの使用範囲は、機関が定まるとそれに応じて定まり、従って、機関回転数Ｎの範囲は、予め設定されている。一方、排気損失量は、機関燃焼室から排出される熱エネルギ量を示しており、機関燃焼室から排出される排気ガス量に比例し、機関燃焼室から排出される排気ガス温と外気温との温度差に比例する。この排気損失量は、実際に機関を運転したときのガス温度等の検出値に基づいて算出され、従って、この算出された排気損失量は実測により得られた値を示していることになる。
【００３４】
この具体的な一例では、入力値ｘ、即ち、機関回転数Ｎが、予め設定されている範囲Ｒ内であるときには、実測により得られた教師データを用いて、出力値ｙと、入力値ｘに対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。即ち、内燃機関に関する特定の種別の運転パラメータの値が、予め設定されている範囲Ｒ内であるときには、実測により得られた教師データを用いて、出力値ｙと、内燃機関に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。一方、入力値ｘ、即ち、機関回転数Ｎが、予め設定されている範囲外であるときには、ニューラルネットワークの隠れ層のノードの個数が増大されると共に、新たに取得された入力値ｘ、即ち、機関回転数Ｎに対し実測により得られた教師データを用いて、出力値ｙと、入力値ｘに対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。即ち、内燃機関に関する特定の種別の運転パラメータの値が、予め設定されている範囲外であるときには、ニューラルネットワークの隠れ層のノードの個数が増大されると共に、新たに取得された内燃機関に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、出力値ｙと、内燃機関に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。従って、この場合、機関回転数Ｎが予め設定されている範囲Ｒよりも高くなったとしても、排気損失量を、比較的正確に、推定することができることになる。
【００３５】
なお、本発明による第１実施例は、図９に示されるような複数の隠れ層 ( L＝２およびL＝３) を有するニューラルネットワークにも適用することができる。図９に示されるようなニューラルネットワークでは、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの出力値ｚ１、ｚ２によって、出力層（L＝４）から出力される関数の形が定まる。即ち、出力値ｙがどのような関数で表現できるかは、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの個数によって支配される。従って、図９に示されるようなニューラルネットワークにおいて、隠れ層のノードの個数を増大するときには、図９に示されるように、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの個数が増大せしめられる。
【００３６】
上述の第１実施例では、予め設定されている範囲Ｒ内の種々の入力値ｘに対して実測された排気損失量が教師データとして事前に求められており、即ち、予め設定されている範囲Ｒ内における内燃機関に関する特定の種別の運転パラメータの値に対して実測により教師データが事前に求められており、これら内燃機関に関する特定の種別の運転パラメータの値および教師データからニューラルネットワークの構造が決定され、出力値ｙと、内燃機関に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが事前に学習される。この予め設定されている範囲Ｒ内における内燃機関に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データは電子制御ユニット３０の記憶部に記憶される。この第１実施例では、事前学習において用いられたニューラルネットワークと同じ構造のニューラルネットワークを用い、学習が完了したときのニューラルネットワークの重みを用いて、車両運転中にオンボードで更に学習が行われる。図１０は、このオンボードで行われる第１実施例の学習処理ルーチンを示している。なお、図１０に示される学習処理ルーチンは一定時間毎の、例えば、一秒毎の割り込みによって実行される。
【００３７】
図１０を参照すると、まず初めに、ステップ１０１において、電子制御ユニット３０の記憶部に記憶されている学習済みの重みと、事前の学習において用いられていた教師データ、即ち、予め設定されている範囲Ｒ内における内燃機関に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データと、入力データの範囲Ｒ、即ち、内燃機関に関する特定の種別の運転パラメータの値の予め設定されている範囲を示す値Ａ，Ｂが読み込まれる。この学習済みの重みは、重みの初期値として用いられる。次いで、ステップ１０２では、事前の学習において用いられていたニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが読み込まれる。次いで、ステップ１０３に進んで、新たな入力値ｘ、即ち、新たな内燃機関に関する特定の種別の運転パラメータの値が取得され、この新たな入力値ｘ、即ち、新たな内燃機関に関する特定の種別の運転パラメータの値は、電子制御ユニット３０の記憶部に記憶される。更に、ステップ１０３では、新たな入力値ｘに対する排気損出量の実測値が教師データとして、電子制御ユニット３０の記憶部に記憶される。即ち、ステップ１０３では、新たに取得された内燃機関に関する特定の種別の運転パラメータの値に対し実測により得られた教師データが電子制御ユニット３０の記憶部に記憶される。
【００３８】
次いで、ステップ１０４では、新たな入力値ｘ、即ち、新たに取得された内燃機関に関する特定の種別の運転パラメータの値が、予め設定されている範囲Ｒを示すＡ，Ｂ間にあるか否か、即ち、新たな入力値ｘがＡ以上であり、Ｂ以下であるか否かが判別される。新たな入力値ｘが、予め設定されている範囲Ｒを示すＡ，Ｂ間にあるときには、ステップ１０５に進んで、入力値ｘ、即ち、新たに取得された内燃機関に関する特定の種別の運転パラメータの値がニューラルネットワークの入力層のノードに入力され、ニューラルネットワークの出力層のノードから出力された出力値ｙと新たに取得された内燃機関に関する特定の種別の運転パラメータの値に対し実測により得られた教師データとに基づき、誤差逆伝播法を用いて、出力値ｙと教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。
【００３９】
一方、ステップ１０４において、新たな入力値ｘ、即ち、新たに取得された内燃機関に関する特定の種別の運転パラメータの値が、予め設定されている範囲Ｒを示すＡ，Ｂ間にないと判別されたときには、ステップ１０６に進んで、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが更新され、出力層の一つ前の隠れ層のノードの個数Ｋが増大せしめられる。このとき、第１実施例では、出力層の一つ前の隠れ層のノードの個数Ｋが１個だけ増大される。次いで、ステップ１０７では、出力層の一つ前の隠れ層のノードの個数Ｋを増大させるようにニューラルネットワークが更新され、次いで、ステップ１０５に進む。ステップ１０５では、新たな入力値ｘに対して新たに得られた教師データも教師データに含めて、出力値ｙと教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。即ち、ステップ１０５では、新たに取得された内燃機関に関する特定の種別の運転パラメータの値に対し実測により得られた教師データ、および予め設定されている範囲Ｒ内における内燃機関に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データを用いて、予め設定されている範囲内および予め設定されている範囲外の内燃機関に関する特定の種別の運転パラメータの値に応じて変化する出力値ｙと、この内燃機関に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。
【００４０】
この場合、新たに取得された内燃機関に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された内燃機関に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数が２個以上の一定個数以上である場合に、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させることもできる。従って、この第１実施例では、新たに取得された内燃機関に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された内燃機関に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大されることになる。
【００４１】
また、予め設定されている範囲外の新たに取得された内燃機関に関する特定の種別の運転パラメータの値に対し実測により得られた教師データが複数個ある場合、図８ＢにおいてＢとＣ間で示される予め設定されている運転パラメータの値の範囲における教師データのデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させることができる。なお、図８ＢにおいてＢおよびＣは夫々、この予め設定されている運転パラメータの値の範囲の最小値と最大値を示しており、従って、正確に言うと、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値Ｃ及び最小値Ｂの差分値（Ｃ−Ｂ）で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させることができる。
【００４２】
さて、本発明の実施例において用いられている内燃機関は、図１に示されるように、電子制御ユニット３０を具備しており、この電子制御ユニット３０は、内燃機関の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備している。ここで、図１に示される入力ポート３５が上述のパラメータ値取得部を構成しており、ＣＰＵ３４が上述の演算部を構成しており、ＲＯＭ３２およびＲＡＭ３３が上述の記憶部を構成している。なお、ＣＰＵ３４、即ち、上述の演算部では、内燃機関の運転パラメータの値が入力層に入力され、機関の運転パラメータの値に応じて変化する出力値が出力層から出力される。また、内燃機関に関する特定の種別の運転パラメータの値に対して予め設定されている範囲Ｒは、予めＲＯＭ３２内、即ち、上述の記憶部に記憶されている。更に、学習済みの重みと、予め設定されている範囲Ｒ内における内燃機関に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データは、ＲＡＭ３３内、即ち、上述の記憶部に記憶されている。
【００４３】
図１１は、本発明による第１実施例において用いられているニューラルネットワークの変形例を示している。この変形例では、出力層（L＝４）が二個のノードを有している。
この変形例では、図９に示される例と同様に、入力値ｘが機関回転数Ｎ（ｒｐｍ）とされている。一方、この変形例では、一方の出力量ｙ１が、図９に示される例と同様に、排気損失量とされており、他方の出力量ｙ２が、入力値ｘの２次関数となる何らかの量、例えば燃料消費率とされている。この変形例でも、出力層（L＝４）の各ノードでは、活性化関数として恒等関数が用いられている。このように出力層（L＝４）が複数個のノードを有する場合には、前述したように誤差関数Ｅとして、前式（８）に示される二乗和誤差Ｅ（各ノードからの出力値がｙ１、ｙ２・・・、対応する教師データがｙｔ１、ｙｔ２・・・）が用いられる。この場合、前式（７）からわかるように、一方のノードについては二乗和誤差Ｅをｙ１により偏微分するので（∂Ｅ/∂ｙ１）、一方のノードにおけるδ（L）の値は、δ（L）＝ｙ１−ｙｔ１となり、他方のノードについては二乗和誤差Ｅをｙ２により偏微分するので（∂Ｅ/∂ｙ２）、他方のノードにおけるδ（L）の値は、δ（L）＝ｙ２−ｙｔ１２となる。出力層（L＝４）の各ノードについて、δ（L）が求まると前式（６）を用いて前層のδ（L−１）が求まる。このようにして順次、前層のδが求められ、これらδの値を用いて、前式（２）から、各重みｗについて誤差関数Ｅの微分、即ち、勾配∂Ｅ/∂ｗ（L）が求められる。勾配∂Ｅ/∂ｗ（L）が求められると、この勾配∂Ｅ/∂ｗ（L）を用いて、誤差関数Ｅの値が減少するように、重みｗの値が更新される。
【００４４】
図１１に示されるようにニューラルネットワークの出力層（L＝４）が複数個のノードを有する場合においても、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの出力値ｚ１、ｚ２によって、出力層（L＝４）の各ノードから出力される関数の形が定まる。即ち、各出力値ｙ１、ｙ２がどのような関数で表現できるかは、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの個数によって支配される。従って、図１１に示されるようなニューラルネットワークにおいて、隠れ層のノードの個数を増大するときには、図１１に示されるように、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの個数が増大せしめられる。
【００４５】
図１２から図１４Ｂは、本発明による機械学習装置の第２実施例を示している。この第２実施例では、内燃機関に関する運転パラメータが複数の種別の運転パラメータからなり、内燃機関に関する複数の種別の運転パラメータの値に基づいて、ニューラルネットワークの重みの学習が行われる。具体的な一例として、内燃機関の運転パラメータが機関回転数、アクセル開度（アクセルペダルの踏込み量）および外気温からなり、これら内燃機関の運転パラメータの値に基づいて、内燃機関の出力トルクを推定するニューラルネットワークモデルを作成する場合が示されている。この具体的な一例では、図１３に示されるように、ニューラルネットワークの入力層 ( L＝１) は３個のノードからなり、各ノードに、機関回転数を示す入力値ｘ１、アクセル開度を示す入力値ｘ２および外気温を示す入力値ｘ３ が入力される。また、隠れ層（L＝２、L＝３）の層数は、１個又は任意の個数とすることができ、隠れ層（L＝２、L＝３）のノードの数も任意の個数とすることができる。なお、図１３に示される例では、出力層（L＝４）のノードの数は１個とされている。
【００４６】
一方、図１４Ａにおいて、Ａ１とＢ１ との間、即ち、Ｒ１は機関回転数の予め設定されている範囲を示しており、Ａ２とＢ２との間、即ち、Ｒ２はアクセル開度の予め設定されている範囲を示しており、Ａ３とＢ３との間、即ち、Ｒ３は外気温の予め設定されている範囲を示している。なお、図１４Ｂも、図１４Ａと同様に、Ａ１とＢ１ との間は機関回転数の予め設定されている範囲を示しており、Ａ２とＢ２との間はアクセル開度の予め設定されている範囲を示しており、Ａ３とＢ３との間は外気温の予め設定されている範囲を示している。なお、この第２実施例では、アクセル開度は負荷センサ４１により検出され、外気温は大気温センサ２４によって検出される。また、この第２実施例では、例えば、機関クランクシャフトに取り付けられたトルクセンサによって機関の出力トルクが実測され、この実測により得られたトルクが教師データとされている。
【００４７】
この第２実施例でも、予め設定されている範囲Ｒｎ内の種々の入力値ｘｎ（ｎ＝ １，２，３）に対して実測された機関出力トルクが教師データとして事前に求められており、即ち、予め設定されている範囲Ｒｎ内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により教師データが事前に求められており、これら内燃機関に関する複数の種別の運転パラメータの値および教師データからニューラルネットワークの構造が決定され、出力値ｙと、内燃機関に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが事前に学習される。この予め設定されている範囲Ｒｎ内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データは電子制御ユニット３０の記憶部に記憶される。この第２実施例でも、事前学習において用いられたニューラルネットワークと同じ構造のニューラルネットワークを用い、学習が完了したときのニューラルネットワークの重みを用いて、車両運転中にオンボードで更に学習が行われる。図１２は、このオンボードで行われる第２実施例の学習処理ルーチンを示しており、この学習処理ルーチンは一定時間毎の、例えば、一秒毎の割り込みによって実行される。
【００４８】
図１２を参照すると、まず初めに、ステップ２０１において、電子制御ユニット３０の記憶部に記憶されている学習済みの重みと、事前の学習において用いられていた教師データ、即ち、予め設定されている範囲Ｒｎ内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データと、入力データの範囲、即ち、内燃機関に関する複数の種別の運転パラメータの値の予め設定されている範囲を示す値Ａｎ，Ｂｎ（ｎ＝ １，２，３）（図１３Ａ）が読み込まれる。この学習済みの重みは、重みの初期値として用いられる。次いで、ステップ２０２では、事前の学習において用いられていたニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが読み込まれる。次いで、ステップ２０３に進んで、新たな入力値ｘ、即ち、新たな内燃機関に関する複数の種別の運転パラメータの値が取得され、この新たな入力値ｘ、即ち、新たな内燃機関に関する複数の種別の運転パラメータの値は、電子制御ユニット３０の記憶部に記憶される。更に、ステップ２０３では、新たな入力値ｘに対する機関出力トルクの実測値が教師データとして、電子制御ユニット３０の記憶部に記憶される。即ち、ステップ２０３では、新たに取得された内燃機関に関する複数の種別の運転パラメータの値に対し実測により得られた教師データが電子制御ユニット３０の記憶部に記憶される。
【００４９】
次いで、ステップ２０４では、新たな入力値ｘｎ、即ち、新たに取得された内燃機関に関する複数の種別の運転パラメータの値が、予め設定されている範囲Ｒｎ（ＡｎとＢｎとの間）内にあるか否か、即ち、新たな入力値ｘｎがＡｎ以上であり、Ｂｎ以下であるか否かが判別される。新たな入力値ｘｎが、予め設定されている範囲Ｒｎ内にあるときには、ステップ２０５に進んで、各入力値ｘｎ、即ち、新たに取得された内燃機関に関する複数の種別の運転パラメータの値がニューラルネットワークの入力層の対応するノードに入力され、ニューラルネットワークの出力層のノードから出力された出力値ｙと、新たに取得された内燃機関に関する複数の種別の運転パラメータの値に対し実測により求められた教師データとに基づき、誤差逆伝播法を用いて、出力値ｙと教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。
【００５０】
一方、ステップ２０４において、新たな入力値ｘｎ、即ち、新たに取得された内燃機関に関する複数の種別の運転パラメータの値の内の少なくとも一つの種別の運転パラメータの値が、予め設定されている範囲Ｒｎ（ＡｎとＢｎとの間）内にないと判別されたとき、例えば、図１４Ｂにおいて機関回転数を示す入力値ｘ１が、Ｂ１からＣ１（Ｂ１＜Ｃ１）までの予め設定されている範囲（Ｂ１〜Ｃ１）内にあるような場合、或いは図１３Ｂにおいて外気温を示す入力値ｘ３が、Ｃ３からＡ３（Ｃ３＜Ａ３）までの予め設定されている範囲（Ｃ３〜Ａ３）内にあるような場合には、ステップ２０６に進む。ステップ２０６では、最初に、新たな入力値ｘｎの属する範囲（Ｂｎ〜Ｃｎ）或いは範囲（Ｃｎ〜Ａｎ）内における新たな入力値ｘｎに対する教師データの密度Ｄ（＝教師データ個数/（Ｃｎ―Ｂｎ）、或いは教師データ個数/（Ａｎ―Ｃｎ））が算出される。
【００５１】
ところで、図１４Ｂにおいて、Ｂ１およびＣ１は夫々、機関回転数の予め設定されている範囲の最小値と最大値、即ち、運転パラメータの値の予め設定されている範囲の最小値と最大値を示しており、教師データ密度Ｄは、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値Ｃ１及び最小値Ｂ１の差分値（Ｃ１−Ｂ１）で除した値を示している。また、図１４Ｂにおいて、Ｃ３およびＡ３は夫々、予め設定されている外気温の範囲の最小値と最大値、即ち、運転パラメータの値の予め設定されている範囲の最小値と最大値を示しており、教師データ密度Ｄは、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値Ｃ３及び最小値Ａ３の差分値（Ｃ３−Ａ３）で除した値を示している。ステップ２０６では、教師データ密度Ｄが算出されると、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったか否かが判別される。教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも低い場合には処理サイクルを完了する。
【００５２】
一方、ステップ２０６において、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったと判別されたときにはステップ２０７に進む。この場合、Ｄ（＝教師データ個数/（Ａｎ―Ｃｎ））＞Ｄ０ のときには、次式により追加ノード数αが算出される。
追加ノード数α＝round{ (Ｋ/(Ｂｎ-Ａｎ))・(Ａｎ-Ｃｎ)}
一方、Ｄ（＝教師データ個数/（Ｃｎ―Ｂｎ））＞Ｄ０ のときには、次式により追加ノード数αが算出される。
追加ノード数α＝round{ (Ｋ/(Ｂｎ-Ａｎ))・(Cｎ-Ｂｎ)}
なお、上式において、Ｋはノードの個数を示しており、roundは四捨五入を意味している。
【００５３】
ステップ２０７において追加ノード数αが算出されると、ステップ２０８に進んで、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが更新され、出力層の一つ前の隠れ層のノードの個数Ｋが、追加ノード数αだけ増大せしめられる（Ｋ←Ｋ＋α）。このように、この第２実施例では、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度が増大すると、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大される。即ち、この第２実施例では、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大される。
【００５４】
一方、上述したように、ステップ２０６からステップ２０７に進むのは、教師データ密度Ｄが予め定められたデータ密度Ｄ０に達したときであり、従って、ステップ２０７において追加ノード数αの算出に用いられている（Ａｎ―Ｃｎ）の値および（Ｃｎ―Ｂｎ）の値は、教師データの個数に比例していることになる。従って、上式からわかるように、追加ノード数αは、新たな入力値ｘｎの属する範囲（Ｂｎ〜Ｃｎ）或いは範囲（Ｃｎ〜Ａｎ）内における教師データの個数に比例することになる。即ち、この第２実施例では、新たに取得された内燃機関に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大されることになる。
【００５５】
ステップ２０８において出力層の一つ前の隠れ層のノードの個数Ｋが、追加ノード数αだけ増大せしめられる（Ｋ←Ｋ＋α）と、ステップ２０９に進み、出力層の一つ前の隠れ層のノードの個数Ｋを増大させるようにニューラルネットワークが更新される。次いで、ステップ２０５に進む。ステップ２０５では、新たな入力値ｘに対して新たに得られた教師データも教師データに含めて、出力値ｙと教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。即ち、ステップ２０５では、新たに取得された内燃機関に関する複数の種別の運転パラメータの値に対し実測により得られた教師データ、および予め設定されている範囲Ｒｎ内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データを用いて、予め設定されている範囲内および予め設定されている範囲外の内燃機関に関する複数の種別の運転パラメータの値に応じて変化する出力値ｙと、この内燃機関に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。
【００５６】
さて、本発明の第２実施例では、内燃機関に関する複数の種別の運転パラメータの値に対して予め設定されている範囲Ｒｎを示す値Ａｎ，Ｂｎは、予めＲＯＭ３２内、即ち、上述の記憶部に記憶されている。また、学習済みの重み、および予め設定されている範囲Ｒｎ内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データは、ＲＡＭ３３内、即ち、上述の記憶部に記憶されている。
【００５７】
図１５は、本発明による第２実施例において用いられているニューラルネットワークの変形例を示している。この変形例では、出力層（L＝４）が二個のノードを有している。
この変形例では、図１３に示される例と同様に、入力値ｘ１が機関回転数とされており、入力値ｘ２がアクセル開度とされており、入力値ｘ３が外気温とされている。一方、この変形例では、一方の出力量ｙ１が、図１３に示される例と同様に、内燃機関の出力トルクとされており、他方の出力量ｙ２が、内燃機関の熱効率とされている。この熱効率は、実際に機関を運転したときの機関回転数、機関負荷、吸入空気圧、吸入空気温、排気ガス圧、排気ガス温、機関冷却水温等の検出値に基づいて算出され、従って、この熱効率は実測により得られた値を示している。この変形例でも、出力層（L＝４）の各ノードでは、活性化関数として恒等関数が用いられている。更に、この変形例では、誤差関数Ｅとして、内燃機関の出力トルクの実測値および熱効率の実測値を教師データとした前式（８）に示される二乗和誤差Ｅが用いられ、誤差逆伝播法を用いて、誤差関数Ｅの値が減少するように、重みｗの値が更新される。
【００５８】
図１５に示されるようにニューラルネットワークの出力層（L＝４）が複数個のノードを有する場合においても、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの出力値ｚ１、ｚ２、ｚ３、ｚ４によって、出力層（L＝４）の各ノードから出力される関数の形が定まる。即ち、各出力値ｙ１、ｙ２がどのような関数で表現できるかは、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの個数によって支配される。従って、図１５に示されるようなニューラルネットワークにおいて、隠れ層のノードの個数を増大するときには、出力層（L＝４）の一つ前の隠れ層 ( L＝３) のノードの個数が増大せしめられる。
【００５９】
図１６および図１７は、本発明による機械学習装置の第３実施例を示している。この第３実施例でも、内燃機関に関する運転パラメータが複数の種別の運転パラメータからなり、内燃機関に関する複数の種別の運転パラメータの値に基づいて、ニューラルネットワークの重みの学習が行われる。この第３実施例でも、内燃機関に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されている。図１７は一例として、内燃機関に関する運転パラメータが二つの種別の運転パラメータからなる場合を示しており、図１７において、一方の種別の運転パラメータの値の予め設定されている範囲がＲx で、他方の種別の運転パラメータの値の予め設定されている範囲がＲy で示されている。この第３実施例では、図１７に示されるように、各種別の運転パラメータの値の予め設定されている範囲Ｒx、Ｒy を複数個に区分けすると共に、各種別の運転パラメータの値の区分けされた各区分け範囲の組み合わせにより画定される複数の区分け領域〔Ｘｎ，Ｙｍ〕（ｎ＝１，２・・・ｎ、ｍ＝１，２・・・ｍ）が予め設定されている。
【００６０】
なお、図１７において、Ｘ１，Ｘ２・・・ＸｎおよびＹ１，Ｙ２・・・Ｙｎは、夫々各種別の運転パラメータの値の区分け範囲を示している。また、この第３実施例には、具体的な一例として、内燃機関の運転パラメータが機関回転数および外気温からなり、これら内燃機関の運転パラメータの値に基づいて、内燃機関からのＨＣ排出量を推定するニューラルネットワークモデルを作成する場合が示されている。この場合には、Ｘ１，Ｘ２・・・Ｘｎが、例えば１０００ｒｐｍ毎に区切られた機関回転数（１０００ｒｐｍ≦Ｘ１＜２００ｒｐｍ、２０００ｒｐｍ≦Ｘ２＜３０００ｒｐｍ・・・）を示しており、Ｙ１，Ｙ２・・・Ｙｎが、例えば１０℃毎に区切られた外気温（−３０℃≦Ｙ１＜―２０℃、―２０℃≦Ｙ２＜−１０℃・・・）を示している。
【００６１】
この第３実施例では、各区分け領域〔Ｘｎ，Ｙｍ〕毎に、夫々、独立したニューラルネットワークが作成されている。これらのニューラルネットワークでは、入力層 ( L＝１) は２個のノードからなり、入力層 ( L＝１) の各ノードに、機関回転数を示す入力値ｘ１および外気温を示す入力値ｘ２ が入力される。また、隠れ層（L＝２、L＝３）の層数は、１個又は任意の個数とすることができ、隠れ層（L＝２、L＝３）のノードの数も任意の個数とすることができる。なお、いずれのニューラルネットワークにおいても、出力層（L＝４）のノードの数は１個とされている。なお、この第３実施例でも、変形例として、出力層（L＝４）のノードの数を２個にすることができる。この場合、例えば、出力層（L＝４）の一方のノードからの出力量が内燃機関からのＨＣ排出量とされ、出力層（L＝４）の他方のノードからの出力量が内燃機関からのＮＯＸ排出量とされる。
【００６２】
この第３実施例では、隠れ層（L＝３）のノードの数は、ニューラルネットワーク毎に異なり、以下、区分け領域〔Ｘｎ，Ｙｍ〕におけるニューラルネットワークの出力層の一つ前の隠れ層のノードの個数をＫｎｍで表す。この隠れ層のノードの個数Ｋｎｍは、各区分け領域〔Ｘｎ，Ｙｍ〕内での入力値の変化に対する教師データの変化の複雑さに応じて、事前に設定されている。なお、この第３実施例では、図１に示されるＮＯＸセンサ２３に変えてＨＣセンサが排気通路内に配置される。この第３実施例では、このＨＣセンサによって機関からのＨＣ排出量が実測され、この実測により得られたＨＣ排出量が教師データとされる。なお、上述の第３実施例の変形例では、図１に示されるＮＯＸセンサ２３に加えてＨＣセンサが排気通路内に配置される。
【００６３】
この第３実施例では、内燃機関に関する複数の種別の運転パラメータの値の予め設定されている範囲Ｒx、Ｒy 内に形成されている各区分け領域〔Ｘｎ，Ｙｍ〕（ｎ＝１，２・・・ｎ、ｍ＝１，２・・・ｍ）内の種々の入力値ｘ１、ｘ２ に対して実測されたＨＣ排出量が教師データとして事前に求められており、即ち、予め設定されている範囲Ｒx、Ｒy内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により教師データが事前に求められており、これら内燃機関に関する複数の種別の運転パラメータの値および教師データから、隠れ層のノードの個数Ｋｎｍも含めて各区分け領域〔Ｘｎ，Ｙｍ〕に対するニューラルネットワークの構造が決定され、出力値ｙと内燃機関に関する複数の種別の運転パラメータの値２に対応した教師データとの差が小さくなるように、各区分け領域〔Ｘｎ，Ｙｍ〕のニューラルネットワークの重みが事前に学習される。従って、この第３実施例では、この事前に学習の行われた区分け領域〔Ｘｎ，Ｙｍ〕（ｎ＝１，２・・・ｎ、ｍ＝１，２・・・ｍ）を、以下、学習済み区分け領域〔Ｘｎ，Ｙｍ〕と称することもある。なお、この予め設定されている範囲Ｒx、Ｒy 内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データは電子制御ユニット３０の記憶部に記憶される。この第３実施例でも、各区分け領域〔Ｘｎ，Ｙｍ〕について、事前学習において用いられたニューラルネットワークと同じ構造のニューラルネットワークを用い、学習が完了したときのニューラルネットワークの重みを用いて、車両運転中にオンボードで更に学習が行われる。図１６は、このオンボードで行われる第３実施例の学習処理ルーチンを示しており、この学習処理ルーチンは一定時間毎の、例えば、一秒毎の割り込みによって実行される。
【００６４】
図１６を参照すると、まず初めに、ステップ３０１において、電子制御ユニット３０の記憶部に記憶されている学習済みの重みと、事前の学習において用いられていた教師データ、即ち、予め設定されている範囲Ｒx、Ｒy 内における内燃機関に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データと、各学習済み区分け領域〔Ｘｎ，Ｙｍ〕（ｎ＝１，２・・・ｎ、ｍ＝１，２・・・ｍ）が読み込まれる。この学習済みの重みは、重みの初期値として用いられる。次いで、ステップ３０２では、各学習済み区分け領域〔Ｘｎ，Ｙｍ〕に対し事前の学習において用いられていた出力層の一つ前の隠れ層のノードの個数Ｋｎｍが読み込まれる。次いで、ステップ３０３に進んで、新たな入力値ｘ１、ｘ２、即ち、新たな内燃機関に関する複数の種別の運転パラメータの値が取得され、この新たな入力値ｘ１、ｘ２、即ち、新たな内燃機関に関する複数の種別の運転パラメータの値は、電子制御ユニット３０の記憶部に記憶される。更に、ステップ３０３では、新たな入力値ｘ１、ｘ２ に対するＨＣ排出量の実測値が教師データとして、電子制御ユニット３０の記憶部に記憶される。即ち、ステップ３０３では、新たに取得された内燃機関に関する複数の種別の運転パラメータの値に対し実測により得られた教師データが電子制御ユニット３０の記憶部に記憶される。
【００６５】
次いで、ステップ３０４では、新たな入力値ｘ１、ｘ２が、学習済み区分け領域〔Ｘｎ，Ｙｍ〕内にあるか否かが、即ち、新たに取得された内燃機関に関する複数の種別の運転パラメータの値が予め設定されている範囲Ｒx、Ｒy 内にあるか否かが判別される。新たな入力値ｘ１、ｘ２ が、学習済み区分け領域〔Ｘｎ，Ｙｍ〕内にあるとき、即ち、新たに取得された内燃機関に関する複数の種別の運転パラメータの値が予め設定されている範囲Ｒx、Ｒy 内あるときには、ステップ３０５に進んで、入力値ｘ１、ｘ２、即ち、新たに取得された内燃機関に関する複数の種別の運転パラメータの値 が、新たに取得された内燃機関に関する複数の種別の運転パラメータの値の属する学習済み区分け領域〔Ｘｎ，Ｙｍ〕のニューラルネットワークの入力層の各ノードに入力され、ニューラルネットワークの出力層のノードから出力された出力値ｙと、新たに取得された内燃機関に関する複数の種別の運転パラメータの値に対し実測により求められた教師データとに基づき、誤差逆伝播法を用いて、出力値ｙと教師データとの差が小さくなるように、新たに取得された内燃機関に関する複数の種別の運転パラメータの値の属する学習済み区分け領域〔Ｘｎ，Ｙｍ〕のニューラルネットワークの重みが更に学習される。
【００６６】
一方、ステップ３０４において、新たな入力値ｘ１、ｘ２が、学習済み区分け領域〔Ｘｎ，Ｙｍ〕内にないと判別されたとき、例えば、図１７において入力値ｘ１、ｘ２が属しかつ入力値ｘ１、ｘ２の予め設定された範囲の組み合わせにより画定される未学習領域〔Ｘａ，Ｙｂ〕が、学習済み区分け領域〔Ｘｎ，Ｙｍ〕外に設定される。即ち、言い換えると、新たに取得された内燃機関に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲Ｒx、Ｒy 外であるときには、各種別の運転パラメータの値が属しかつ各種別の運転パラメータの値の予め設定された範囲の組み合わせにより画定される未学習領域〔Ｘａ，Ｙｂ〕が、予め設定されている範囲Ｒx、Ｒy 外に設定される。
【００６７】
図１７に示される例は、新たに取得された内燃機関に関する一方の種別の運転パラメータの値が予め設定されている範囲Ｒx 外であり、新たに取得された内燃機関に関する他方の種別の運転パラメータの値が予め設定されている範囲Ｒy 内における区分け範囲Ｙ２に属している場合を示しており、この場合には、この未学習領域〔Ｘａ，Ｙｂ〕は、一方の種別の運転パラメータの値に対し予め設定されている範囲Ｒx 外であって、他方の種別の運転パラメータの値が属している区分け範囲Ｙ２内に、該区分け範囲Ｙ２内の学習済み区分け領域〔Ｘｎ，Ｙｍ〕に隣接して設定される。
【００６８】
未学習領域〔Ｘａ，Ｙｂ〕が設定されると、ステップ３０６に進む。ステップ３０６では、初めに、新たな入力値ｘ１、ｘ２ の属する未学習領域〔Ｘａ，Ｙｂ〕内における教師データ密度Ｄが算出される。この教師データ密度Ｄ（＝教師データ個数/〔Ｘａ，Ｙｂ〕）は、教師データの個数を未学習領域〔Ｘａ，Ｙｂ〕の面積、即ち、各種別の運転パラメータの値の予め設定された範囲の積で除した値を示している。次いで、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったか否か、および、新たな入力値ｘ１、ｘ２ の属する新領域〔Ｘａ，Ｙｂ〕内における教師データの分散Ｓ２ が予め定められた分散Ｓ２０よりも大きいか否か判別される。教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも低い場合、又は、教師データの分散Ｓ２ が予め定められた分散Ｓ２０ よりも小さい場合には処理サイクルを完了する。
【００６９】
一方、ステップ３０６において、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高く、かつ教師データの分散Ｓ２ が予め定められた分散Ｓ２０ よりも大きいと判別されたときにはステップ３０７に進む。なお、ステップ３０６においては、分散Ｓ２ が予め定められた分散Ｓ２０よりも大きいか否かの判別については省略し、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったか否かのみを判断することもできる。この場合には、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも低い場合には処理サイクルを完了し、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高いと判別されたときにはステップ３０７に進む。ステップ３０７では、下記のノード数算出式に基づいて、未学習領域〔Ｘａ，Ｙｂ〕周りの学習済み区分け領域〔Ｘｎ，Ｙｍ〕におけるノード数Ｋｎｍの平均値から、未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂが算出される。
ノード数Ｋａｂ＝１/ＮΣΣＫｉｊ（ｉ＝（ａ−１）〜（ａ＋１）、ｊ＝（ｂ−１）〜（ｂ＋１））
なお、上式において、Ｎは、未学習領域〔Ｘａ，Ｙｂ〕周りに隣接して存在する学習済み区分け領域〔Ｘｎ，Ｙｍ〕の個数を示している。この場合、未学習領域〔Ｘａ，Ｙｂ〕周りの隣接する区分け領域〔Ｘｎ，Ｙｍ〕の中で、未だ使用されていない区分け領域〔Ｘｎ，Ｙｍ〕、即ち、ノード数Ｋｎｍの存在しない区分け領域〔Ｘｎ，Ｙｍ〕がある場合には、その区分け領域〔Ｘｎ，Ｙｍ〕は、個数Ｎの算出から除外される。例えば、図１５に示される例で言うと、未学習領域〔Ｘａ，Ｙｂ〕周りの隣接する学習済み区分け領域〔Ｘｎ，Ｙ１〕のノード数Ｋｎ1、学習済み区分け領域〔Ｘｎ，Ｙ２〕のノード数Ｋｎ2および学習済み区分け領域〔Ｘｎ，Ｙ３〕の ノード数Ｋｎ3 の平均値が、未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂとされる。
【００７０】
ところで、各区分け領域〔Ｘｎ，Ｙｍ〕内での入力値の変化に対する教師データの変化の関係が単純である場合には、隠れ層のノードの個数Ｋｎｍを少なくしても十分に学習を行うことができるが、各区分け領域〔Ｘｎ，Ｙｍ〕内での入力値の変化に対する教師データの変化の関係が複雑である場合には、隠れ層のノードの個数Ｋｎｍを多くしないと十分な学習を行うことができない。従って、前述したように、学習済み区分け領域〔Ｘｎ，Ｙｍ〕におけるニューラルネットワークの隠れ層のノードの個数Ｋｎｍは、各学習済み区分け領域〔Ｘｎ，Ｙｍ〕内での入力値の変化に対する教師データの変化の複雑さに応じて設定される。ところで、二つの区分け領域〔Ｘｎ，Ｙｍ〕が近い場合には、これら区分け領域〔Ｘｎ，Ｙｍ〕間では、入力値の変化に対する教師データの変化の関係が似ており、従って、二つの区分け領域〔Ｘｎ，Ｙｍ〕が近い場合には、隠れ層のノードの個数Ｋｎｍとして同じ個数を用いることができる。従って、この第３実施例では、未学習領域〔Ｘａ，Ｙｂ〕周りの隣接する学習済み区分け領域〔Ｘｎ，Ｙｍ〕におけるノード数Ｋｎｍの平均値が、未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂとされる。
【００７１】
ここで、第３実施例の変形例として、未学習領域〔Ｘａ，Ｙｂ〕における教師データの個数を考慮に入れて、未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂを求める方法について簡単に説明する。即ち、未学習領域〔Ｘａ，Ｙｂ〕における教師データ個数が、未学習領域〔Ｘａ，Ｙｂ〕周りの隣接する学習済み区分け領域〔Ｘｎ，Ｙｍ〕における教師データ個数よりも多い場合には、未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂは、未学習領域〔Ｘａ，Ｙｂ〕周りの隣接する学習済み区分け領域〔Ｘｎ，Ｙｍ〕におけるノード数Ｋｎｍよりも多くすることが好ましい。従って、この変形例では、未学習領域〔Ｘａ，Ｙｂ〕周りの隣接する学習済み領域〔Ｘｎ，Ｙｍ〕における教師データ個数の平均値MDを求め、未学習領域〔Ｘａ，Ｙｂ〕における入力データ個数MNを平均値MDで除算することにより、ノード数増大率ＲＫ（＝ＭＮ/ＭＤ）を求め、上述のノード数算出式から求められた未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂに、このノード数増大率ＲＫを乗算して、最終的な未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂとされる。
【００７２】
ステップ３０７において未学習領域〔Ｘａ，Ｙｂ〕に対するノード数Ｋａｂが算出されると、ステップ３０８に進んで、未学習領域〔Ｘａ，Ｙｂ〕に対する新たなニューラルネットワークが作成される。この新たなニューラルネットワークでは、ノードの個数が、入力層については２個、出力層の一つ前の隠れ層についてはＫａｂ個、出力層については１個又は複数個とされる。次いで、ステップ３０５に進む。ステップ３０５では、未学習領域〔Ｘａ，Ｙｂ〕について、出力値ｙと教師データとの差が小さくなるように、未学習領域〔Ｘａ，Ｙｂ〕に対し作成されたニューラルネットワークの重みが学習される。
【００７３】
次に、図１８Ａから図１９Ｂを参照しつつ、本発明による機械学習装置を、低負荷用の特殊な内燃機関に適用した場合の具体例について説明する。この具体例では、図１２に示されるように、隠れ層（L＝３）が４個のノードを有するニューラルネットワークを用いて、スロットル弁１２の開度、機関回転数および点火時期から、ＮＯＸ排出量を示す出力値ｙを出力するモデルを作成するようにしている。なお、この具体例において用いられている内燃機関では、スロットル弁１２の開度の使用範囲が、５．５°から１１．５°（最大閉弁位置におけるスロットル弁１２の開度を０°としている）の間に設定されており、機関回転数の使用範囲が、１６００（ｒｐｍ）から３０００（ｒｐｍ）の間に設定されており、点火時期の使用範囲が０°（圧縮上死点）からＡＴＤＣ（圧縮上死点前）４０°の間に設定されている。
【００７４】
図１８Ａは、点火時期と機関回転数に対する教師データの分布を示しており、図１８Ｂは、スロットル弁開度と点火時期に対する教師データの分布を示している。なお、図１８Ａおよび図１８Ｂにおいて、黒丸は、事前に取得されている教師データの存在場所を示しており、三角印は事前に教師データが取得されていない場所を示している。図１８Ａおよび図１８Ｂから、いかなるスロットル弁開度と、いかなる機関回転数と、いかなる点火時期に対して事前に教師データが取得されているかがわかる。例えば、図１８Ａにおいて機関回転数Ｎが２０００（ｒｐｍ）で、点火時期がＡＴＤＣ２０°のときには、事前に教師データが取得されており、図１８Ｂに示されるように、点火時期がＡＴＤＣ２０°のときには、種々のスロットル弁開度に対して、事前に教師データが取得されていることがわかる。
【００７５】
一方、この具体例では、スロットル弁開度、機関回転数および点火時期がニューラルネットワークの入力層 ( L＝１) の各ノードに入力され、出力値ｙと、NOXセンサ２３により検出されたＮＯＸ排出量を示す教師データとの差が小さくなるように、ニューラルネットワークの重みが学習される。学習後の出力値ｙと、教師データとの関係が、図１８Ｃ、図１９Ａおよび図１９Ｂに示されている、なお、図１８Ｃ、図１９Ａおよび図１９Ｂでは、学習後の出力値ｙおよび教師データの値は、最大値が１となるように正規化して示されている。
【００７６】
さて、上述したように、この具体例において用いられている内燃機関では、スロットル弁１２の開度の使用範囲が、５．５°から１１．５°の間に設定されており、機関回転数Ｎの使用範囲が、１６００（ｒｐｍ）から３０００（ｒｐｍ）の間に設定されており、点火時期の使用範囲が０°（圧縮上死点）からＡＴＤＣ４０°の間に設定されている。図１８Ｃには、これらの使用範囲内において、スロットル弁開度、機関回転数Ｎおよび点火時期が使用されたときのＮＯＸ排出量を、教師データとして事前に取得し、出力値ｙと、事前に取得された教師データとの差が小さくなるように、ニューラルネットワークの重みが学習されたときの、学習後の出力値ｙと、教師データとの関係が丸印で示されている。
【００７７】
図１８Ｃに示されるように、学習後の出力値ｙと、教師データとの関係を示す丸印は、一直線上に集まっており、従って、学習後の出力値ｙが、教師データに一致せしめられていることがわかる。ところで、例えば、スロットル弁１２の開度を例に挙げると、エンジンの個体差や経年変化によって、スロットル弁１２の開度が正規の開度からずれてしまい、スロットル弁１２の開度の使用範囲が、５．５°から１１．５°の間に設定されていたとしても、実際には、スロットル弁１２の開度が、予め設定されている使用範囲を越えてしまうことがある。図１８Ａおよび図１８Ｂに示される三角印は、スロットル弁１２の開度が予め設定されている使用範囲を越えて１３．５°となってしまったときに、新たに取得された教師データの場所を示している。
【００７８】
図１８Ｃの三角印は、このようにスロットル弁１２の開度が予め設定されている使用範囲を越えて１３．５°となってしまったときに、新たに取得された教師データを用いず、事前に取得されている教師データのみを用いて、ニューラルネットワークの重みの学習を行った場合を示している。この場合には、スロットル弁１２の開度が予め設定されている使用範囲を越えて１３．５°となってしまったときのＮＯＸ排出量の推定値が、実測値から大巾にずれてしまうことがわかる。一方、図１９Ａの丸印は、このようにスロットル弁１２の開度が予め設定されている使用範囲を越えて１３．５°となってしまったときに取得された新たな教師データと、事前に取得されている教師データとの双方の教師データを用いて、ニューラルネットワークの重みの学習を行った場合を示している。この場合には、ＮＯＸ排出量の推定値が、全体的に実測値からずれてしまうことがわかる。
【００７９】
これに対し、図１９Ｂの丸印は、図１９Ａと同様に、スロットル弁１２の開度が予め設定されている使用範囲を越えて１３．５°となってしまったときに取得された新たな教師データと、事前に取得されている教師データとの双方の教師データを用い、図１９Ａとは異なり、ニューラルネットワークの隠れ層（L＝３）のノードの数を４個から７個に増大した上で、ニューラルネットワークの重みの学習を行った場合を示している。この場合には、ＮＯＸ排出量の推定値が、実測値に精度よく一致することがわかる。このように、新たに取得された機関の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させることによって、推定精度を高めることができる。
【００８０】
図２０から図２５は、本発明による機械学習装置を、エアコン（エアコンディショナー）の自動調整に適用した場合の第４実施例を示している。この実施例では、気温、湿度、位置およびエアコンの取り付けられている部屋の大きさから、最適なエアコンの風量、風向きおよび運転時間が自動的に設定される。この場合、エアコンの使用される条件や場所の範囲、即ち、気温、湿度、位置およびエアコンの取り付けられている部屋の大きさ等の運転パラメータの値の使用範囲は、エアコンの種類に応じて予め想定することができ、従って、通常は、エアコンの運転パラメータの値の予め設定さている範囲に対し、ニューラルネットワークの出力値と、最適なエコンの風量、風向きおよび運転時間との差が小さくなるようにニューラルネットワークの重みが予め学習される。
【００８１】
しかしながら、この場合にも、エアコンの運転パラメータの値が、予め設定さている範囲外となることがあり、この場合、予め設定さている範囲外に対しては、実際の値に基づく学習が行われていないために、ニューラルネットワークを用いて演算された出力値が、実際の値から大きく乖離した値になってしまうことになる、そこでこの実施例においても、新たに取得されたエアコンに関する運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させるか、又は、ニューラルネットワークの個数を増大して、新たに取得されたエアコンに関する運転パラメータの値に対して得られた教師データおよび予め設定されている範囲内におけるエアコンに関する運転パラメータの値に対して得られている教師データを用いてニューラルネットワークの重みが学習される。
【００８２】
次に、この第４実施例について具体的に説明する。図２０を参照すると、５０は、エアコン本体、５１はエアコン本体５０内に配置された送風モータ、５２はエアコン本体５０内に配置された風向き調整モータ、５３は気温を検出するための温度計、５４は大気の湿度を検出するための湿度計、５５は、エアコンの設置されている位置を検出するためのＧＰＳ、５６は、図１に示す電子制御ユニット３０と同様な構成を有する電子制御ユニットを夫々示す。図２０に示されるように、温度計５３により検出された気温、湿度計５４により検出された大気の湿度およびＧＰＳ５５によりを検出された位置情報が電子制御ユニット５６に入力され、電子制御ユニット５６からは最適なエアコンの風量を得るための送風モータ５１の駆動信号および、最適なエアコンの風向きを得るための風向き調整モータ５２の駆動信号が出力される。なお、エアコンの取り付けられている部屋の大きさは、例えば、電子制御ユニット５６に手入力される。
【００８３】
図２１は、この第４実施例において用いられているニューラルネットワークを示している。この第４実施例では、図２１に示されるように、ニューラルネットワークの入力層 ( L＝１) は４個のノードからなり、各ノードに、気温を示す入力値ｘ１、湿度示す入力値ｘ２、位置を示す入力値ｘ３およびエアコンの取り付けられている部屋の大きさを示す入力値ｘ４ が入力される。また、隠れ層（L＝２、L＝３）の層数は、１個又は任意の個数とすることができ、隠れ層（L＝２、L＝３）のノードの数も任意の個数とすることができる。また、この第４実施例では、出力層（L＝４）が３個のノードからなり、各ノードからは、エアコンの風量を示す出力値ｙ１、エアコンの風向きを示す出力値ｙ２およびエアコンの運転時間を示す入力値ｙ３が出力される。
【００８４】
一方、図２２Ａにおいて、Ａ１とＢ１ との間、即ち、Ｒ１は気温の予め設定されている範囲（例えば、−５℃〜４０℃）を示しており、Ａ２とＢ２との間、即ち、Ｒ２は湿度の予め設定されている範囲（例えば、３０％〜９０％）を示しており、Ａ３とＢ３との間、即ち、Ｒ３は位置（例えば、北緯２０度と４６度との間）の予め設定されている範囲を示しており、Ａ４とＢ４ との間、即ち、Ｒ４はエアコンの取り付けられている部屋の大きさの予め設定されている範囲を示している。なお、図２２Ｂも、図２２Ａと同様に、Ａ１とＢ１ との間は気温の予め設定されている範囲を示しており、Ａ２とＢ２との間は湿度の予め設定されている範囲を示しており、Ａ３とＢ３との間は位置の予め設定されている範囲を示しており、Ａ４とＢ４ との間はエアコンの取り付けられている部屋の大きさの予め設定されている範囲を示している。
【００８５】
この第４実施例でも、予め設定されている範囲Ｒｎ内の種々の入力値ｘｎ（ｎ＝ １，２，３、４）に対して、実測された最適なエアコンの風量、風向きおよび運転時間が教師データとして事前に求められており、即ち、予め設定されている範囲Ｒｎ内におけるエアコンに関する複数の種別の運転パラメータの値に対して実測により教師データが事前に求められており、これらエアコンに関する複数の種別の運転パラメータの値および教師データからニューラルネットワークの構造が決定され、各出力値ｙ１、ｙ２、ｙ３と、エアコンに関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが事前に学習される。この予め設定されている範囲Ｒｎ内におけるエアコンに関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データは電子制御ユニット５６の記憶部に記憶される。
【００８６】
この第４実施例でも、事前学習において用いられたニューラルネットワークと同じ構造のニューラルネットワークを用い、学習が完了したときのニューラルネットワークの重みを用いて、車両運転中にオンボードで更に学習が行われる。図２３は、このオンボードで行われる第４実施例の学習処理ルーチンを示しており、この学習処理ルーチンは一定時間毎の、例えば、一秒毎の割り込みによって実行される。なお、図２３に示される学習処理ルーチンの各ステップにおいて行われる処理は、入力値の種別と入力値の個数、および出力値の種別と出力値の個数が異なる点を除くと、図１２に示される学習処理ルーチンの各ステップにおいて行われる処理と同じである。
【００８７】
即ち、図２３を参照すると、まず初めに、ステップ４０１において、電子制御ユニット５６の記憶部に記憶されている学習済みの重みと、事前の学習において用いられていた教師データ、即ち、予め設定されている範囲Ｒｎ内におけるエアコンに関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データと、入力データの範囲、即ち、エアコンに関する複数の種別の運転パラメータの値の予め設定されている範囲を示す値Ａｎ，Ｂｎ（ｎ＝ １，２，３、４）（図２２Ａ）が読み込まれる。この学習済みの重みは、重みの初期値として用いられる。次いで、ステップ４０２では、事前の学習において用いられていたニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが読み込まれる。次いで、ステップ４０３に進んで、新たな入力値ｘ、即ち、新たなエアコンに関する複数の種別の運転パラメータの値が取得され、この新たな入力値ｘ、即ち、新たなエアコンに関する複数の種別の運転パラメータの値は、電子制御ユニット５６の記憶部に記憶される。更に、ステップ４０３では、新たな入力値ｘに対するエアコンの風量、風向きおよび運転時間の実測値が教師データとして、電子制御ユニット５６の記憶部に記憶される。即ち、ステップ４０３では、新たに取得されたエアコンに関する複数の種別の運転パラメータの値に対し実測により得られた教師データが電子制御ユニット５６の記憶部に記憶される。
【００８８】
次いで、ステップ４０４では、新たな入力値ｘｎ、即ち、新たに取得されたエアコンに関する複数の種別の運転パラメータの値が、予め設定されている範囲Ｒｎ（ＡｎとＢｎとの間）内にあるか否か、即ち、新たな入力値ｘｎがＡｎ以上であり、Ｂｎ以下であるか否かが判別される。新たな入力値ｘｎが、予め設定されている範囲Ｒｎ内にあるときには、ステップ４０５に進んで、各入力値ｘｎ、即ち、新たに取得されたエアコンに関する複数の種別の運転パラメータの値がニューラルネットワークの入力層の対応するノードに入力され、ニューラルネットワークの出力層のノードから出力された出力値ｙ１、ｙ２、ｙ３と、新たに取得されたエアコンに関する複数の種別の運転パラメータの値に対し実測により求められた教師データとに基づき、誤差逆伝播法を用いて、出力値ｙ１、ｙ２、ｙ３と教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。
【００８９】
一方、ステップ４０４において、新たな入力値ｘｎ、即ち、新たに取得されたエアコンに関する複数の種別の運転パラメータの値の内の少なくとも一つの種別の運転パラメータの値が、予め設定されている範囲Ｒｎ（ＡｎとＢｎとの間）内にないと判別されたとき、例えば、図２２Ｂにおいて気温を示す入力値ｘ１が、Ｂ１からＣ１（Ｂ１＜Ｃ１）までの予め設定されている範囲（Ｂ１〜Ｃ１）内にあるような場合、或いは図２２Ｂにおいて位置を示す入力値ｘ３が、Ｃ３からＡ３（Ｃ３＜Ａ３）までの予め設定されている範囲（Ｃ３〜Ａ３）内にあるような場合には、ステップ４０６に進む。ステップ４０６では、最初に、新たな入力値ｘｎの属する範囲（Ｂｎ〜Ｃｎ）或いは範囲（Ｃｎ〜Ａｎ）内における新たな入力値ｘｎに対する教師データの密度Ｄ（＝教師データ個数/（Ｃｎ―Ｂｎ）、或いは教師データ個数/（Ａｎ―Ｃｎ））が算出される。この教師データ密度Ｄの定義については、前述した通りである。ステップ４０６では、教師データ密度Ｄが算出されると、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったか否かが判別される。教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも低い場合には処理サイクルを完了する。
【００９０】
一方、ステップ４０６において、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったと判別されたときにはステップ４０７に進む。この場合、Ｄ（＝教師データ個数/（Ａｎ―Ｃｎ））＞Ｄ０ のときには、次式により追加ノード数αが算出される。
追加ノード数α＝round{ (Ｋ/(Ｂｎ-Ａｎ))・(Ａｎ-Ｃｎ)}
一方、Ｄ（＝教師データ個数/（Ｃｎ―Ｂｎ））＞Ｄ０ のときには、次式により追加ノード数αが算出される。
追加ノード数α＝round{ (Ｋ/(Ｂｎ-Ａｎ))・(Cｎ-Ｂｎ)}
なお、上式において、Ｋはノードの個数を示しており、roundは四捨五入を意味している。
【００９１】
ステップ４０７において追加ノード数αが算出されると、ステップ４０８に進んで、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが更新され、出力層の一つ前の隠れ層のノードの個数Ｋが、追加ノード数αだけ増大せしめられる（Ｋ←Ｋ＋α）。このように、この第４実施例では、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度が増大すると、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大される。即ち、この第４実施例では、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大される。
【００９２】
ステップ４０８において出力層の一つ前の隠れ層のノードの個数Ｋが、追加ノード数αだけ増大せしめられる（Ｋ←Ｋ＋α）と、ステップ４０９に進み、出力層の一つ前の隠れ層のノードの個数Ｋを増大させるようにニューラルネットワークが更新される。次いで、ステップ４０５に進む。ステップ４０５では、新たな入力値ｘに対して新たに得られた教師データも教師データに含めて、出力値ｙ１、ｙ２、ｙ３と教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。即ち、ステップ４０５では、新たに取得されたエアコンに関する複数の種別の運転パラメータの値に対し実測により得られた教師データ、および予め設定されている範囲Ｒｎ内におけるエアコンに関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データを用いて、予め設定されている範囲内および予め設定されている範囲外のエアコンに関する複数の種別の運転パラメータの値に応じて変化する出力値ｙ１、ｙ２、ｙ３と、このエアコンに関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。
【００９３】
図２４および図２５は、第４実施例の変形例を示している。この変形例では、エアコンに関する各種別の運転パラメータの値の予め設定されている範囲が複数個に区分けされている。即ち、図２４におけるＲｗ、Ｒｘ、Ｒｙ、Ｒｚは、夫々気温、湿度、位置およびエアコンの取り付けられている部屋の大きさの予め設定されている範囲を示しており、図２４に示されるように、気温、湿度、位置およびエアコンの取り付けられている部屋の大きさに対し予め設定されている範囲が複数個に区分けされている。なお、図２４において、Ｗ１、Ｗ２・・・Ｗｎ, X１、X２・・・Xｎ, Y１、Y２・・・Yｎ, Z１、Z２・・・Zｎは、夫々各種別の運転パラメータの値の区分け範囲を示している。
【００９４】
更に、この変形例では、各種別の運転パラメータの値の区分けされた各区分け範囲の組み合わせにより画定される複数の区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕（ｉ＝１，２・・・ｎ、ｊ＝１，２・・・ｎ、ｋ＝１，２・・・ｎ、ｌ＝１，２・・・ｎ）が予め設定されており、区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕毎に、夫々、独立したニューラルネットワークが作成されている。これらのニューラルネットワークは、図２２に示される構造を有する。この場合、隠れ層（L＝３）のノードの数は、ニューラルネットワーク毎に異なり、以下、区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕におけるニューラルネットワークの出力層の一つ前の隠れ層のノードの個数をＫi,j,k,lで表す。この隠れ層のノードの個数Ｋi,j,k,l は、各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内での入力値の変化に対する教師データの変化の複雑さに応じて、事前に設定されている。
【００９５】
この変形例では、予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内に形成されている各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内の種々の入力値ｘ１、ｘ２,ｘ３,ｘ４、即ち、気温、湿度、位置およびエアコンの取り付けられている部屋の大きさに対して実測されたエアコンの風量、風向きおよび運転時間が教師データとして事前に求められており、即ち、予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ内におけるエアコンに関する複数の種別の運転パラメータの値に対して実測により教師データが事前に求められており、これらエアコンに関する複数の種別の運転パラメータの値および教師データから、隠れ層のノードの個数Ｋi,j,k,lも含めて各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕に対するニューラルネットワークの構造が決定され、出力値ｙ１、ｙ２、ｙ３と対応する教師データとの差が小さくなるように、各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕のニューラルネットワークの重みが事前に学習される。
【００９６】
従って、この変形例では、この事前に学習の行われた区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕を、以下、学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕と称することもある。なお、この予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ内におけるエアコンに関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データは電子制御ユニット５６の記憶部に記憶される。この変形例でも、各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕について、事前学習において用いられたニューラルネットワークと同じ構造のニューラルネットワークを用い、学習が完了したときのニューラルネットワークの重みを用いて、車両運転中にオンボードで更に学習が行われる。図２５は、このオンボードで行われる変形例の学習処理ルーチンを示しており、この学習処理ルーチンは一定時間毎の、例えば、一秒毎の割り込みによって実行される。
【００９７】
図２５を参照すると、まず初めに、ステップ５００において、電子制御ユニット５６の記憶部に記憶されている学習済みの重みと、事前の学習において用いられていた教師データ、即ち、予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内におけるエアコンに関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データと、各学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕が読み込まれる。この学習済みの重みは、重みの初期値として用いられる。次いで、ステップ５０１では、各学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕に対し事前の学習において用いられていた出力層の一つ前の隠れ層のノードの個数Ｋi,j,k,l が読み込まれる。次いで、ステップ５０２に進んで、新たな入力値ｘ１、ｘ２、ｘ３,ｘ４、即ち、気温、湿度、位置およびエアコンの取り付けられている部屋の大きさが取得され、この新たな入力値ｘ１、ｘ２、ｘ３,ｘ４、即ち、新たなエアコンに関する複数の種別の運転パラメータの値は、電子制御ユニット５６の記憶部に記憶される。更に、ステップ５０２では、新たな入力値ｘ１、ｘ２、ｘ３,ｘ４対するエアコンの風量、風向きおよび運転時間が教師データとして、電子制御ユニット５６の記憶部に記憶される。即ち、ステップ５０２では、新たに取得されたエアコンに関する複数の種別の運転パラメータの値に対し実測により得られた教師データが電子制御ユニット５６の記憶部に記憶される。
【００９８】
次いで、ステップ５０３では、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４が、学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内にあるか否かが、即ち、新たに取得されたエアコンに関する複数の種別の運転パラメータの値が予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内にあるか否かが判別される。新たな入力値ｘ１、ｘ２,ｘ３,ｘ４ が、学習済み区分け領域Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ内にあるとき、即ち、新たに取得されたエアコンに関する複数の種別の運転パラメータの値が予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内あるときには、ステップ５０４に進んで、新たな入力値ｘ１、ｘ２、ｘ３,ｘ４、即ち、新たに取得されたエアコンに関する複数の種別の運転パラメータの値 が、新たに取得されたエアコンに関する複数の種別の運転パラメータの値の属する学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕のニューラルネットワークの入力層の各ノードに入力され、ニューラルネットワークの出力層のノードから出力された出力値ｙ１、ｙ２、ｙ３と、新たに取得されたエアコンに関する複数の種別の運転パラメータの値に対し実測により求められた教師データとに基づき、誤差逆伝播法を用いて、出力値ｙ１、ｙ２、ｙ３と教師データとの差が小さくなるように、新たに取得された内燃機関に関する複数の種別の運転パラメータの値の属する学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕のニューラルネットワークの重みが更に学習される。
【００９９】
一方、ステップ５０３において、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４が、学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内にないと判別されたときには、ステップ５０５に進んで、初めに、予め設定された範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ外に、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４により画定される未学習領域が設定される。例えば、新たな入力値ｘ２, ｘ３,ｘ４が、対応する予め設定された範囲Ｒｘ、Ｒｙ、Ｒｚ内にあり、新たな入力値ｘ１が対応する予め設定された範囲Ｒｗ内にないと判別されたときには、新たな入力値ｘ１の属する範囲をＷａとすると、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４により画定される未学習領域〔Ｗａ，Ｘｊ，Ｙｋ、Ｚl〕が設定される。また、新たな入力値ｘ３,ｘ４が、対応する予め設定された範囲Ｒｙ、Ｒｚ内にあり、新たな入力値ｘ１,ｘ２が対応する予め設定された範囲Ｒｗ、Ｒｘ内にないと判別されたときには、新たな入力値ｘ１の属する範囲をＷａとし、新たな入力値ｘ２の属する範囲をＸｂとすると、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４により画定される未学習領域〔Ｗａ，Ｘｂ，Ｙｋ、Ｚl〕が設定される。
【０１００】
次いで、ステップ５０５では、未学習領域〔Ｘａ，Ｙｂ〕に対する新たなニューラルネットワークが作成される。ステップ５０５において、新たなニューラルネットワークが作成されると、ステップ５０４に進む。ステップ５０４では、未学習領域について、出力値ｙ１、ｙ２、ｙ３と教師データとの差が小さくなるように、未学習領域に対し作成された新たなニューラルネットワークの重みが学習される。
【０１０１】
図２６から図３３は、本発明による機械学習装置を、２次電池の劣化度の推定に適用した場合の第５実施例を示している。この実施例では、気温、２次電池の温度、２次電池の放電時間および２次電池の単位時間当たりの放電エネルギから、２次電池の劣化度が検出される。この場合、２次電池の使用条件および使用態様の範囲、即ち、気温、２次電池の温度、２次電池の放電時間および２次電池の単位時間当たりの放電エネルギ等の２次電池の運転パラメータの値の使用範囲は、２次電池の種類に応じて予め想定することができ、従って、通常は、２次電池の運転パラメータの値の予め設定さている範囲に対し、ニューラルネットワークの出力値と、実測された２次電池の劣化度との差が小さくなるようにニューラルネットワークの重みが予め学習される。
【０１０２】
しかしながら、この場合にも、２次電池の運転パラメータの値が、予め設定さている範囲外となることがあり、この場合、予め設定さている範囲外に対しては、実際の値に基づく学習が行われていないために、ニューラルネットワークを用いて演算された出力値が、実際の値から大きく乖離した値になってしまうことになる、そこでこの実施例においても、新たに取得された２次電池に関する運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させるか、又は、ニューラルネットワークの個数を増大して、新たに取得された２次電池に関する運転パラメータの値に対して得られた教師データおよび予め設定されている範囲内における２次電池に関する運転パラメータの値に対して得られている教師データを用いてニューラルネットワークの重みが学習される。
【０１０３】
次に、この第５実施例について具体的に説明する。図２６を参照すると、６０は、２次電池、６１は電動モータ、６２は電動モータ６１の駆動制御装置、６３は２次電池６０の出力端子間電圧を検出するための電圧計、６４は２次電池６０から駆動制御装置６２を介して電動モータ６１へ供給される電流を検出するための電流計、６５は気温を検出するための温度計、６６は２次電池６０の温度を検出するための温度センサ、６７は、図１に示す電子制御ユニット３０と同様な構成を有する電子制御ユニットを夫々示す。図２６に示されるように、電流計５３により検出された電動モータ６１への供給電流、電圧計６４により検出された２次電池６０の出力端子間電圧、温度計６５により検出された気温および温度センサ６６により検出された２次電池６０の温度が電子制御ユニット５６に入力され、電子制御ユニット５６内では２次電池６０の劣化度の推定値が算出される。なお、電子制御ユニット５６内では、電流計６４の検出値に基づき２次電池６０の放電時間が求められており、電流計６４の検出値および電圧計６３の検出値に基づき２次電池６０の単位時間当たりの放電エネルギ（電流・電圧）が求められている。
【０１０４】
図２７は、この第５実施例において用いられているニューラルネットワークを示している。この第５実施例では、図２７に示されるように、ニューラルネットワークの入力層 ( L＝１) は４個のノードからなり、各ノードに、気温を示す入力値ｘ１、２次電池６０の温度示す入力値ｘ２、２次電池６０の放電時間ｘ３および２次電池６０の単位時間当たりの放電エネルギを示す入力値ｘ４ が入力される。また、隠れ層（L＝２、L＝３）の層数は、１個又は任意の個数とすることができ、隠れ層（L＝２、L＝３）のノードの数も任意の個数とすることができる。また、この第４実施例では、出力層（L＝４）のノードは１個とされ、このノードからは、２次電池２０の劣化度を示す出力値ｙが出力される。
【０１０５】
一方、図２８Ａにおいて、Ａ１とＢ１ との間、即ち、Ｒ１は気温の予め設定されている範囲（例えば、−５℃〜４０℃）を示しており、Ａ２とＢ２との間、即ち、Ｒ２は２次電池６０の温度の予め設定されている範囲（例えば、−４０℃〜４０℃）を示しており、Ａ３とＢ３との間、即ち、Ｒ３は２次電池６０の放電時間の予め設定されている範囲を示しており、Ａ４とＢ４ との間、即ち、Ｒ４は２次電池６０の単位時間当たりの放電エネルギの予め設定されている範囲を示している。なお、図２８Ｂも、図２８Ａと同様に、Ａ１とＢ１ との間は気温の予め設定されている範囲を示しており、Ａ２とＢ２との間は２次電池６０の温度の予め設定されている範囲を示しており、Ａ３とＢ３との間は２次電池６０の放電時間の予め設定されている範囲を示しており、Ａ４とＢ４ との間は２次電池６０の単位時間当たりの放電エネルギの予め設定されている範囲を示している。
【０１０６】
ここで、気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギと、２次電池６０の劣化度の関係について簡単に説明する。さて、２次電池６０は劣化するほど内部抵抗が高くなり、従って、内部抵抗の変化から２次電池６０の劣化度を推定することができる。しかしながら、実際には、内部抵抗を検出するのは困難である。一方、放電電流が一定の場合、内部抵抗が高くなるほど２次電池６０の発熱量が増大し、従って、内部抵抗が高くなるほど、即ち、２次電池６０の劣化するほど、２次電池６０の温度が高くなる。従って、２次電池６０の温度上昇量に基づいて、２次電池６０の劣化度を推定することができる。この場合、２次電池６０の温度上昇量は気温の影響を受け、また、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギに左右される。従って、２次電池６０の劣化度は、気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギから求まり、従って、気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギから、２次電池６０の劣化度を推定できることになる。
【０１０７】
一方、２次電池６０が劣化すると、２次電池６０への充電量が減少する。この場合、２次電池６０への充電が完了した直後に２次電池６０の回路を閉ループにしたとき、２次電池６０の出力端子間には、２次電池６０への充電量に比例した電圧が現れる。即ち、２次電池６０への充電が完了した直後に電圧計６４により検出された２次電池６０の出力端子間電圧は、２次電池６０への充電量に比例している。従って、２次電池６０への充電が完了した直後の電圧計６４の検出電圧から２次電池６０の劣化度を検出することができる。従って、この第５実施例では、２次電池６０への充電が完了した直後の電圧計６４の検出電圧から検出された２次電池６０の劣化度を、出力値ｙの教師データとして用いている。
【０１０８】
次に、図２９および図３０を参照しつつ、電子制御ユニット６７内において実行されている２次電池６０の放電時間等の算出ルーチンと、教師データの取得処理ルーチンについて説明する。算出ルーチンを示す図２９を参照すると、ステップ６００では、電流計６４の出力値から２次電池６０の放電時間が算出される。次いで、ステップ６０１では、電流計６４の出力値および電圧計６３の出力値から２次電池６０の単位時間当たりの放電エネルギが算出される。
【０１０９】
一方、教師データの取得処理ルーチンを示す図３０を参照すると、まず初めに、ステップ６１０において、２次電池６０への充電処理が行われているか否かが判別される。２次電池６０への充電処理が行われていないときには処理サイクルを完了する。これに対し、２次電池６０への充電処理が行われているときには、ステップ６１１に進んで２次電池６０への充電が完了したか否かが判別される。２次電池６０への充電が完了したと判別されたときには、ステップ６１２に進んで、教師データを要求するときにセットされる教師データ要求フラグがセットされているか否かが判別される。この教師データ要求フラグについては後述する。教師データ要求フラグがセットされていないときには処理サイクルを完了する。これに対し、教師データ要求フラグがセットされているときには、ステップ６１３に進んで、電圧計６４の検出電圧から２次電池６０の劣化度が検出される。次いで、ステップ６１４に進んで、追加学習フラグがセットされる。
【０１１０】
この第５実施例でも、予め設定されている範囲Ｒｎ内の種々の入力値ｘｎ（ｎ＝ １，２，３、４）、即ち、気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギに対する２次電池６０の劣化度が教師データとして事前に求められており、即ち、予め設定されている範囲Ｒｎ内における２次電池６０に関する複数の種別の運転パラメータの値に対して実測により教師データが事前に求められており、これら２次電池６０に関する複数の種別の運転パラメータの値および教師データからニューラルネットワークの構造が決定され、出力値ｙと、２次電池６０に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが事前に学習される。この予め設定されている範囲Ｒｎ内における２次電池６０に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データは電子制御ユニット６７の記憶部に記憶される。
【０１１１】
この第５実施例でも、事前学習において用いられたニューラルネットワークと同じ構造のニューラルネットワークを用い、学習が完了したときのニューラルネットワークの重みを用いて、車両運転中にオンボードで更に学習が行われる。図３１は、このオンボードで行われる第５実施例の学習処理ルーチンを示しており、この学習処理ルーチンは一定時間毎の、例えば、一秒毎の割り込みによって実行される。
【０１１２】
即ち、図３１を参照すると、まず初めに、ステップ７００において、電子制御ユニット６７の記憶部に記憶されている学習済みの重みと、事前の学習において用いられていた教師データ、即ち、予め設定されている範囲Ｒｎ内における２次電池６０に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データと、入力データの範囲、即ち、２次電池６０に関する複数の種別の運転パラメータの値の予め設定されている範囲を示す値Ａｎ，Ｂｎ（ｎ＝ １，２，３、４）（図２８Ａ）が読み込まれる。この学習済みの重みは、重みの初期値として用いられる。次いで、ステップ７０１では、事前の学習において用いられていたニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが読み込まれる。次いで、ステップ７０２では、追加学習フラグがセットされているか否かが判別される。追加学習フラグがセットされていないときにはステップ７０３に進む。
【０１１３】
ステップ７０３では、新たな入力値ｘ、即ち、新たな２次電池６０に関する複数の種別の運転パラメータの値が取得され、この新たな入力値ｘ、即ち、新たな２次電池６０に関する複数の種別の運転パラメータの値は、電子制御ユニット６７の記憶部に記憶される。
次いで、ステップ７０４では、新たな入力値ｘｎ、即ち、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値が、予め設定されている範囲Ｒｎ（ＡｎとＢｎとの間）内にあるか否か、即ち、新たな入力値ｘｎがＡｎ以上であり、Ｂｎ以下であるか否かが判別される。新たな入力値ｘｎが、予め設定されている範囲Ｒｎ内にあるときには、ステップ７０５に進んで、各入力値ｘｎ、即ち、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値がニューラルネットワークの入力層の対応するノードに入力され、ニューラルネットワークの出力層のノードから出力された出力値ｙと、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値に対し実測により求められた教師データとに基づき、誤差逆伝播法を用いて、出力値ｙと教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。
【０１１４】
一方、ステップ７０４において、新たな入力値ｘｎ、即ち、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値の内の少なくとも一つの種別の運転パラメータの値が、予め設定されている範囲Ｒｎ（ＡｎとＢｎとの間）内にないと判別されたとき、例えば、図２８Ｂにおいて気温を示す入力値ｘ１が、Ｂ１からＣ１（Ｂ１＜Ｃ１）までの予め設定されている範囲（Ｂ１〜Ｃ１）内にあるような場合、或いは図２８Ｂにおいて２次電池６０の放電時間を示す入力値ｘ３が、Ｃ３からＡ３（Ｃ３＜Ａ３）までの予め設定されている範囲（Ｃ３〜Ａ３）内にあるような場合には、ステップ７０６に進む。ステップ７０６では、教師データ要求フラグがセットされ、このとき取得された新たな入力値ｘｎが、追加学習に使用するための新たな入力値ｘｎとして記憶される。次いで、処理サイクルを完了する。
【０１１５】
教師データ要求フラグがセットされると、図３０の教師データ取得処理ルーチンからわかるように、２次電池６０の充電が完了したときに、２次電池６０の劣化度が検出され、この２次電池６０の劣化度が、追加学習に使用するための教師データとして記憶される。次いで、追加学習フラグがセットされる。さて、ステップ７０６において追加学習フラグがセットされると、次の処理サイクルでは、ステップ７０２からステップ７０７に進む。ステップ７０７では、追加学習に使用するために記憶されている新たな入力値ｘｎと、追加学習に使用するために記憶されている教師データとが記憶部から読み出され、この新たな入力値ｘｎの属する範囲（Ｂｎ〜Ｃｎ）或いは範囲（Ｃｎ〜Ａｎ）内における新たな入力値ｘｎに対する教師データの密度Ｄ（＝教師データ個数/（Ｃｎ―Ｂｎ）、或いは教師データ個数/（Ａｎ―Ｃｎ））が算出される。この教師データ密度Ｄの定義については、前述した通りである。ステップ７０７では、教師データ密度Ｄが算出されると、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったか否かが判別される。教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも低い場合には処理サイクルを完了する。
【０１１６】
一方、ステップ７０７において、教師データ密度Ｄが予め定められたデータ密度Ｄ０よりも高くなったと判別されたときにはステップ７０８に進む。この場合、Ｄ（＝教師データ個数/（Ａｎ―Ｃｎ））＞Ｄ０ のときには、次式により追加ノード数αが算出される。
追加ノード数α＝round{ (Ｋ/(Ｂｎ-Ａｎ))・(Ａｎ-Ｃｎ)}
一方、Ｄ（＝教師データ個数/（Ｃｎ―Ｂｎ））＞Ｄ０ のときには、次式により追加ノード数αが算出される。
追加ノード数α＝round{ (Ｋ/(Ｂｎ-Ａｎ))・(Cｎ-Ｂｎ)}
なお、上式において、Ｋはノードの個数を示しており、roundは四捨五入を意味している。
【０１１７】
ステップ７０８において追加ノード数αが算出されると、ステップ７０９に進んで、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数Ｋが更新され、出力層の一つ前の隠れ層のノードの個数Ｋが、追加ノード数αだけ増大せしめられる（Ｋ←Ｋ＋α）。このように、この第５実施例では、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度が増大すると、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大される。即ち、この第５実施例では、教師データの個数を運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大される。
【０１１８】
ステップ７０９において出力層の一つ前の隠れ層のノードの個数Ｋが、追加ノード数αだけ増大せしめられる（Ｋ←Ｋ＋α）と、ステップ７１０に進み、出力層の一つ前の隠れ層のノードの個数Ｋを増大させるようにニューラルネットワークが更新される。次いで、ステップ７０５に進む。ステップ７０５では、新たな入力値ｘに対して新たに得られた教師データも教師データに含めて、出力値ｙと教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。即ち、ステップ７０５では、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値に対し実測により得られた教師データ、および予め設定されている範囲Ｒｎ内における２次電池６０に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データを用いて、予め設定されている範囲内および予め設定されている範囲外の２次電池６０に関する複数の種別の運転パラメータの値に応じて変化する出力値ｙと、この２次電池６０に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、更新されたニューラルネットワークの重みが学習される。
【０１１９】
図３２および図３３は、第５実施例の変形例を示している。この変形例では、２次電池６０に関する各種別の運転パラメータの値の予め設定されている範囲が複数個に区分けされている。即ち、図３２におけるＲｗ、Ｒｘ、Ｒｙ、Ｒｚは、夫々気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギの予め設定されている範囲を示しており、図２４に示されるように、気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギの予め設定されている範囲が複数個に区分けされている。なお、図３２において、Ｗ１、Ｗ２・・・Ｗｎ, X１、X２・・・Xｎ, Y１、Y２・・・Yｎ, Z１、Z２・・・Zｎは、夫々各種別の運転パラメータの値の区分け範囲を示している。
【０１２０】
更に、この変形例では、各種別の運転パラメータの値の区分けされた各区分け範囲の組み合わせにより画定される複数の区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕（ｉ＝１，２・・・ｎ、ｊ＝１，２・・・ｎ、ｋ＝１，２・・・ｎ、ｌ＝１，２・・・ｎ）が予め設定されており、各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕毎に、夫々、独立したニューラルネットワークが作成されている。これらのニューラルネットワークは、図２７に示される構造を有する。この場合、隠れ層（L＝３）のノードの数は、ニューラルネットワーク毎に異なり、以下、区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕におけるニューラルネットワークの出力層の一つ前の隠れ層のノードの個数をＫi,j,k,lで表す。この隠れ層のノードの個数Ｋi,j,k,l は、各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内での入力値の変化に対する教師データの変化の複雑さに応じて、事前に設定されている。
【０１２１】
この変形例では、２次電池６０に関する複数の種別の運転パラメータの値の予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内に形成されている各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内の種々の入力値ｘ１、ｘ２,ｘ３,ｘ４、即ち、気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギに対して実測された２次電池６０の劣化度が教師データとして事前に求められており、即ち、予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ内における２次電池６０に関する複数の種別の運転パラメータの値に対して実測により教師データが事前に求められており、これら２次電池６０に関する複数の種別の運転パラメータの値および教師データから、隠れ層のノードの個数Ｋi,j,k,lも含めて各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕に対するニューラルネットワークの構造が決定され、出力値ｙ１、ｙ２、ｙ３と対応する教師データとの差が小さくなるように、各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕のニューラルネットワークの重みが事前に学習される。
【０１２２】
従って、この変形例では、この事前に学習の行われた区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕を、以下、学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕と称することもある。なお、この予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ内における２次電池６０に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データは電子制御ユニット５６の記憶部に記憶される。この変形例でも、各区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕について、事前学習において用いられたニューラルネットワークと同じ構造のニューラルネットワークを用い、学習が完了したときのニューラルネットワークの重みを用いて、車両運転中にオンボードで更に学習が行われる。図３３は、このオンボードで行われる変形例の学習処理ルーチンを示しており、この学習処理ルーチンは一定時間毎の、例えば、一秒毎の割り込みによって実行される。
【０１２３】
図３３を参照すると、まず初めに、ステップ８００において、電子制御ユニット５６の記憶部に記憶されている学習済みの重みと、事前の学習において用いられていた教師データ、即ち、予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内における２次電池６０に関する複数の種別の運転パラメータの値に対して実測により事前に求められている教師データと、各学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕が読み込まれる。この学習済みの重みは、重みの初期値として用いられる。次いで、ステップ８０１では、各学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕に対し事前の学習において用いられていた出力層の一つ前の隠れ層のノードの個数Ｋi,j,k,l が読み込まれる。次いで、ステップ８０２では、追加学習フラグがセットされているか否かが判別される。追加学習フラグがセットされていないときにはステップ８０３に進む。
【０１２４】
ステップ８０３では、新たな入力値ｘ１、ｘ２、ｘ３,ｘ４、即ち、気温、２次電池６０の温度、２次電池６０の放電時間および２次電池６０の単位時間当たりの放電エネルギが取得され、この新たな入力値ｘ１、ｘ２、ｘ３,ｘ４、即ち、新たな２次電池６０に関する複数の種別の運転パラメータの値は、電子制御ユニット５６の記憶部に記憶される。
次いで、ステップ８０４では、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４が、学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内にあるか否かが、即ち、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値が予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内にあるか否かが判別される。新たな入力値ｘ１、ｘ２,ｘ３,ｘ４ が、学習済み区分け領域Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ内にあるとき、即ち、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値が予め設定されている範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ 内あるときには、ステップ８０５に進んで、入力値ｘ１、ｘ２、ｘ３,ｘ４、即ち、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値 が、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値の属する学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕のニューラルネットワークの入力層の各ノードに入力され、ニューラルネットワークの出力層のノードから出力された出力値ｙと、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値に対し実測により求められた教師データとに基づき、誤差逆伝播法を用いて、出力値ｙと教師データとの差が小さくなるように、新たに取得された２次電池６０に関する複数の種別の運転パラメータの値の属する学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕のニューラルネットワークの重みが更に学習される。
【０１２５】
一方、ステップ８０４において、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４が、学習済み区分け領域〔Ｗｉ，Ｘｊ，Ｙｋ、Ｚl〕内にないと判別されたときには、ステップ８０６に進む。ステップ８０６では、教師データ要求フラグがセットされ、このとき取得された新たな入力値ｘｎが、追加学習に使用するための新たな入力値ｘｎとして記憶される。次いで、処理サイクルを完了する。
【０１２６】
教師データ要求フラグがセットされると、図３０の教師データ取得処理ルーチンからわかるように、２次電池６０の充電が完了したときに、２次電池６０の劣化度が検出され、この２次電池６０の劣化度が、追加学習に使用するための教師データとして記憶される。次いで、追加学習フラグがセットされる。さて、ステップ８０６において追加学習フラグがセットされると、次の処理サイクルでは、ステップ８０２からステップ８０７に進む。ステップ８０７では、追加学習に使用するために記憶されている新たな入力値ｘｎと、追加学習に使用するために記憶されている教師データとが記憶部から読み出され、予め設定された範囲Ｒｗ、Ｒｘ、Ｒｙ、Ｒｚ外に、追加学習に使用するために記憶されている新たな入力値ｘ１、ｘ２, ｘ３,ｘ４により画定される未学習領域が設定される。例えば、この新たな入力値ｘ２, ｘ３,ｘ４が、対応する予め設定された範囲Ｒｘ、Ｒｙ、Ｒｚ内にあり、新たな入力値ｘ１が対応する予め設定された範囲Ｒｗ内にないと判別されたときには、新たな入力値ｘ１の属する範囲をＷａとすると、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４により画定される未学習領域〔Ｗａ，Ｘｊ，Ｙｋ、Ｚl〕が設定される。また、新たな入力値ｘ３,ｘ４が、対応する予め設定された範囲Ｒｙ、Ｒｚ内にあり、新たな入力値ｘ１,ｘ２が対応する予め設定された範囲Ｒｗ、Ｒｘ内にないと判別されたときには、新たな入力値ｘ１の属する範囲をＷａとし、新たな入力値ｘ２の属する範囲をＸｂとすると、新たな入力値ｘ１、ｘ２, ｘ３,ｘ４により画定される未学習領域〔Ｗａ，Ｘｂ，Ｙｋ、Ｚl〕が設定される。
【０１２７】
次いで、ステップ８０７では、未学習領域に対する新たなニューラルネットワークが作成される。ステップ８０７において、新たなニューラルネットワークが作成されると、ステップ８０５に進む。ステップ８０５では、未学習領域について、出力値ｙと、追加学習に使用するために記憶されている教師データとの差が小さくなるように、未学習領域に対し作成された新たなニューラルネットワークの重みが学習される。
【０１２８】
以上の説明から、本発明による実施例では、ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、この機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、この機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されている。新たに取得されたこの機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させ、新たに取得されたこの機械に関する特定の種別の運転パラメータの値に対して実測により得られた教師データおよび予め設定されている範囲内におけるこの機械の運転パラメータの値に対して実測により得られた教師データを用いてニューラルネットワークの重みが学習される。重みの学習されたニューラルネットワークを用いてこの機械に関する特定の種別の運転パラメータの値に対する出力値が出力される。
【０１２９】
この場合、本発明による実施例では、機械学習装置が電子制御ユニットを具備している。この電子制御ユニットが、上述の機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上述の機械に関する特定の種別の運転パラメータの値が入力層に入力され、上述の機械に関する特定の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される。上述の機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上述の機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、予め設定されている範囲内における上述の機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されている。新たに取得された上述の機械に関する特定の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、新たに取得された上述の機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。パラメータ値取得部により新たに取得された上述の機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が増大されると共に、新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、予め設定されている範囲内および予め設定されている範囲外の上述の機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と上述の機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。重みの学習されたニューラルネットワークを用いて上述の機械に関する特定の種別の運転パラメータの値に対する出力値が出力される。
【０１３０】
また、この場合、本発明による実施例では、電子制御ユニットが、上述の機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上述の機械に関する特定の種別の運転パラメータの値が入力層に入力され、上述の機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される。上述の機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上述の機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、予め設定されている範囲内における上述の機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されている。パラメータ値取得部により新たに取得された上述の機械の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、上述の機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と上述の機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。パラメータ値取得部により新たに取得された上述の機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、予め設定されている範囲内および予め設定されている範囲外の新たに取得された上述の機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、上述の機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と上述の機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。重みの学習されたニューラルネットワークを用いて上述の機械に関する特定の種別の運転パラメータの値に対する複数の出力値が出力される。
【０１３１】
一方、本発明による実施例では、ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、この機械に関する複数の種別の運転パラメータの値の範囲が予め設定されていると共に、この機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、新たに取得されたこの機械に関する複数の種別の運転パラメータの値が予め設定されている範囲外であるときには、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させ、新たに取得されたこの機械に関する複数の種別の運転パラメータの値に対して実測により得られた教師データおよび予め設定されている範囲内におけるこの機械の運転パラメータの値に対して実測により得られた教師データを用いてニューラルネットワークの重みが学習される。重みの学習されたニューラルネットワークを用いてこの機械に関する複数の種別の運転パラメータの値に対する出力値が出力される。
【０１３２】
この場合、本発明による実施例では、機械学習装置が電子制御ユニットを具備しており、この電子制御ユニットが、上述の機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上述の機械に関する複数の種別の運転パラメータの値が入力層に入力され、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される。上述の機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、上述の機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が予め設定されている範囲内である教師データが記憶部に記憶されている。パラメータ値取得部により新たに取得された上述の機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上述の機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。パラメータ値取得部により新たに取得された上述の機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、予め設定されている範囲内および該予め設定されている範囲外の新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上述の機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。重みの学習されたニューラルネットワークを用いて上述の機械に関する複数の種別の運転パラメータの値に対する出力値が出力される。
【０１３３】
また、この場合、本発明による実施例では、電子制御ユニットが、上述の機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上述の機械に関する複数の種別の運転パラメータの値が入力層に入力され、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される。上述の機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、上述の機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が予め設定されている範囲内である教師データが記憶部に記憶されている。パラメータ値取得部により新たに取得された上述の機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と上述の機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。パラメータ値取得部により新たに取得された上述の機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、予め設定されている範囲内および予め設定されている範囲外の新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と上述の機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習される。重みの学習されたニューラルネットワークを用いて上述の機械に関する複数の種別の運転パラメータの値に対する複数の出力値が出力される。
【０１３４】
一方、本発明による実施例では、ニューラルネットワークを用い、機械の運転パラメータの値に対する出力値を出力するための機械学習装置において、この機械に関する複数の種別の運転パラメータの値の範囲が予め設定されていると共に、この機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークが予め形成されており、新たに取得されたこの機械に関する複数の種別の運転パラメータの値の内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たなニューラルネットワークを形成し、新たに取得されたこの機械に関する複数の種別の運転パラメータの値に対して実測により得られた教師データを用いて新たなニューラルネットワークの重みが学習される。重みの学習されたニューラルネットワークを用いてこの機械に関する複数の種別の運転パラメータの値に対する出力値が出力される。
【０１３５】
この場合、本発明による実施例では、機械学習装置が電子制御ユニットを具備しており、この電子制御ユニットが、上述の機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなる複数個のニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備している。上述の機械に関する複数の種別の運転パラメータの値が入力層に入力され、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が対応する出力層から出力される。上述の機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されており、各種別の運転パラメータの値の予め設定されている範囲を複数個に区分けすると共に、各種別の運転パラメータの値の区分けされた各範囲の組み合わせにより画定される複数の区分け領域が予め設定されている。区分け領域毎にニューラルネットワークが作成されていると共に各ニューラルネットワークの隠れ層のノードの個数が予め設定されている。複数の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されている。パラメータ値取得部により新たに取得された上述の機械に関する複数の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上述の機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、新たに取得された上述の機械に関する複数の種別の運転パラメータの値の属する区分け領域のニューラルネットワークの重みが学習される。パラメータ値取得部により新たに取得された上述の機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、少なくとも一つの種別の運転パラメータの値が属しかつ各種別の運転パラメータの値の予め設定された範囲の組み合わせにより画定される新たな領域が設定されると共に、この新たな領域に対し新たなニューラルネットワークが作成される。新たに取得された上述の機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、上述の機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように新たなニューラルネットワークの重みが学習される。重みの学習された各ニューラルネットワークを用いて上述の機械の運転パラメータの値に対する出力値が出力される。
【符号の説明】
【０１３６】
１    内燃機関
１４    スロットル弁開度センサ
２３    NOXセンサ
２４    大気温センサ
３０，５６，６７    電子制御ユニット
５０    エアコン本体
５３、６５    温度計
５４    湿度計
５５    ＧＰＳ
６０    ２次電池
５３    電流計
６４    電圧計
【図１】
2020086673.tif 000012
【図２】
2020086673.tif 000013
【図３】
2020086673.tif 000014
【図４】
2020086673.tif 000015
【図５】
2020086673.tif 000016
【図６】
2020086673.tif 000017
【図７】
2020086673.tif 000018
【図８】
2020086673.tif 000019
【図９】
2020086673.tif 000020
【図１０】
2020086673.tif 000021
【図１１】
2020086673.tif 000022
【図１２】
2020086673.tif 000023
【図１３】
2020086673.tif 000024
【図１４】
2020086673.tif 000025
【図１５】
2020086673.tif 000026
【図１６】
2020086673.tif 000027
【図１７】
2020086673.tif 000028
【図１８】
2020086673.tif 000029
【図１９】
2020086673.tif 000030
【図２０】
2020086673.tif 000031
【図２１】
2020086673.tif 000032
【図２２】
2020086673.tif 000033
【図２３】
2020086673.tif 000034
【図２４】
2020086673.tif 000035
【図２５】
2020086673.tif 000036
【図２６】
2020086673.tif 000037
【図２７】
2020086673.tif 000038
【図２８】
2020086673.tif 000039
【図２９】
2020086673.tif 000040
【図３０】
2020086673.tif 000041
【図３１】
2020086673.tif 000042
【図３２】
2020086673.tif 000043
【図３３】
2020086673.tif 000044
【手続補正書】
【提出日】平成31年2月1日(2019.2.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
上記問題を解決するために、１番目の発明によれば、電子制御ユニットを具備しており、電子制御ユニットが、機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、機械に関する特定の種別の運転パラメータの値が入力層に入力され、機械に関する特定の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される機械学習装置において、機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、予め設定されている範囲内における機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、新たに取得された機械に関する特定の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、新たに取得された機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と新たに取得された機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、パラメータ値取得部により新たに取得された機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、新たに取得された機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、予め設定されている範囲内および予め設定されている範囲外の機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて機械に関する特定の種別の運転パラメータの値に対する出力値が出力される機械学習装置が提供される。
また、上記問題を解決するために、２番目の発明によれば、電子制御ユニットを具備しており、電子制御ユニットが、機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、機械に関する特定の種別の運転パラメータの値が入力層に入力され、機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される機械学習装置において、機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、予め設定されている範囲内における機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、パラメータ値取得部により新たに取得された機械の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、パラメータ値取得部により新たに取得された機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、予め設定されている範囲内および予め設定されている範囲外の新たに取得された機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて機械に関する特定の種別の運転パラメータの値に対する複数の出力値が出力される機械学習装置が提供される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
また、上記問題を解決するために、３番目の発明によれば、電子制御ユニットを具備しており、電子制御ユニットが、機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、機械に関する複数の種別の運転パラメータの値が入力層に入力され、機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される機械学習装置において、機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が予め設定されている範囲内である教師データが記憶部に記憶されており、パラメータ値取得部により新たに取得された機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、パラメータ値取得部により新たに取得された機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、予め設定されている範囲内および予め設定されている範囲外の新たに取得された機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて機械に関する複数の種別の運転パラメータの値に対する出力値が出力される機械学習装置が提供される。
また、上記問題を解決するために、４番目の発明によれば、電子制御ユニットを具備しており、電子制御ユニットが、機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、機械に関する複数の種別の運転パラメータの値が入力層に入力され、機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される機械学習装置において、機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が予め設定されている範囲内である教師データが記憶部に記憶されており、パラメータ値取得部により新たに取得された機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、パラメータ値取得部により新たに取得された機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、予め設定されている範囲内および予め設定されている範囲外の新たに取得された機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび事前に求められている教師データを用いて、演算部により、機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて機械に関する複数の種別の運転パラメータの値に対する複数の出力値が出力される機械学習装置が提供される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
また、上記問題を解決するために、５番目の発明によれば、電子制御ユニットを具備しており、電子制御ユニットが、機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなる複数個のニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、機械に関する複数の種別の運転パラメータの値が入力層に入力され、機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が対応する出力層から出力される機械学習装置において、機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されており、各種別の運転パラメータの値の予め設定されている範囲を複数個に区分けすると共に、各種別の運転パラメータの値の区分けされた各範囲の組み合わせにより画定される複数の区分け領域が予め設定されており、区分け領域毎にニューラルネットワークが作成されていると共に各ニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、パラメータ値取得部により新たに取得された機械に関する複数の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、新たに取得された機械に関する複数の種別の運転パラメータの値の属する区分け領域のニューラルネットワークの重みが学習され、パラメータ値取得部により新たに取得された機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、少なくとも一つの種別の運転パラメータの値が属しかつ各種別の運転パラメータの値の予め設定された範囲の組み合わせにより画定される新たな領域が設定されると共に、新たな領域に対し新たなニューラルネットワークが作成され、新たに取得された機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、演算部により、機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように新たなニューラルネットワークの重みが学習され、重みの学習された各ニューラルネットワークを用いて機械の運転パラメータの値に対する出力値が出力される機械学習装置が提供される。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電子制御ユニットを具備しており、該電子制御ユニットが、機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する特定の種別の運転パラメータの値が入力層に入力され、上記機械に関する特定の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される機械学習装置において、上記機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、該予め設定されている範囲内における上記機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、新たに取得された上記機械に関する特定の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、新たに取得された上記機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、運転パラメータの値の予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、該予め設定されている範囲内および該予め設定されている範囲外の上記機械に関する特定の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する特定の種別の運転パラメータの値に対する出力値が出力される機械学習装置。
【請求項２】
電子制御ユニットを具備しており、該電子制御ユニットが、機械に関する特定の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する特定の種別の運転パラメータの値が入力層に入力され、上記機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される機械学習装置において、上記機械に関する特定の種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する特定の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、該予め設定されている範囲内における上記機械に関する特定の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する特定の種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、該予め設定されている範囲内および該予め設定されている範囲外の新たに取得された上記機械に関する特定の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、上記機械に関する特定の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する特定の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する特定の種別の運転パラメータの値に対する複数の出力値が出力される機械学習装置。
【請求項３】
電子制御ユニットを具備しており、該電子制御ユニットが、機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する複数の種別の運転パラメータの値が入力層に入力され、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が出力層から出力される機械学習装置において、上記機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が該予め設定されている範囲内である教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、該予め設定されている範囲内および該予め設定されている範囲外の新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する複数の種別の運転パラメータの値に対する出力値が出力される機械学習装置。
【請求項４】
電子制御ユニットを具備しており、該電子制御ユニットが、機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなるニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する複数の種別の運転パラメータの値が入力層に入力され、上記機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値が出力層から出力される機械学習装置において、上記機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されていると共に、上記機械に関する複数の種別の運転パラメータの値の範囲に応じたニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データであって、各種別の運転パラメータの値が該予め設定されている範囲内である教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械の複数の運転パラメータの値の夫々が予め設定されている範囲内であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データの個数の増大、又は、該教師データの個数を、予め設定されている範囲を示す最大値及び最小値の差分値で除したデータ密度の増大に応じて、ニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させると共に、該予め設定されている範囲内および該予め設定されている範囲外の新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データおよび該事前に求められている教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する複数の出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるようにニューラルネットワークの重みが学習され、重みの学習されたニューラルネットワークを用いて上記機械に関する複数の種別の運転パラメータの値に対する複数の出力値が出力される機械学習装置。
【請求項５】
電子制御ユニットを具備しており、該電子制御ユニットが、機械に関する複数の種別の運転パラメータの値を取得するパラメータ値取得部と、入力層、隠れ層および出力層からなる複数個のニューラルネットワークを用いて演算を行う演算部と、記憶部とを具備しており、上記機械に関する複数の種別の運転パラメータの値が入力層に入力され、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値が対応する出力層から出力される機械学習装置において、上記機械に関する複数の種別の運転パラメータの夫々について、各種別の運転パラメータの値の範囲が予め設定されており、各種別の運転パラメータの値の該予め設定されている範囲を複数個に区分けすると共に、各種別の運転パラメータの値の区分けされた各範囲の組み合わせにより画定される複数の区分け領域が予め設定されており、該区分け領域毎にニューラルネットワークが作成されていると共に各ニューラルネットワークの隠れ層のノードの個数が予め設定されており、複数の種別の運転パラメータの値に対して実測により事前に求められている教師データが記憶部に記憶されており、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの値が予め設定されている範囲内であるときには、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように、新たに取得された上記機械に関する複数の種別の運転パラメータの値の属する区分け領域のニューラルネットワークの重みが学習され、該パラメータ値取得部により新たに取得された上記機械に関する複数の種別の運転パラメータの内の少なくとも一つの種別の運転パラメータの値が予め設定されている範囲外であるときには、該少なくとも一つの種別の運転パラメータの値が属しかつ各種別の運転パラメータの値の予め設定された範囲の組み合わせにより画定される新たな領域が設定されると共に、該新たな領域に対し新たなニューラルネットワークが作成され、新たに取得された上記機械に関する複数の種別の運転パラメータの値に対し実測により得られた教師データを用いて、該演算部により、上記機械に関する複数の種別の運転パラメータの値に応じて変化する出力値と上記機械に関する複数の種別の運転パラメータの値に対応した教師データとの差が小さくなるように該新たなニューラルネットワークの重みが学習され、重みの学習された各ニューラルネットワークを用いて上記機械の運転パラメータの値に対する出力値が出力される機械学習装置。
【請求項６】
上記機械に関する運転パラメータが二つの種別の運転パラメータからなり、該パラメータ値取得部により新たに取得された内燃機関に関する運転パラメータの内の一方の種別の運転パラメータの値が予め設定されている範囲外であり、他方の種別の運転パラメータの値が予め設定されている範囲内であるときには、上記新たな領域は、該一方の種別の運転パラメータの値に対し予め設定されている範囲外であって該他方の種別の運転パラメータの値が属する上記区分け領域と同一範囲内に、該他方の種別の運転パラメータの値が属する該区分け領域に隣接して設定される請求項５に記載の機械学習装置。
【請求項７】
該新たな領域に隣接する該区分け領域の内でニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が設定されていな区分け領域を除いた区分け領域のニューラルネットワークの出力層の一つ前の隠れ層のノードの個数の平均値に基づいて、該新たなニューラルネットワークの出力層の一つ前の隠れ層のノードの個数が設定される請求項５に記載の機械学習装置。
【請求項８】
該新たな領域内に係る運転パラメータの値が入力層に入力された数の増大に応じて、該新たな領域の新たなニューラルネットワークの出力層の一つ前の隠れ層のノードの個数を増大させる請求項７に記載の機械学習装置。