IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングの特許一覧

特許7581540ニューラルネットワークのためのエラー保証される推論計算
<>
  • 特許-ニューラルネットワークのためのエラー保証される推論計算 図1
  • 特許-ニューラルネットワークのためのエラー保証される推論計算 図2
  • 特許-ニューラルネットワークのためのエラー保証される推論計算 図3a
  • 特許-ニューラルネットワークのためのエラー保証される推論計算 図3b
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-01
(45)【発行日】2024-11-12
(54)【発明の名称】ニューラルネットワークのためのエラー保証される推論計算
(51)【国際特許分類】
   G06N 3/0464 20230101AFI20241105BHJP
   G06F 11/14 20060101ALI20241105BHJP
   G06F 17/10 20060101ALI20241105BHJP
【FI】
G06N3/0464
G06F11/14 676
G06F17/10 A
G06F17/10 V
【請求項の数】 14
(21)【出願番号】P 2023573000
(86)(22)【出願日】2021-05-25
(65)【公表番号】
(43)【公表日】2024-05-24
(86)【国際出願番号】 EP2021063846
(87)【国際公開番号】W WO2022248015
(87)【国際公開日】2022-12-01
【審査請求日】2023-11-24
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】クリストフ ショーン
(72)【発明者】
【氏名】レオナルド ルイス エッコ
(72)【発明者】
【氏名】アンドレ グントロ
(72)【発明者】
【氏名】ヨー プレティンクス
(72)【発明者】
【氏名】ゼバスティアン フォーゲル
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2019/0251005(US,A1)
【文献】Siva Kumar Sastry Hari et al.,"Making Convolutions Resilient via Algorithm-Based Error Detection Techniques",arXiv.org [online],arXiv:2006.04984v1,米国,Cornell University,2020年06月,pp.1-12,[検索日 2024.09.06], インターネット:<URL: https://arxiv.org/abs/2006.04984v1>
【文献】Elbruz Ozen et al.,"Sanity-Check: Boosting the Reliability of Safety-Critical Deep Neural Network Applications",2019 IEEE 28th Asian Test Symposium (ATS) [online],米国,IEEE,2020年01月06日,pp.7-12,[検索日 2024.09.06], インターネット:<URL: https://ieeexplore.ieee.org/abstract/document/8949404>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06F 11/08-11/14
G06F 17/10
(57)【特許請求の範囲】
【請求項1】
畳み込みニューラルネットワークの推論計算のためのハードウェアプラットフォームを動作させる方法(100)であって、前記ハードウェアプラットフォームは、少なくとも1つの加速モジュールを有し、前記加速モジュールは、畳み込みカーネル(2a~2c)による入力マトリクス(1)の畳み込みを、前記入力マトリクス(1)の内側の複数の位置に前記畳み込みカーネル(2a~2c)を適用することにより計算し、前記畳み込みの結果を2次元の出力マトリクス(3a~3c)として出力するように構成されている、方法(100)において、
・前記ニューラルネットワークの入力データを有する1つの入力マトリクス(1)を、前記加速モジュールを用いて複数の畳み込みカーネル(2a~2c)によって畳み込み、これにより複数の2次元の出力マトリクス(3a~3c)を生じさせるステップ(110)と、
・前記畳み込みカーネル(2a~2c)をエレメントごとに合計して、制御カーネル(4)を生成するステップ(120)と、
・前記入力マトリクス(1)を、前記加速モジュールを用いて前記制御カーネル(4)によって畳み込み、これにより2次元の制御マトリクス(5)を生じさせるステップ(130)と、
・前記制御マトリクス(5)の各エレメント(5*)を、前記出力マトリクス(3a~3c)における、前記エレメント(5*)に対応するエレメント(3a*~3c*)の合計と比較するステップ(140)と、
・前記比較(140)によって前記制御マトリクス(5)の1つのエレメント(5*)に対して偏差が生じたこと(150)に応答して、少なくとも1つの付加的な制御計算により、少なくとも1つの出力マトリクス(3a~3c)の、前記制御マトリクス(5)のエレメント(5*)に対応するエレメント(3a*~3c*)が正しく計算されたかどうかを検査するステップ(160)と、
を含む方法(100)。
【請求項2】
少なくとも1つの畳み込みカーネル(2a~2c)による前記畳み込み(110)の際に、前記畳み込みカーネル(2a~2c)に対応するバイアス値(7a~7c)が、前記畳み込みカーネル(2a~2c)によって生成された出力マトリクス(3a~3c)のエレメントに加算され(111)、全てのバイアス値(7a~7c)の合計が、前記制御マトリクス(5)の全てのエレメントにも加算される(112)、請求項1に記載の方法(100)。
【請求項3】
前記付加的な制御計算(160)により、前記少なくとも1つの出力マトリクス(3a~3c)の、検査対象エレメント(3a*~3c*)を含む行又は列(3a#~3c#)が正しく計算されたかどうかが検査される(161)、請求項1又は2に記載の方法(100)。
【請求項4】
前記制御計算の枠組みにおいて、
・前記入力マトリクス(1)が、検査対象エレメント(11)の分だけ拡張され(162)、
・前記検査対象エレメント(11)が、前記加速モジュールを用いて、前記少なくとも1つの出力マトリクス(3a~3c)に対応する畳み込みカーネル(2a~2c)によって畳み込まれ(163)、これにより制御値(31)が取得され、
・前記行又は列(3a#~3c#)のエレメントの合計が、前記制御値(31)と比較され(164)、
・前記比較(164)によって偏差が生じたこと(165)に応答して、前記行又は列(3a#~3c#)が正しく計算されなかったこと、ひいては前記出力マトリクス(3a~3c)の検査対象エレメント(3a*~3c*)も正しく計算されなかったことが確認される(166)、
請求項3に記載の方法(100)。
【請求項5】
1つの出力マトリクス(3)の1つのエレメント(3a*~3c*)が正しく計算されなかったという確認(166,170)に応答して、前記エレメント(3a*~3c*)が、前記比較において求められた偏差の分だけ補正される(180)、請求項1乃至4のいずれか一項に記載の方法(100)。
【請求項6】
全ての出力マトリクス(3a~3c)の、前記制御マトリクス(5)のエレメント(5*)に対応するエレメント(3a*~3c*)につき、前記エレメント(3a*~3c*)が正しく計算されたかどうかについて検査され(190)、前記全てのエレメント(3a*~3c*)が正しく計算されたという確認(200)に応答して、前記制御マトリクス(5)のエレメント(5*)が正しく計算されなかったことが確認される(210)、請求項1乃至5のいずれか一項に記載の方法(100)。
【請求項7】
前記比較(140,164)のうちの1つの比較によって、前記偏差の原因として考慮される少なくとも1つのハードウェアコンポーネント又は少なくとも1つのメモリ領域に関して偏差が生じたこと(220)に応答して、エラーカウンタがインクリメントされる(230)、請求項1乃至6のいずれか一項に記載の方法(100)。
【請求項8】
前記エラーカウンタが所定の閾値を上回っている(240)という確認に応答して、前記ハードウェアコンポーネント又は前記メモリ領域が故障していると認識される(250)、請求項7に記載の方法(100)。
【請求項9】
前記ハードウェアプラットフォームは、前記故障していると認識されたハードウェアコンポーネント又は前記故障していると認識されたメモリ領域の代わりに、予備ハードウェアコンポーネント又は予備メモリ領域がさらなる計算のために利用されるように再構成される(260)、請求項8に記載の方法(100)。
【請求項10】
物理的な測定プロセスによって、及び/又は、このような測定プロセスの部分的な若しくは完全なシミュレーションによって、及び/又は、このような測定プロセスにより監視可能な技術システムの部分的な若しくは完全なシミュレーションによって取得された光学画像データ、熱画像データ、ビデオデータ、レーダデータ、超音波データ、及び/又は、LIDARデータが、入力データとして供給される(105)、請求項1乃至9のいずれか一項に記載の方法(100)。
【請求項11】
前記出力マトリクス(3a~3c)が処理されて駆動制御信号(6)が生成され(270)、車両(50)及び/又は大量生産された製品の品質管理システム(70)及び/又は医用撮像システム(80)及び/又はアクセスコントロールシステム(90)が、前記駆動制御信号(6)によって駆動制御される(280)、請求項1乃至10のいずれか一項に記載の方法(100)。
【請求項12】
機械可読命令を含むコンピュータプログラムであって、前記機械可読命令は、当該機械可読命令が1つ又は複数のコンピュータにおいて実行されるときに、請求項1乃至11のいずれか一項に記載の方法(100)を前記コンピュータに実施させるためのものである、コンピュータプログラム。
【請求項13】
請求項12に記載のコンピュータプログラムを含む機械可読データ担体。
【請求項14】
請求項12に記載のコンピュータプログラム及び/又は請求項13に記載の機械可読データ担体を含むコンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、使用されるハードウェアプラットフォームにおける一過性のエラーに対する、ニューラルネットワークの推論動作中に発生する計算の保証に関する。
【背景技術】
【0002】
背景技術
ニューラルネットワークを推論する際に、ニューラルネットワークのトレーニングにおいて習得された重みに基づき、ニューロンに供給された入力を重み付けして総和することによって、これらの極めて多くの数のニューロンの活性化が計算される。すなわち、複数の乗算が実行され、その後これらの乗算の結果が加算される(積和演算(multiply-and-accumulate:MAC))。特に、例えば道路交通において車両を少なくとも部分的に自動ガイドする場合のような移動用途においては、このような計算に特化されたハードウェアプラットフォームにニューラルネットワークが実装される。これらのプラットフォームは、単位あたりのハードウェアコスト及びエネルギ消費量に関して、計算能力が特に効率的である。
【0003】
これらのハードウェアプラットフォームの集積密度が増加するにつれて、一過性の、すなわち、散発的に発生する計算エラーに対する確率が増加する。ここでは、例えばバックグラウンド放射に由来する高エネルギの光子がハードウェアプラットフォームのメモリロケーション又は処理ユニットに衝突することにより、ビットがランダムに「反転」されることがある。さらに、ハードウェアプラットフォームは、まさに車両において、例えば電圧ピークのような障害をハードウェアプラットフォームに入力結合するおそれがある複数のさらなる消費装置と、車載電源を共有している。これに関する許容差は、ハードウェアプラットフォームの集積密度が増加するにつれて狭くなる。
【0004】
独国特許出願公開第102018202095号明細書は、入力値のテンソルを処理して出力値のテンソルを生成する際に、ニューラルネットワークによって誤って計算された出力値が、付加的な制御計算を用いて識別され、補正もされ得る方法を開示している。
【先行技術文献】
【特許文献】
【0005】
【文献】独国特許出願公開第102018202095号明細書
【発明の概要】
【課題を解決するための手段】
【0006】
発明の開示
本発明の枠組みにおいては、畳み込みニューラルネットワークの推論計算のためのハードウェアプラットフォームを動作させる方法が開発された。ハードウェアプラットフォームは、入力マトリクスの内側の複数の位置に畳み込みカーネルを適用することにより、この畳み込みカーネルによる入力マトリクスの畳み込みを計算し、この畳み込みの結果を2次元の出力マトリクスとして出力するように構成されている少なくとも1つの加速モジュールを有する。ここで「構成されている」とは、特に、例えばこの加速モジュールが実行可能なタスクの範囲が、従来のコンピュータのCPU又はGPUに比較して、まさにこのようなタスクにおける格段に高い出力に有利になるように著しく制限されていることと理解される。入力マトリクス及び畳み込みカーネルは、ここでは特に、例えば3次元であるものとしてよく、このことは、画像データの処理にとって特に有利である。しかしまた、入力マトリクス及び畳み込みカーネルは、より高い次元に対しても一般化可能である。したがって、例えばビデオデータ又は他の時間可変データの場合には、3つの次元が空間座標を表し、第4の次元が時間を表すことができる。
【0007】
したがって、極めて全般的に、ニューラルネットワークは、例えば、カメラ画像、熱画像、レーダデータ、LIDARデータ又は超音波データなどの監視データを、所定の分類の1つ又は複数のクラスに割り当てるための分類器として構成されるものとしてよい。これらのクラスは、例えば、対象物又は状態を監視される領域において表現することができ、これらの対象物又は状態を検出することが重要である。監視データは、例えば、車両に組み付けられている1つ又は複数のセンサに由来し得る。次いで、ニューラルネットワークによって供給されるクラスへの割り当てから、例えば、運転支援システム、又は、具体的な交通状況に適合する、車両を少なくとも部分的に自動ガイドするためのシステムのアクションが導出され得る。ニューラルネットワークは、例えば、層に分割された畳み込みニューラルネットワーク(convolutional neural network:CNN)であるものとしてよい。
【0008】
この方法においては、ニューラルネットワークの入力データを有する入力マトリクスが、加速モジュールを用いて複数の畳み込みカーネルによって畳み込まれる。このことは、畳み込みカーネルが入力マトリクスの内側で適用される各位置に対して、入力マトリクスの、畳み込みカーネルによって覆われたエレメントが重み付けされて総和され、この場合、重みは、畳み込みカーネルのエレメントによって与えられることを意味する。入力マトリクスが畳み込みカーネルによって2つの次元で「走査」されることによって、複数のこのような重み付けされた合計が生じ、これらの合計から畳み込みカーネルに対応する出力マトリクスが形成される。したがって、複数の畳み込みカーネルに対して、複数のこのような出力マトリクスが生じる。
【0009】
畳み込みカーネルがエレメントごとに合計されて、制御カーネルが生成される。加速モジュールを用いて、入力マトリクスが制御カーネルによって畳み込まれ、これにより、畳み込みカーネルの適用と同様に、2次元の制御マトリクスが生じる。
【0010】
畳み込みカーネルは、特に、例えば同等の大きさであるものとしてよい。ただし、このことは必ずしも要求されない。畳み込みカーネルが種々異なる大きさである場合、畳み込みカーネルには、例えば仮想的に縁部において最大の畳み込みカーネルのサイズでゼロが充填される可能性があり、次いでこれにより全ての畳み込みカーネルがエレメントごとに合計されて、制御カーネルが生成され得る。
【0011】
制御マトリクスの各エレメントが、出力マトリクスにおける、制御マトリクスの各エレメントに対応するエレメントの合計と比較される。例えば、畳み込みカーネル及び制御カーネルが、それぞれ次元x及びyにおける入力マトリクスを「走査」し、かつ、第3の次元zにおいて入力マトリクスと同等の深さを有する場合、畳み込みカーネルに対応する出力マトリクス及び制御マトリクスも、次元x及びyに沿って延在し、かつ、第3の次元zにおいて「積層」される。したがって、各座標対(x,y)に対して、これらの座標(x,y)を有する全ての出力マトリクスのエレメントの合計、すなわち、z方向における「高さ列」に沿って形成された合計は、同一の座標(x,y)を有する制御マトリクスのエレメントと同等であるべきである。このことは、数学の結合法則から推論され、硬貨を計数する際に、硬貨の個々の値が直接に加算されるか、又は、硬貨がまずは金種に応じてロールにまとめられて次いでロールの値が加算されるかにかかわらず、同等の金額が得られるはずであるという類推によって理解され得る。
【0012】
この比較によって制御マトリクスのエレメントに対して偏差が生じたことに応答して、少なくとも1つの付加的な制御計算によって、少なくとも1つの出力マトリクスの、制御マトリクスのこのエレメントに対応するエレメントが正しく計算されたかどうかが検査される。
【0013】
エラー検査をこのように編成することにより、上述した特定のハードウェアプラットフォームに関連して、計算時間及びメモリの形態の追加的な手間が格段に低減されることが認識された。制御マトリクスの計算に対して、出力マトリクスの計算に対する加速モジュールと同様の加速モジュールが使用されることによって、この計算には、極めて短い付加的な時間しかかからない。目的は、まさに一過性の、すなわち、散発的に発生するエラーを見つけることであるので、通常の動作環境において、比較の大部分(99%超)につき偏差が生じないことが予測され得る。これらのケースが最大限効率的に処理されれば、偏差のケースに対して、付加的な制御計算に時間が投入され、これによりエラーをより正確に位置特定することができる。ここでは、この付加的な制御計算の具体的な種類、及び、より正確に位置特定されたエラーを取り除くために講じられる措置は、基本的に制限されていない。むしろ、制御計算又はその他の措置の選択が、特に、計算又はその他の措置にどの程度の手間がかかるか、及び、どの程度の頻度で具体的な用途において一過性のエラーが予測され得るかに従って決定されると有意である。
【0014】
偏差が確認された場合には、このことは基本的に、出力マトリクスにおける、制御マトリクスのエレメントに対応するエレメントのうちの1つ又は複数のエレメントを誤って計算することによって、及び/又は、制御マトリクスのエレメント自体を誤って計算することによって引き起こされる可能性がある。しかしながら、まさに本発明の文脈において認識することが重要である一過性のエラーにおいては、
・z方向では互いに離間しているがそれぞれ同一の座標(x,y)を有する2つの出力マトリクス内のエレメントが当該エラーに関係するタイミングで、2つの一過性のエラーが発生する確率、又は、
・座標(x,y)を有する出力マトリクスの少なくとも1つのエレメントと、同一の座標(x,y)を有する制御マトリクスのエレメントとが当該エラーに関係するタイミングで、2つの一過性のエラーが発生する確率
は、極めて低い。
【0015】
このようなケースにおいて、エラーをそれ以上制限できないという理由から完全な推論計算を繰り返さなければならない場合であっても、このことは、確率が低いために、具体的な用途においては出力損失が感知されえないことを意味する。したがって、一過性のエラーをさらに制限及び補正する目的においては、
・現在検査されている制御マトリクスのエレメントと全く同一の座標(x,y)を有する出力マトリクスのエレメントが誤って計算されたという仮定、
・又は制御マトリクスのエレメント自体が誤って計算されたという仮定
を前提とすることができる。
【0016】
このような個々の一過性のエラーの発生は、例えば、少なくとも部分的に自動化された運転に使用される慣用のハードウェアプラットフォームの場合、以下において説明するさらなる制限と比較して、多くの場合に、推論計算の完全な破棄及び繰り返し並びに場合によってはここでのエラー補正が、具体的な適用の有意な抑制を意味すると期待される。
【0017】
上述の考察及び以下の全ての考察は、入力マトリクスがニューラルネットワークの完全な入力データを含むかどうか又はその一部のみを含むかどうかにかかわらず適当である。多くの用途において、ニューラルネットワークの完全な入力データと、この入力データから生成される完全な出力マトリクスとが、ハードウェアプラットフォームの内部バッファ(「オンチップメモリ」)には適合せず、このため、ハードウェアプラットフォームは、データを1つずつ(いわゆるタイル“Tile”で)処理する。個々のタイルに関して得られた結果は、次いで、加速されたハードウェアプラットフォームの外側のより大きい外部メモリにまとめられる。
【0018】
少なくとも1つの畳み込みカーネルによる畳み込みの際には、さらに、この畳み込みカーネルに対応するバイアス値が、この畳み込みカーネルによって生成される出力マトリクスのエレメントに加算され得る。次いで、これらのバイアス値の合計が、制御マトリクスの全てのエレメントに加算され得る。
【0019】
特に有利な構成においては、付加的な制御計算によって、少なくとも1つの出力マトリクスの検査対象エレメントを含む行又は列が正しく計算されたかどうかが検査される。このような検査においては、このタスクにとって優先的に設けられたものでないにもかかわらず、加速モジュールも利用可能である。このようにして、特定の出力マトリクスのエレメント(すなわち、特定のz座標を有するエレメント)が正しく計算されなかったという情報が得られた場合には、このことから直截に2つの推論が可能である。一方では、実際には出力マトリクス内にエラーが存在し、例えば制御マトリクスのエレメントの計算だけが誤っているわけではないことが判明する。また、他方では、エラーが存在する具体的な出力マトリクス、すなわち、エラーのz座標も既知となる。したがって、既に第1の比較によって求められた座標(x,y)に関連して、エラーが具体的なエレメント上で位置特定される。
【0020】
このような出力のために加速モジュールをいわば「転用する」ために、特に有利な構成においては、入力マトリクスが検査対象エレメントの分だけ拡張される。これらの検査対象エレメントの各々は、特に、例えば入力マトリクスの特定の領域からなるエレメントの単純な合計であるものとしてよい。検査対象エレメントは、加速モジュールを用いて、現在検査されている少なくとも1つの出力マトリクスに対応する畳み込みカーネルによって畳み込まれ、これにより制御値が取得される。
【0021】
検査された行又は列におけるエレメントの合計が、制御値と比較される。この比較によって偏差が生じたことに応答して、行又は列が正しく計算されなかったことが確認される。これにより、出力マトリクスの、当初に検査対象エレメントが正しく計算されなかったことも確認される。
【0022】
出力マトリクスのエレメントが実際に正しく計算されなかったことが確認された場合、このエレメントは、比較時に求められた偏差の分だけ補正可能となる。上述したように、厳密に1つのエラーしか存在していないことを前提とすべきである。したがって、制御マトリクスのエレメントとの当初の比較も、制御値との比較も、同様の結果をもたらす。
【0023】
確率は、単一のエラーについてのみ計算されればよいので、第1のエラーが確認されるとすぐに、さらなるエラーの検索を停止することができる。
【0024】
しかし、全ての出力マトリクスにおける、制御マトリクスのエレメントに対応する全てのエレメント(すなわち、同一の座標(x,y)を有するエレメント)が、制御計算によって正しいものとして認識されるケースも生じ得る。この場合、制御マトリクスのエレメントが正しく計算されなかったことが確認され得る。すなわち、出力マトリクスの当初の計算は正しかったが、予測されるべき単一の一過性のエラーが、これに続く制御マトリクスの計算の際に初めて発生したことになる。したがって、この場合には出力マトリクスによって、設けられた用途に従って、通常はさらなる計算が行われ得る。それ以外の場合、制御マトリクスの計算におけるエラーは無視することができる。
【0025】
これまでの考察は、常に一過性のエラーのみが存在することを前提としていた。しかし、度重なるエラーの発生は、もはや完全にランダムな一過性のエラーではなく、ハードウェアコンポーネント又はメモリロケーションが故障し始めたことの現れである可能性がある。例えば、半導体の場合、正孔がドープされた層と電子がドープされた層との間のpn接合部において過熱又は経年劣化に基づき相互拡散が生じたとき、メモリ内のビットの反転に必要なエネルギ量が通常状態と比較して低下することがあり、例えば、ガンマ量子又は荷電粒子がバックグラウンド放射からより高い確率でこのエネルギ量を加えることが起こり得る。この場合、たしかにエラーは依然としてランダムな時点で発生するが、破損したpn接合部を備えたハードウェアコンポーネント又はメモリセルにおいては、エラーが次第に増加していく。
【0026】
したがって、特に有利な他の構成においては、複数の比較のうちの1つの比較によって、偏差の原因として考慮される少なくとも1つのハードウェアコンポーネント又は少なくとも1つのメモリ領域に関する偏差が生じたことに応答して、エラーカウンタがインクリメントされる。この場合、例えば一般的なメンテナンスの枠組みにおいて、同等のコンポーネントに関するエラーカウンタが互いに比較され得る。この場合、例えば、同等の公称構造を有する複数のハードウェアコンポーネントのうち、顕著に増加したエラーカウンタを有するハードウェアコンポーネントが見出される場合には、このハードウェアコンポーネントで故障が発生し始めている可能性がある。
【0027】
したがって、特に、例えばエラーカウンタが所定の閾値を上回っていると確認されたことに応答して、ハードウェアコンポーネント又はメモリ領域が故障していることを認識可能である。これに応答して、例えば、故障していると認識されたハードウェアコンポーネント又は故障していると認識されたメモリ領域の代わりに、予備ハードウェアコンポーネント又は予備メモリ領域がさらなる計算のために利用されるように、ハードウェアプラットフォームが再構成され得る。特に、エラーのケースにおいても運転者による制御の引き取りが行われない車両を完全に自動ガイドするためには、このような予備手段を設けることが有意義であり得る。車両は、故障のケースにおいても整備工場に到達することができ(「リンプホームモード」)、コストをかけて牽引する必要はない。
【0028】
有利には、光学画像データ、熱画像データ、ビデオデータ、レーダデータ、超音波データ、及び/又は、LIDARデータが、入力データとして供給される。これらは、最も重要な種類の測定データであり、これらに基づき、少なくとも部分的に自動走行する車両が交通空間においてオリエンテーションされる。測定データは、物理的な測定プロセスによって、及び/又は、このような測定プロセスの部分的な若しくは完全なシミュレーションによって、及び/又は、このような測定プロセスにより監視可能な技術システムの部分的な若しくは完全なシミュレーションによって取得され得る。例えば、光ビームの計算による追跡(「レイトレーシング(Raytracing)」)を用いて、又は、ニューラルジェネレータネットワーク(例えば敵対的生成ネットワーク(Generative Adversarial Network:GAN))を用いて、状況のフォトリアリスティックな画像が生成され得る。ここでは例えば、特定の対象物の位置などの技術システムのシミュレーションに基づく知識も付帯条件として取り入れられ得る。ジェネレータネットワークは、こうした付帯条件を満たす画像を所期のように生成するようにトレーニング可能である(例えば条件付きGAN(Conditional GAN:cGAN))。
【0029】
出力マトリクスが処理されて、駆動制御信号が生成され得る。その後、この駆動制御信号により、車両及び/又は大量生産された製品の品質管理システム及び/又は医用撮像システム及び/又はアクセスコントロールシステムが駆動制御可能となる。これに関連して、上述したエラー検査は、具体的な契機なしに「何もないところから」発生するため通常は診断が極めて困難となる散発的な機能障害が有利に回避されるという効果を有する。
【0030】
方法は、特に、完全に又は部分的にコンピュータによって実装されるものとしてよい。したがって、本発明は、機械可読命令を含むコンピュータプログラムであって、機械可読命令は、当該機械可読命令が1つ又は複数のコンピュータにおいて実行されるときに、上述した方法のうちの1つの方法をコンピュータに実施させるためのものである、コンピュータプログラムにも関する。この意味において、同様に機械可読命令を実行することができる車両用の制御装置及び技術的装置用の組込みシステムも、コンピュータとみなすことができる。
【0031】
同様に、本発明は、コンピュータプログラムを含む機械可読データ担体及び/又はダウンロード製品にも関する。ダウンロード製品は、データネットワークを介して伝送可能な、すなわち、データネットワークのユーザによってダウンロード可能なデジタル製品であり、これは、例えばオンラインショップでの即時ダウンロードに向けて販売され得るものである。
【0032】
さらに、コンピュータは、コンピュータプログラム、機械可読データ担体又はダウンロード製品を備えるものとするとよい。
【0033】
以下に、本発明を改良するさらなる措置が、本発明の好適な実施例の説明とともに、図面に基づきより詳細に示される。
【図面の簡単な説明】
【0034】
図1】方法100の実施例を示す図である。
図2】制御カーネル4による制御マトリクス5の迅速な算定を示す図である。
図3a】出力マトリクス3a~3cの行3a#~3c#に基づくエラーの正確な位置特定を示す図である。
図3b】出力マトリクス3a~3cの列3a#~3c#に基づくエラーの正確な位置特定を示す図である。
【発明を実施するための形態】
【0035】
実施例
図1は、方法100の実施例の概略的なフローチャートである。ステップ105において、特に道路交通における少なくとも部分的に自動化された車両のオリエンテーションにとって最も重要であるデータタイプが、入力データとして入力マトリクス1の形態で供給され得る。
【0036】
ステップ110において、本実施例では3次元の入力マトリクス1が、本実施例では同様に3次元の畳み込みカーネル2a~2cによって畳み込まれ、これにより、それぞれ2次元の出力マトリクス3a~3cが生成される。ステップ120においては、畳み込みカーネル2a~2cがエレメントごとに合計されて、制御カーネル4が生成される。入力マトリクス1は、制御カーネル4によって畳み込まれ、これにより2次元の制御マトリクス5が生じる。
【0037】
ステップ140においては、制御マトリクス5の各エレメント5*が、出力マトリクス3a~3cにおける、エレメント5*に対応するエレメント3a*~3c*の合計と比較される。ステップ150において、この比較140が偏差を示すかどうかが検査される。比較140が偏差を示す場合(真理値1)、ステップ160において、少なくとも1つの出力マトリクス3a~3cの、制御マトリクス5のこのエレメント5*に対応するエレメント3a*~3c*が、正しく計算されたかどうかが検査される。
【0038】
ステップ170において、出力マトリクス3a~3cのエレメント3a*~3c*が正しく計算されなかったことが確認された場合には、このエレメント3a*~3c*が、ステップ180において、比較において求められた偏差の分だけ補正され得る。
【0039】
なお、ステップ190において、その後、全ての出力マトリクス3a~3cの、制御マトリクス5のエレメント5*に対応するエレメントにつき、これらのエレメントが正しく計算されたかどうかを検査し、ステップ200により、これらの全てのエレメント3a*~3c*が正しく計算されたこと(真理値1)を確認することも可能である。この場合、ステップ210において、制御マトリクス5のエレメント5*が正しく計算されなかった一方で、同時に、出力マトリクス3a~3cは全て正確であることが確認される。
【0040】
出力マトリクス3a~3cが全て正確である場合、又は、場合により生じ得るエラーがステップ180において補正された場合には、出力マトリクス3a~3cはさらなる評価を受けることができる。ステップ270において、これらの出力マトリクス3a~3cが処理されて、特に駆動制御信号6が生成され得る。次いで、ステップ280において、車両50及び/又は分類システム60及び/又は大量生産された製品の品質管理システム70及び/又は医用撮像システム80及び/又はアクセスコントロールシステム90が、この駆動制御信号6によって駆動制御可能となる。
【0041】
これに対して、ステップ220において、出力マトリクス3a~3cが正しく計算されなかったことが確認された場合には、ステップ230において、偏差の原因として考慮される少なくとも1つのハードウェアコンポーネント又は少なくとも1つのメモリ領域に関して、エラーカウンタがインクリメントされ得る。次いで、ステップ240において、エラーカウンタが所定の閾値を上回っていること(真理値1)が確認されると、ステップ250において、ハードウェアコンポーネント又はメモリ領域が故障していると認識され得る。次いで、ステップ260において、故障していると認識されたハードウェアコンポーネント又は故障していると認識されたメモリ領域の代わりに、予備ハードウェアコンポーネント又は予備メモリ領域がさらなる計算のために利用されるように、ハードウェアプラットフォームが再構成され得る。
【0042】
ボックス110の内側には、畳み込みカーネル2a~2cによる畳み込みの可能な構成が示されている。ブロック111において、畳み込みの際に、第1のバイアス値7aが第1の出力マトリクス3aの値に、第2のバイアス値7bが第2の出力マトリクス3bの値に、また第3のバイアス値7cが第3の出力マトリクス3cの値に加算される。ブロック112において、これらのバイアス値7a,7b,7cの合計7a+7b+7cが制御マトリクス5の全てのエレメントにも加算される。
【0043】
ブロック161においては、付加的な制御計算160の際に、特に、少なくとも1つの出力マトリクス3a~3cの検査対象エレメント3a*~3c*を含む行又は列3a#~3c#が正しく計算されたかどうかが検査され得る。このことは図3において、より詳細に示されている。
【0044】
この検査のために、特に、例えばハードウェアプラットフォームの、畳み込みのために設けられた加速モジュールを「転用」することができる。このために、ブロック162において、入力マトリクス1が、検査対象エレメント11の分だけ拡張される。次いで、ブロック163において、検査対象エレメント11は、加速モジュールを用いて、少なくとも1つの出力マトリクス3a~3cに対応する畳み込みカーネル2a~2cによって畳み込まれ、これにより制御値31が取得される。ブロック164において、行又は列3a#~3c#のエレメントの合計が、制御値31と比較される。ブロック165において、この比較から偏差が生じていること(真理値1)が確認された場合、ブロック166において、行又は列3a#~3c#が正しく計算されなかったこと、ひいては出力マトリクス3a~3cの検査対象エレメント3a*~3c*も正しく計算されなかったことが確認される。
【0045】
図2は、ハードウェアプラットフォームにおける制御カーネル4の利用によって生じ得る計算エラーに関する第1の検査が、加速モジュールを用いてどのように特に効率的に行われ得るかを示している。畳み込みカーネル2a~2cの各々の畳み込みカーネルによる入力マトリクス1の畳み込みにより、出力マトリクス3a~3cが生成される。制御カーネル4は、畳み込みカーネル2a~2cがエレメントごとに合計されることにより形成される。入力マトリクス1が制御カーネル4によって畳み込まれると、出力マトリクス3a~3cと同等の大きさの制御マトリクス5が生じる。制御マトリクス5の各エレメント5*は、それぞれの出力マトリクス3a~3cの平面に同一の座標(x,y)を有する出力マトリクス3a~3cの、各エレメント5*に対応するエレメント3a*~3c*の合計と同等となるはずである。
【0046】
図3は、さらなる制御計算を示しており、このさらなる制御計算によって、ブロック161において、生じ得るエラーをさらに制限することができる。
【0047】
図3aは、制御マトリクス5の左上隅におけるエレメント5*が、出力マトリクス3a~3cの、このエレメント5*に対応するエレメント3a*~3c*の合計と一致しないことを前提としている。その後、出力マトリクス3a~3cの各々について、対応するエレメント3a*~3c*を含む各行3a#~3c#が正しく計算されたかどうかが検査される。前述したように、これにより、それぞれのエレメント3a*~3c*を個別に検算するよりも迅速に検査を行うことができる。
【0048】
図3aに示されている例においては、この制御計算の際に、出力マトリクス3bの行3b#が正しく計算されなかったことが判る。したがって、エレメント3b*が正しく計算されなかったことが確実であり、対応する補正を行うことができる。
【0049】
図3bに具体的に示されているように、それぞれ検査対象エレメント3a*~3c*を含む出力マトリクス3a~3cの列3a#~3c#が正確な計算で検査される場合、プロセスは完全に同様に進行する。
図1
図2
図3a
図3b