(57)【要約】【課題】ニューラルネットワークの学習が完了していない段階であっても、制御対象を制御するコントローラから入力される入力値に対応する出力値をそのコントローラに与えることができるニューラルネットワーク装置を得る。【解決手段】ニューラルネットワーク装置は、評価関数値の今回値が記憶している最適評価関数値よりも小さい場合、記憶している最適重みを、ニューラルネットワークの重みが新たな重みに更新される際のその新たな重みに更新し、最適重みをニューラルネットワークの重みとして用いて、制御対象を制御するコントローラから与えられる制御入力パターンに対してニューラルネットワーク処理を実行することで出力層出力値をコントローラに与えるように構成されている。【選択図】図２
2020144717.tif 000002
【特許請求の範囲】
【請求項１】
入力パターンと、前記入力パターンに対応する教師データとが対応付けられた学習用データセットを、データ番号ごとに保持する学習用データセット保持部と、
ニューラルネットワークを用いて、前記データ番号の中の任意データ番号に対応する前記入力パターンに対して、前記ニューラルネットワークの出力層出力値を出力するニューラルネットワーク処理を実行し、さらに、前記ニューラルネットワークの重みが新たな重みに更新されると、前記新たな重みに更新された前記ニューラルネットワークを用いて、前記データ番号ごとの前記入力パターンに対してそれぞれ前記ニューラルネットワーク処理を実行するニューラルネットワーク処理部と、
前記任意データ番号に対応する前記入力パターンに対して前記ニューラルネットワーク処理部から出力される前記出力層出力値と、前記任意データ番号に対応する前記教師データとを用いて、前記ニューラルネットワークの前記重みを、前記新たな重みに更新する重み更新部と、
前記データ番号ごとの前記入力パターンに対してそれぞれ前記ニューラルネットワーク処理が実行されることで得られる前記データ番号ごとの前記出力層出力値と、前記データ番号ごとの対応する前記教師データ間の誤差量をそれぞれ算出する誤差量算出部と、
前記誤差量算出部によって算出される前記データ番号ごとの前記誤差量を用いて、評価関数値を算出する評価関数値算出部と、
前記評価関数値算出部によって算出される前記評価関数値の今回値と、現時点で記憶している最適評価関数値とを比較し、前記評価関数値の今回値が前記最適評価関数値よりも小さい場合、記憶している前記最適評価関数値を、前記評価関数値の今回値に更新する評価関数値判定部と、
前記評価関数値判定部によって行われる比較の結果として、前記評価関数値の今回値が前記最適評価関数値よりも小さい場合、記憶している最適重みを、前記新たな重みに更新する最適重み更新部と、
を備え、
前記ニューラルネットワーク処理部は、
前記最適重みを前記ニューラルネットワークの前記重みとして用いて、制御対象を制御するコントローラから与えられる制御入力パターンに対して前記ニューラルネットワーク処理を実行することで得られる前記出力層出力値を前記コントローラに与える
ニューラルネットワーク装置。
【請求項２】
前記誤差量算出部によって算出される前記データ番号ごとの前記誤差量の中から、最大の誤差量を、誤差量最大値として算出する誤差量判定部をさらに備え、
前記誤差量判定部は、
前記評価関数値判定部によって行われる比較の結果として、前記評価関数値の今回値が前記最適評価関数値と同じである場合、算出した前記誤差量最大値の今回値と、現時点で記憶している最適誤差量最大値とを比較し、前記誤差量最大値の今回値が前記最適誤差量最大値よりも小さい場合、記憶している前記最適誤差量最大値を、前記誤差量最大値の今回値に更新し、
前記最適重み更新部は、
前記評価関数値判定部によって行われる比較の結果として、前記評価関数値の今回値が前記最適評価関数値と同じである場合、前記誤差量判定部によって行われる比較の結果として、前記誤差量最大値の今回値が前記最適誤差量最大値よりも小さければ、記憶している前記最適重みを、前記新たな重みに更新する
請求項１に記載のニューラルネットワーク装置。
【請求項３】
前記誤差量は、前記出力層出力値と前記教師データとの差分の二乗値である
請求項１または２に記載のニューラルネットワーク装置。
【請求項４】
前記制御対象は、車両である
請求項１から３のいずれか１項に記載のニューラルネットワーク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク装置に関する。
【背景技術】
【０００２】
従来において、フィードフォワード階層型のニューラルネットワークが知られている（例えば、特許文献１参照）。このようなニューラルネットワークの学習方法としては、例えば、バックプロパゲーション法が挙げられる。
【０００３】
具体的には、特許文献１に記載の従来技術では、ニューラルネットワークの重みを更新する学習を反復する反復回数が設定回数に達していなくても、ニューラルネットワークの出力層の出力値である出力層出力値が目標値に達すれば、その学習が完了する。このような構成によって、学習時間が短くなることが期待できるが、出力層出力値が目標値に達しなければ、反復回数が設定回数に達するまで学習が完了せず、その結果、学習時間が短くならない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−３２４５９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、特許文献１に記載の従来技術を制御対象の一例である車両を制御するケースに適用する場合を考える。この場合、車両を制御するコントローラは、ニューラルネットワークの入力層に入力値を入力することで、その入力値に対応する出力層出力値を取得し、その出力層出力値を利用した車両の制御を行う。ただし、車両が走行している間にニューラルネットワークの学習が行われると、その間に出力層出力値が目標値に必ず到達するとは限らず、学習が完了しないことが想定される。この場合、コントローラは、ニューラルネットワークの学習が完了するまで、出力層出力値を取得することができない。その結果、コントローラは、ニューラルネットワークの学習が完了するまで、出力層出力値を利用した車両の制御を行うことができない。
【０００６】
本発明は、上記のような課題を解決するためになされたものであり、ニューラルネットワークの学習が完了していない段階であっても、制御対象を制御するコントローラから入力される入力値に対応する出力値をそのコントローラに与えることができるニューラルネットワーク装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明におけるニューラルネットワーク装置は、入力パターンと、入力パターンに対応する教師データとが対応付けられた学習用データセットを、データ番号ごとに保持する学習用データセット保持部と、ニューラルネットワークを用いて、データ番号の中の任意データ番号に対応する入力パターンに対して、ニューラルネットワークの出力層出力値を出力するニューラルネットワーク処理を実行し、さらに、ニューラルネットワークの重みが新たな重みに更新されると、新たな重みに更新されたニューラルネットワークを用いて、データ番号ごとの入力パターンに対してそれぞれニューラルネットワーク処理を実行するニューラルネットワーク処理部と、任意データ番号に対応する入力パターンに対してニューラルネットワーク処理部から出力される出力層出力値と、任意データ番号に対応する教師データとを用いて、ニューラルネットワークの重みを、新たな重みに更新する重み更新部と、データ番号ごとの入力パターンに対してそれぞれニューラルネットワーク処理が実行されることで得られるデータ番号ごとの出力層出力値と、データ番号ごとの対応する教師データ間の誤差量をそれぞれ算出する誤差量算出部と、誤差量算出部によって算出されるデータ番号ごとの誤差量を用いて、評価関数値を算出する評価関数値算出部と、評価関数値算出部によって算出される評価関数値の今回値と、現時点で記憶している最適評価関数値とを比較し、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適評価関数値を、評価関数値の今回値に更新する評価関数値判定部と、評価関数値判定部によって行われる比較の結果として、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適重みを、新たな重みに更新する最適重み更新部と、を備え、ニューラルネットワーク処理部は、最適重みをニューラルネットワークの重みとして用いて、制御対象を制御するコントローラから与えられる制御入力パターンに対してニューラルネットワーク処理を実行することで得られる出力層出力値をコントローラに与えるものである。
【発明の効果】
【０００８】
本発明によれば、ニューラルネットワークの学習が完了していない段階であっても、制御対象を制御するコントローラから入力される入力値に対応する出力値をそのコントローラに与えることができるニューラルネットワーク装置を得ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１におけるニューラルネットワーク装置を実現する制御装置のハードウェア構成の一例を示す構成図である。
【図２】本発明の実施の形態１におけるニューラルネットワーク装置の構成を示すブロック図である。
【図３】本発明の実施の形態１におけるニューラルネットワーク装置が保持する学習用データセットの一例を示す図である。
【図４】本発明の実施の形態１におけるニューラルネットワーク装置によって実行される一連の処理を示すフローチャートである。
【図５】本発明の実施の形態１におけるコントローラによって実行される一連の出力値取得処理を示すフローチャートである。
【図６】比較例におけるニューラルネットワーク装置の構成を示すブロック図である。
【図７】図６のニューラルネットワークの各層を構成する各ユニットの出力値を示す説明図である。
【図８】図６のニューラルネットワークの構造を示す説明図である。
【図９】図６の重み更新部によって実行される一連の処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明によるニューラルネットワーク装置を、好適な実施の形態にしたがって図面を用いて説明する。なお、図面の説明においては、同一部分または相当部分には同一符号を付し、重複する説明を省略する。
【００１１】
実施の形態１．
はじめに、本発明の実施の形態１におけるニューラルネットワーク装置１００との比較例として、ニューラルネットワーク装置１００Ａについて説明する。図６は、比較例におけるニューラルネットワーク装置１００Ａの構成を示すブロック図である。
【００１２】
図６に示すニューラルネットワーク装置１００Ａは、学習用データセット保持部１０１、ニューラルネットワーク処理部１０２、評価関数値算出部１０３、重み更新部１０４および終了判定部１０５を備える。
【００１３】
学習用データセット保持部１０１は、入力パターンと、その入力パターンに対応する出力パターンである教師データとが対応付けられている学習用データセットを複数個保持している。学習用データセットの入力パターンは、ニューラルネットワークの入力層に入力される。学習用データセットの教師データは、重み更新部１０４および評価関数値算出部１０３に入力される。
【００１４】
例えば１万個以上の学習用データセットが予め用意される。なお、ディープラーニングが適用されれば、数十万個以上の学習用データセットが予め用意される。１個の学習用データセットでは、複数の入力データ、例えば１０個の入力データからなる入力パターンと、その入力パターンに対応する教師データとが対応付けられている。その教師データの数は、目的に応じて、単数または複数である。
【００１５】
ニューラルネットワーク処理部１０２は、フィードフォワード階層型のニューラルネットワークを保持している。ニューラルネットワークは、多層のネットワーク構造になっている。ニューラルネットワークの各層は、複数のユニットによって構成されている。ニューラルネットワークでは、各ユニット間の結合の重みが定義されている。
【００１６】
ここで、ニューラルネットワークの各層を構成する各ユニットの出力値について、図７を参照しながら説明する。図７は、図６のニューラルネットワークの各層を構成する各ユニットの出力値を示す説明図である。なお、図７では、第ｌ層ｊ番目のユニットに入力されるトータルの入力値ｕｊｌと、そのユニットから出力される出力値ｚｊｌとが示されている。
【００１７】
図７に示すように、第ｌ層に隣接する第ｌ−１層を構成するＩ個のユニットのそれぞれから第ｌ層ｊ番目のユニットが入力を受けた場合を考える。この場合、入力値ｕｊｌは、これらＩ個のユニットの出力値ｚ１ｌ−１，・・・，ｚｉｌ−１，・・・ｚＩｌ−１にそれぞれ重みｗｊ１ｌ，・・・，ｗｊｉｌ，・・・，ｗｊＩｌを乗じることで得られる値の総和と、第ｌ層ｊ番目のユニットに対応する閾値Θｊｌとの和と等しい。すなわち、入力値ｕｊｌは、以下の式（１）のように表される。
【００１８】
【数１】
2020144717.tif 000003
【００１９】
図７に示すように、第ｌ層ｊ番目のユニットの出力値ｚｊｌは、入力値ｕｊｌに対して、活性化関数ｆ（  ）を適用することで得られる。活性化関数ｆ（  ）としては、例えば、微分可能な非線形型関数が用いられる。ここで、活性化関数ｆ（  ）として、一般的に用いられるｓｉｇｍｏｉｄ関数が用いられると、出力値ｚｊｌは、以下の式（２）のように表される。
【００２０】
【数２】
2020144717.tif 000004
【００２１】
続いて、ニューラルネットワークの構造の具体例について、図８を参照しながら説明する。図８は、図６のニューラルネットワークの構造を示す説明図である。
【００２２】
ここで、バックプロパゲーションによるニューラルネットワークは、一般的には多層のネットワーク構造である。ここでは、具体例として、ニューラルネットワークが３層のネットワーク構造である場合について述べる。
【００２３】
図８に示すニューラルネットワークの３層は、それぞれ、入力層、中間層および出力層と呼ばれている。これらの各層は、複数のユニットによって構成される。以下、入力層をｌ層と表記し、中間層をｍ層と表記し、出力層をｎ層と表記する。
【００２４】
図８に示すニューラルネットワークの中間層であるｍ層ｉ番目のユニットの出力値ｚｉｍは、以下の式（３）のように表される。
【００２５】
【数３】
2020144717.tif 000005
【００２６】
図８に示すニューラルネットワークの出力層であるｎ層ｉ番目のユニットの出力値ｙｉは、以下の式（４）のように表される。
【００２７】
【数４】
2020144717.tif 000006
【００２８】
図６の説明に戻り、重み更新部１０４には、ニューラルネットワークの中間層の各ユニットの出力値が中間層出力値として入力されるとともに、出力層の各ユニットの出力値が出力層出力値として入力される。また、評価関数値算出部１０３には、出力層出力値が入力される。
【００２９】
ニューラルネットワーク処理部１０２は、ニューラルネットワークを用いて、ニューラルネットワークの入力層に入力される任意の入力パターンｐに対して、出力層の出力値ｙｐｉを算出するニューラルネットワーク処理を実行する。ニューラルネットワーク処理部１０２は、Ｉ個の入力パターンの全てに対してそれぞれニューラルネットワーク処理を実行することで、出力値ｙｐ１，・・・，ｙｐＩを算出する。
【００３０】
ニューラルネットワーク処理部１０２がニューラルネットワーク処理を実行すると、重み更新部１０４によってニューラルネットワークの重みが更新される。ニューラルネットワーク処理部１０２は、重みが更新されたニューラルネットワークを用いて、ニューラルネットワーク処理を再び実行する。なお、ネットワークの重みの初期値としては、予め定められた値が使用される。
【００３１】
評価関数値算出部１０３は、上述のニューラルネットワーク処理が実行されることで得られる出力値ｙｐ１，・・・，ｙｐＩと、教師データｔｐ１，・・・，ｔｐＩとの間の誤差を評価するための評価関数値を算出する。具体的には、評価関数値算出部１０３は、Ｉ個の入力パターンにそれぞれ対応して出力される出力値ｙｐ１，・・・，ｙｐＩと、Ｉ個の入力パターンにそれぞれ対応する教師データｔｐ１，・・・，ｔｐＩとの間の評価関数値として、誤差量Ｅｐを算出する。誤差量Ｅｐは、例えば、平均二乗誤差である。誤差量Ｅｐが平均二乗誤差である場合、誤差量Ｅｐは、以下の式（５）のように表される。
【００３２】
【数５】
2020144717.tif 000007
【００３３】
評価関数値算出部１０３によって算出される誤差量Ｅｐが設定値Ｋ以下になるまで、上述のニューラルネットワーク処理が繰り返し実行される。この設定値Ｋは、目的の精度レベルに応じて予め設定されるものであり、例えば０．０１になるように設定される。
【００３４】
なお、誤差量Ｅｐが設定値以下にならない場合、ニューラルネットワーク処理が繰り返し実行される回数が設定回数に達すれば、処理が終了となるようにする。この設定回数は、予め設定されるものであり、例えば、１００００回になるように設定される。
【００３５】
重み更新部１０４は、ニューラルネットワークの出力層の各ユニットの出力値が望ましい値になるように、ニューラルネットワークの重みを更新する。学習規則としては、バックプロパゲーション法が用いられる。
【００３６】
ここで、重み更新部１０４が実行する一連の処理について、図９を参照しながら説明する。図９は、図６の重み更新部１０４によって実行される一連の処理を示すフローチャートである。
【００３７】
ステップＳ３０１において、重み更新部１０４は、以下の式（６）に従って、中間層であるｍ層のユニットと出力層であるｎ層のユニット間の重み変化量νｐｉｎを算出する。  
【００３８】
【数６】
2020144717.tif 000008
【００３９】
続いて、ステップＳ３０２において、重み更新部１０４は、以下の式（７）に従って、重みｗｐｉｎを算出し、ニューラルネットワークの現時点の重みを、算出された新たな重みに更新する。
【００４０】
【数７】
2020144717.tif 000009
【００４１】
続いて、ステップＳ３０３において、重み更新部１０４は、以下の式（８）に従って、入力層であるｌ層のユニットと中間層であるｍ層のユニット間の重み変化量νｐｉｍを算出する。
【００４２】
【数８】
2020144717.tif 000010
【００４３】
続いて、ステップＳ３０４において、重み更新部１０４は、以下の式（９）に従って、重みｗｐｉｍを算出し、ニューラルネットワークの現時点の重みを、算出された新たな重みに更新する。
【００４４】
【数９】
2020144717.tif 000011
【００４５】
終了判定部１０５は、予め設定される終了条件が成立したか否かを判定し、終了条件が成立したと判定すれば、ニューラルネットワーク装置１００Ａによって実行される一連の処理を終了する。一方、終了判定部１０５は、終了条件が成立していないと判定した場合には、ニューラルネットワークの学習を繰り返す。なお、終了条件は、例えば、評価関数値が予め定められた値よりも小さくなるという条件、または、予め決められた回数だけニューラルネットワークの学習が繰り返されたという条件である。
【００４６】
ここで、車両に搭載されているコントローラは、一般的には、入力値と出力値との関係が予め定められたマップに従って入力値に対応する出力値を取得するマップ探索を行い、マップ探索の結果を利用して車両の制御を行う。比較例におけるニューラルネットワーク装置１００Ａを車両の制御に適用する場合、コントローラは、ニューラルネットワークの入力層に入力値を入力することで、その入力値に対応する出力層の出力値を取得し、その出力値を利用した車両の制御を行う。
【００４７】
上述の場合、ニューラルネットワーク装置１００Ａは、例えば、マップの入力値と出力値との関係を、入力データおよび教師データとして、ニューラルネットワークの重みを更新する学習を行う。ニューラルネットワーク装置１００Ａは、その学習後のニューラルネットワークを用いて、入力値に対応する出力値を算出し、その出力値をコントローラに与える。これにより、コントローラは、従来のマップ探索の代替として、ニューラルネットワーク装置１００Ａから入力値に対応する出力値を取得することが可能となる。
【００４８】
しかしながら、ニューラルネットワークから入力値に対応して出力される出力値の精度を向上させようとすると、学習時間が長くなってしまう。例えば、評価関数値、すなわち上述の誤差量Ｅｐと比較する上述の設定値Ｋを小さくするほど、出力値の精度を向上させることができる一方、誤差量Ｅｐが設定値Ｋ以下とならず、学習が完了しない可能性がある。また、誤差量Ｅｐが設定値Ｋ以下にならないことを想定して、学習を反復する反復回数を多くすると、学習が繰り返される間、誤差量Ｅｐが設定値Ｋに近づいた後、誤差量Ｅｐが大きくなっていく。この場合、学習完了時のニューラルネットワークの重みが最適値になっていない可能性がある。
【００４９】
例えば、上述の特許文献１に記載の従来技術では、上述の点を考慮して、学習を反復する反復回数が設定回数に達していなくても、ニューラルネットワークの出力層の出力値が目標値に達すれば、その学習が完了する。しかしながら、特許文献１に記載の従来技術を車両の制御に適用する場合、上述したように、学習が完了するまで、ニューラルネットワークの出力値を利用した車両の制御を行うことができない。
【００５０】
以上を踏まえると、ニューラルネットワークの学習が完了しない段階であっても、ニューラルネットワークの出力値を利用した車両の制御を行うことが可能なように、ニューラルネットワーク装置１００Ａの構成を工夫することが望ましい。これに対して、実施の形態１におけるニューラルネットワーク装置１００は、ニューラルネットワークの学習が完了しない段階であっても、ニューラルネットワークの出力値を利用した車両の制御を行うことが可能な構成となっている。
【００５１】
次に、本発明の実施の形態１におけるニューラルネットワーク装置１００について説明する。図１は、本発明の実施の形態１におけるニューラルネットワーク装置１００を実現する制御装置３のハードウェア構成の一例を示す構成図である。図２は、本発明の実施の形態１におけるニューラルネットワーク装置１００の構成を示すブロック図である。なお、実施の形態１におけるニューラルネットワーク装置１００を説明するにあたって、上述した比較例におけるニューラルネットワーク装置１００Ａと同様である点の説明を省略し、ニューラルネットワーク装置１００Ａと異なる点を中心に説明する。
【００５２】
ここで、本実施の形態１におけるニューラルネットワーク装置１００は、車両に搭載されている制御装置３によって実現される。図１に示す制御装置３の入力側には、センサ、スイッチなどの入力要素１が接続されており、その出力側には、電気負荷などの出力要素２が接続されている。
【００５３】
図１に示す制御装置３は、メモリを有するマイクロコンピュータ３２と、マイクロコンピュータ３２と入力要素１とを接続するための入力回路３１と、マイクロコンピュータ３２と出力要素２とを接続するための出力回路３３とを備える。
【００５４】
制御装置３の入力回路３１には、エンジンの運転状態を検出するための各種センサが、入力要素１として接続されている。このような各種センサの具体例として、エアフローセンサ、スロットル開度センサ、クランク角センサなどが挙げられる。制御装置３の出力回路３３には、燃料を噴射するインジェクタ、燃料の点火に用いる点火コイルなどが、出力要素２として接続されている。
【００５５】
図２に示すニューラルネットワーク装置１００は、学習用データセット保持部１０１、ニューラルネットワーク処理部１０２、重み更新部１０４、学習用データセット生成部２０１、誤差量算出部２０２、評価関数値算出部２０３、誤差量判定部２０４、評価関数値判定部２０５、最適重み更新部２０６および終了判定部２０７を備える。
【００５６】
学習用データセット保持部１０１およびニューラルネットワーク処理部１０２は、上述した比較例と同様である。ただし、学習用データセット保持部１０１が保持する学習用データセットは、学習用データセット生成部２０１によって生成される。
【００５７】
学習用データセット生成部２０１は、入力要素１から入力される各種センサの検出結果を示すセンサ信号に基づいて、車両の運転状態が予め定められた特定の運転状態であるか否かを判定する。なお、特定の運転状態の具体例としては、例えば、エンジンの回転数が一定である定常状態などが挙げられる。
【００５８】
学習用データセット生成部２０１は、車両の運転状態が特定の運転状態であれば、入力要素１から入力される入力データパターンとしてのセンサ信号に基づいて、教師データとしての特定のパラメータを算出する。続いて、学習用データセット生成部２０１は、そのセンサ信号およびその算出結果を、それぞれ、入力パターンおよび教師データとして学習用データセット保持部１０１に蓄積する。
【００５９】
学習用データセット保持部１０１は、学習用データセット生成部２０１から与えられる学習用データセットを、識別するためのデータ番号＃１〜＃Ｉごとに保持する。ただし、任意のデータ番号＃Ｎが取り得る値は、Ｎ＝１，２，・・・，Ｉであって、Ｉは、学習用データセット保持部１０１に蓄積される学習用データセットの数である。
【００６０】
このように、学習用データセット保持部１０１は、入力パターンと、入力パターンに対応する教師データとが対応付けられた学習用データセットを、データ番号＃１〜＃Ｉごとに保持するように構成されている。
【００６１】
ここで、学習用データセット保持部１０１が保持する学習用データセットの一例について、図３を参照しながら説明する。図３は、本発明の実施の形態１におけるニューラルネットワーク装置１００が保持する学習用データセットの一例を示す図である。
【００６２】
図３に示す例では、学習用データセット生成部２０１は、入力要素１から入力されるエンジンの回転数、エンジンのインマニ圧およびエンジンの吸気量の３個の入力データを含む入力パターンに基づいて、特定のパラメータとして、体積効率係数を算出する。学習用データセット生成部２０１は、入力パターンと、その入力パターンに基づいて算出される体積効率係数を含む教師データとを対応付けた学習用データセットを生成する。
【００６３】
図３に示す例では、学習用データセット保持部１０１は、データ番号＃１〜＃１００００が個別に付された１００００個の学習用データセットを保持する。
【００６４】
このように、エンジンの個体差が大きく、エンジンの過渡運転時の変化が大きい体積効率係数を教師データとして学習することで、精度の高いエンジンの制御が可能となる。なお、図３に示す教師データは、体積効率係数に限らず、ノック制御後のリタード量、燃料量に応じた失火限界など、車両の走行中に算出可能なものであれば、どんなものであっても構わない。
【００６５】
ニューラルネットワーク処理部１０２は、ニューラルネットワークを用いて、データ番号＃１〜＃Ｉの中の任意データ番号＃Ｎに対応する入力パターンに対して、出力層出力値を出力するニューラルネットワーク処理を実行する。また、ニューラルネットワーク処理部１０２は、ニューラルネットワークの重みが新たな重みに更新されると、新たな重みに更新されたニューラルネットワークを用いて、データ番号＃１〜＃Ｉごとの入力パターンに対してそれぞれニューラルネットワーク処理を実行する。なお、ニューラルネットワーク処理の具体的な方法は、公知の方法を適用すればよく、例えば、上述した比較例と同様の方法を適用すればよい。
【００６６】
重み更新部１０４は、任意データ番号＃Ｎに対応する入力パターンに対してニューラルネットワーク処理部１０２から出力される中間層出力値および出力層出力値と、任意データ番号＃Ｎに対応する教師データとを用いて、ニューラルネットワークの重みを、新たな重みに更新する。ニューラルネットワークの重みは、データ番号＃１〜＃Ｉごとの入力パターンに対してニューラルネットワーク処理が実行されるたびに更新される。なお、重みを更新する具体的な方法は、公知の方法を適用すればよく、例えば、上述した比較例と同様の方法を適用すればよい。
【００６７】
重み更新部１０４によってニューラルネットワークの重みが更新されると、上述したとおり、ニューラルネットワーク処理部１０２は、重みが更新されたニューラルネットワークを用いて、データ番号＃１〜＃Ｉごとの入力パターンに対してそれぞれニューラルネットワーク処理を実行する。このような処理が実行されると、データ番号＃１〜＃Ｉごとの出力層出力値が誤差量算出部２０２に入力される。
【００６８】
誤差量算出部２０２は、データ番号＃１〜＃Ｉごとの入力パターンに対してそれぞれニューラルネットワーク処理が実行されることで得られるデータ番号＃１〜＃Ｉごとの出力層出力値と、データ番号＃１〜＃Ｉごとの対応する教師データ間の誤差量をそれぞれ算出する。具体的には、誤差量算出部２０２は、データ番号＃１〜＃Ｉごとに、対応する出力層出力値および教師データ間の二乗誤差を、誤差量として算出する。なお、任意の入力パターンｐに対応する出力層出力値をｙｐｉとし、その入力パターンｐに対応する教師データをｔｐｉとし、誤差量をΔｏｐｉとしたとき、誤差量は、以下の式（１０）のように表される。
【００６９】
【数１０】
2020144717.tif 000012
【００７０】
なお、対応する出力層出力値および教師データとの差分の二乗値を誤差量とすることで、誤差量を一つの変数とすることができる。なお、誤差量は、対応する出力層出力値と教師データとの差分の絶対値でも構わない。
【００７１】
評価関数値算出部２０３は、誤差量算出部２０２によって算出されるデータ番号＃１〜＃Ｉごとの誤差量を用いて、評価関数値を算出する。評価関数値は、例えば、上述した式（５）のように表される平均二乗誤差である。
【００７２】
評価関数値判定部２０５は、評価関数値算出部２０３によって新たに算出される評価関数値の今回値を記憶する場合、その評価関数値の今回値を最適評価関数値として記憶する。評価関数値判定部２０５は、評価関数値の今回値と、現時点で記憶している最適評価関数値との大小関係を比較する。評価関数値判定部２０５は、この評価関数値の今回値が記憶している最適評価関数値よりも小さい場合、記憶している最適評価関数値を、この評価関数値の今回値に更新する。
【００７３】
誤差量判定部２０４は、誤差量算出部２０２によって算出されるデータ番号＃１〜＃Ｉごとの誤差量の中から、最大の誤差量を、誤差量最大値として算出する。
【００７４】
誤差量判定部２０４は、新たに算出した誤差量最大値の今回値を記憶する場合、その誤差量最大値の今回値を最適誤差量最大値として記憶する。誤差量判定部２０４は、評価関数値判定部２０５によって行われる比較の結果として、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適誤差量最大値を、新たに算出した誤差量最大値の今回値に更新する。
【００７５】
誤差量判定部２０４は、評価関数値判定部２０５によって行われる比較の結果として、評価関数値の今回値が最適評価関数値と同じである場合、新たに算出した誤差量最大値の今回値と、現時点で記憶している最適誤差量最大値との大小関係を比較する。誤差量判定部２０４は、その比較の結果として、誤差量最大値の今回値が最適誤差量最大値よりも小さい場合、記憶している最適誤差量最大値を、新たに算出した誤差量最大値の今回値に更新する。
【００７６】
最適重み更新部２０６は、ニューラルネットワークの重みの今回値、すなわち重み更新部１０４によってニューラルネットワークの重みが新たな重みに更新される際のその新たな重みを記憶する場合、その新たな重みを最適重みとして記憶する。最適重み更新部２０６は、評価関数値判定部２０５によって行われる比較の結果として、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適重みを、上述の新たな重みに更新する。
【００７７】
最適重み更新部２０６は、評価関数値判定部２０５によって行われる比較の結果として、評価関数値の今回値が最適評価関数値と同じである場合、誤差量判定部２０４によって行われる比較の結果として、誤差量最大値の今回値が最適誤差量最大値よりも小さければ、記憶している最適重みを、上述の新たな重みに更新する。
【００７８】
終了判定部２０７は、予め設定される終了条件が成立したか否かを判定し、終了条件が成立したと判定すれば、ニューラルネットワーク装置１００によって実行される一連の処理を終了する。一方、終了判定部２０７は、終了条件が成立していないと判定した場合には、ニューラルネットワーク装置１００によって実行される一連の処理を継続する。
【００７９】
次に、本実施の形態１におけるニューラルネットワーク装置１００によって実行される一連の処理について、図４を参照しながら説明する。図４は、本発明の実施の形態１におけるニューラルネットワーク装置１００によって実行される一連の処理を示すフローチャートである。なお、図４のフローチャートの処理は、例えば、図１に示すマイクロコンピュータ３２内のメモリが記憶するプログラムが実行されることで、予め定められる処理タイミングで繰り返し実行される。以下、先の図３に示す１００００個の学習用データセットが学習用データセット保持部１０１に蓄積される場合の具体例を挙げながら、フローチャートの各処理を説明する。
【００８０】
図４のフローチャートの処理は、ステップＳ１０１〜ステップＳ１０４の一連の処理を含む学習用データセット準備と、ステップＳ１０５〜ステップＳ１１５の一連の処理を含むニューラルネットワーク学習とによって構成される。
【００８１】
ステップＳ１０１において、学習用データセット生成部２０１は、入力要素１からセンサ信号を取得する。その後、処理がステップＳ１０２へと進む。
【００８２】
ステップＳ１０２において、学習用データセット生成部２０１は、ステップＳ１０１で取得したセンサ信号に基づいて、車両の運転状態が特定の運転状態であるか否かを判定する。車両の運転状態が特定の運転状態であると判定された場合には、処理がステップＳ１０３へと進む。一方、車両の運転状態が特定の運転状態でないと判定された場合には、処理が終了となる。
【００８３】
なお、学習用データセット生成部２０１は、例えば、エンジンの回転数の変動が設定範囲内にあることが設定時間継続すれば、車両の運転状態が特定の運転状態であると判定するように構成される。この設定範囲は、予め設定されるものであり、例えば、±５０ｒ／ｍｉｎの範囲となるように設定される。また、この設定時間は、予め設定されるものであり、例えば、５００ｍｓになるように設定される。
【００８４】
ステップＳ１０３において、学習用データセット生成部２０１は、ステップＳ１０１で取得したセンサ信号に基づいて、特定のパラメータを算出する。具体例として、学習用データセット生成部２０１は、センサ信号として取得した回転数、インマニ圧および吸気量に基づいて、特定パタメータとして体積効率係数を算出する。
【００８５】
ステップＳ１０３において、続いて、学習用データセット生成部２０１は、その取得したセンサ信号およびその算出した特定のパラメータを、それぞれ、入力パターンおよび教師データとして対応付けて、学習用データセット保持部１０１に蓄積する。具体例として、学習用データセット生成部２０１は、取得した回転数、インマニ圧および吸気量を含む入力パターンと、算出した体積効率係数を含む教師データとを対応付けた先の図３に示す学習用データセットを、学習用データセット保持部１０１に蓄積する。
【００８６】
ステップＳ１０４において、学習用データセット保持部１０１は、ステップＳ１０３が実行されることで蓄積される学習用データセットの数が設定数に達したか否かを判定する。学習用データセットの数が設定数に達したと判定された場合には、処理がステップＳ１０５へと進む。一方、学習用データセットの数が設定数に達していないと判定された場合には、処理が終了となる。
【００８７】
なお、この設定数は、学習用データセット保持部１０１に蓄積する学習用データセットの数に合わせて予め設定されるものである。学習用データセットが設定数分、学習用データセット保持部１０１に蓄積されるまで、ステップＳ１０１〜ステップＳ１０３の処理が繰り返し実行される。一方、学習用データセットが設定数分、学習用データセット保持部１０１に蓄積されれば、ステップＳ１０５以降の処理が実行される。
【００８８】
具体例として、学習用データセット生成部２０１によって、先の図３に示す１００００個分の学習用データセットが学習用データセット保持部１０１に蓄積される。
【００８９】
ステップＳ１０５において、ニューラルネットワーク処理部１０２は、現時点のデータ番号＃Ｎに対応する入力パターンを入力として、上述のニューラルネットワークを用いて、ニューラルネットワーク処理を実行する。ニューラルネットワーク処理部１０２は、このような処理を実行することで、データ番号＃Ｎに対応する中間層出力値および出力層出力値を出力する。その後、処理がステップＳ１０６へと進む。
【００９０】
具体例として、先の図３に示すように、データ番号＃Ｎが取り得る値は、Ｎ＝１，２，・・・，１００００となる。上述のニューラルネットワークでは、入力層のユニットの数が３となり、出力層のユニットの数が１となる。つまり、入力層の３つのユニットに、回転数、インマニ圧および吸気量がそれぞれ入力され、出力層の１つのユニットから体積効率係数が出力層出力値として出力される。なお、ニューラルネットワークの重みの初期値は、予め机上でニューラルネットワーク処理が実行されることで決定される。
【００９１】
ステップＳ１０６において、重み更新部１０４は、ステップＳ１０５で出力されるデータ番号＃Ｎに対応する中間層出力値および出力層出力値と、データ番号＃Ｎに対応する教師データとに基づいて、現時点のニューラルネットワークの重みを、新たな重みに更新する。その後、処理がステップＳ１０７へと進む。
【００９２】
ステップＳ１０７において、ニューラルネットワーク処理部１０２は、ステップＳ１０６で重みが更新されたニューラルネットワークを用いて、学習用データセット保持部１０１に蓄積された全ての学習用データセットのそれぞれの入力パターンを入力として、ニューラルネットワーク処理を実行する。ニューラルネットワーク処理部１０２は、このような処理を実行することで、データ番号＃１〜＃Ｉに個別に対応するＩ個の出力層出力値を出力する。
【００９３】
具体例として、ニューラルネットワーク処理部１０２は、先の図３に示す１００００個の学習用データセットのそれぞれの入力パターンを入力として、ニューラルネットワーク処理を実行することで、データ番号＃１〜＃１００００に個別に対応する１００００個の出力層出力値を出力する。
【００９４】
ステップＳ１０７において、続いて、誤差量算出部２０２は、データ番号＃１〜＃Ｉごとに、対応する出力層出力値および教師データ間の二乗誤差を、誤差量として算出する。例えば、誤差量算出部２０２は、データ番号＃１に対応する出力層出力値と、データ番号＃１に対応する教師データとの間の二乗誤差を、誤差量として算出する。このような処理がデータ番号＃１〜＃Ｉごとに実行されることで、データ番号＃１〜＃Ｉに個別に対応するＩ個の誤差量が得られる。続いて、評価関数値算出部２０３は、誤差量算出部２０２によって算出されるＩ個の二乗誤差を用いて、平均二乗誤差を、評価関数値として算出する。その後、処理がステップＳ１０８へと進む。
【００９５】
ステップＳ１０８において、誤差量判定部２０４は、ステップＳ１０７で算出されるＩ個の二乗誤差の中から、最大の二乗誤差を誤差量最大値として算出する。その後、処理がステップＳ１０９へと進む。
【００９６】
ステップＳ１０９において、評価関数値判定部２０５は、ステップＳ１０７で新たに算出される評価関数値の今回値と、現時点で記憶している最適評価関数値との大小関係を比較する。
【００９７】
ステップＳ１０９において、評価関数値の今回値が最適評価関数値よりも大きいと判定された場合には、処理がステップＳ１１２へと進む。評価関数値の今回値が最適評価関数値と同じであると判定された場合には、処理がステップＳ１１０へと進む。評価関数値の今回値が最適評価関数値よりも小さいと判定された場合には、評価関数値判定部２０５は、最適評価関数値を、評価関数値の今回値に更新し、処理がステップＳ１１１へと進む。
【００９８】
ステップＳ１１０において、誤差量判定部２０４は、ステップＳ１０８で新たに算出される誤差量最大値の今回値と、現時点で記憶している最適誤差量最大値との大小関係を比較する。
【００９９】
ステップＳ１１０において、誤差量最大値の今回値が最適誤差量最大値よりも小さいと判定された場合には、処理がステップＳ１１１へと進む。誤差量最大値の今回値が最適誤差量最大値以上であると判定された場合には、処理がステップＳ１１２へと進む。
【０１００】
ステップＳ１１１において、最適重み更新部２０６は、現時点で記憶している最適重みを、ニューラルネットワークの重みの今回値、すなわちステップＳ１０６で更新された新たな重みに更新する。また、誤差量判定部２０４は、現時点で記憶している誤差量最大値を、ステップＳ１０８で算出された誤差量最大値の今回値に更新する。その後、処理がステップＳ１１２へと進む。
【０１０１】
ステップＳ１１２において、ニューラルネットワーク処理部１０２は、学習用データセット保持部１０１に蓄積されている全ての学習用データセットについてステップＳ１０５のニューラルネットワーク処理を実行したか否かを判定する。全ての学習用データセットについてステップＳ１０５のニューラルネットワーク処理を実行したと判定された場合には、処理がステップＳ１１４へと進む。一方、全ての学習用データセットについてステップＳ１０５のニューラルネットワーク学習処理を実行していないと判定された場合には、処理がステップＳ１１３へと進む。
【０１０２】
ステップＳ１１３において、ニューラルネットワーク処理部１０２は、データ番号＃Ｎを１だけインクリメントする。その後、処理がステップＳ１０５へと戻る。この場合、データ番号＃Ｎ＋１に対応する学習用データセットについて、ステップＳ１０５以降の処理が実行される。
【０１０３】
ステップＳ１１４において、終了判定部２０７は、ニューラルネットワークの学習を反復する反復回数が設定回数に達したか否かを判定する。この設定回数は、予め設定されるものである。反復回数が設定回数に達したと判定された場合には、反復回数が１にリセットされ、処理が終了となる。一方、反復回数が設定回数に達していないと判定された場合には、処理がステップＳ１１５へと進む。
【０１０４】
ステップＳ１１５において、終了判定部２０７は、反復回数を１だけインクリメントし、さらに、データ番号＃Ｎを＃１にリセットする。その後、処理がステップＳ１０５へと戻る。この場合、データ番号＃１に対応する学習用データセットについて、ステップＳ１０５以降の処理が実行される。
【０１０５】
次に、最適重みをニューラルネットワークの重みとして用いて、そのニューラルネットワークの出力層出力値を得る出力値取得処理について、図５を参照しながら説明する。図５は、本発明の実施の形態１におけるコントローラによって実行される一連の出力値取得処理を示すフローチャートである。なお、図５に示すフローチャートの処理は、先の図４に示すフローチャートの処理とは独立して実行される。
【０１０６】
図５に示すフローチャートの処理は、入力要素１から入力される各種センサの検出結果を示すセンサ信号に基づいて制御対象を制御するコントローラによって実行される。制御対象は、例えば、車両であり、より具体的には、車両に搭載されているエンジンである。コントローラは、例えば、先の図１に示すハードウェア構成によって実現される。
【０１０７】
ステップＳ２０１において、コントローラは、入力要素１からセンサ信号を取得する。その後、処理がステップＳ２０２へと進む。
【０１０８】
ステップＳ２０２において、コントローラは、ニューラルネットワーク装置１００から現時点で記憶している最適重みを取得し、取得した最適重みをニューラルネットワーク処理部１０２に与える。続いて、コントローラは、ステップＳ２０１で取得したセンサ信号を制御入力パターンとしてニューラルネットワーク処理部１０２に与えてニューラルネットワーク処理を実行させる。その後、処理がステップＳ２０３へと進む。
【０１０９】
上述の場合、ニューラルネットワーク処理部１０２は、コントローラによって与えられた最適重みをニューラルネットワークの重みとして用いて、コントローラによって与えられた制御入力パターンに対応する出力層出力値を出力する。
【０１１０】
ステップＳ２０３において、コントローラは、上述の出力層出力値をニューラルネットワーク処理部１０２から取得する。その後、処理が終了となる。コントローラは、出力層出力値を取得すると、その出力層出力値を用いて、制御対象を制御するための制御値を算出する。続いて、コントローラは、算出した制御値に従って、制御対象を制御する。
【０１１１】
具体例として、制御入力パターンが上述のエンジンの回転数、インマニ圧および吸気量である場合、ニューラルネットワークの出力層出力値が体積効率係数である。この場合、コントローラは、ニューラルネットワーク処理部１０２から取得した体積効率係数を用いて、エンジンを制御するための制御値を算出する。コントローラは、算出した制御値に従って、エンジンを制御する。
【０１１２】
このように、ニューラルネットワーク処理部１０２は、最適重み更新部２０６が記憶している最適重みをニューラルネットワークの重みとして用いて、コントローラから与えられる制御入力パターンに対してニューラルネットワーク処理を実行することで出力層出力値をコントローラに与える。
【０１１３】
このようなニューラルネットワーク装置１００の構成によって、先の図４に示すニューラルネットワークの学習が完了していない段階であっても、その段階での最適な重みをニューラルネットワークの重みとして用いて、出力層出力値を得ることが可能となる。また、ニューラルネットワークの学習が進捗するにつれて、このような最適な重みをより精度の良い値に更新することが可能となる。さらに、ニューラルネットワーク学習が完了していない段階であっても、制御対象を制御することが可能となる。
【０１１４】
以上、本実施の形態１によれば、ニューラルネットワーク装置１００は、ニューラルネットワーク処理部１０２と、重み更新部１０４と、誤差量算出部２０２と、評価関数値算出部２０３と、評価関数値判定部２０５と、最適重み更新部２０６とを備えて構成されている。ニューラルネットワーク処理部１０２は、ニューラルネットワークを用いて、任意データ番号＃Ｎに対応する入力パターンに対してニューラルネットワーク処理を実行し、さらに、ニューラルネットワークの重みが新たな重みに更新されると、新たな重みに更新されたニューラルネットワークを用いて、データ番号＃１〜＃Ｉごとの入力パターンに対してそれぞれニューラルネットワーク処理を実行するように構成されている。重み更新部１０４は、任意データ番号＃Ｎに対応する入力パターンに対してニューラルネットワーク処理部１０２から出力される出力層出力値と、任意データ番号＃Ｎに対応する教師データとを用いて、ニューラルネットワークの重みを、上述の新たな重みに更新するように構成されている。
【０１１５】
誤差量算出部２０２は、データ番号＃１〜＃Ｉごとの入力パターンに対してそれぞれニューラルネットワーク処理が実行されることで得られるデータ番号＃１〜＃Ｉごとの出力層出力値と、データ番号＃１〜＃Ｉごとの対応する教師データ間の誤差量をそれぞれ算出するように構成されている。評価関数値算出部２０３は、誤差量算出部２０２によって算出されるデータ番号＃１〜＃Ｉごとの誤差量を用いて、評価関数値を算出するように構成されている。
【０１１６】
評価関数値判定部２０５は、評価関数値算出部２０３によって算出される評価関数値の今回値と、現時点で記憶している最適評価関数値とを比較し、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適評価関数値を、評価関数値の今回値に更新するように構成されている。最適重み更新部２０６は、評価関数値判定部２０５によって行われる比較の結果として、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適重みを、上述の新たな重みに更新するように構成されている。
【０１１７】
ニューラルネットワーク処理部１０２は、上述の最適重みをニューラルネットワークの重みとして用いて、制御対象を制御するコントローラから与えられる制御入力パターンに対してニューラルネットワーク処理を実行することで出力層出力値をコントローラに与えるように構成されている。
【０１１８】
上述のニューラルネットワーク装置の構成によって、ニューラルネットワークの学習が完了していない段階であっても、コントローラから入力される入力値に対応する出力値をそのコントローラに与えることができる。コントローラは、ニューラルネットワーク装置から与えられた出力値を用いて制御対象を制御することによって、ニューラルネットワークの学習が完了していない段階であっても、制御対象を制御することが可能となる。
【符号の説明】
【０１１９】
１  入力要素、２  出力要素、３  制御装置、３１  入力回路、３２  マイクロコンピュータ、３３  出力回路、１００，１００Ａ  ニューラルネットワーク装置、１０１  学習用データセット保持部、１０２  ニューラルネットワーク処理部、１０３  評価関数値算出部、１０４  重み更新部、１０５  終了判定部、２０１  学習用データセット生成部、２０２  誤差量算出部、２０３  評価関数値算出部、２０４  誤差量判定部、２０５  評価関数値判定部、２０６  最適重み更新部、２０７  終了判定部。
【図１】
2020144717.tif 000013
【図２】
2020144717.tif 000014
【図３】
2020144717.tif 000015
【図４】
2020144717.tif 000016
【図５】
2020144717.tif 000017
【図６】
2020144717.tif 000018
【図７】
2020144717.tif 000019
【図８】
2020144717.tif 000020
【図９】
2020144717.tif 000021
【手続補正書】
【提出日】令和2年4月24日(2020.4.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明におけるニューラルネットワーク装置は、入力パターンと、入力パターンに対応する教師データとが対応付けられた学習用データセットを、データ番号ごとに保持する学習用データセット保持部と、ニューラルネットワークを用いて、データ番号の中の任意データ番号に対応する入力パターンに対して、ニューラルネットワークの出力層出力値を出力するニューラルネットワーク処理を実行し、さらに、ニューラルネットワークの重みが新たな重みに更新されると、新たな重みに更新されたニューラルネットワークを用いて、データ番号ごとの入力パターンに対してそれぞれニューラルネットワーク処理を実行するニューラルネットワーク処理部と、任意データ番号に対応する入力パターンに対してニューラルネットワーク処理部から出力される出力層出力値と、任意データ番号に対応する教師データとを用いて、ニューラルネットワークの重みを、新たな重みに更新する重み更新部と、データ番号ごとの入力パターンに対してそれぞれニューラルネットワーク処理が実行されることで得られるデータ番号ごとの出力層出力値と、データ番号ごとの対応する教師データ間の誤差量をそれぞれ算出する誤差量算出部と、誤差量算出部によって算出されるデータ番号ごとの誤差量を用いて、評価関数値を算出する評価関数値算出部と、評価関数値算出部によって算出される評価関数値の今回値と、現時点で記憶している最適評価関数値とを比較し、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適評価関数値を、評価関数値の今回値に更新する評価関数値判定部と、評価関数値判定部によって行われる比較の結果として、評価関数値の今回値が最適評価関数値よりも小さい場合、記憶している最適重みを、新たな重みに更新する最適重み更新部と、を備え、ニューラルネットワーク処理部は、現時点で記憶している最適重みをニューラルネットワークの重みとして用いて、制御対象を制御するコントローラから与えられる制御入力パターンに対してニューラルネットワーク処理を実行することで得られる出力層出力値をコントローラに与えるものである。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力パターンと、前記入力パターンに対応する教師データとが対応付けられた学習用データセットを、データ番号ごとに保持する学習用データセット保持部と、
ニューラルネットワークを用いて、前記データ番号の中の任意データ番号に対応する前記入力パターンに対して、前記ニューラルネットワークの出力層出力値を出力するニューラルネットワーク処理を実行し、さらに、前記ニューラルネットワークの重みが新たな重みに更新されると、前記新たな重みに更新された前記ニューラルネットワークを用いて、前記データ番号ごとの前記入力パターンに対してそれぞれ前記ニューラルネットワーク処理を実行するニューラルネットワーク処理部と、
前記任意データ番号に対応する前記入力パターンに対して前記ニューラルネットワーク処理部から出力される前記出力層出力値と、前記任意データ番号に対応する前記教師データとを用いて、前記ニューラルネットワークの前記重みを、前記新たな重みに更新する重み更新部と、
前記データ番号ごとの前記入力パターンに対してそれぞれ前記ニューラルネットワーク処理が実行されることで得られる前記データ番号ごとの前記出力層出力値と、前記データ番号ごとの対応する前記教師データ間の誤差量をそれぞれ算出する誤差量算出部と、
前記誤差量算出部によって算出される前記データ番号ごとの前記誤差量を用いて、評価関数値を算出する評価関数値算出部と、
前記評価関数値算出部によって算出される前記評価関数値の今回値と、現時点で記憶している最適評価関数値とを比較し、前記評価関数値の今回値が前記最適評価関数値よりも小さい場合、記憶している前記最適評価関数値を、前記評価関数値の今回値に更新する評価関数値判定部と、
前記評価関数値判定部によって行われる比較の結果として、前記評価関数値の今回値が前記最適評価関数値よりも小さい場合、記憶している最適重みを、前記新たな重みに更新する最適重み更新部と、
を備え、
前記ニューラルネットワーク処理部は、
現時点で記憶している前記最適重みを前記ニューラルネットワークの前記重みとして用いて、制御対象を制御するコントローラから与えられる制御入力パターンに対して前記ニューラルネットワーク処理を実行することで得られる前記出力層出力値を前記コントローラに与える
ニューラルネットワーク装置。
【請求項２】
入力パターンと、前記入力パターンに対応する教師データとが対応付けられた学習用データセットを、データ番号ごとに保持する学習用データセット保持部と、
ニューラルネットワークを用いて、前記データ番号の中の任意データ番号に対応する前記入力パターンに対して、前記ニューラルネットワークの出力層出力値を出力するニューラルネットワーク処理を実行し、さらに、前記ニューラルネットワークの重みが新たな重みに更新されると、前記新たな重みに更新された前記ニューラルネットワークを用いて、前記データ番号ごとの前記入力パターンに対してそれぞれ前記ニューラルネットワーク処理を実行するニューラルネットワーク処理部と、
前記任意データ番号に対応する前記入力パターンに対して前記ニューラルネットワーク処理部から出力される前記出力層出力値と、前記任意データ番号に対応する前記教師データとを用いて、前記ニューラルネットワークの前記重みを、前記新たな重みに更新する重み更新部と、
前記データ番号ごとの前記入力パターンに対してそれぞれ前記ニューラルネットワーク処理が実行されることで得られる前記データ番号ごとの前記出力層出力値と、前記データ番号ごとの対応する前記教師データ間の誤差量をそれぞれ算出する誤差量算出部と、
前記誤差量算出部によって算出される前記データ番号ごとの前記誤差量を用いて、評価関数値を算出する評価関数値算出部と、
前記評価関数値算出部によって算出される前記評価関数値の今回値と、現時点で記憶している最適評価関数値とを比較し、前記評価関数値の今回値が前記最適評価関数値よりも小さい場合、記憶している前記最適評価関数値を、前記評価関数値の今回値に更新する評価関数値判定部と、
前記評価関数値判定部によって行われる比較の結果として、前記評価関数値の今回値が前記最適評価関数値よりも小さい場合、記憶している最適重みを、前記新たな重みに更新する最適重み更新部と、
前記誤差量算出部によって算出される前記データ番号ごとの前記誤差量の中から、最大の誤差量を、誤差量最大値として算出する誤差量判定部と、
を備え、
前記ニューラルネットワーク処理部は、
前記最適重みを前記ニューラルネットワークの前記重みとして用いて、制御対象を制御するコントローラから与えられる制御入力パターンに対して前記ニューラルネットワーク処理を実行することで得られる前記出力層出力値を前記コントローラに与え、
前記誤差量判定部は、
前記評価関数値判定部によって行われる比較の結果として、前記評価関数値の今回値が前記最適評価関数値と同じである場合、算出した前記誤差量最大値の今回値と、現時点で記憶している最適誤差量最大値とを比較し、前記誤差量最大値の今回値が前記最適誤差量最大値よりも小さい場合、記憶している前記最適誤差量最大値を、前記誤差量最大値の今回値に更新し、
前記最適重み更新部は、
前記評価関数値判定部によって行われる比較の結果として、前記評価関数値の今回値が前記最適評価関数値と同じである場合、前記誤差量判定部によって行われる比較の結果として、前記誤差量最大値の今回値が前記最適誤差量最大値よりも小さければ、記憶している前記最適重みを、前記新たな重みに更新する
ニューラルネットワーク装置。
【請求項３】
前記誤差量は、前記出力層出力値と前記教師データとの差分の二乗値である
請求項１または２に記載のニューラルネットワーク装置。
【請求項４】
前記制御対象は、車両である
請求項１から３のいずれか１項に記載のニューラルネットワーク装置。