(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-05
(45)【発行日】2024-04-15
(54)【発明の名称】メモリエラーに対する保護機能を有するニューラルネットワークのための推論計算
(51)【国際特許分類】
G06N 3/063 20230101AFI20240408BHJP
G06F 11/10 20060101ALI20240408BHJP
G06F 11/20 20060101ALI20240408BHJP
【FI】
G06N3/063
G06F11/10 648
G06F11/20 617
(21)【出願番号】P 2022552606
(86)(22)【出願日】2021-02-12
(86)【国際出願番号】 EP2021053443
(87)【国際公開番号】W WO2021175566
(87)【国際公開日】2021-09-10
【審査請求日】2022-09-01
(31)【優先権主張番号】102020202632.7
(32)【優先日】2020-03-02
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】クリストフ ショアン
(72)【発明者】
【氏名】レオナルド ルイス エッコ
(72)【発明者】
【氏名】アンドレ グントロ
(72)【発明者】
【氏名】ヨー プレティンクス
(72)【発明者】
【氏名】ゼバスティアン フォーゲル
【審査官】大塚 俊範
(56)【参考文献】
【文献】特開2018-116469(JP,A)
【文献】特開平07-295846(JP,A)
【文献】独国特許出願公開第102018202095(DE,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/063
G06F 11/10
G06F 11/20
(57)【特許請求の範囲】
【請求項1】
階層構造のニューラルネットワークの推論計算のためにハードウェアプラットフォーム(1)を動作させるための方法(100)であって、前記ハードウェアプラットフォーム(1)は、内部作業メモリ(2a)を備えた計算ユニット(2)と、前記計算ユニット(2)の外部に配置され、前記計算ユニット(2)と接続された外部作業メモリ(3)とを有する、方法において、
・前記ニューラルネットワークの第1の層の推論計算に必要とされる入力データ(11)の第1の部分と、前記入力データ(11)に関係する冗長情報(11a)とが、前記外部作業メモリ(3)から前記計算ユニット(2)の前記内部作業メモリ(2a)に読み込まれるステップ(110)と、
・前記冗長情報(11a)に基づき、前記入力データ(11)の完全性がチェックされるステップ(120)と、
・前記入力データ(11)がエラーなしと識別されたことに応答して、作業結果(12)を取得するために、前記計算ユニット(2)によって、前記入力データ(11)に対し前記第1の層の推論計算(130)の少なくとも一部が実施されるステップと、
・前記作業結果(12)に対して冗長情報(12a)が求められるステップ(140)であって、前記冗長情報(12a)に基づき前記作業結果(12)の完全性をチェックし得る、ステップと、
・前記作業結果(12)及び前記冗長情報(12a)が、前記外部作業メモリ(3)に書き込まれるステップ(150)と、
を含
み、
前記作業結果(12)は、前記第1の層のニューロンの出力を含み、前記出力は、それぞれ前記ニューロンの入力の重み付けされた総和を含み、
前記推論計算(130)は、複数の畳込みカーネル(131)によるデータ(13)の畳込みを含み(131)、
前記冗長情報(12a)は、前記畳込みカーネルの総和である制御カーネルによる前記データ(13)の畳込みによって求められる(141)、
階層構造のニューラルネットワークの推論計算のためにハードウェアプラットフォーム(1)を動作させるための方法(100)。
【請求項2】
前記第1の層の推論計算に必要とされる前記入力データ(11)のすべての部分が、前記外部作業メモリから読み込まれて、前記計算ユニットによって処理され(160)、次いで、前記ニューラルネットワークの第2の層の推論計算のために必要とされる前記入力データ(11)が、前記外部作業メモリから読み込まれ、前記計算ユニットによって処理される(170)、
請求項1に記載の方法(100)。
【請求項3】
前記作業結果(12)に対する前記冗長情報(12a)に基づき、前記外部作業メモリ(3)への書き込み(150)前に、前記作業結果(12)が適正に計算されたのか否かが付加的にチェックされる(145)、
請求項
1又は2に記載の方法(100)。
【請求項4】
前記第1の層の前記推論計算(130)が、前記第1の層のニューロンの入力に対し非線形の少なくとも1つの計算ステップ(132)を含み、前記作業結果(12)が前記外部作業メモリ(3)から前記内部作業メモリ(2a)に再び読み込まれた後(110)、前記非線形の計算ステップが前記計算ユニット(2)によって実行される(133)、
請求項
1乃至
3のいずれか一項に記載の方法(100)。
【請求項5】
前記入力データ(11)がエラーを有すると識別されたこと(120)、及び/又は、前記作業結果(12)がエラーを伴い計算されたと識別されたこと(145)に応答して、前記冗長情報(11a,12a)に基づき前記入力データ(11)又は前記作業結果(12)におけるエラーが補正される(180)、
請求項1乃至
4のいずれか一項に記載の方法(100)。
【請求項6】
前記入力データ(11)がエラーを有すると識別されたこと(120)、及び/又は、前記作業結果(12)がエラーを伴い計算されたと識別されたことに応答して、前記エラーの原因とみなされる前記外部作業メモリ(3)の少なくとも1つのメモリ領域又は少なくとも1つのハードウェア構成要素に関して、エラーカウンタがインクリメントされる(190)、
請求項1乃至
5のいずれか一項に記載の方法(100)。
【請求項7】
前記エラーカウンタが予め設定された閾値を上回ったことの確認(195)に応答して、前記メモリ領域又は前記ハードウェア構成要素が故障していると識別される(200)、
請求項
6に記載の方法(100)。
【請求項8】
前記ハードウェアプラットフォーム(1)は、故障していると識別されたメモリ領域又は故障していると識別されたハードウェア構成要素の代わりに、予備メモリ領域又は予備ハードウェア構成要素が、以降の計算のために使用されるように再構成される(210)、
請求項
7に記載の方法(100)。
【請求項9】
物理的な測定プロセスによって、及び/又は、かかる測定プロセスの部分的又は完全なシミュレーションによって、及び/又は、かかる測定プロセスにより観測可能な技術システムの部分的又は完全なシミュレーションによって得られた光学画像データ、熱画像データ、ビデオデータ、レーダデータ、超音波データ、及び/又は、LIDARデータが、前記ニューラルネットワークの入力データ(11
*)として準備される(105)、
請求項1乃至
8のいずれか一項に記載の方法(100)。
【請求項10】
前記ニューラルネットワーク全体としての作業結果(12
*)が処理されて1つの制御信号(9)が形成され(220)、前記制御信号(9)によって、車両(50)、及び/又は、大量生産製品の品質コントロールシステム(70)、及び/又は、医療画像生成システム(80)、及び/又は、アクセスコントロールシステム(90)が制御される(230)、
請求項1乃至
9のいずれか一項に記載の方法(100)。
【請求項11】
1つ又は複数のコンピュータ上において実行されるときに、請求項1乃至
10のいずれか一項に記載の方法(100)を前記1つ又は複数のコンピュータに実施させるための機械可読命令を含むコンピュータプログラム。
【請求項12】
請求項
11に記載のコンピュータプログラムを含む機械可読データ担体。
【請求項13】
請求項
11に記載のコンピュータプログラム及び/又は請求項
12に記載の機械可読データ担体を装備したコンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、使用されるハードウェアプラットフォーム上における過渡的エラーに対し、ニューラルネットワークの推論動作中に発生する計算を保護することに関する。
【背景技術】
【0002】
背景技術
ニューラルネットワークの推論においては、ニューロンの活性化が著しく多く計算され、この計算は、それらのニューロンに供給される入力が、ニューラルネットワークのトレーニングにおいて習得された重みに基づき重み付けられて合計されるようにして行われる。即ち、多数の乗算が実施され、続いてそれらの結果が加算される(積和演算、multiply-and-accumulate,MAC)。例えば、道路交通における少なくとも部分的に自動化された車両運転の場合のように、移動型の用途においては、特に、この種の計算に特化されたハードウェアプラットフォーム上にニューラルネットワークが実装される。これらのプラットフォームは、計算能力の単位あたりのハードウェアコスト及びエネルギー消費に関して、特に効率的である。
【0003】
これらのハードウェアプラットフォームの集積密度が高まるにつれて、一時的に即ち散発的に発生する計算エラーの確率が高まる。これは、例えば、バックグラウンド放射に由来する高エネルギー光子が、ハードウェアプラットフォームのある1つのメモリロケーション又はある1つの処理ユニットに衝突することによって、ある1つのビットがランダムに「反転する」可能性があることを意味する。さらに、このハードウェアプラットフォームは、まさに車両においては車載電源を多数の他の負荷と共有しており、それらの負荷によって、例えば電圧ピークのような妨害がハードウェアプラットフォームに入り込む可能性がある。このことに関する許容範囲は、ハードウェアプラットフォームの集積密度が高まるにつれて、より狭くなる。
【0004】
独国特許出願公開第102018202095号明細書が開示する方法によれば、入力値のテンソルを処理して出力値のテンソルを形成する際に、ニューラルネットワークにより誤って計算された出力値を、付加的な制御計算を用いて識別し、これを補正することもできる。
【先行技術文献】
【特許文献】
【0005】
【文献】独国特許出願公開第102018202095号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
発明の開示
本発明によれば、階層構造のニューラルネットワークの推論計算のためにハードウェアプラットフォームを動作させるための方法が開発された。このハードウェアプラットフォームは、内部作業メモリを備えた計算ユニットと、計算ユニットの外部に配置され、計算ユニットと接続された外部作業メモリとを有する。
【0007】
この構造の背景として挙げられることは、例えば、車両周囲からの観測データを評価するためといったような比較的大きいニューラルネットワークの場合には、ネットワークの各層の推論計算のために、計算ユニットの内部メモリに収まるよりも遙かに多くのデータを処理しなければならないことが多い、ということである。
【0008】
即ち、例えばごく一般的には、ニューラルネットワークは、例えば、カメラ画像、熱画像、レーダデータ、LIDARデータ又は超音波データといったような観測データを、予め設定された分類の1つ又は複数のクラスに割り当てるための分類器として形成することができる。これらのクラスは、例えば、観測領域内において検出対象となる物体又は状態を表すことができる。観測データは、例えば、車両に取り付けられた1つ又は複数のセンサから到来するものとすることができる。この場合には、ニューラルネットワークから供給されたクラスへの割り当てから、例えば、走行支援システム又は少なくとも部分的に自動化された車両運転のためのシステムの、具体的な交通状況に適合したアクションを導出することができる。ニューラルネットワークは、例えば、複数の層に分けられた畳込みニューラルネットワーク(convolutional neural network,CNN)とすることができ、このニューラルネットワークにおいて、1つ又は複数の畳込みカーネルが、入力されたデータに適用される。
【課題を解決するための手段】
【0009】
本発明によれば、ニューラルネットワークの第1の層の推論計算に必要とされる入力データの第1の部分と、入力データに関係する冗長情報とが、外部作業メモリから計算ユニットの内部作業メモリに読み込まれる。冗長情報に基づき、入力データの完全性がチェックされる。
【0010】
ここでいう冗長情報とは、入力データが高い確率で外部作業メモリに適正に格納されたのか、さらにそこからやはり適正に再び読み込まれたのかを、入力データに関連して確認可能にするあらゆる種類の情報のことであると解される。例えば、データは、正副2つの形態において作成して外部作業メモリに格納することができ、そこから再び読み込むことができる。所要メモリ及びデータ伝送のための帯域幅に関してより効率的であるものは、圧縮された冗長情報であり、これは、入力データから算出され、入力データそのものよりも格段に小さいボリュームを有する。この例として挙げられるものは、ハッシュ又は他のチェックサムである。
【0011】
完全性チェックの際に入力データがエラーなしと識別されたことに応答して、作業結果を取得するために、計算ユニットによって、この入力データに対し第1の層の推論計算の少なくとも一部が実施される。この作業結果に対してもやはり冗長情報が求められ、この冗長情報に基づき作業結果の完全性をチェックすることができる。作業結果及び冗長情報は、外部作業メモリに書き込まれる。
【0012】
ここで判明したことは、1つの層の計算に必要なデータが計算ユニットの内部作業メモリに完全には収まりきらない、大きいニューラルネットワークに対する推論計算は、基本的に、外部作業メモリにおいて、及び、計算ユニットと外部作業メモリとの間の通信コネクション上において、ランダムに発生する過渡的エラーの影響を受け易い、ということである。通信コネクションに関しても外部作業メモリに関しても、過渡的エラーが予期される前に、平均して何個のビットが伝送可能又は記憶可能であるのかについて、信頼性に対する尺度を挙げることができる。完全な推論計算の経過中に全体として記憶され、読み出され、かつ、伝送されなければならないデータの量は、慣用の外部作業メモリ及び通信コネクションの場合、用途に関係する確率を用いて過渡的エラーを見込まなければならないほど多い。
【0013】
このような状況においては、作業メモリ又は通信コネクションを、過渡的エラーが発生する確率がより低い実装形態と交換することが、理論的には可能であり得る。とはいえ、そのような実装形態の価格は、見返りに得られる信頼性に比較してあまりにも不釣り合いに上昇し、また、規定された期間内に過渡的エラーが発生しないという保証はない。
【0014】
完全性チェックにより、ニューラルネットワーク全体としてそこから供給される結果への過渡的エラーの影響を排除することができる。データにおいてエラーが識別されると直ちに、例えば、それらのデータを生成するために用いられた推論計算の部分を、それらのデータの適正なバージョンを取得するために繰り返すことができる。エラーは過渡的エラーであり、即ち、散発的に発生するエラーであるので、外部作業メモリ又は伝送において損なわれたデータを新たに調達しても、個々の用途について全体としては感じ取れるほどの遅延は引き起こされない。
【0015】
従って、結果として、1つの層の推論計算に必要なデータの一部だけしか記憶することができない計算ユニットと、計算ユニットからその都度供給される作業結果を1つ1つまとめて、層に対する推論計算の結果全体を得ることができる外部作業メモリとの組合せによって、予め設定された推論タスクに対するハードウェアプラットフォームの実現にかかる経費を著しく低減することができる。確かに基本的には、計算ユニットを、1つの層に対する完全な推論計算を外部作業メモリに依存せずに内部において処理することができる計算ユニットに、ともかく交換してしまうということも可能であろう。ただし、これでは、かなりコストが高くなり、エネルギー効率も悪くなる。
【0016】
エラーの識別によって信頼性が改善されることの利点は、総じて入力データを複数の小さい部分に細分化するということに必ずしも束縛されない。完全な入力データを含む1つの入力データ部分だけしか存在しない場合には、外部作業メモリの使用及びこの外部作業メモリとの通信を、同様に保護することができる。
【0017】
1つの特に有利な実施形態によれば、第1の層の推論計算に必要とされる入力データの複数の部分のうちのすべてが、外部の作業メモリから読み込まれ、計算ユニットによって処理される。次いで、ニューラルネットワークの第2の層の推論計算に必要とされる入力データが、外部の作業メモリから読み込まれ、計算ユニットによって処理される。このようにして、同一の外部作業メモリを、各層の推論計算のために新たに使用することができる。これは、外部作業メモリが、その都度1つの層の推論計算のために必要とされるサイズだけを有していればよいことを意味する。
【0018】
作業結果は、特に、例えば第1の層のニューロンの出力を含み得るものであり、これらの出力は、それぞれこれらのニューロンの入力の重み付けされた総和を含む。即ち、この場合には、ニューロンの各入力に重みが乗算され、それらの積が合計される。この結果に付加的に、ニューロンに割り当てられた加法バイアスをさらに設けることもできる。ニューロンの出力のこの計算は、ニューロンの入力に対し線形である。
【0019】
この線形性によってやはり、さらに他の特に有利な実施形態によれば、作業結果に対する冗長情報に基づき、外部作業メモリへの書き込み前に、作業結果が適正に計算されたのかを付加的にチェックすることができる。即ち、適正な計算についてのチェックにも、外部メモリへの書き込み及びそこからの読み出し後の完全性チェックにも使用可能な冗長情報を求めることができる。このようにすれば、過渡的エラーに対する保護を、計算時間又はメモリに付加的なコストをかけることなく、計算ユニット自体において発生する過渡的エラーにまで拡張することができる。これによって、ニューラルネットワーク全体としてそこから供給される最終結果の信頼性をさらに高めることができる。
【0020】
推論計算が、例えば、複数の同等の大きさの畳込みカーネルによるデータの畳込みを含む場合には、このようにして二重に利用可能な冗長情報を、例えば、それらの畳込みカーネルの総和である制御カーネルによりそれらのデータを畳み込むことによって、求めることができる。畳込み対象のデータが例えば三次元行列として設けられており、第3の次元がこの行列と同等の大きさである複数の畳込みカーネルを、他の2つの次元において逐次的に行列をずらしていけば、畳込みカーネルごとに1つの出力行列が発生する。冗長情報は、これら複数の出力行列に、同一の大きさのさらに別の制御行列を追加するだけである。このことは、所要メモリに関して著しく効率的である。しかも、制御カーネルによる畳込みは、他の畳込みカーネルによる畳込みと同様に、計算ユニット上においてハードウェアを加速させて実行することができる。
【0021】
この場合には、適正な計算についてのチェックは、例えば、制御行列の各要素を、出力行列においてこの要素に対応する要素の総和と比較するステップを含み得る。これらの対応する要素は、出力行列内において、制御行列の要素が制御行列内において位置しているのと同一のポジションに位置している。これは、制御カーネルによる畳込みにより、数学の結合法則を利用して、同様の結果になるはずである他の手法により、すべての出力行列に関する総和が計算されることを意味する。このことは、以下の喩えによって理解することができる。即ち、硬貨を計数する際に、硬貨の個々の値をそのまま加算するのか、又は、硬貨をまずは金種に従ってロールにまとめてから、それらのロールの値を加算するのかのいずれであっても、結果として同一の金額になるはずである、ということよって、理解することができる。
【0022】
この事例においては、一方では、作業結果が適正に計算されたのかというチェックと、他方では、作業結果が適正に外部メモリに書き込まれ、そこから適正に再び読み込まれたのかというチェックとを、それぞれ同様の手法により行うことができる。
【0023】
冗長情報のこのような二重の利用を、第1の層における推論計算が、この層のニューロンの入力に対し非線形の少なくとも1つの計算ステップを含む場合であっても、そのまま維持することができる。この目的で、この非線形の計算ステップは、作業結果が外部作業メモリから内部作業メモリに再び読み込まれた時点にシフトされる。
【0024】
例えば、推論計算が全体として、ニューロンの出力の上述の計算と、これらの出力に対する非線形の活性化関数の適用と、(例えば、プーリングによる)データサイズ低減とを含む場合には、ニューロンの線形に計算された出力を作業結果として、それらが適正に計算されたことを確認した直後に、上述の冗長情報と併せて外部メモリに書き込むことができる。この時点においては、第1の層に対する推論計算は、まだ終了していない。なぜならば、活性化関数の適用及びサイズ低減がまだ行われていないからである。とはいえ、これら2つのステップを実際にどうしても行わざるを得なくなるのは、次の層のための推論計算が迫っているときになってからである、ということが判明した。この目的で、第1の層の線形に計算された作業結果が、外部作業メモリから計算ユニットの内部作業メモリに読み込まれ、その完全性についてチェックされたときに、活性化関数及びサイズ低減を適用することができる。次いで、これに続いて直ちに次の層のニューロンの出力を線形に計算し、冗長情報と共に再び外部作業メモリに書き込むことができる。
【0025】
他の選択肢として、入力データの現在処理された部分に対し、第1の層の推論計算を完全に実施し、即ち、上述の非線形のステップを含めて実施し、その時点において初めてこの作業結果を外部作業メモリに書き込む、ということも可能である。この場合には、外部作業メモリには、単に第1の層の推論計算の中間結果ではなく、最終結果が存在する。このことは、まだニューラルネットワーク全体が完全に処理される前に、この最終結果を具体的な用途において既に評価したい場合に、有利なものとなる可能性がある。その対価として挙げられることは、適正な線形計算についてチェックする目的で非線形演算の適用前に求められた冗長情報が、非線形演算によってその有効性を失う、ということである。これは、この非線形演算が終了した後、外部作業メモリに作業結果を書き込む前に、この冗長情報を計算し直さなければならないことを意味する。
【0026】
さらに他の特に有利な実施形態によれば、入力データがエラーを有すると識別されたこと、及び/又は、作業結果がエラーを伴い計算されたと識別されたことに応答して、冗長情報に基づき入力データ又は作業結果におけるエラーが補正される。従って、例えば、制御カーネルによる畳込みによって求められる、先に述べた冗長情報を、別の冗長情報によってさらに拡張することができ、この冗長情報に基づきエラーをより厳密に局所化することができる。ここで、どの程度の粒度が合理的であるのかは、例えば、
・拡張された冗長情報のために、どの程度の余分な計算時間の手間とメモリスペースとが必要であるのか、及び、
・その一方、予期されるエラー頻度を勘案すると、より小さい単位の作業結果又は入力データだけを新たに調達すればよいということによって、計算時間がどの程度節約されるのか、
に従うものとすることができる。
【0027】
これまでの考察において前提としてきたことは、エラーは、ランダムな時点において発生する過渡的エラーであるということであった。しかしながら、度重なるエラー発生は、それがもはや完全にランダムな過渡的エラーではなく、ハードウェア構成要素又はメモリロケーションが故障し始めているということの合図であり得る。例えば、半導体において、ホールによりドーピングされた層と、電子によりドーピングされた層との間のpn接合において、過熱又は経年劣化に起因して相互拡散が発生すると、メモリにおいてビットを反転させるために必要とされるエネルギー寄与量が、正常状態よりも少なくなる可能性があり、例えば、バックグラウンド放射線からのガンマ量子又は荷電粒子によって、より高い確率で、このエネルギー寄与量をもたらすことができる。この場合には、エラーは、依然としてランダムな時点に発生するものの、pn接合が損傷したハードウェア構成要素又はメモリセルにおいては、エラーがますます蓄積されていく。
【0028】
このため、さらに他の特に有利な実施形態によれば、入力データがエラーを有すると識別されたこと、及び/又は、作業結果がエラーを伴い計算されたと識別されたことに応答して、エラーの原因とみなされる外部作業メモリの少なくとも1つのメモリ領域又は少なくとも1つのハードウェア構成要素に関して、エラーカウンタがインクリメントされる。この場合には、例えば、一般的なメンテナンスの一環として、同等の構成要素に対するエラーカウンタを相互に比較することができる。この場合に、例えば、公称的には構造が同様の複数のメモリモジュール又はハードウェア構成要素のうち、エラーカウンタが突出して上昇しているものが目立っている場合には、ことによるとそのメモリモジュール又はそのハードウェア構成要素の故障が発生し始めている可能性がある。
【0029】
従って、特に例えば、エラーカウンタが予め設定された閾値を上回ったことの確認に応答して、ハードウェア構成要素又はメモリ領域が故障していると識別することができる。これに対する応答として、例えば、故障していると識別されたハードウェア構成要素又は故障していると識別されたメモリ領域の代わりに、予備ハードウェア構成要素又は予備メモリ領域が、以降の計算のために利用されるように、ハードウェアプラットフォームを再構成することができる。エラーが発生した場合においても、運転者による制御の引き継ぎがもはや想定されていない、完全に自動化された車両運転のためには、特に、こうした予備を設けることが、有意なものになる可能性がある。この場合には、車両は、故障が発生していてもまだ整備工場に到達することができ(「リンプホームモード」)、費用をかけて車両を牽引しなくてもよい。
【0030】
有利には、光学画像データ、熱画像データ、ビデオデータ、レーダデータ、超音波データ、及び/又は、LIDARデータが、ニューラルネットワークの入力データとして準備される。これらは、最も重要なタイプの測定データであり、これらに基づいて、少なくとも部分的に自動化されて走行する車両の方向が、交通空間において決定される。これらの測定データを、物理的な測定プロセスによって、及び/又は、かかる測定プロセスの部分的又は完全なシミュレーションによって、及び/又は、かかる測定プロセスにより観測可能な技術システムの部分的又は完全なシミュレーションによって、取得することができる。例えば、計算による光ビームの追跡(「レイ・トレーシング」、“Raytracing”)を用いて、又は、ニューラルジェネレータネットワーク(例えば、敵対的生成ネットワーク、Generative Adversarial Networks,GAN)を用いて、状況のフォトリアリスティックな画像を生成することができる。例えばその際に、例えば特定の対象物のポジションといったような技術システムのシミュレーションに基づく認識を、付帯条件として取り込むこともできる。ジェネレータネットワークを、それらの付帯条件を満たす画像を狙いどおりに生成するように、トレーニングすることができる(例えば、条件付きGAN、Conditional GAN,cGAN)。
【0031】
入力データは、特に例えば、ニューラルネットワーク全体としての入力データとすることができる。これらは、ニューラルネットワークの第1の処理ステップが適用される入力データである。階層構造のニューラルネットワークの場合には、これらは、例えば、第1の層に供給される入力データとすることができる。
【0032】
ニューラルネットワークの作業結果を処理して、例えば、このネットワークの最後の層の出力を処理して、制御信号を形成することができる。この場合には、この制御信号によって、車両、及び/又は、大量生産製品の品質コントロールシステム、及び/又は、医療画像生成システム、及び/又は、アクセスコントロールシステムを制御することができる。先に述べたエラーチェックがこれに関連して有する効果とは、具体的なきっかけがなく「何もないところ」から発生し、従って、一般に診断が極めて難しいであろう散発的な機能障害が有利に回避される、ということである。
【0033】
作業結果は、特に例えば、ニューラルネットワーク全体としての作業結果とすることができる。これらは、ニューラルネットワークがそれ以上は処理ステップを適用しない作業結果である。階層構造のニューラルネットワークの場合には、これらは、例えば、最後の層から生成される作業結果とすることができる。
【0034】
これらの方法は、特に、完全に又は部分的にコンピュータによって実装することができる。従って、本発明は、1つ又は複数のコンピュータ上において実行されるときに、既述の方法のうちの1つを1つ又は複数のコンピュータに実施させるための機械可読命令を備えたコンピュータプログラムにも関する。この意味においては、同様に、機械可読命令を実行することができる車両用の制御装置及び技術装置用の組込みシステムも、コンピュータとみなすことができる。
【0035】
同様に、本発明は、コンピュータプログラムを備えた機械可読データ担体及び/又はダウンロード製品にも関する。ダウンロード製品は、データネットワークを介して伝送可能な、即ち、データネットワークのユーザによってダウンロード可能なディジタル製品であり、このディジタル製品を、例えば、オンラインショップにおいて即座にダウンロードするために販売することができる。
【0036】
さらにコンピュータに、コンピュータプログラム、機械可読データ担体又はダウンロード製品を装備させることができる。
【0037】
本発明を改良するためのさらなる措置を、図面に基づく本発明の好ましい実施例の説明と共に、以下に詳細に示す。
【図面の簡単な説明】
【0038】
【
図2】非線形性132なし(
図2a)と非線形性132あり(
図2b)との推論計算130の区分を示す図である。
【
図3】ハードウェアプラットフォーム1の実施例を示す図である。
【発明を実施するための形態】
【0039】
実施例
図1は、方法100の1つの実施例の概略的なフローチャートである。ステップ105によれば、特に道路交通において少なくとも部分的に自動化された車両の方向を決定するために最も重要であるデータタイプを、入力データとして入力行列1において供給することができる。方法100によって動作させられるハードウェアプラットフォーム1については、
図3において詳細に説明する。
【0040】
ステップ110において、ニューラルネットワークの第1の層の推論計算に必要とされる入力データ11、及び、これに属する冗長情報11aが、外部作業メモリ3から読み込まれる。ステップ120において、冗長情報11aに基づき入力データ11の完全性がチェックされる。このチェックが肯定的に進んだ場合には(真理値1)、即ち、入力データ11がエラーなしと識別された場合には、作業結果12を取得するために、ステップ130において計算ユニット2によって、入力データ11に対する第1の層の推論計算の少なくとも一部が実施される。
【0041】
ステップ140において、作業結果12に対して冗長情報12aが求められ、この冗長情報12aに基づき作業結果12の完全性をチェックすることができる。任意選択肢としてステップ145において、付加的にこの冗長情報12aに基づき、作業結果12が適正に計算されたのかをチェックすることができる。適正に計算された場合には(真理値1)、作業結果12が、ステップ150において冗長情報12aと共に外部作業メモリ3に書き込まれる。
【0042】
図1に示されている実施例の場合には、第1の層の推論計算に必要とされるすべての入力データが既に処理されたのか否かが、ステップ160においてチェックされるように、ニューラルネットワーク全体としての処理が体系化されている。まだ処理されていない場合には(真理値0)、ステップ110に分岐して戻り、この第1の層の入力データ11の次の部分が外部作業メモリ3から読み込まれる。しかし、第1の層全体が既に処理されている場合には(真理値1)、ステップ170において第2の層の推論計算に切り替えられる。即ち、入力データ11の一部を外部作業メモリ3から読み込むために、再びステップ110に分岐して戻る。ただし、この場合には、これは第2の層の入力データ11である。すべての層が処理されると、ニューラルネットワーク全体としての作業結果12
*が出力される。この作業結果12
*をステップ220において処理して、制御信号9を形成することができる。次いで、ステップ230によれば、この制御信号9によって、車両50、及び/又は、分類システム60、及び/又は、大量生産製品の品質コントロールシステム70、及び/又は、医療画像生成システム80、及び/又は、アクセスコントロールシステム90を制御することができる。
【0043】
ブロック131によれば、第1の層の推論計算130は、特に、複数の畳込みカーネルを用いたデータ13の畳込みを含み得る。ブロック132によれば、この推論計算130は、ニューロンの入力に対し非線形の少なくとも1つの計算ステップも含み得る。この非線形の計算ステップが、ブロック133に従ってさらに後の時点になって初めて、即ち、作業結果12が外部作業メモリ3から新たに読み込まれた後、計算ユニット2の内部作業メモリ2a内に再び存在する時点になって初めて、実施される場合には、このことによって計算時間及びメモリスペースが節約される。これは、作業結果12が、この事例においては、まだ非線形性によって「損なわれていない」状態で、外部作業メモリ3に格納されることを意味する。この場合には、作業結果12aの適正な計算についてのチェック145のためにも、適正な記憶及び適正なデータ伝送についてのさらに後のチェック120のためにも、同一の冗長情報12aを使用することができる。
【0044】
ブロック141によれば、言及した畳込みカーネルの総和である制御カーネルによる畳込みによって、冗長情報12aを求めることができる。
【0045】
チェック120又は145のうちの一方においてエラーが識別された場合には(個々のチェックにおける真理値0)、ブロック180に従って、入力データ11又は作業結果12におけるエラーを、個々の冗長情報11a,12aに基づき補正することができる。他の選択肢として、入力データ11又は作業結果12を、ブロック185に従って計算し直すことができる。
【0046】
図1に示した実施例の場合には、さらに付加的にブロック190に従って、エラーの原因とみなされる外部作業メモリ3のメモリ領域又はハードウェア構成要素に対するエラーカウンタをインクリメントすることができる。次いで、ステップ195において、このエラーカウンタが予め設定された閾値を上回っているかをチェックすることができる。予め設定された閾値を上回っている場合には(真理値1)、ブロック200に従ってメモリ領域又はハードウェア構成要素を、故障と識別することができる。次いで、ブロック210に従って、以降の計算のために予備メモリ領域又は予備ハードウェア構成要素が使用されるように、ハードウェアプラットフォーム1を再構成することができる。
【0047】
入力データ11又は作業結果12が、ブロック180に従って補正された場合には、又は、ブロック185に従って計算し直された場合には、本来意図されていた推論計算130又は本来意図されていた外部作業メモリ3における記憶150を、再開することができる。
【0048】
図2には、推論計算130をどのように体系化できるのかについて、2つの実施例が示されている。
【0049】
図2aには、推論計算130、130aが、作業結果12のために入力データ11の畳込み131だけを含む簡単な実施例が示されている。先に説明したように、この場合には、作業結果12をもたらす計算は、ニューロンに供給される入力に対し線形である。この場合には、適正な計算130についてのチェック145のためにも、適正な記憶及び読み込みについてのさらに後のチェック120のためにも、同一の冗長情報12aを使用することができる。
【0050】
この実施例の場合、ブロック131において畳み込まれるデータ13は、入力データ11と同一である。作業結果12は、推論計算130の完全な結果に相当する。次の層の処理の際に、この作業結果12が入力データ11’として、再び外部作業メモリ3から読み込まれ、作業結果12と共に記憶されている冗長情報12aは、この入力データ11’をチェックする冗長情報11a’である。次の畳込み131により、次の作業結果12’が生じる。
【0051】
図2bには、推論計算130、130bが非線形性132を含む他の実施例が示されている。
図2aとは異なり、畳込み131に供給されるデータ13は、この場合にはもはや入力データ11と同一ではなく、非線形性132の適用によってこれらの入力データ11から生じる。ただし、畳込み131自体は、やはり線形の演算だけしか含まないので、
図2aと同様に冗長情報12aを二重に利用することができる。
【0052】
図2aとは異なり、この場合には、作業結果12が外部メモリ3に格納される時点においては、推論計算130,130bは、まだ終了していない。むしろ、推論計算130、130bは、より後の時点において、次の層のための畳込み131が迫ったときに、遅れを取り戻すようにして行われる。従って、これらの間の期間中に、外部メモリ3内には、非線形の推論計算130、130bの線形の中間生成物が存在する。
【0053】
図3には、ハードウェアプラットフォーム1の1つの実施例が示されている。内部作業メモリ2aを備えた計算ユニット2は、通信コネクション4を介して外部作業メモリ3と接続されている。作業結果12は、それらを後で新たな層の推論計算のための入力データ11として再び読み込むために、この外部作業メモリ3に一時記憶される。外部作業メモリ3及び通信コネクション4は、過渡的エラー18を受け易く、これらのエラーを方法100によって識別し、補正することができる。