(57)【要約】本発明は、多層パーセプトロンモデルを計算するためのモデル計算ユニット（２２）であって、モデル計算ユニット（２２）は、ハードウェアで形成されハードワイヤードされており、‐演算コア（１８）と、‐メモリ（１２）と、‐対応付けられた入力ベクトル（１０１）の入力に基づいて各ニューロン層を計算し、出力ベクトル（１０２）の各得られた出力を対応付けられたデータメモリ区分（Ｄ）に格納するよう、演算コア（１８）に連続的に命令するよう構成されたＤＭＡユニット（１７）と、を備え、ニューロン層のうちの少なくとも１つのニューロン層に対応づけられた入力ベクトル（１０１）のためのデータメモリ区分（Ｄ）は、２つの異なるニューロン層の少なくとも２つの出力ベクトル（１０２）のデータメモリ区分（Ｄ）を、少なくとも部分的に含む、上記モデル計算ユニット（２２）に関する。【選択図】図８
2019530114.tif 000002
【特許請求の範囲】
【請求項１】
多層パーセプトロンモデルを計算するためのモデル計算ユニット（２２）であって、
前記モデル計算ユニット（２２）は、ハードウェアで形成されハードワイヤードされており、
‐入力ベクトル（１０１）の１つ以上の入力に従って、複数のニューロンを有する前記多層パーセプトロンモデルのニューロン層の出力ベクトル（１０２）の１つ以上の出力を計算するよう構成された演算コア（１８）と、
‐各ニューロン層に対して、前記入力ベクトル（１０１）の前記入力を格納するためのデータメモリ区分（Ｄ）、及び前記出力ベクトル（１０２）の前記出力を格納するためのデータメモリ区分（Ｄ）が対応付けられているデータメモリ領域（１２２）が設けられたメモリ（１２）と、
‐対応付けられた前記入力ベクトル（１０１）の入力に基づいて各ニューロン層を計算し、前記出力ベクトル（１０２）の各得られた前記出力を対応付けられた前記データメモリ区分（Ｄ）に格納するよう、前記演算コア（１８）に連続的に命令するよう構成されたＤＭＡユニット（１７）と、を備え、
前記ニューロン層のうちの少なくとも１つのニューロン層に対応づけられた前記入力ベクトル（１０１）のための前記データメモリ区分（Ｄ）は、２つの異なるニューロン層の少なくとも２つの前記出力ベクトル（１０２）の前記データメモリ区分（Ｄ）を、少なくとも部分的に含む、
モデル計算ユニット（２２）。
【請求項２】
前記ニューロン層のうちの少なくとも１つのニューロン層に対応づけられた前記入力ベクトル（１０１）のための前記データメモリ区分（Ｄ）は、先行する前記ニューロン層の前記出力ベクトル（１０２）の前記データメモリ区分（Ｄ）を完全に含む、
請求項１に記載のモデル計算ユニット（２２）。
【請求項３】
前記ニューロン層のうちの少なくとも１つのニューロン層に対応づけられた前記入力ベクトル（１０１）のための前記データメモリ区分（Ｄ）は、前記先行するニューロン層とは異なるニューロン層、特に、ある先行するニューロン層又は後続のニューロン層の前記出力ベクトル（１０２）の前記データメモリ区分（Ｄ）を部分的に含む、
請求項１又は２に記載のモデル計算ユニット（２２）。
【請求項４】
前記２つの異なるニューロン層の前記少なくとも２つの出力ベクトル（１０２）の前記データメモリ区分（Ｄ）は、前記データメモリ領域（Ｄ）のアドレス範囲において互いに境を接する、
請求項１〜３のいずれか一項に記載のモデル計算ユニット（２２）。
【請求項５】
ニューロン層ごとの前記メモリは、各設定メモリ区分（Ａ）に設定パラメータを格納するための設定メモリ領域（Ａ）を有し、前記ＤＭＡユニット（１７）は、前記演算コア（１８）に以下のことを連続的に命令するよう構成され、即ち、各設定メモリ区分（Ａ）の前記設定パラメータに基づいて各ニューロン層を計算し、及び、前記設定パラメータにより定義される前記入力ベクトルを計算し、各得られた前記出力ベクトル（１０２）を、対応する前記設定パラメータにより定義された、前記データメモリ領域（１２２）のデータメモリ区分（Ｄ）に格納するよう、前記演算コア（１８）に連続的に命令するよう構成される、
請求項１〜４のいずれか一項に記載のモデル計算ユニット（２２）。
【請求項６】
前記演算コア（１８）は、前記ニューロン層の現在の前記計算の終了を前記ＤＭＡユニット（１７）又は外部に対してシグナリングするよう構成され、前記ＤＭＡユニット（１７）は、他の設定メモリ区分（Ａ）に格納された設定パラメータに基づいて、次の前記ニューロン層の前記計算を開始する、
請求項１〜５のいずれか一項に記載のモデル計算ユニット（２２）。
【請求項７】
前記演算コア（１８）は、複数のニューロン（２０）を有する多層パーセプトロンモデルのニューロン層ごとに、入力ベクトルの１つ以上の入力と、重み付け係数を含む重み付けマトリクスと、ニューロンごとに予め設定されたオフセット値と、に従って、ニューロンごとに出力を計算するよう構成され、各ニューロンについて、前記ニューロン及び前記入力によって決定される重み付け係数により重み付けされた、前記入力の値の和と、前記ニューロン（２０）に予め設定された前記オフセット値と、が計算され、結果が活性化関数によって変換され、該当する前記ニューロン（２０）のための前記出力が獲得される、
請求項１〜６のいずれか一項に記載のモデル計算ユニット（２２）。
【請求項８】
前記演算コア（１８）は、集積モジュールの平面領域に形成される、請求項１〜７のいずれか一項に記載のモデル計算ユニット（２２）。
【請求項９】
マイクロプロセッサ（２１）と、請求項１〜８のいずれか一項に記載の１つ以上のモデル計算ユニット（２２）と、を含む制御装置（２）。
【請求項１０】
前記制御装置（２）は、集積回路として形成される、請求項９に記載の制御装置（２）。
【請求項１１】
自動車内のエンジンシステム（１）を制御するための制御装置（２）としての、請求項９又は１０に記載の前記制御装置（２）を使用する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に多層パーセプトロンモデルを計算するための、ハードワイヤードされている別体のモデル計算ユニットでの関数モデルの計算に関する。
【背景技術】
【０００２】
例えば、内燃機関、エレクトリックパワートレイン、蓄電池等の技術システムを制御する機能は、実際のシステムの数学的な描写に相当するモデルを用いて実現されることが多い。しかしながら、物理的なモデルでは、特に関係が複雑な場合には、必要とされる計算精度が欠けており、今日の計算能力では、このようなモデルを、エンジン制御装置のために要求される実時間要求の範囲内で計算することは通常困難である。このような場合のために、データに基づくモデルであって、試験台等を利用して獲得された訓練データのみに基づいて出力と入力との間の関係を記述する上記データに基づくモデルを利用することが考えられている。特に、データに基づくモデルは、複雑な関係をモデル化するために適しており、ここでは、相互関係が生じている複数の入力が適切なやり方でモデルにおいて考慮される。さらに、データに基づくモデルを利用したモデル化によって、個別入力の付加によりモデルを補完する可能性が与えられる。
【０００３】
データに基づく関数モデルは、通常は、各適用のために十分なモデル化精度を達成するために多数のサンプルポイントに基づいている。多数のサンプルポイントにより、例えばガウス過程モデル又は多層パーセプトロンモデル等の、データに基づく関数モデルを用いてモデル値を計算するためには高い計算能力が必要となる。従って、制御装置での適用において、このようなデータに基づく関数モデルを実時間で計算しうるために、ハードウェア構成に基づくモデル計算ユニットが設けられうる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明に基づいて、請求項１に係る多層パーセプトロンモデルのニューロン層を計算するためのモデル計算ユニット、並びに、独立形式請求項に係る制御装置及び制御装置を使用する方法が構想される。
【０００５】
更なる別の構成が、従属請求項において示される。
【０００６】
第１の観点によれば、多層パーセプトロンモデルを計算するためのモデル計算ユニットであって、モデル計算ユニットは、ハードウェアで形成されハードワイヤードされており、
‐入力ベクトルの１つ以上の入力に従って、複数のニューロンを有する多層パーセプトロンモデルのニューロン層の出力ベクトルの１つ以上の出力を計算するよう構成された演算コアと、
‐各ニューロン層に対して、入力ベクトルの入力を格納するためのデータメモリ区分、及び出力ベクトルの出力を格納するためのデータメモリ区分が対応付けられているデータメモリ領域が設けられたメモリと、
‐対応付けられた入力ベクトルの入力に基づいて各ニューロン層を計算し、出力ベクトルの各得られた出力を対応付けられたデータメモリ区分に格納するよう、演算コアに連続的に命令するよう構成されたＤＭＡユニットと、を備え、
‐ニューロン層のうちの少なくとも１つのニューロン層に対応づけられた入力ベクトルのためのデータメモリ区分は、２つの異なるニューロン層の少なくとも２つの出力ベクトルのデータメモリ区分を、少なくとも部分的に含む、上記モデル計算ユニットである。
【０００７】
上記のモデル計算ユニットでは、データに基づくモデルの一部としての、各可変数のニューロンを有する多層パーセプトロンモデル（ＭＬＰモデル）の複数のニューロン層を計算することを可能とする設計が構想される。多層パーセプトロンモデルの利用によって、例えばガウス過程モデル等の比較可能なデータに基づくモデルの場合よりも少ない数のサンプル点を含む、データに基づくモデル化が提示される。
【０００８】
上記のモデル計算ユニットの構想は、多層パーセプトロンモデルのニューロン層を計算するためのこのモデル計算ユニットを、制御装置の演算コアにハードウェア構造により別体で形成することである。このやり方で、ほぼハードワイヤードされたハードウェア回路が、以下のような機能を実現するために提供され、即ち、多層パーセプトロンモデルの１つ以上のニューロン層を計算し、その際に、ソフトウェアで制御される、制御装置のマイクロプロセッサで、非常に僅かな計算負荷しか生じさせないことを可能とする上記機能を実現するために提供されうる。モデル計算ユニットにより提供されるハードウェア加速化によって、多層パーセプトロンモデルを実時間で計算することが可能であり、従って、このようなモデルの利用は、自動車の内燃機関のための制御装置での適用にとって有益でありうる。
【０００９】
ハードウェアにより形成された上記モデル計算ユニットによって、制御装置の演算コアでの、多層パーセプトロンモデルの複数のニューロン層の自動的に連続的に行われる計算が可能となる。ハードワイヤードにより形成された別体のモデル計算ユニットへと、多層パーセプトロンモデルの計算を移すことによって、マイクロプロセッサと、多層パーセプトロンモデルを計算するためのモデル計算ユニットと、の間の通信を可能な限り減らし、このようにしてモデル値の計算のための時間消費を最小限に抑えることが可能である。
【００１０】
多層パーセプトロンモデルのモデル値が計算される際には、通常では層単位で計算が実行され、その際に、入力ベクトルの入力が第１のニューロン層に供給され、第１のニューロン層の計算によって、中間出力ベクトルの中間出力が獲得され、この中間出力自体は、パーセプトロンモデルの下位ニューロン層のための中間入力として機能する。
【００１１】
パーセプトロンモデルのニューロン層の数に対応して、上記の計算が連続的に行われ、従って、最後のニューロン層の結果としてモデル値が獲得される。このために、ＤＭＡユニットと共に演算フローの制御を行うことが可能なメモリ構造が設けられる。
【００１２】
異なるニューロン層に亘る純粋に連続的な計算を含む上述のパーセプトロンモデルに加えて、フィードバック型（逆伝播型）ネットワークを有する他のパーセプトロンモデル、即ち、１のニューロン層の出力の、これに先行するニューロン層の入力ベクトルの幾つかの入力へのフィードバックを有する他のパーセプトロンモデルが公知である。これにより、ニューロンでの時間的に先行する状態の格納が実現されうる。このモデルは、以下では、フィードバック型（逆伝播型）パーセプトロンモデルと呼ばれる。
【００１３】
さらに、フィードフォーワード型（順伝播型）ネットワークを含むパーセプトロンモデル、即ち、出力の一部が、少なくとも１つの直接的に後に続くニューロン層では考慮されず、従って、１のニューロン層の中間出力の一部が、直接的には後に続かないニューロン層の入力として利用され、即ち直接的に後に続くニューロン層を飛ばして利用されるパーセプトロンモデルを設けることが可能である。このモデルは、以下では、フィードフォーワード型（順伝播型）パーセプトロンモデルと称される。このパーセプトロンモデルは、フィードバック型パーセプトロンモデルと組み合わせても形成されうる。
【００１４】
１のニューロン層の入力ベクトルの入力を格納するための区分と、他の後続のニューロン層のための入力ベクトルの入力を格納するための区分と、のそれぞれを含むデータメモリ領域を設けることによって、モデル計算ユニットでのモデル値の自動的な計算を、更なる別の複写過程なしで設けることが可能である。ここで、各ニューロン層の出力ベクトルの出力はそれぞれ、次に計算されるニューロン層の入力を格納するためのデータメモリ領域の区分に格納される。ＤＭＡユニットによって、演算コアでの対応するニューロン層の計算を新たに開始することで、多層パーセプトロンモデルの所定数のニューロン層を自動的に計算することが可能である。
【００１５】
フィードバック型及び／又はフィードフォーワード型パーセプトロンモデルは、ニューロン層の入力ベクトルのためのデータメモリ区分が、データメモリ領域のアドレス範囲に以下のように配置され、即ち、異なるニューロン層の出力ベクトルに対応付けられている上記データメモリ区分が完全又は部分的に重なり合うように、データメモリ領域のアドレス範囲に配置されることで実現されうる。パーセプトロンモデルを計算するための複数の呼び出しの間の時点にデータメモリ領域が消去又は上書きされないことによって、データメモリ領域の特定のデータメモリ区分において、パーセプトロンモデルのニューロン層の先行する計算の出力ベクトルが引き続き提供され、入力ベクトルのデータメモリ区分の位置に従って、ニューロン層を計算するための入力ベクトルの一部として利用されうる。これにより、フィードバックが自動的に得られる。
【００１６】
フィードフォーワード型パーセプトロンモデルであるニューロン層を飛ばすことが、比較が可能なやり方で、以下のことによって実現され、即ち、あるニューロン層の中間出力を格納するためのデータメモリ領域と、直接的には後に続かないニューロン層の入力を格納するためのデータメモリ領域の区分と、を重ねることによって実現されうる。
【００１７】
特に、以下のような設定メモリ領域を設けることが可能であり、即ち、計算の流れを設定し、及び、ニューロン層の数、及び、ニューロン層ごとの所定数のニューロンをパラメータ化し、ニューロン層の計算順序を設定することを可能とする設定メモリ領域を設けることが可能である。さらに、ＤＭＡユニットでは、データメモリ領域のある区分であって、入力ベクトルの入力がそこから読み出され及びニューロン層の出力ベクトルの出力がそこに書き込まれる上記区分を、１のニューロン層の計算の出力が後続のニューロン層のための中間入力として再定義されるように、アドレス指定することが構想される。これにより、ニューロン層の新たな計算の自動的な開始によって、パーセプトロンモデルの多層での計算のフローが、演算コアのメモリの設定メモリ領域での適切なパラメータ化によって構想されうる。このようにして、演算コアに対して多層パーセプトロンモデルの計算というタスクをマイクロプロセッサにより予め設定し、マイクロプロセッサによる更なる介入なしに、多層パーセプトロンモデルの出力値としてのモデル値を、マイクロプロセッサによって計算の終了後に呼び出し又は受信することが可能である。
【００１８】
さらに、ニューロン層のうちの少なくとも１つのニューロン層に対応づけられた入力ベクトルのためのデータメモリ区分は、先行するニューロン層の出力ベクトルのデータメモリ区分を完全に含みうる。
【００１９】
さらに、ニューロン層のうちの少なくとも１つのニューロン層に対応づけられた入力ベクトルのためのデータメモリ区分は、上記先行するニューロン層とは異なるニューロン層、特に、ある先行するニューロン層又は後続のニューロン層の出力ベクトルのデータメモリ区分を部分的に持っているか又は含む。
【００２０】
２つの異なるニューロン層の少なくとも２つの出力ベクトルのデータメモリ区分は、データメモリ領域のアドレス範囲において互いに境を接することが構想されうる。
【００２１】
一実施形態によれば、ニューロン層ごとのメモリは、各設定メモリ区分に設定パラメータを格納するための設定メモリ領域を有し、ＤＭＡユニットは、演算コアに以下のことを連続的に命令するよう構成され、即ち、各設定メモリ区分の設定パラメータに基づいて各ニューロン層を計算し、入力ベクトルを設定パラメータによる定義に基づいて計算し、各得られた出力ベクトルを、対応する設定パラメータにより定義された、データメモリ領域のデータメモリ区分に格納するよう、演算コアに連続的に命令するよう構成されうる。
【００２２】
さらに、ＤＭＡユニットが、ニューロン層の計算の終了後に次のニューロン層のための設定パラメータを演算コアに提供するよう構成され、上記計算は、１つ以上の設定パラメータによって終了されることが構想されうる。
【００２３】
一実施形態によれば、演算コアは、ニューロン層の現在の計算の終了をＤＭＡユニットに対してシグナリングするよう構成可能であり、ＤＭＡユニットは、他の設定メモリ区分に格納された設定パラメータに基づいて、次のニューロン層の計算を開始する。
【００２４】
さらに、演算コアは、複数のニューロンを有する多層パーセプトロンモデルのニューロン層ごとに、入力ベクトルの１つ以上の入力と、重み付け係数を含む重み付けマトリクスと、ニューロンごとに予め設定されたオフセット値と、に従って、ニューロンごとに出力を計算するよう構成可能であり、各ニューロンについて、ニューロン及び入力によって決定される重み付け係数により重み付けされた、入力の値の和に、ニューロンに予め設定されたオフセット値が加えられ、結果が活性化関数によって変換され、該当するニューロンのための出力が獲得される。
【００２５】
一実施形態によれば、演算コアは、集積モジュールの平面領域に形成されうる。
【００２６】
他の観点によれば、マイクロプロセッサと、１つ以上の上記モデル計算ユニットと、を含む制御装置が設けられ、制御装置は、特に集積回路として形成されうる。
【００２７】
更に別の観点によれば、自動車内の内燃機関及び／又はエレクトリックパワートレイン及び／又はエネルギー貯蔵器を含むエンジンシステムを制御するための制御装置としての、上記制御装置を使用する方法が構想される。
【図面の簡単な説明】
【００２８】
以下では、実施形態が、添付の図面を用いて詳細に解説される。
【図１】自動車内のエンジンシステムのための実装のための制御装置の概略図を示す。
【図２】制御装置の構成要素としてのモデル計算ユニットの概略図を示す。
【図３】ＭＬＰモデルのニューロン層の概略図を示す。
【図４】図４ａ〜４ｄは可能な活性化関数の図を示す。
【図５】演算コアの設定メモリ領域の設定メモリ区分を示す。
【図６】図６ａは設定メモリ領域の区分けを、図６ｂはデータメモリ領域の区分けを示す。
【図７】モデル計算ユニットのＤＭＡユニットの機能を示すためのフローチャートを示す。
【図８】フィードバック型ニューロン層及びフィードフォーワード型ニューロン層を含むパーセプトロンモデルの概略図を示す。
【図９】図８のパーセプトロンモデルについての様々なニューロン層の入力ベクトル及び出力ベクトルのためのデータメモリ区分の例示的なアドレス位置の概略図を示す。
【発明を実施するための形態】
【００２９】
図１は、制御される技術的システムの一例として内燃機関３を備えるエンジンシステム１のための制御装置２の概略図を例示している。制御装置２は、マイクロプロセッサ２１と、モデル計算ユニット２２と、を含み、マイクロプロセッサ２１とモデル計算ユニット２２とは、別々のモジュールとして形成され、又は統合された形態により、チップ上の別々の平面領域に形成されうる。特に、モデル計算ユニット２２は、構造的にマイクロプロセッサ２１の演算コアから分けることが可能なハードウェア回路である。
【００３０】
モデル計算ユニット２２は、基本的にハードワイヤードされており、これに対応じて、マイクロプロセッサ２１のように、ソフトウェアコードを実行しこれによりソフトウェアによって予め設定される可変的な関数を実行するようには構成されていない。換言すれば、モデル計算ユニット２２にはプロセッサが設けられておらず、従って、モデル計算ユニット２２は、ソフトウェアコードによっては駆動可能ではない。予め設定されたモデル関数に焦点を絞ることによって、このようなモデル計算ユニット２２の、リソースが最適化された実現が可能となる。集積された構造形態において、モデル計算ユニット２２は、面積が最適化されて（ｆｌａｅｃｈｅｎｏｐｔｉｍｉｅｒｔ）実現され、このことによってさらに、高速の計算が可能となる。
【００３１】
制御装置２は基本的に、内燃機関３のセンサシステムにより検知されたセンサ信号Ｓ又はセンサ値及び／又は外部の設定Ｖを処理し、周期的に、例えば１〜１００ｍｓの固定で予め定められた時間間隔で、又は角度に同期して、駆動される内燃機関のクランク軸の角度に従って、１つ以上の対応する駆動制御変数Ａの値を内燃機関３に印加するために役立ち、従って、内燃機関３は公知のやり方で駆動可能である。
【００３２】
図２には、モデル計算ユニット２２がより詳細に示されている。モデル計算ユニット２２は、状態機械１１と、メモリ１２と、１つ以上の演算ブロックと、を含み、１つ以上の演算ブロックは、例えば、１つ以上のＭＡＣブロック１３（固定少数点演算のためのＭＡＣ（Ｍｕｌｔｉｐｌｙ‐ＡＣｃｕｍｕｌａｔｅ）、浮動小数点演算のためのＦＭＡ（Ｆｕｓｅｄ‐Ｍｕｌｔｉｐｌｙ‐Ａｄｄ））、活性化関数ＡＣＴを計算するための活性化関数計算ブロック１４、及び、任意に、加算ブロック１５、及び／又は、乗算ブロック１６を含む。状態機械１１と１つ以上の演算ブロックとが、モデル計算ユニット２２の演算コア１８を形成する。状態機械１１によって、メモリ１２内のデータメモリ領域１２２（入力メモリ領域）に格納された入力の値が、反復されるループ計算によって計算され、従って、中間出力又は出力が獲得され、この中間出力又は出力は、メモリ１２の、計算されたニューロン層に対応付けられた対応する出力メモリ領域に書き込まれる。
【００３３】
上記計算の制御は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）ユニット１７を用いて行うことが可能であり、ＤＭＡユニット１７は、演算コアのレジスタ、及び各ニューロン層の計算に関連するデータメモリ領域への１つ以上の複写過程を行う。
【００３４】
状態機械１１は、多層パーセプトロンモデルの個々のニューロン層を計算するよう構成される。状態機械１１は、以下の疑似コードによって記述されうる。
/* 入力変換 */
for (k=0; k<p7; k++) {
ut[k] = u[k]*p1[k] + p2[k];
}
/* ループ計算 */
for (j=p8; j<p6; j++) {
i = j * P7;
t = p3[j];
for (k=0; k<p7； ktt) {
t += V[i+k] * ut[k];
}
y[j] = act(t);
}
/* 出力変換 */
for (k=0; k<p6; k++) {
z[k] = y[k] * p4[k] + p5[k];
}
但し、
ｐ７：入力ベクトルの入力のための最大インデックス値
ｐ８：現在のニューロン層のニューロンの計算のための最小インデックス値又は初期値
ｐ６：現在のニューロン層のニューロンのための最大インデックス値
ｐ３：オフセット値
ｐ１、ｐ２：入力変換のための変数
ｐ４、ｐ５：出力変換のための変数
【００３５】
上記の疑似コードを用いて、計算される層のニューロンごとに以下の計算が実行される。即ち、
【００３６】
ｊ＝０…ｐ６‐１について、
【００３７】
【数１】
2019530114.tif 000003
【００３８】
これは、図３に示されるような、多層パーセプトロンモデルのニューロン層のための計算を表している。
【００３９】
図３は、複数のニューロン２０のニューロン層を示している。複数のニューロン２０には、入力ベクトルｕｔ０…ｕｔｐ６−１の入力の値が供給される。入力の値は、重み付け係数ｖ０…ｐ７−１，０…ｐ６−１からの対応する所定の重み付けマトリクスを用いて重み付けされる。この重み付けは通常、対応付けられた重み付け係数ｖ０…ｐ７−１，０…ｐ６−１を乗算的に加えることによって行われる。重み付け係数は一般に、他のやり方でも入力ベクトルの値に加えられうる。
【００４０】
入力ベクトルｕｔ０…ｕｔｐ６−１の上記重み付けされた値の和の結果には、オフセット値Ｏ０…Ｏｐ６−１が加えられ、特に加算的に加えられる。この結果は、所定の活性化関数「ａｃｔ」によって変換される。結果として、出力ベクトルｙ０…ｙｐ６−１の対応する値が獲得される。ニューロンごとにオフセット値を設けることによって、モデル形成のための更なる自由度が生じる。
【００４１】
インデックス付き変数ｐ６の設定によって、計算されるニューロン層のニューロン２０の数が調整されうる。多層パーセプトロンモデルは、ニューロン層の出力ベクトルｙ０…ｙｐ６−１の値を、モデル計算ユニット２２での次のニューロン層の計算用の入力ベクトルとして利用することによって利用可能であり、従って、多層パーセプトロンモデルの複数のニューロン層を、対応して変更されたパラメータによる上記の疑似コードに係る関数の呼び出し又はモデル計算ユニット２２の呼び出しを繰り返すことによって、実現することが可能である。
【００４２】
入力ベクトルの入力の入力変換、及び／又は、出力ベクトルの出力の出力変換を、ニューロンごとに予め設定された正規化変数ｐ１及びｐ２、又はｐ４及びｐ５を用いて行うことが可能である。入力における上記入力変換及び／又は出力変換は省略されてもよい。
【００４３】
ＭＬＰモデルの層単位での計算によって、モデル計算ユニット２２のすっきりとした構成が可能となり、集積された構造形態においてモデル計算ユニット２２が必要とする面積は小さい。それにも関わらず、モデル計算ユニット２２によって、多層パーセプトロンモデルの計算が簡単なやり方で、出力ベクトルの出力の値を他のニューロン層の計算用の入力ベクトルの入力としてフィードバック又は再定義することで、可能となる。
【００４４】
活性化関数「ａｃｔ」として、複数の活性化関数のうちの１つの活性化関数を提供することが可能であり、上記１つの活性化関数は、モデル計算ユニット２２の活性化関数計算ブロック１４によって計算されうる。活性化関数は、例えば、図４ａ〜図４ｄに対応して示されるような、ランプ関数（Ｋｎｉｃｋｆｕｎｋｔｉｏｎ）、双曲線正接関数、シグモイド関数、又は一次関数であってもよい。
【００４５】
モデル計算ユニット２２のメモリ１２は、設定メモリ１２１を有し、この設定メモリ１２１は、所定数のニューロン層のための設定パラメータを、各設定メモリ区分Ａで格納することが可能である。設定メモリ領域１２１は、制御装置のメインメモリの構成要素であり、この設定メモリ領域１２１は、マイクロコントローラ２１とモデル計算ユニット２２との双方によってアクセス又は利用されうる。代替的に、設定メモリ区分Ａは、別体のフラッシュメモリにも、又は演算コア１８にとって外部のメモリにも設けられうる。
【００４６】
設定メモリ区分Ａは個別のメモリアドレスを有し、この個別のメモリアドレスには、図５に例示するように、モデル計算ユニット２２の設定パラメータが所定の順序に対応して格納される。個々の設定メモリ区分Ａを利用するために、ニューロン層の計算のためのそこに格納された値が、ＤＭＡユニット１７によって、演算コア１８のそのために設けられたレジスタに複写される。複写過程は、マイクロコントローラ２１又は演算コア１８が関与することなく行われ、ＤＭＡユニット１７によって自動的に実行される。
【００４７】
各設定メモリ区分Ａのアドレス位置Ｒｅｇ１〜ＲｅｇＰは、設定メモリ領域１２１の設定メモリ区分Ａが対応付けられた該当するニューロン層での計算を実行するためのパラメータを含んでいる。例えば、設定メモリ位置Ｒｅｇ１〜ＲｅｇＰは、上記の疑似コードに対応するパラメータｐ１〜ｐ８を格納することが可能であり、かつ、特に、対応するアドレスポインタを介して、格納することが可能であり、対応するアドレスポインタが指すデータメモリ領域１２２に設けられたデータメモリ区分（対応する開始アドレスの指定により定義されたアドレス範囲）には、（現在計算されている）該当するニューロン層に関連した、入力ベクトルの入力又は中間入力ベクトルの中間入力、重み付けマトリクスの重み付け係数、オフセットベクトルのオフセット値が格納されている。
【００４８】
データメモリ領域１２２は、制御装置のメインメモリ内、又は、モデル計算ユニット２２の外部で対応付けられたメモリ内に設けられうる。さらに、設定パラメータＲｅｇ１〜ＲｅｇＰのうちの１つが、ニューロン層での計算の結果として獲得される得られた出力ベクトルの各出力を格納するデータメモリ区分Ｄのための開始アドレスを指定することが可能である。アドレスポインタの利用には利点がある。なぜならば、モデルパラメータと、入力ベクトルと、出力ベクトルと、の次元は可変的だからである。
【００４９】
さらに、設定メモリ領域１２１には、計算開始情報ＲｅｇＣｔｒｌを格納するためのアドレス位置を設けることが可能であり、この計算開始情報ＲｅｇＣｔｒｌは、特定データが書き込まれた際に、モデル計算ユニット２２での現在の（即ち、各設定メモリ区分に対応付けられた）ニューロン層の計算を開始させる。
【００５０】
さらに、別の状態レジスタメモリ領域Ｒが、状態情報を格納するための１つ以上のアドレス位置ＲｅｇＲ０１〜ＲｅｇＲ０Ｑを有しうる。状態情報は、パーセプトロンモデルの各ニューロン層の計算からのフィードバックを示しうる。状態情報は、例えば、モデル計算ユニット２２の演算状態（ｉｄｌｅ／ｂｕｓｙ）についての情報、計算の進捗（状態機械での疑似コードの計算の位置、例えば、入力変換、メインループ等の計算の位置）、パラメータの有効性（不正のアドレスポインタ、間違った／未対応の値（例えば、ｆｌｏａｔにおけるＩＮＦｉｎｉｔｙ又はＮｏｔ‐ａ‐Ｎｕｍｂｅｒ）等についての情報を有しうる。
【００５１】
さらに、利用されないメモリアドレスを各設定メモリ区分Ａに設けることが可能であり、従って、ＤＭＡユニット１７による、ブロックごとの設定メモリ区分Ａの処理が考慮される。
【００５２】
図６ａには、設定メモリ領域１２１での複数の設定メモリ区分Ａの配置が示されており、設定メモリ領域１２１では、図６ａに示されるように、設定パラメータが、連続する設定メモリ区分Ａに格納されている。そこでは、Ｎ個のニューロン層ＭＬＰ１…ＭＬＰＮのための設定パラメータを含むＮ個の設定メモリ区分の配置が予め設定されている。ニューロン層ごとの設定パラメータの数は変化しないため、設定メモリ区分Ａは、好適に、それぞれ同じ大きさで設けられる。
【００５３】
設定パラメータの幾つかは、アドレスポインタとして設けられており、対応して「＊」の印が付けられている。図６ｂに示されるように、アドレスポインタは、例えば制御装置のメインメモリ内に設けられた、データメモリ領域１２２のデータメモリ区分の開始アドレスを指し、上記データメモリ領域１２２から、該当するニューロン層の計算のために、入力ベクトルＭＬＰｘ＿ＥＶの入力、又は、中間入力ベクトルＭＬＰｘ＿ＥＶの中間入力（例えば、ＭＬＰ１＿Ｒｅｇ１＊、ＭＬＰ２＿Ｒｅｇ１＊等）、重み付けマトリクスからの重み付け係数、オフセットベクトルのオフセット値が呼び出される。さらに、アドレスポインタの１つは、出力ベクトルＭＬＰｘ＿ＡＶの得られた出力、又は、（計算すべき後続のニューロン層が存在する際には）中間出力ベクトルＭＬＰｘ＿ＡＶの得られた中間出力を格納するためのデータメモリ区分Ｄを指す（例えば、ＭＬＰ１＿Ｒｅｇ２＊、ＭＬＰ２＿Ｒｅｇ２＊等）。連続する設定メモリ区分Ａ内の設定パラメータの適切なパラメータ化によって、好適に以下のことが構想され、即ち、１のニューロン層の出力ベクトルを格納するためのデータメモリ区分Ｄの開始アドレスが、次のニューロン層の入力ベクトル又は中間入力ベクトルを格納するためのデータメモリ区分の開始アドレスに対応することが構想される。
【００５４】
入力及び出力のためのデータメモリ領域１２２のデータメモリ区分Ｄは、ニューロン層ごとに、所定数のアドレス位置により予め設定されており、上記所定数のアドレス位置によって、パーセプトロンモデルの対応するニューロン層のニューロンの対応する数が予め設定される。個々のニューロン層の入力ベクトルＭＬＰ１＿ＥＶ及び出力ベクトルＭＬＰ１＿ＡＶの開始アドレスは、メモリアクセスの粒度に従って区切化される。これにより、例えば図６ｂに示すような１つ以上の利用されないデータメモリ区分Ｄが生じる。この利用されないデータメモリ区分は、例えば、アドレスポインタが「ページ（Ｐａｇｅ）」単位でのみ、例えば８又は１６バイトまでのブロックで、アドレス指定しうる場合に発生する。
【００５５】
これにより、マイクロプロセッサ２１は、パーセプトロンモデルの複数のニューロン層を連続して計算するために、ＤＭＡユニット１７のみ初期設定すればよく、その際に、マイクロプロセッサによって、対応するプログラムフロー制御量が獲得されることはない。ニューロン層の計算を連続的に呼び出すことによるフロー制御は、ＤＭＡユニット１７によって行われる。
【００５６】
図７では、ＤＭＡユニット１７によるモデル計算ユニットの制御を示すフローチャートが示されている。開始に際して、マイクロプロセッサ２１による設定が行われ、その際は、対応するモデルパラメータ、即ち、第１のニューロン層の入力の値、ニューロン層ごとの重み付けマトリックスの値、及び、ニューロン層ごとのオフセットベクトルのオフセット値、並びに、設定パラメータがデータメモリ領域１２２の対応するデータメモリ区分Ａ、又は設定メモリ領域１２１の対応する設定メモリ区分Ａに書き込まれ、その際に、設定パラメータは、設定メモリ領域１２１の対応する設定メモリ区分Ａに設定される。
【００５７】
工程Ｓ１において、ＤＭＡユニット１７がマイクロコントローラ２１によって、多重複写転送（Ｍｕｌｔｉｐｌｅ‐Ｃｏｐｙ‐Ｔｒａｎｓｆｅｒ）であって、例えば設定メモリ領域１２１のソースアドレスが増分され、及び複写先として演算ユニットのレジスタが設定される上記多重複写転送のために設定される。これにより、ＤＭＡユニット１７は、各設定パラメータ区分Ａについて行われる複写過程の回数と、ＭＬＰモデル全体の複写過程の回数（＝ＭＬＰニューロン層の数）とが分かる。
【００５８】
ＤＭＡユニット１７は、演算ユニットのレジスタへの第１の設定パラメータ区分Ａの第１の複写過程を開始し、続いて、工程Ｓ２において、第１のニューロン層に対応付けられた設定パラメータ（ＭＬＰ１＿Ｒｅｇ１〜ＭＬＰ１＿ＲｅｇＰ、ＲｅｇＣｔｒｌ）に基づいて、第１のニューロン層の計算を開始する。このために、ＤＭＡユニット１７は、例えば計算開始情報ＲｅｇＣｔｒｌが設定メモリ領域１２１から対応するアドレス位置／レジスタに書き込まれることで、計算の開始をシグナリングする。設定パラメータのアドレスポインタが、以下のようなデータメモリ区分Ｄを指定し、即ち、第１のニューロン層の出力ベクトルの出力を計算するために、入力ベクトルの入力、重み付けマトリクスからの重み付け係数、及びオフセットベクトルのオフセット値をそこから取り出すべき上記データメモリ区分Ｄを指定する。
【００５９】
第１のニューロン層の出力が計算された後に、この出力は、対応する出力メモリブロックに存在し、この対応する出力メモリブロックは、ＤＭＡユニット１７によって、第１のニューロン層のための設定パラメータに基づいて、データメモリ領域１２２の対応するデータメモリ区分Ｄに格納される。
【００６０】
工程Ｓ３では、演算コア１８が、第１のニューロン層の計算が終了したことをＤＭＡユニット１７にシグナリングする。このことは、演算コア１７が、対応する設定パラメータによってＤＭＡユニット１７への割り込みを促すことにより、達成される。更なる別のニューロン層の計算のために、第１のニューロン層の計算からの出力が、以下のことにより、中間入力として見做され、即ち、ＤＭＡユニット１７が、上記更なる別のニューロン層に対応付けられた設定メモリ領域１２１の設定メモリ区分Ａから演算ユニットのレジスタへと設定パラメータを供給し、場合によっては、重み付けマトリクスの重み付け係数及びオフセットベクトルのオフセット値を、これらが前もってそこに格納されていない限りにおいて、アドレスポインタにより設定パラメータで示されるデータメモリ区分Ｄに格納することにより、上記中間入力として見做される。続いて、工程Ｓ４において計算が開始される。
【００６１】
工程Ｓ３及びＳ４の処理は、各他のニューロン層のために、最初に予め設定した数の複写すべき設定メモリ区分Ａに達するまで、繰り返される。最後のニューロン層の計算のための対応する設定パラメータが、演算コア１８が割り込みを直接的にマイクロプロセッサ２１に促すことで演算コア１８の割り込み読出しを定める。この場合、演算コア１８は、対応する割り込み信号をマイクロプロセッサ２１へとシグナリングし、マイクロプロセッサ２１は、これに応じて、モデル値を呼び出し又は他のやり方で受信する。代替的に、モデル計算ユニット２２が、割り込み信号をＤＭＡユニット１７に伝えてもよく、ＤＭＡユニット１７が、割り込み信号をマイクロコントローラ２１へとさらに伝える（連鎖割り込み（ｃｈａｉｎｅｄ  ｉｎｔｅｒｒｕｐｔ））。
【００６２】
設定メモリ領域１２１は、計算のために必要なデータのためのメモリ区分を対応して参照させる設定パラメータも有しうる。さらに、パーセプトロンモデルの計算の終了後には、第２のパーセプトロンモデルの新たな第１のニューロン層の計算が行われうる。このためには、第２のパーセプトロンモデルの第１のニューロン層の入力の部分ではなく、第１のパーセプトロンモデルの最後のニューロン層の出力としてのモデル値が格納されているアドレス位置だけが必要である。
【００６３】
図８には、フィードフォーワード及びフィードバックが設けられたパーセプトロンモデルが概略的に示されている。図８には、ニューロン層ＭＬＰ１〜ＭＬＰ４を含む４層のパーセプトロンモデル１００の一例が示されている。各ニューロン層ＭＬＰ１〜ＭＬＰ４は、入力ベクトル層１０１と、出力ベクトル層１０２と、個々のニューロン１０４を含むニューロン層１０３と、を有する。先に記載したように、ニューロン層１０３のニューロン１０４の数は、ニューロン層ごとに異なっていてもよい。
【００６４】
入力ベクトル１０１は、データメモリ領域１２２のデータメモリ区分Ｄに格納されており、出力ベクトル１０２は、データメモリ領域１２２の、少なくとも部分的に上記データメモリ区分Ｄとは異なるデータメモリ区分Ｄに格納されている。完全に又は部分的に、出力ベクトルを格納するためのデータメモリ区分Ｄは、後続のニューロン層の計算のための入力ベクトルを格納するためのデータメモリ区分Ｄに対応しうる。同じニューロン層又は異なるニューロン層の入力ベクトル及び出力ベクトルのためのデータメモリ区分Ｄの定義を適切に一致させることによって、次のニューロン層のための中間出力を考慮して、フィードバック、及び、あるニューロン層を飛ばすことが実現されうる。
【００６５】
図９には、データメモリ領域１２２におけるデータメモリ区分Ｄのアドレス位置が概略的に示されており、ここでは、データメモリ区分Ｄは、入力ベクトルのための「ニューロン層の名称」＿「ＥＶ」、及び、出力ベクトルのための「ニューロン層の名称」＿「ＡＶ」により称されている。重複領域又は重複アドレス部分はＵ１〜Ｕ４で印が付けられている。
【００６６】
図８に示したパーセプトロンモデルの実施例では、例えば、第２のニューロン層ＭＬＰ２の出力ベクトルの一部が、第２のニューロン層ＭＬＰ２にフィードバックされる。この場合、第１のニューロン層ＭＬＰ１の出力ベクトルと合わせて、第２のニューロン層ＭＬＰ２の入力ベクトルが形成され、従って、第２のニューロン層で利用される入力ベクトルは、第２のニューロン層ＭＬＰ２の出力ベクトルのフィードバックされた部分と、第１のニューロン層ＭＬＰ１の出力ベクトルと、で構成されている。しかしながら、モデル計算ユニット２２の構成に対応して、入力ベクトルが、関連するデータメモリ区分Ｄで供給されるということが構想される。この場合には、第２のニューロン層ＭＬＰ２の入力ベクトルは、関連するデータメモリ区分ＭＬＰ２＿ＥＶから取り出される。
【００６７】
このことは、第１のニューロン層ＭＬＰ１の出力ベクトルのためのデータメモリ区分ＭＬＰ１＿ＡＶと、第２のニューロン層ＭＬＰ２の出力ベクトルのフィードバックされた部分のためのデータメモリ区分ＭＬＰ２＿ＡＶと、が互いに相前後して連続することによって達成される。この場合に、第２のニューロン層ＭＬＰ２の入力ベクトルのためのデータメモリ区分ＭＬＰ＿ＥＶは、以下のように定義され、即ち、上記データメモリ区分ＭＬＰ＿ＥＶが、第１のニューロン層ＭＬＰ１の出力ベクトルのためのデータメモリ区分ＭＬＰ１＿ＡＶと、第２のニューロン層ＭＬＰ２の出力ベクトルのフィードバックされた部分のためのデータメモリ区分ＭＬＰ２＿ＡＶと、を含むように定義される。第２のニューロン層ＭＬＰ２の出力ベクトルのフィードバックされた部分は、第１の重複アドレス部分Ｕ１と称される。
【００６８】
さらに、第２のニューロン層ＭＬＰ２での計算は、第４のニューロン層ＭＬＰ４の出力ベクトルを利用する。このことは、第１のニューロン層ＭＬＰ１の出力ベクトルのためのデータメモリ区分ＭＬＰ１＿ＡＶと、第４のニューロン層ＭＬＰ４の出力ベクトルのデータメモリ区分ＭＬＰ４＿ＡＶと、が互いに相前後して連続することによって達成される。第２のニューロン層ＭＬＰ２の入力ベクトルのためのデータメモリ区分ＭＬＰ２＿ＥＶは、上記の位置付けに加えて以下のように定義され、即ち、上記データメモリ区分ＭＬＰ２＿ＥＶが、第１のニューロン層ＭＬＰ１の出力ベクトルのためのデータメモリ区分ＭＬＰ１＿ＡＶと、第２のニューロン層ＭＬＰ２の出力ベクトルのフィードバックされた部分のためのデータメモリ区分ＭＬＰ２＿ＡＶと、第４のニューロン層ＭＬＰ４のフィードバックされた出力ベクトルのためのデータメモリ区分ＭＬＰ４＿ＡＶと、を含むように定義される。第４のニューロン層ＭＬＰ４の出力ベクトルのデータメモリ区分ＭＬＰ４＿ＡＶは、第２の重複アドレス区分Ｕ２と称される。
【００６９】
さらに、第３のニューロン層ＭＬＰ３での計算は、第１のニューロン層ＭＬＰ１の出力ベクトルのフィードフォーワードされた部分と、第２のニューロン層ＭＬＰ２の出力ベクトルと、を利用する。このことは、第１のニューロン層ＭＬＰ１の出力ベクトルのためのデータメモリ区分ＭＬＰ１＿ＡＶと、第２のニューロン層ＭＬＰ２の出力ベクトルのデータメモリ区分ＭＬＰ２＿ＡＶと、が互いに相前後して連続することによって達成される。第３のニューロン層ＭＬＰ３の入力ベクトルのためのデータメモリ区分ＭＬＰ３＿ＥＶは、上記の位置付けに加えて以下のように定義され、即ち、上記データメモリ区分ＭＬＰ３＿ＥＶが、第２のニューロン層ＭＬＰ２の出力ベクトルのためのデータメモリ区分ＭＬＰ２＿ＡＶと、第１のニューロン層ＭＬＰ１の出力ベクトルのフィードフォーワードされた部分のためのデータメモリ区分と、を含むように定義される。第１のニューロン層ＭＬＰ１の出力ベクトルのフィードフォーワードされた部分のデータメモリ区分は、重複アドレス区分Ｕ３と称される。
【００７０】
追加的に、第３のニューロン層ＭＬＰ３での計算は、同じ第３のニューロン層ＭＬＰ３の出力ベクトルＭＬＰ３＿ＡＶのフィードバックされた部分であって、第４の重複アドレス区分Ｕ４に相当する上記部分を利用する。このことは、以下のことにより達成され、即ち、第３のニューロン層ＭＬＰ３の出力ベクトルＭＬＰ３＿ＡＶのためのデータメモリ区分ＭＬＰ３＿ＡＶと、第２のニューロン層ＭＬＰ２の出力ベクトルＭＬＰ２＿ＡＶのデータメモリ区分ＭＬＰ２＿ＡＶと、が互いに相前後して連続することで達成される。
【００７１】
第３のニューロン層ＭＬＰ３の入力ベクトルのためのデータメモリ区分ＭＬＰ３＿ＥＶは、上記の位置付けに加えて以下のように定義され、即ち、上記データメモリ区分ＭＬＰ３＿ＥＶが、第２のニューロン層ＭＬＰ２の出力ベクトルＭＬＰ２＿ＡＶのためのデータメモリ区分と、第１のニューロン層ＭＬＰ１の出力ベクトルＭＬＰ１＿ＡＶのフィードフォーワードされた部分（第３の重複範囲Ｕ３）のためのデータメモリ区分と、第３のニューロン層ＭＬＰ３の出力ベクトルＭＬＰ３＿ＡＶのフィードバックされた部分（第４の重複範囲Ｕ４））のためのデータメモリ区分と、を含むように定義される。
【００７２】
一般に、複数のニューロン層の出力ベクトルのデータメモリ区分Ｄは、当該データメモリ区分Ｄが共同で、上記複数のニューロン層に続いて計算されるニューロン層の入力ベクトルを完全又は部分的に形成する場合には、隣り合って配置されている。入力ベクトルのアドレス指定は通常、関係のあるアドレス範囲として行われるため、この場合、計算されるニューロン層の入力ベクトルのためのデータメモリ区分Ｄは、当該データメモリ区分Ｄと該当する出力ベクトルのデータメモリ区分Ｄとが重なり合うように、定義される。
【００７３】
個々のニューロン層の計算は、時間的に連続して、第１のニューロン層から開始して最終ニューロン層まで、即ち、本実施例では第４のニューロン層まで行われる。しかしながら、フィードバックの場合、フィードバックがそこへと行われるニューロン層の新たな計算は、直接的には行われない。その代わり、出力ベクトルのフィードバックされた部分が、パーセプトロンモデルの次の完全な計算においてようやく考慮されうる。これにより、出力ベクトルのフィードバックされた部分の考慮に遅延が生じる。このことは、図８の遅延要素１０５により表されている。この遅延要素１０５は機能のみ表しており、モデル計算ユニット２２では実際には形成されない。なぜなら、上記機能は、データメモリ領域１２２での一時格納によって遂行されるからである。
【図１】
2019530114.tif 000004
【図２】
2019530114.tif 000005
【図３】
2019530114.tif 000006
【図４ａ】
2019530114.tif 000007
【図４ｂ】
2019530114.tif 000008
【図４ｃ】
2019530114.tif 000009
【図４ｄ】
2019530114.tif 000010
【図５】
2019530114.tif 000011
【図６ａ−６ｂ】
2019530114.tif 000012
【図７】
2019530114.tif 000013
【図８】
2019530114.tif 000014
【図９】
2019530114.tif 000015
【国際調査報告】
2019530114.tif 000016
2019530114.tif 000017
2019530114.tif 000018
2019530114.tif 000019
2019530114.tif 000020
2019530114.tif 000021