(57)【要約】本発明は、ハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コア（１１、１３、１４）によって、多層パーセプトロンモデルのニューロン層を計算する方法であって、パーセプトロンモデルのニューロン層のニューロン（２０）が、活性化関数を用いて計算され、活性化関数は、簡略化されたシグモイド関数及び簡略化された双曲線正接関数に相当し、活性化関数は、指数関数の負の定義領域のゼロ点対称により形成される、上記方法に関する。
2019530113.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コア（１１、１３、１４）によって、多層パーセプトロンモデルのニューロン層を計算する方法であって、
前記パーセプトロンモデルのニューロン層のニューロン（２０）が、活性化関数を用いて計算され、前記活性化関数は、簡略化されたシグモイド関数及び簡略化された双曲線正接関数に相当し、前記活性化関数は、指数関数の負の定義領域のゼロ点対称により形成される、方法。
【請求項２】
複数のニューロン（２０）を含む前記パーセプトロンモデルのニューロン層は、入力ベクトルの１つ以上の入力と、重み付け係数（Ｖｊ,ｋ）を含む重み付けマトリクスと、ニューロン（２０）ごとに予め定められたオフセット値と、に従って、ニューロン（２０）ごとの出力が計算され、各ニューロン（２０）について、前記ニューロン（２０）及び前記入力によって決定される重み付け係数（νｊ、ｋ）により重み付けされた、前記入力の値の和に、前記ニューロン（２０）に予め設定された前記オフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］）が加えられ、結果が前記活性化関数によって変換され、前記ニューロン（２０）ごとに前記出力が獲得される、請求項１に記載の方法。
【請求項３】
前記簡略化されたシグモイド関数、又は前記簡略化された双曲線正接関数が、変数に応じて活性化関数として選択される、請求項１又は２に記載の方法。
【請求項４】
或る値についての前記簡略化されたシグモイド関数の関数値が、指数関数が前記或る値の負の値に基づいて計算されることで、計算され、前記関数値は、前記或る値が正の符号を有する場合には、「１」と、「−０．５」と前記指数関数の結果との積と、の和として計算され、負の符号を有する場合には、「０．５」と前記指数関数の結果との積として計算される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
或る値についての前記簡略化された双曲線正接関数の関数値が、指数関数が前記或る値の負の値に基づいて計算されることで、計算され、前記関数値は、前記或る値が正の符号を有する場合には、「１」と前記指数関数の負の結果との和として計算され、前記或る値が負の符号を有する場合には、「−１」と前記指数関数の結果との和として計算される、請求項１〜３のいずれか１項に記載の方法。
【請求項６】
前記値の前記符号は、前記値の符号ビットの読出しによって定められ、又は、正の値については＋１として、負の値については−１として定められる、請求項４〜５のいずれか１項に記載の方法。
【請求項７】
ハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コア（１１、１３、１４）によって、多層パーセプトロンモデルのニューロン層を計算するモデル計算ユニット（２２）であって、
前記演算コア（１１、１３、１４）は、複数のニューロン（２０）を含むパーセプトロンモデルのニューロン層のために、入力ベクトルの１つ以上の入力と、重み付け係数（Ｖｊ,ｋ）を含む重み付けマトリクスと、ニューロン（２０）ごとに予め定められたオフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］と、に従って、ニューロン（２０）ごとに出力を計算するよう構成され、各ニューロン（２０）について、前記ニューロン（２０）及び前記入力によって決定される重み付け係数（νｊ、ｋ）により重み付けされた、前記入力の値の和と、前記ニューロン（２０）に予め設定された前記オフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］）と、が計算され、結果が活性化関数によって変換され、前記ニューロン（２０）ごとに前記出力が獲得され、前記活性化関数は、簡略化されたシグモイド関数、又は簡略化された双曲線正接関数を含み、前記活性化関数は、指数関数の負の定義領域のゼロ点対称により形成される、モデル計算ユニット（２２）。
【請求項８】
前記演算コア（１１、１３、１４）は、状態機械（１１）と、１つ以上の算術演算ブロック（１３、１４）、特に、ＭＡＣブロック及び活性化関数ブロックと、を含み、及び、特に、前記入力ベクトルの前記１つ以上の入力と、前記重み付けマトリクスと、ニューロン（２０）ごとに予め定められた前記オフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］）と、ニューロン（２０）ごとの前記出力と、を格納するためのメモリ（１２）を含む、請求項７に記載のモデル計算ユニット（２２）。
【請求項９】
前記演算コア（１１、１３、１４）は、集積モジュールの平面領域に形成される、請求項７〜８のいずれか１項に記載のモデル計算ユニット（２２）。
【請求項１０】
マイクロプロセッサ（２１）と、請求項７〜９のいずれか１項に記載の１つ以上のモデル計算ユニット（２２）と、含む制御装置（２）。
【請求項１１】
前記制御装置（２）は、集積回路として形成される、請求項１０に記載の制御装置（２）。
【請求項１２】
自動車内のエンジンシステム（１）を制御するための制御装置（２）としての、請求項１０又は１１に記載の前記制御装置（２）の利用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に多層パーセプトロンモデルを計算するための、ハードワイヤードされている別体のモデル計算ユニットでの関数モデルの計算に関する。
【背景技術】
【０００２】
例えば、内燃機関、エレクトリックパワートレイン、蓄電池等の技術システムを制御する機能は、実際のシステムの数学的な描写に相当するモデルを用いて実現されることが多い。しかしながら、物理的なモデルでは、特に関係が複雑な場合には、必要とされる計算精度が欠けており、今日の計算能力では、このようなモデルを、制御装置のために要求される実時間要求の範囲内で計算することは通常困難である。このような場合のために、データに基づくモデルであって、試験台等を利用して獲得された訓練データのみに基づいて出力と入力との間の関係を記述する上記データに基づくモデルを利用することが考えられている。
【０００３】
特に、データに基づくモデルは、複雑な関係をモデル化するために適しており、ここでは、相互関係が生じている複数の入力が適切なやり方でモデルにおいて考慮される。さらに、データに基づくモデルを利用したモデル化によって、個別入力の付加によりモデルを補完する可能性が与えられる。
【０００４】
データに基づく関数モデルは、通常は、各適用のために十分なモデル化精度を達成するために多数のサンプルポイントに基づいている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
多数のサンプルポイントにより、例えばガウス過程モデル又は多層パーセプトロンモデル等の、データに基づく関数モデルを用いてモデル値を計算するためには高い計算能力が必要となる。従って、制御装置での適用において、このようなデータに基づく関数モデルを実時間で計算しうるために、ハードウェア構成に基づくモデル計算ユニットが設けられうる。
【課題を解決するための手段】
【０００６】
本発明に基づいて、請求項１に係るハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コアによって、多層パーセプトロンモデルのニューロン層を計算する方法、並びに、独立請求項に係るモデル計算ユニット、制御装置、及び制御装置の利用が構想される。
【０００７】
更なる別の構成が、従属請求項において示される。
【０００８】
第１の観点によれば、ハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コアによって、多層パーセプトロンモデルのニューロン層を計算する方法であって、パーセプトロンモデルのニューロン層のニューロンが、活性化関数を用いて計算され、活性化関数は、簡略化されたシグモイド関数及び／又は簡略化された双曲線正接関数を有し、簡略化されたシグモイド関数及び簡略化された双曲線正接関数は、指数関数の負の定義領域のゼロ点対称（Ｎｕｌｌ‐Ｐｕｎｋｔ‐Ｓｐｉｅｇｅｌｕｎｇ）により形成される、上記方法が構想される。
【０００９】
上記方法の構想は、活性化関数全体として又は活性化関数の一部として、シグモイド関数又は双曲線正接関数を簡略化したものを計算するための計算規則を提供することである。この計算規則は、特に、特別な関数として指数関数のみを利用し、それ以外では、時間及びリソースが掛かる除算の計算を回避するために、乗算及び加算のみを利用する。このことによって、追加的な演算プロックを設けることなく、多層パーセプトロンモデルの計算のために合ったハードウェア計算ユニットを利用することが可能となる。このことを実現するために、シグモイド関数又は双曲線正接関数が、指数関数の負の定義領域のゼロ点対称を利用して、及び、活性化関数が適用される値の簡単に読み出される符号ビットを利用して計算されうる。
【００１０】
さらに、複数のニューロンを含むパーセプトロンモデルのニューロン層は、入力ベクトルの１つ以上の入力と、重み付け係数を含む重み付けマトリクスと、ニューロンごとに予め定められたオフセット値と、に従って、ニューロンごとの出力が計算可能であり、各ニューロンについて、ニューロン及び入力によって決定される重み付け係数により重み付けされた、入力の値の和に、ニューロンに予め設定されたオフセット値が加えられ、特に加算され、結果が活性化関数によって変換され、ニューロンごとに出力が獲得される。
【００１１】
簡略化されたシグモイド関数、又は簡略化された双曲線正接関数を変数に応じて活性化関数として選択することが構想されうる。
【００１２】
或る値についての簡略化されたシグモイド関数の関数値が、指数関数が上記或る値の負の値に基づいて計算されることで、計算され、関数値は、上記或る値が正の符号を有する場合には、「１」と、「−０．５」と指数関数の結果との積と、の和として計算され、負の符号を有する場合には、「０．５」と指数関数の結果との積として計算される。このようにして、指数関数の結果に「０．５」が乗算され、階段関数の結果が加えられる。
【００１３】
代替的に、或る値についての簡略化された双曲線正接関数が、指数関数が上記或る値の負の値に基づいて計算されることで、計算され、関数値は、上記或る値が正の符号を有する場合には、「１」と指数関数の負の結果との和として計算され、上記或る値が負の符号を有する場合には、「−１」と指数関数の結果との和として計算される。このようにして、簡略化された双曲線正接関数が、指数関数の負の定義領域のゼロ点対称によって、及び、続いて行われる符号関数の適用によって定義される。
【００１４】
他の観点によれば、ハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コアによって、多層パーセプトロンモデルのニューロン層を計算するモデル計算ユニットであって、演算コアは、複数のニューロンを含む多層パーセプトロンモデルのニューロン層のために、入力ベクトルの１つ以上の入力と、重み付け係数を含む重み付けマトリクスと、ニューロンごとに予め定められたオフセット値と、に従って、ニューロンごとに出力を計算するよう構成され、各ニューロンについて、ニューロン及び入力によって決定される重み付け係数により重み付けされた、入力の値の和と、ニューロンに予め設定されたオフセット値が計算され、結果が活性化関数によって変換され、ニューロンごとに出力が獲得され、活性化関数は、簡略化されたシグモイド関数、又は簡略化された双曲線正接関数を有し、かつ、指数関数の負の定義領域のゼロ点対称を利用して適用され、階段関数又は符号関数の結果が計算される、上記モデル計算ユニットが構想される。
【００１５】
さらに、演算コアは、状態機械、及び、入力ベクトルの１つ以上の入力と、重み付けマトリクスと、ニューロンごとに予め定められたオフセット値と、ニューロンごとの出力と、を格納するためのメモリ、並びに、１つ以上の算術演算ブロック、特に、ＭＡＣブロック及び活性化関数ブロックを含みうる。
【００１６】
さらに、演算コアは、集積モジュールの平面領域に形成されうる。
【００１７】
他の観点によれば、マイクロプロセッサと、上記モデル計算ユニットを含む制御装置が設けられる。特に、制御装置は、特に集積回路として形成されうる。
【００１８】
更に別の観点によれば、自動車内のエンジンシステムを制御するための制御装置としての、上記制御装置の利用が構想される。
【図面の簡単な説明】
【００１９】
以下では、実施形態が、添付の図面を用いて詳細に解説される。
【図１】自動車内のエンジンシステムのための実装のための制御装置の概略図を示す。
【図２】制御装置の構成要素としてのモデル計算ユニットの概略図を示す。
【図３】ＭＬＰモデルのニューロン層の概略図を示す。
【図４ａ】可能な活性化関数の図を示す。
【図４ｂ】可能な活性化関数の図を示す。
【図４ｃ】可能な活性化関数の図を示す。
【図４ｄ】可能な活性化関数の図を示す。
【図５】簡略化されたシグモイド関数を計算するための計算フローを図に表したものを示す。
【図６】簡略化されたシグモイド関数を計算するための個々の関数成分のグラフを示す。
【図７】簡略化された双曲線正接関数を計算するための計算フローを図に表したものを示す。
【図８】簡略化された双曲線正接関数を計算するための個々の関数成分のグラフを示す。
【発明を実施するための形態】
【００２０】
図１は、制御される技術的システムの一例として内燃機関３を備えるエンジンシステム１のための制御装置２の概略図を例示している。制御装置２は、マイクロプロセッサ２１と、モデル計算ユニット２２と、を含み、マイクロプロセッサ２１とモデル計算ユニット２２とは、別々のモジュールとして形成され、又は統合された形態により、チップ上の別々の平面領域に形成されうる。特に、モデル計算ユニット２２は、構造的にマイクロプロセッサ２１の演算コアから分けることが可能なハードウェア回路である。
【００２１】
モデル計算ユニット２２は、基本的にハードワイヤードされており、これに応じて、マイクロプロセッサ２１のように、ソフトウェアコードを実行しこれによりソフトウェアによって予め設定される可変的な関数を実行するようには構成されていない。換言すれば、モデル計算ユニット２２にはプロセッサが設けられておらず、従って、モデル計算ユニット２２は、ソフトウェアコードによっては駆動可能ではない。予め設定されたモデル関数に焦点を絞ることによって、このようなモデル計算ユニット２２の、リソースが最適化された実現が可能となる。集積された構造形態において、モデル計算ユニット２２は、面積が最適化されて（ｆｌａｅｃｈｅｎｏｐｔｉｍｉｅｒｔ）実現され、このことによってさらに、高速の計算が可能となる。
【００２２】
制御装置２は基本的に、内燃機関３のセンサシステムにより検知されたセンサ信号Ｓ又はセンサ値及び／又は外部の設定Ｖを処理し、周期的に、固定的に予め設定された時間間隔で、即ち、例えば１〜１００ｍｓの周期時間内に周期的に、又は角度に同期して（クランク軸の位置に同期して）、駆動される内燃機関のクランク軸の角度に従って、１つ以上の対応する駆動制御変数Ａの値を内燃機関３に印加するために役立ち、従って、内燃機関３は公知のやり方で駆動可能である。
【００２３】
図２には、モデル計算ユニット２２がより詳細に示されている。モデル計算ユニット２２は、状態機械１１と、メモリ１２と、１つ以上の演算ブロックと、を含み、１つ以上の演算ブロックは、例えば、１つ以上のＭＡＣブロック１３（ＭＡＣ（Ｍｕｌｔｉｐｌｙ‐ＡＣｃｕｍｕｌａｔｅ、固定少数点演算又は浮動小数点演算のため）、活性化関数を計算するための活性化関数計算ブロック１４を含む。状態機械１１、及び、１つ以上の演算ブロック１３、１４は、モデル計算ユニット２２の演算コアＡＬＵを形成する。演算ブロックは、ＭＡＣブロックに加えて又はＭＡＣブロックの代わりに、乗算ブロック及び加算ブロックを含んでいてもよい。
【００２４】
状態機械１１によって、メモリ１２の入力メモリ領域に格納された入力の値が、反復されるループ計算によって計算され、従って、中間出力又は出力が獲得され、この中間出力又は出力は、メモリ１２の対応する出力メモリ領域に書き込まれる。
【００２５】
状態機械１１は、多層パーセプトロンモデルの個々のニューロン層を計算するよう構成される。状態機械１１は、以下の疑似コードによって記述されうる。
【００２６】
【数１】
2019530113.tif 000003
【００２７】
但し、
ｐ７：インデックス値としての入力ベクトルの入力の数
ｐ８：ニューロンの数についての最小インデックス値又は所定の開始インデックス
ｐ６：インデックス値としてのニューロンの数
ｐ３：オフセット値
ｐ１、ｐ２：入力変換のための変数
ｐ４、ｐ５：出力変換のための変数
【００２８】
上記の疑似コードを用いて、計算されるニューロン層のニューロンごとに以下の計算が実行される。即ち、
【００２９】
ｊ＝０…ｐ６‐１について、
【００３０】
【数２】
2019530113.tif 000004
【００３１】
これは、図３に示されるような、多層パーセプトロンモデルのニューロン層のための計算を表している。
【００３２】
図３は、複数のニューロン２０のニューロン層を示している。複数のニューロン２０には、入力ベクトルｕｔ０…ｕｔｐ６−１の入力の値が供給される。入力の値は、重み付け係数ｖ０…ｐ７−１，０…ｐ６−１からの対応する所定の重み付けマトリクスを用いて重み付けされる。この重み付けは通常、対応付けられた重み付け係数ｖ０…ｐ７−１，０…ｐ６−１を乗算的に加えることによって行われるが、他のやり方でも入力ベクトルの値に加えられうる。
【００３３】
入力ベクトルｕｔ０…ｕｔｐ６−１の上記重み付けされた値の和の結果には、オフセット値Ｏ０…Ｏｐ６−１が加えられ、特に加算的に加えられる。この結果は、所定の活性化関数「ａｃｔ」によって変換される。結果として、出力ベクトルｙ０…ｙｐ６−１の対応する値が獲得される。ニューロン２０ごとにオフセット値Ｏ０…Ｏｐ６−１を設けることによって、モデル形成のための更なる自由度が生じる。
【００３４】
インデックス付き変数ｐ６の設定によって、計算されるニューロン層のニューロン２０の数が調整されうる。多層パーセプトロンモデルは、ニューロン層の出力ベクトルｙ０…ｙｐ６−１の値を、モデル計算ユニット２２での次のニューロン層の計算用の入力ベクトルとして利用することによって利用可能であり、従って、多層パーセプトロンモデルの複数のニューロン層を、上記の疑似コードに係る関数の呼び出し又はモデル計算ユニット２２の呼び出しを繰り返すことによって、実現することが可能である。
【００３５】
入力ベクトルの入力の入力変換、及び／又は、出力ベクトルの出力の出力変換を、ニューロン２０ごとに予め設定された正規化変数ｐ１及びｐ２、又はｐ４及びｐ５を用いて行うことが可能である。
【００３６】
ＭＬＰモデルの層単位での計算によって、モデル計算ユニット２２のすっきりとした構成が可能となり、集積された構造形態においてモデル計算ユニット２２が必要とする面積は小さい。それにも関わらず、モデル計算ユニット２２によって、多層パーセプトロンモデルの計算が簡単なやり方で、出力ベクトルの出力の値を他のニューロン層の計算用の入力ベクトルの入力としてフィードバック又は再定義することで、可能となる。
【００３７】
活性化関数「ａｃｔ」として、複数の活性化関数のうちの１つの活性化関数を提供することが可能であり、上記１つの活性化関数は、モデル計算ユニット２２の活性化関数計算ブロック１４によって計算されうる。活性化関数として、例えば、図４ａ〜図４ｄに対応して示されるような、正規化線形関数（Ｋｎｉｃｋｆｕｎｋｔｉｏｎ）、双曲線正接関数、シグモイド関数、又は一次関数が利用されうる。ｃｆｇ＿ａｃｔｉｖａｔｉｏｎ＿ｆｕｎｃｔｉｏｎ＝０…３によって、上述の活性化関数の形態が選択されうる。
【００３８】
パーセプトロンモデルのためのシグモイド関数の計算は、例えば、変数値ｃｆｇ＿ａｃｔｉｖａｔｉｏｎ＿ｆｕｎｃｔｉｏｎ＝２によって表示されうる。シグモイド関数は、以下のように定義されうる。
【００３９】
【数３】
2019530113.tif 000005
【００４０】
このような計算は、ループ計算により何度も行われるため、含まれる指数関数と除算とによって著しい計算コストを生じさせる。上記の除算を回避するために、簡略化されたシグモイド関数の計算では、ジグモイド関数のために完全な解の範囲を提供するために、指数関数の負の領域を反転させる（ｓｐｉｅｇｅｌｎ）ことが可能である。このことによって、除算を行わないこと、及び、負の関数値ついての指数関数のみを利用することが可能となる。シグモイド関数への上記近似によって、計算を簡単なやり方で実施することが可能である。
【００４１】
簡略化されたシグモイド関数は、例えば、以下の疑似コードによって実行されうる。この疑似コードでは、シグモイド関数が適用される入力値ｘの符号が求められることが構想される。これは簡単な演算であり、浮動小数点フォーマットにおいて、符号ビットがこのために利用されうる。
【００４２】
【数４】
2019530113.tif 000006
【００４３】
但し、ｘ＜０について、ｓｇｎ（ｘ）＝−１であり、Ｘ≧０についてｓｇｎ（ｘ）＝＋１である。特に、浮動小数点（Ｆｌｏａｔｉｎｇ‐Ｐｏｉｎｔ）の表示の際には（ＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）＝符号ビット、続いて、指数ビット、仮数ビット）、０の符号ビットは正の値に対応し、１の符号ビットは負の値に対応し、従って、この符号ビットが、直接的にｙ３として又はマルチプレクサのための制御ビットとして利用されうる（図５参照）。
【００４４】
計算フローが、図５に図示されている。
【００４５】
負の引数についての指数関数の関数値範囲のみを利用するために、指数関数の引数の値が形成され、続いて、この値が否定される（ｎｅｇｉｅｒｅｎ）。
【００４６】
次に、ゼロ点対称を完全に行うために、入力値の符号が、指数関数の結果に対して逆に適用される。このことは、以下のことで最も簡単に行われ、即ち、入力値ｘの符号ｓ（ｘ≧０について０、ｘ＜１について１）と、指数関数の結果の符号と、がビット単位で排他的ＯＲ演算によって計算されることで、実行される。指数関数の結果は常に正であり、又は指数関数の符号が常に０であるため、この演算は、符号ｓの単なる否定（Ｎａｇａｔｉｏｎ）によって実行される。
【００４７】
ゼロ点対称の結果には、一定の値０．５が乗算され、続いて、階段関数（負の場合は０、それ以外の場合は１）が適用される。
【００４８】
代替的に、指数関数の結果の符号の操作は、入力値の符号情報ｓに依存する係数−０．５又は＋０．５の設定により置換が可能であり、従って、指数関数の結果の符号変更を行わなくてもよい。この場合、指数関数の結果には上記係数が乗算され、続いて階段関数が適用される。
【００４９】
代替的に、符号の操作は、ＭＡＣブロックの演算選択置換することが可能であり、ＭＡＣブロックでは、符号ｓに従って、加算（ａ＋ｂ＊ｃ）又は減算（ａ‐ｂ＊ｃ）が実行される。
【００５０】
上記の疑似コードでは、最初に、入力値ｘに一定の値ｌｏｇ（２）が乗算される。定数ｌｏｇ（２）は、モデル訓練過程の間に入力値に組み込むことが可能であり、従って、シグモイド関数が、簡単なやり方で可能な限り、本来のシグモイド関数と同じ出力値に近付けられる。これにより、定数ｌｏｇ（２）による乗算は行われなくてもよい。代替的に、定数ｌｏｇ（２）による乗算は、モデル訓練過程の間のスケーリングを回避するために含まれていてもよい。
【００５１】
図６には、簡略化されたシグモイド関数を計算するための個々の成分がグラフで示されており、ここで、ｅは関数ｇ（ｘ）に対応している。上記の疑似コードに係るジグモイド関数への近似が、シグモイド関数の実際の推移で見て取れる。パーセプトロンモデルのためのシグモイド関数の加速された計算の利用において、パーセプトロンモデルの検知可能な不正確さが生じないことが確認された。
【００５２】
パーセプトロンモデルは、双曲線正接関数によっても、例えばｃｆｇ＿ａｃｔｉｖａｔｉｏｎ＿ｆｕｎｃｔｉｏｎ＝３の場合に計算されうる。
【００５３】
双曲線正接関数は、数学的に以下の数式に対応する。
【００５４】
【数５】
2019530113.tif 000007
【００５５】
比較可能なやり方で、簡略化された双曲線正接関数が、以下の疑似コードに対応して計算されうる。
【００５６】
【数６】
2019530113.tif 000008
【００５７】
上記関数も、上記の簡略化されたシグモイド関数と類似したやり方で計算され、ここでは、最後の乗算関数及び加算関数の乗算係数は、「０．５」の代わりに「１」である。計算フローが、図７に図示されている。
【００５８】
この場合、ＭＡＣブロックが、純粋な加算ブロックにより置換されうる。代替的に、上述したシグモイド関数の場合と同じように、符号の割り当てを行わずに、乗算のために−１及び＋１を利用してもよく、又は、ＭＡＣブロックの演算選択によっても置換されてもよい。
【００５９】
双曲線正接関数と、疑似コードにおいて示された関数成分と、簡略化された双曲線正接関数と、の推移が図８に示されており、ここで、ｅは関数ｇ（ｘ）に対応している。
【００６０】
上記の疑似コードでは、最初に、入力値ｘに一定の値１／ｌｏｇ（２）が乗算される。定数１／ｌｏｇ（２）は、入力値のために、モデル訓練過程の間に組み込むことが可能であり、従って、双曲線正接関数が、簡単なやり方で可能な限り、本来の双曲線正接関数と同じ出力値に近付けられる。これにより、定数１／ｌｏｇ（２）による乗算がもはや必要ではない。代替的に、定数１／ｌｏｇ（２）による乗算は、モデル訓練過程の間のスケーリングを回避するために含まれていてもよい。
【００６１】
近似された活性化関数の利用が、パーセプトロンモデルにおける利用のために可能であり、その際にモデルの精度が損なわれることはない。さらに、活性化関数の上記計算は、シグモイド関数又は双曲線正接関数の関数値の他の通常の計算に対する著しい加速を意味する。これは、特に、コストが掛る除算が避けられることにより成就する。
【図１】
2019530113.tif 000009
【図２】
2019530113.tif 000010
【図３】
2019530113.tif 000011
【図４ａ】
2019530113.tif 000012
【図４ｂ】
2019530113.tif 000013
【図４ｃ】
2019530113.tif 000014
【図４ｄ】
2019530113.tif 000015
【図５】
2019530113.tif 000016
【図６】
2019530113.tif 000017
【図７】
2019530113.tif 000018
【図８】
2019530113.tif 000019
【手続補正書】
【提出日】平成31年3月6日(2019.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コア（１１、１３、１４）によって、多層パーセプトロンモデルのニューロン層を計算する方法であって、
前記多層パーセプトロンモデルのニューロン層のニューロン（２０）が、活性化関数を用いて計算され、前記活性化関数は、簡略化されたシグモイド関数及び簡略化された双曲線正接関数に相当し、前記活性化関数は、指数関数の負の定義領域のゼロ点対称により形成される、方法。
【請求項２】
複数のニューロン（２０）を含む前記パーセプトロンモデルのニューロン層は、入力ベクトルの１つ以上の入力と、重み付け係数（Ｖｊ,ｋ）を含む重み付けマトリクスと、ニューロン（２０）ごとに予め定められたオフセット値と、に従って、ニューロン（２０）ごとの出力が計算され、各ニューロン（２０）について、前記ニューロン（２０）及び前記入力によって決定される重み付け係数（νｊ、ｋ）により重み付けされた、前記入力の値の和に、前記ニューロン（２０）に予め設定された前記オフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］）が加えられ、結果が前記活性化関数によって変換され、前記ニューロン（２０）ごとに前記出力が獲得される、請求項１に記載の方法。
【請求項３】
前記簡略化されたシグモイド関数、又は前記簡略化された双曲線正接関数が、変数に応じて活性化関数として選択される、請求項１又は２に記載の方法。
【請求項４】
或る値についての前記簡略化されたシグモイド関数の関数値が、指数関数が前記或る値の負の値に基づいて計算されることで、計算され、前記関数値は、前記或る値が正の符号を有する場合には、「１」と、「−０．５」と前記指数関数の結果との積と、の和として計算され、負の符号を有する場合には、「０．５」と前記指数関数の結果との積として計算される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
或る値についての前記簡略化された双曲線正接関数の関数値が、指数関数が前記或る値の負の値に基づいて計算されることで、計算され、前記関数値は、前記或る値が正の符号を有する場合には、「１」と前記指数関数の負の結果との和として計算され、前記或る値が負の符号を有する場合には、「−１」と前記指数関数の結果との和として計算される、請求項１〜３のいずれか１項に記載の方法。
【請求項６】
前記値の前記符号は、前記値の符号ビットの読出しによって定められ、又は、正の値については＋１として、負の値については−１として定められる、請求項４〜５のいずれか１項に記載の方法。
【請求項７】
ハードウェアにより形成されハードワイヤードされており、結合された関数ブロックにおいて固定的に予め設定された計算アルゴリズムを計算する演算コア（１１、１３、１４）によって、多層パーセプトロンモデルのニューロン層を計算するモデル計算ユニット（２２）であって、
前記演算コア（１１、１３、１４）は、複数のニューロン（２０）を含むパーセプトロンモデルのニューロン層のために、入力ベクトルの１つ以上の入力と、重み付け係数（Ｖｊ,ｋ）を含む重み付けマトリクスと、ニューロン（２０）ごとに予め定められたオフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］と、に従って、ニューロン（２０）ごとに出力を計算するよう構成され、各ニューロン（２０）について、前記ニューロン（２０）及び前記入力によって決定される重み付け係数（νｊ、ｋ）により重み付けされた、前記入力の値の和と、前記ニューロン（２０）に予め設定された前記オフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］）と、が計算され、結果が活性化関数によって変換され、前記ニューロン（２０）ごとに前記出力が獲得され、前記活性化関数は、簡略化されたシグモイド関数、又は簡略化された双曲線正接関数を含み、前記活性化関数は、指数関数の負の定義領域のゼロ点対称により形成される、モデル計算ユニット（２２）。
【請求項８】
前記演算コア（１１、１３、１４）は、状態機械（１１）と、１つ以上の算術演算ブロック（１３、１４）と、メモリ（１２）を含む、請求項７に記載のモデル計算ユニット（２２）。
【請求項９】
前記算術演算ブロック（１３、１４）が、ＭＡＣブロック及び活性化関数ブロックである、請求項８に記載のモデル計算ユニット（２２）。
【請求項１０】
前記メモリ（１２）が、前記入力ベクトルの前記１つ以上の入力と、前記重み付けマトリクスと、ニューロン（２０）ごとに予め定められた前記オフセット値（Ｏ０…Ｏｐ６−１、ｐ３［ｊ］）と、ニューロン（２０）ごとの前記出力と、を格納するためのメモリである、請求項８に記載のモデル計算ユニット（２２）。
【請求項１１】
前記演算コア（１１、１３、１４）は、集積モジュールの平面領域に形成される、請求項７〜１０のいずれか１項に記載のモデル計算ユニット（２２）。
【請求項１２】
マイクロプロセッサ（２１）と、請求項７〜１１のいずれか１項に記載の１つ以上のモデル計算ユニット（２２）と、含む制御装置（２）。
【請求項１３】
前記制御装置（２）は、集積回路として形成される、請求項１２に記載の制御装置（２）。
【請求項１４】
自動車内のエンジンシステム（１）を制御するための制御装置（２）として利用される、請求項１２又は１３に記載の制御装置（２）。

【国際調査報告】
2019530113.tif 000020
2019530113.tif 000021
2019530113.tif 000022
2019530113.tif 000023