(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024139758
(43)【公開日】2024-10-09
(54)【発明の名称】技術的装置を作動させるためのニューラルネットワークのための仮想的な訓練方法
(51)【国際特許分類】
G06N 3/08 20230101AFI20241002BHJP
【FI】
G06N3/08
【審査請求】未請求
【請求項の数】13
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024049432
(22)【出願日】2024-03-26
(31)【優先権主張番号】18/190,187
(32)【優先日】2023-03-27
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】506012213
【氏名又は名称】ディスペース ゲー・エム・ベー・ハー
【氏名又は名称原語表記】dSPACE GmbH
【住所又は居所原語表記】Rathenaustr.26,D-33102 Paderborn, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】シュテフェン グローテンヘーファー
(57)【要約】 (修正有)
【課題】仮想的な訓練環境において、技術的装置を作動させるためのニューラルネットワークを訓練する方法を提供する。
【解決手段】コンピュータシステム2において、方法は、ニューラルネットワーク8と技術的装置の第1のシミュレーション14aとの間に第1のデータリンクを確立し、第1のシミュレーションを作動させることによってニューラルネットワークを訓練する。第1の訓練目標が達成されると第1のデータリンクが遮断され、第2のシミュレーション14bを作動させることによってニューラルネットワークを訓練するために、ニューラルネットワークと技術的装置の第2のシミュレーションとの間に第2のデータリンクが確立される。第2のシミュレーションは、第1のシミュレーションよりも現実的になるように構成され、第1のシミュレーションよりも多くの数学的演算を必要とする。第2のシミュレーションは、ニューラルネットワークを訓練する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
技術的装置を作動させるためのニューラルネットワークを訓練するためのコンピュータにより実装される方法であって、前記方法は、以下の方法ステップ、すなわち
前記ニューラルネットワークと前記技術的装置の仮想的な第1のシミュレーションとの間の第1のデータリンクを、前記第1のシミュレーションから状態データを読み出すための、かつ、前記第1のシミュレーションに制御データを転送するための前記第1のシミュレーションの第1のデータインターフェースによって確立するステップと、
前記第1のシミュレーションを作動させるための第1の訓練目標を設定するステップと、
前記ニューラルネットワークによって作動させられている前記第1のシミュレーションによって前記ニューラルネットワークを訓練し、前記第1の訓練目標に対して前記ニューラルネットワークの訓練進捗をチェックするステップと、
前記第1の訓練目標が達成されると前記第1のデータリンクを遮断し、次いで、前記ニューラルネットワークと前記技術的装置の仮想的な第2のシミュレーションとの間の第2のデータリンクを、前記第2のシミュレーションから状態データを読み出すための、かつ、前記第2のシミュレーションに制御データを転送するための前記第2のシミュレーションの第2のデータインターフェースによって確立するステップであって、前記第2のシミュレーションは、前記第1のシミュレーションよりも現実的になるように構成されており、かつ、前記第2のシミュレーションの現実性がより高いことに起因して、1回のシミュレーションサイクルに対して前記第1のシミュレーションよりも多くの数学的演算を必要とするステップと、
前記ニューラルネットワークによって作動させられている前記第2のシミュレーションによって前記ニューラルネットワークを訓練するステップと、
を含む方法。
【請求項2】
前記第1のデータインターフェースと前記第2のデータインターフェースとは、同一に構成されている、
請求項1記載の方法。
【請求項3】
前記方法は、以下の方法ステップ、すなわち
前記技術的装置の仮想的な環境に関する情報を含んでいるシミュレートされたセンサデータを生成するステップと、
前記シミュレートされたセンサデータを、前記ニューラルネットワークに転送するステップと、
前記センサデータを評価するように、かつ、前記第1のシミュレーションおよび/または前記第2のシミュレーションを作動させる際に前記センサデータを考慮するように、前記ニューラルネットワークを訓練するステップと、
を含む、
請求項1記載の方法。
【請求項4】
前記技術的装置は、ロボット、特に以下のカテゴリ、すなわち
車両、
ロボットアーム、
材料および/またはオブジェクトを位置決めするまたは取り付けるためのロボット、
表面を洗浄するためのロボット、
空間または表面を検査するためのロボット、
化学物質、例えば洗浄剤、消毒剤、塗料、ワニス、またはコーティングを塗布するためのロボット、
医療行為を実施するためのロボット、
のうちの少なくとも1つに属するロボットである、
請求項1から3までのいずれか1項記載の方法。
【請求項5】
前記第1の訓練目標は、以下の訓練目標のカテゴリ、すなわち
仮想的な訓練コース上または仮想的なテストルート上を進行する区間、
如何なる衝突も伴わずに、または所定の移動範囲内で実施される複数の運動パターン、
前記ニューラルネットワークが、如何なる不所望なイベントも発生することなく適切に前記第1のシミュレーションを作動させる期間、
報酬関数に対して到達される閾値、
のうちの少なくとも1つに属する、
請求項4記載の方法。
【請求項6】
前記第2のシミュレーションは、
前記第1のシミュレーションよりも多くの、前記技術的装置の機械的コンポーネントおよび/または電気的コンポーネントを考慮し、かつ/または
前記第1のシミュレーションよりも多くの機械的自由度を考慮し、かつ/または
物理的な現象および/または法則を、前記第1のシミュレーションよりも現実的かつ/または高精度にシミュレートし、かつ/または
前記第1のシミュレーションよりも多数の物理的な力および/または相互作用を考慮し、かつ/または
前記第1のシミュレーションよりも小さいシミュレーションステップサイズを有する、
請求項1から5までのいずれか1項記載の方法。
【請求項7】
前記方法は、以下の方法ステップ、すなわち
前記第2のシミュレーションを作動させるための第2の訓練目標を設定するステップと、
前記第2のシミュレーションの作動中に、前記第2の訓練目標に対して前記ニューラルネットワークの訓練進捗をチェックするステップと、
前記第2の訓練目標が達成された後、前記ニューラルネットワークと前記技術的装置との間に物理的なデータリンクを確立するステップと、
前記ニューラルネットワークによって前記技術的装置を作動させるステップと、
を含む、
請求項1から6までのいずれか1項記載の方法。
【請求項8】
技術的装置を作動させるためのニューラルネットワークを訓練するための仮想的な訓練環境であって、前記仮想的な訓練環境は、
第1のシミュレーションから状態データを読み出すための、かつ、前記第1のシミュレーションに制御データを転送するための第1のデータインターフェースを有する、前記技術的装置の第1のシミュレーションと、
前記ニューラルネットワークと前記第1のシミュレーションとの間に第1のデータリンクを確立するためのプログラミングインターフェースと、
前記ニューラルネットワークによって作動させられるべき前記第1のシミュレーションのための訓練目標を設定するように、かつ、前記訓練目標に対して前記ニューラルネットワークの訓練進捗をチェックするように構成された訓練機能と、
を含む仮想的な訓練環境において、
前記仮想的な訓練環境は、前記技術的装置の第2のシミュレーションを含み、
前記第2のシミュレーションは、前記第1のシミュレーションよりも現実的になるように構成されており、かつ、前記第2のシミュレーションの現実性がより高いことに起因して、1回のシミュレーションサイクルに対して前記第1のシミュレーションよりも多くの数学的演算を必要とし、
前記第2のシミュレーションは、前記第2のシミュレーションから状態データを読み出すための、かつ、前記第2のシミュレーションに制御データを転送するための第2のデータインターフェースを含み、
前記訓練機能は、
前記訓練目標が達成されると前記第1のデータリンクを遮断し、
前記第1のデータリンクを、前記ニューラルネットワークと前記第2のシミュレーションとの間の第2のデータリンクによって置き換え、
前記ニューラルネットワーク(8)によって作動させられている前記第2のシミュレーション(14b)によって前記ニューラルネットワーク(8)を訓練する、
ように構成されていることを特徴とする、
仮想的な訓練環境。
【請求項9】
前記第1のデータインターフェースと前記第2のデータインターフェースとは、同一に構成されている、
請求項8記載の仮想的な訓練環境。
【請求項10】
前記仮想的な訓練環境は、前記技術的装置の仮想的な環境と、センサシミュレーションと、を含み、
前記仮想的な訓練環境は、
前記センサシミュレーションによって、前記仮想的な環境に関する情報を含んでいるシミュレートされたセンサデータを生成し、
前記シミュレートされたセンサデータを、前記プログラミングインターフェースによって前記ニューラルネットワークに送信する、
ように構成されている、
請求項8記載の仮想的な訓練環境。
【請求項11】
前記技術的装置は、ロボット、特に以下のカテゴリ、すなわち
車両、
ロボットアーム、
材料および/またはオブジェクトを位置決めするまたは取り付けるためのロボット、
表面を洗浄するためのロボット、
空間または表面を検査するためのロボット、
化学物質、例えば洗浄剤、消毒剤、塗料、ワニス、またはコーティングを塗布するためのロボット、
医療行為を実施するためのロボット、
のうちの少なくとも1つに属するロボットである、
請求項8から10までのいずれか1項記載の仮想的な訓練環境。
【請求項12】
前記訓練目標は、以下の訓練目標のカテゴリ、すなわち
仮想的な訓練コース上または仮想的なテストルート上を進行する区間、
如何なる衝突も伴わずに、または所定の移動範囲内で実施される複数の運動パターン、
前記ニューラルネットワークが、如何なる不所望なイベントも発生することなく適切に前記第1のシミュレーションを作動させる期間、
報酬関数に対して到達される閾値、
のうちの少なくとも1つに属する、
請求項11記載の仮想的な訓練環境。
【請求項13】
前記第2のシミュレーションは、
前記第1のシミュレーションよりも多くの、前記技術的装置の機械的コンポーネントおよび/または電気的コンポーネントを考慮し、かつ/または
前記第1のシミュレーションよりも多くの機械的自由度を考慮し、かつ/または
物理的な現象および/または法則を、前記第1のシミュレーションよりも現実的かつ/または高精度にシミュレートし、かつ/または
前記第1のシミュレーションよりも多数の物理的な力および/または相互作用を考慮し、かつ/または
前記第1のシミュレーションよりも小さいシミュレーションステップサイズを有する、請求項8から12までのいずれか1項記載の仮想的な訓練環境。
【発明の詳細な説明】
【背景技術】
【0001】
近年、ニューラルネットワークは、変化する環境における複雑な運動パターンまたは監視タスクを独立して実施することができる自律型のシステムの開発において多大な進歩をもたらしている。しかしながら、これに関して、特にニューラルネットワークが、誤認識によって破滅的な結果がもたらされる可能性のあるセーフティクリティカルなタスクのために意図されている場合に、ニューラルネットワークを十分に訓練するために必要とされる訓練データが大量になることが問題である。その例には、道路交通のために意図された自動運転車、湖で溺れている人を認識するスマート監視カメラ、または地域もしくは建物から負傷者を探索するレスキュー型ロボットが含まれる。この種のシステムは、少なすぎる訓練または片側に寄りすぎた訓練によって引き起こされる誤動作を最適に排除するために、特に大量の種々異なる訓練データを必要とするのみならず、訓練データは、ニューラルネットワークが確実に認識および処理するように訓練されるべき壊滅的または危機的なシナリオを描写している大量のデータを含んでいる必要がある。そうしたシナリオは、その性質上、滅多にしか発生しないので、対応するデータ収集もまた滅多にはなく、このことはつまり、十分な訓練データを収集することが膨大な作業量を表すということを意味する。
【0002】
従来技術からのこの問題に対する1つの公知の解決策は、コンピュータシミュレーションを使用して合成された訓練データを生成することである。このケースでは、ニューラルネットワークを訓練するためのシナリオが、仮想的な環境において再構築され、これらの再構築されたシナリオに基づいて、ニューラルネットワークが理解可能な形式で、訓練データが生成される。このようにして、仮想的なシナリオを所望のように容易に変更することができる。しかしながら、合成されたデータは、一般的に現実世界のデータを完全には再現していないので、ニューラルネットワークが、合成された訓練データに慣れてくるようになり、現実世界での使用に対して十分に訓練されなくなるというリスクが原理的に存在する。
【0003】
科学論文“Synthetic Data for Deep Learning”Sergey I. Nikolenko (2019)には、関連する従来技術の包括的な概要が含まれている。同論文には、仮想的な環境において成功裏に訓練されたニューラルネットワークの種々異なる例が記載されている。しかしながら、これらの学術研究は、原則としてそうすることが可能であるということを表現しているにすぎない。合成された訓練データが現実的になればなるほど、それらの合成されたデータを使用して訓練されたニューラルネットワークの信頼性が高くなるという事実が、これによって変わるわけではない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、合成された訓練データを用いて技術的装置を作動させるためのニューラルネットワークを訓練することに関する。このケースにおいて、技術的装置が、厳しい安全性要件が課されている装置である場合、例えば高度に自動化された車両である場合には、仮想的な環境において学習されたニューラルネットワークの能力を現実世界に確実に引き継ぐことができるようにするために、高度な現実性を有する合成された訓練データを、訓練のために使用しなければならない。したがって、ニューラルネットワークに対して、実際世界において技術的装置を作動させているのだというほぼ完全な傑出した錯覚を与えるような、技術的装置の仮想的なシミュレーションを提供することが必要である。しかしながら、シミュレーションモデルの現実感は、その実行速度に反比例する。なぜなら、シミュレーションにおいて装置のより多くの技術的コンポーネントならびに物理的な現象および相互作用が考慮されればされるほど、技術的装置のシミュレーションモデルが、より現実的に挙動するからである。したがって、できるだけ最高の現実性を求める要求は、妥当な時間枠内で訓練を終了させるためにシミュレーションのできるだけ最速の実行速度を求める要求と矛盾することとなる。
【0005】
こうした背景に対して、本発明の課題は、仮想的な訓練環境において技術的装置を作動させるためのニューラルネットワークの訓練をスピードアップさせることである。
【0006】
独国特許出願公開第102018220865号明細書は、純粋に仮想的な訓練環境において開始し、ニューラルネットワークを後々の訓練フェーズにおいてより複雑な現実世界に段階的に慣らすために、仮想的な訓練環境を現実世界の訓練環境によって徐々に置き換える訓練方法を提案している。この方法では、比較的簡単なシミュレーションを使用することが可能であるが、後々の訓練フェーズは、現実世界の訓練データに依存しており、このことは、上述した関連する欠点を有する。
【課題を解決するための手段】
【0007】
本発明は、技術的装置を作動させるためのニューラルネットワークを訓練するための方法および本方法を実施するための仮想的な訓練環境である。本発明によれば、訓練されるべきニューラルネットワークと技術的装置の第1のシミュレーションとの間に、第1のデータリンクが確立される。この目的のために、第1のシミュレーションには第1のデータインターフェースが装備されており、ニューラルネットワークは、この第1のデータインターフェースによって第1のシミュレーションから状態データを読み出し、第1のシミュレーションに制御データを転送することができる。
【0008】
好ましくは、第1のデータインターフェースは、技術的装置の現実世界のデータインターフェースを再現しており、ニューラルネットワークは、前述のデータインターフェースの訓練が完了して検証されると現実世界の技術的装置を作動させるために前述のデータインターフェースを使用することを意図している。状態データとは、技術的装置の現在の状態に関するニューラルネットワーク情報を提供し、技術的装置を作動させるためにニューラルネットワークによって必要とされるデータとして解釈されるべきである。制御データとは、ニューラルネットワークによって指定された技術的装置の目標状態に向かって技術的装置の現在の状態を変更するために適したデータとして解釈されるべきである。技術的装置が陸上ベースの車両である場合には、例えば、考えられる状態データの例は、道路の側端をマーキングしている線からの距離、車両の速度、前方車両からの距離、ギアの噛み合い、車両のロール角、または車両の周囲の記述であり、考えられる制御データの例は、操舵角、スロットルバルブの開度、または制動力である。
【0009】
加えて、第1のシミュレーションを作動させるための第1の訓練目標が設定され、ニューラルネットワークによって作動させられている第1のシミュレーションによってニューラルネットワークが訓練され、第1の訓練目標に対してニューラルネットワークの訓練進捗が定期的にチェックされる。
【0010】
本発明によれば、第1のシミュレーションを使用するニューラルネットワークの訓練は、ニューラルネットワークが第1の訓練目標を達成するまで継続される。第1の訓練目標が達成されると第1のデータリンクが遮断され、ニューラルネットワークと仮想的な第2のシミュレーションとの間に、第2のデータリンクが確立される。第2のシミュレーションは、第1のシミュレーションよりも現実的になるように構成されており、かつ第2のシミュレーションの現実性がより高いことに起因して、1回のシミュレーションサイクルに対して第1のシミュレーションよりも多くの数学的演算を必要とする。第2のデータリンクは、第2のシミュレーションから状態データを読み出すための、かつ、第2のシミュレーションに制御データを転送するための第2のシミュレーションの第2のデータインターフェースによって確立される。
【0011】
シミュレーションサイクルとは、シミュレーションの1つのシミュレーションステップ、特に1つの時間ステップの完全な実行を指す。
【0012】
したがって、本発明によれば、初期の訓練フェーズでは、技術的装置の、比較的簡単であるがその代わりに高速であるシミュレーションモデルが使用される。ニューラルネットワークが、訓練目標の達成によって示されているように、簡単なシミュレーションモデルの作動を十分に習得するとすぐに、簡単なシミュレーションモデルは、より複雑でより緩慢であるがその代わりにより現実的であるシミュレーションモデルによって置き換えられ、ニューラルネットワークによって作動させられている第2のシミュレーションによって訓練が継続される。
【0013】
本発明の根底をなす仮定は、シミュレーションモデルは、初期の訓練フェーズではそれほど現実的である必要がないということである。なぜなら、ニューラルネットワークは、この時点では依然として基礎の学習に取り組んでいるからである。このことを例示的に説明するために、ニューラルネットワークは、本発明による方法に基づいて自動運転の路上走行車を操縦するように訓練されるべきであることが仮定されている。訓練されていないニューラルネットワークは、まず始めに、自身のタスクが実際にどのようなものであるか(右側の縁部マーキングと中央線との間に車両を維持すること)と、このタスクを基本的な用語においてどのように習得すべきか(負の操舵角は、車両を左に走行させ、正の操舵角は、車両を右に走行させる)とを理解する必要があるだろう。
【0014】
これらの基礎を学習するためには、車両の非常に簡単なシミュレーションで十分である。ニューラルネットワークがこれらの基礎を十分に学習するとすぐに、第1のシミュレーションが、車両の第2のシミュレーションによって置き換えられ、この第2のシミュレーションは、より複雑な現象、例えばロール角、カーブでの不安定性、運転快適性、横滑り状況、または横風を考慮する。本発明の概念は、いわゆる「転移学習」の特別な適用であり、この場合、ニューラルネットワークの事前に学習された能力が、別の能力を学習するための利点として使用される(このケースでは、より現実的なシミュレーションを作動させること)。安全上の理由から訓練のために非常に複雑かつ現実的なシミュレーションを使用しなければならないような訓練シナリオにおいて、本発明は、顕著な時間節約をもたらす。
【0015】
有利には、第2のシミュレーションを作動させるための第2の訓練目標が設定され、ニューラルネットワークは、第2の訓練目標が達成されるまで、第2のシミュレーションを作動させることによって訓練される。この目的のために、記第2のシミュレーションの作動中に、第2の訓練目標に対してニューラルネットワークの訓練進捗がチェックされる。第2の訓練目標は、第1の訓練目標と同一であってもよいし、または第1の訓練目標とは異なっていてもよい。第2の訓練目標が達成されると、訓練を完了したものとみなすことができ、現実世界におけるニューラルネットワークの訓練を検証するために、ニューラルネットワークと現実世界における技術的装置との間に物理的なデータリンクを確立することができる。しかしながら、言うまでもなく、第3のシミュレーションと、技術的装置の任意数のさらなるシミュレーションと、を作動させることにより、現実世界での検証前に仮想的な訓練環境における訓練を継続することも可能であり、この場合、技術的装置のそれぞれのシミュレーションの現実性は、いずれのケースにおいても先行するシミュレーションよりも高くなっている。関連する訓練目標が達成されるとシミュレーションの作動を終了させること、および、関連する次のシミュレーションの作動に移行することは、いずれのケースにおいても、第1のシミュレーションおよび第2のシミュレーションの例に関して説明したことと同様に実施される。
【0016】
第1のデータインターフェースと第2のデータインターフェースとは、好ましくは同一に構成されており、これにより、第1のデータリンクを、即座に、かつニューラルネットワークによって動作させられるデータ交換を修正することなく、第2のデータリンクによって置き換えることができる。
【0017】
技術的装置をシミュレーションすることは、有利には、技術的装置の仮想的な環境に関する情報を含んでいるシミュレートされたセンサデータを生成することを含む。当然、これらのセンサデータの性質は、技術的装置と、ニューラルネットワークが達成するように訓練されるタスクと、に依存している。例として、センサデータは、仮想的な環境におけるシミュレートされた移動するオブジェクトまたは静止したオブジェクトに基づいて生成されたオブジェクトリスト、車線境界線、環境内の表面のポリゴンベースの再現物、または画像生成センサからの、特にカメラ、ライダ、レーダ、もしくは反響定位からの生データであってよい。仮想的なセンサデータは、ニューラルネットワークに転送され、センサデータを評価するように、かつ関連するシミュレーションと最終的には技術的装置とを作動させる際にセンサデータを考慮するように、ニューラルネットワークが訓練される。
【0018】
言うまでもなく、シミュレートされたセンサデータは、ニューラルネットワークが理解可能な形式で、特に、技術的装置において現実世界のセンサデータも利用可能である形式と同じ形式で生成されなければならない。従来技術では、仮想的な環境に基づいてセンサデータを適切にシミュレートするための解決策が利用可能であり、例えば、科学論文“Development of Full Speed Range ACC with SiVIC, a virtual platform for ADAS Prototyping, test and evaluation” Dominique Gruyer et al., IEEE Intelligent Vehicle Symposium (2013)を参照されたい。
【0019】
本発明の拡張段階において、技術的装置のシミュレーションの複雑さを増大させるために、仮想的な環境への変更を同時に行うことも可能である。これらの変更は、ニューラルネットワークが、特定の仮想的な環境における動作パターンを単純に暗記するのではなく一般化することを学習するということを保証するための、純粋に幾何学的な変更であってよい。しかしながら、これらの変更は、技術的装置のシミュレーションの挙動に対して根本的な影響を与える仮想的な環境への拡張であってもよく、これにより、シミュレーションの挙動がより現実的になり、場合によってはニューラルネットワークにとってより要求の厳しいものになる。
【0020】
技術的装置は、好ましくはロボットである。ロボットとは、コンピュータによる作動によって、特にニューラルネットワークによる作動によっても、所定の行動を実施するために独立した複雑な運動パターンを実施する能力が与えられた任意の装置として解釈されるべきである。特に、技術的装置は、少なくとも部分的に自動化された航空機、船舶、または航空機、ロボットアーム、材料および/またはオブジェクトを位置決めするまたは取り付けるためのロボット、表面を洗浄するためのロボット、空間または表面を検査するためのロボット、化学物質、例えば洗浄剤、消毒剤、塗料、ワニス、またはコーティングを塗布するためのロボット、医療行為を実施するためのロボット、または前述したロボットカテゴリの任意の組み合わせであってよい。
【0021】
訓練目標は、技術的装置の種類と、ニューラルネットワークが学習すべきタスクと、に応じて種々異なるように構成されていてもよい。例えば、訓練目標は、仮想的な訓練コース上または仮想的なテストルート上を進行する所定の区間、如何なる衝突も伴わずに、または所定の移動範囲内で実施される所定数の運動パターン、ニューラルネットワークが、如何なる不所望なイベントも発生することなく適切に第1のシミュレーションを作動させる所定の期間、またはニューラルネットワークが訓練される際の基礎となる報酬関数に対して到達される所定の閾値であってよい。報酬関数は、ニューラルネットワークの出力が、先行する訓練フェーズよりも改善につながるかどうかを訓練中に評価する目的で、ニューラルネットワークを訓練するために定期的に使用される。報酬関数は、ニューラルネットワークが自身の特定のタスクをどの程度良好に習得したかを、この報酬関数の結果が示すことが可能となるように定義される。改善をもたらしたニューロンおよびシナプスの構成は、さらなる訓練ステップのための基礎として保持され、障害をもたらした構成は、拒絶される。
【0022】
第2のシミュレーションを、第1のシミュレーションよりも現実的になるように構成するための種々異なるオプションが存在する。例えば、第2のシミュレーションは、第1のシミュレーションよりも多くの、技術的装置の機械的コンポーネントおよび/または電気的コンポーネントを考慮することができ、より多くの機械的自由度を考慮することができ、物理的な現象および/または法則を、より現実的または高精度にシミュレートすることができ、より多数の物理的な力および/または相互作用を考慮することができ、またはより小さいシミュレーションステップサイズを有することができる。
【0023】
図面および以下の図面の説明は、特定の例に基づいて本発明をより詳細に説明する。
【図面の簡単な説明】
【0024】
【
図3】高度に自動化された車両のシミュレーションのための仮想的な環境を示す図である。
【
図4】高度に自動化された車両における車線認識をシミュレートするためのセンサシミュレーションを示す図である。
【
図5】高度に自動化された車両の第1のシミュレーションを示す図である。
【
図6】高度に自動化された車両の第2のシミュレーションを示す図である。
【
図7】高度に自動化された車両の第3のシミュレーションを示す図である。
【発明を実施するための形態】
【0025】
図1の図面は、コンピュータシステム2を示し、このコンピュータシステム2上には、ニューラルネットワーク8のための仮想的な訓練環境4および開発環境6がセットアップされている。技術的装置を作動させるために意図されており、かつそのタスクのために訓練されるべきニューラルネットワーク8は、開発環境6に埋め込まれている。開発環境6は、訓練環境4から論理的に分離されており、ニューラルネットワーク8に加えて、報酬関数Tを実行するための第1の開発ルーチン10と、第2の開発ルーチン12と、を含み、この第2の開発ルーチン12は、報酬関数Tの関数値を監視するように、かつこの関数値に基づいてニューラルネットワーク8の構成を変更するように、すなわちTの関数値を所定の手法で最適化するためにニューラルネットワーク8のニューロンおよびシナプスに格納されている値を変更するように構成されている。Tの関数値は、行列xに依存しており、行列xにおけるエントリは、仮想的な訓練環境4によって供給される。
【0026】
図示の開発環境6のような開発環境は、従来技術において公知であり、市場で入手可能である。例には、PyTorchおよびTensorflowが含まれる。
【0027】
例として、仮想的な訓練環境4は、技術的装置の3つのシミュレーション、すなわち第1のシミュレーション14aと、第2のシミュレーション14bと、第3のシミュレーション14cと、を含む。第1のシミュレーション14aは、ニューラルネットワーク8が第1のシミュレーション14aを作動させるための第1のデータインターフェース16aを含む。第1のシミュレーション14a上で訓練されている間、ニューラルネットワーク8は、第1のシミュレーション14aから状態データを読み出し、第1のシミュレーション14aに制御データを転送する。同様に、第2のシミュレーション14bは、第2のデータインターフェース16bを含み、第3のシミュレーション14cは、第3のデータインターフェース16cを含む。第2のデータインターフェース16bおよび第3のデータインターフェース16cの両方は、第1のデータインターフェース16aと機能的に同一である。結果として、3つのシミュレーション14a,14b,14cを、即座に互いに入れ替えることができ、ニューラルネットワーク8は、3つのシミュレーション14a,14b,14cのうちのどれを自身が作動させているのかを直接的に識別することができない。
【0028】
技術的装置のこれらのシミュレーションの現実性の程度は、次第に増加していき、すなわち第2のシミュレーション14bは、第1のシミュレーション14aよりも現実的になるように構成されており、第3のシミュレーション14cは、第2のシミュレーション14bよりも現実的になるように構成されている。これらのシミュレーションのそれぞれの現実性の程度がより高くなっている結果として、第2のシミュレーション14bのシミュレーションサイクルは、コンピュータシステム2によって実行されるべき数学的演算を、第1のシミュレーション14aのシミュレーションサイクルよりも多く要求し、これにより、第2のシミュレーション14bは、第1のシミュレーション14aよりも緩慢になり、第3のシミュレーション14cのシミュレーションサイクルは、コンピュータシステム2によって実行されるべき数学的演算を、第2のシミュレーション14bのシミュレーションサイクルよりも多く要求し、これにより、第3のシミュレーション14cは、第2のシミュレーション14bよりもさらに緩慢になる。
【0029】
仮想的な訓練環境4は、3つのシミュレーション14a,14b,14cのうちの1つと、仮想的な訓練環境4のプログラミングインターフェース18との間にデータリンクを確立するための第1の仮想的なマルチプレクサ20を含む。開発環境6は、プログラミングインターフェース18によって訓練環境4に接続され、これにより、第1の仮想的なマルチプレクサ20の位置決めの結果として、ニューラルネットワーク8と第1のシミュレーション14aとの間に第1のデータリンクを確立することができるか、またはニューラルネットワーク8と第2のシミュレーション14bとの間に第2のデータリンクを確立することができるか、またはニューラルネットワーク8と第3のシミュレーション14cとの間に第3のデータリンクを確立することができる。
【0030】
技術的装置のシミュレーション14a,14b,14cと同様に、仮想的な訓練環境4は、技術的装置の仮想的な環境22も含み、第2の仮想的なマルチプレクサ21は、この仮想的な環境22と、シミュレーション14a,14b,14cのうちの1つと、の間にデータリンクを確立するように構成されている。仮想的な環境22は、技術的装置の典型的な環境の再現物であり、技術的装置と現実世界の環境との典型的な相互作用をシミュレートしている、関連するシミュレーション14a,14b,14cと仮想的な環境22との間の相互作用を、訓練環境4によって考慮することができるように、3つのシミュレーション14a,14b,14cのうちの1つが、第2の仮想的なマルチプレクサ21によって確立されたデータリンクに基づいて仮想的な環境22に組み込まれる。第1のシミュレーション14a、第2のシミュレーション14b、および第3のシミュレーション14cは、それぞれ少なくとも1つのセンサシミュレーション30も含み、このセンサシミュレーション30は、技術的装置の現実世界のセンサをシミュレートしており、シミュレートされたセンサデータ34を生成して、このシミュレートされたセンサデータをニューラルネットワーク8に送信し、ニューラルネットワーク8は、このセンサデータ34から仮想的な環境22に関する情報を読み出すことができる。
【0031】
訓練機能24は、第1の仮想的なマルチプレクサ20および第2の仮想的なマルチプレクサ22を、これら両方のマルチプレクサがどの時点においても技術的装置の同じシミュレーション14a,14b,14cに接続されるように作動させるように構成されており、これにより、どの時点においても第1のシミュレーション14a、第2のシミュレーション14bまたは第3のシミュレーション14cを介して仮想的な環境22とニューラルネットワーク8との間に継続的かつ間接的なデータリンクが存在することとなる。加えて、訓練機能24は、訓練目標メモリ26から第1のシミュレーション14aのための第1の訓練目標と、第2のシミュレーション14bのための第2の訓練目標と、第3のシミュレーション14cのための第3の訓練目標と、を読み出すように構成されている。構成ソフトウェアが含まれているオペレータコンピュータ28が、コンピュータシステム2に接続されており、これにより、第1の訓練目標、第2の訓練目標、および第3の訓練目標を、ユーザによって設定して、構成ソフトウェアのオペレータインターフェースによって訓練目標メモリ26に格納することができるようになっている。
【0032】
図2の図面は、ニューラルネットワーク8を訓練するために訓練機能24が実施する方法ステップを示す。開始時、訓練機能24は、第1の仮想的なマルチプレクサ20を作動させることによって第1のシミュレーション14aをニューラルネットワーク8に接続し、これにより第1のデータリンクを確立する。次に、訓練機能24は、第2の仮想的なマルチプレクサ21を作動させることによって第1のシミュレーション14aを仮想的な環境22に接続する。したがって、訓練機能は、ニューラルネットワーク8と仮想的な環境22との間に、第1のシミュレーション14aによって媒介される継続的なデータリンクを確立し、ニューラルネットワーク8は、仮想的な環境22において第1のシミュレーション14aを作動させることができる。この時点で、訓練機能24は、ニューラルネットワーク8によって作動させられている第1のシミュレーション14aによってニューラルネットワーク8の訓練を開始し、訓練中に、第1の訓練目標に対してニューラルネットワーク8の訓練進捗を継続的にチェックし、第1の訓練目標が達成されるまで訓練を継続する。
【0033】
第1のシミュレーション14aの実行速度が高速であるので、第1の訓練目標は、比較的短時間で達成される。有利には、第1のシミュレーション14aの構成および第1の訓練目標は、第1の訓練目標が達成されると、ニューラルネットワーク8が技術的装置を作動させる基礎を学習するように選択される。
【0034】
第1の訓練目標が達成されると、訓練機能24は、第1の仮想的なマルチプレクサ20を作動させることによってニューラルネットワーク8を第2のシミュレーション14bに接続する。このようにして、訓練機能24は、第1のデータリンクを遮断し、第1のデータリンクを、ニューラルネットワーク8と第2のシミュレーション14bとの間の第2のデータリンクによって置き換える。次に、訓練機能24は、第2の仮想的なマルチプレクサ21を作動させることによって第2のシミュレーション14bを仮想的な環境に接続する。ここで、第2のシミュレーションを、同じように仮想的な環境22に組み込み、第1のシミュレーション14aが以前に作動させられたのと同じようにニューラルネットワーク8によって作動させることができる。同様に、訓練機能24は、訓練を開始および監視し、第2の訓練目標が達成されるまで訓練を継続する。また同様に、第3の訓練目標が達成されるまで、第3のシミュレーション14cを含んでいる第3の訓練フェーズが実施される。第3の訓練目標が達成されると、訓練機能24は、訓練を終了させる。
【0035】
最後の第3のシミュレーション14cは、好ましくは、技術的装置の非常に複雑かつ現実的なシミュレーションであり、第3の訓練目標および第3のシミュレーションの構成は、好ましくは、最後の第3の訓練目標が達成されると、ニューラルネットワーク8が、滅多にない例外的な状況下でさえもどのようにして技術的装置を安全に作動させるべきかを学習するように選択される。
【0036】
仮想的な訓練環境4において訓練が終了すると、仮想的な訓練環境4において実施された訓練を検証する目的で、または現実世界の環境においてその訓練を継続する目的で、ニューラルネットワーク8によって技術的装置を現実世界の環境において作動させるために、ニューラルネットワークと技術的装置との間にデータリンクを確立することができる。
【0037】
図3の図面は、高度に自動化された路上走行車を作動させるためのニューラルネットワークを訓練するための仮想的な訓練環境を示す。仮想的な環境22は、高度に自動化された路上走行車の典型的な環境を再現しており、この目的のために、車両、草木、交通標識、および建物のような多数の静止した3Dオブジェクトおよび移動する3DオブジェクトO1,・・・,O8と、道路を再現している仮想的なテストルート32と、を含む。図示の例では、技術的装置は、路上走行車であり、路上走行車の第1のシミュレーション14aは、仮想的な道路利用者として仮想的な環境22に組み込まれており、これにより、第1のシミュレーション14aは、仮想的な環境22において、現実世界の道路交通シナリオにおける現実世界の路上走行車と同じように移動する。
【0038】
第1のシミュレーション14a(および第2のシミュレーション14bおよび第3のシミュレーション14cも)は、センサシミュレーション30を含み、このセンサシミュレーション30には、仮想的な環境22において(図示のケースでは、シミュレートされた路上走行車14aの正面に)センサ位置が割り当てられている。例として、センサシミュレーション30は、車線を認識するためのスマートカメラをシミュレートしている。仮想的な環境22において、センサシミュレーション30に視野FVが割り当てられている。車線は、これらの車線が視野FV内にあり、かつ3DオブジェクトO1,・・・,O8または仮想的な環境22のトポグラフィによってセンサシミュレーション30の視点から隠されていない限り、センサシミュレーション30にとって可視である。
【0039】
ニューラルネットワーク8は、仮想的な環境において、操舵角を操作することによって路上走行車14aを横方向に操舵するように訓練されるべきである。加速、制動、および距離制御のような路上走行車14aを作動させる他の態様は、第1のシミュレーション14aまたは第2のシミュレーション14bまたは第3のシミュレーション14cのルーチンによって実施され、ニューラルネットワーク8による影響を受けない。
【0040】
図4の図面は、センサシミュレーション30の機能を例として示す。入力として、センサシミュレーション30は、例えばオブジェクトリストの形態で、仮想的な訓練環境4から仮想的な環境22の記述を受信し、この記述から、シミュレートされたセンサデータ34を生成し、このシミュレートされたセンサデータ34を、プログラミングインターフェース18によってニューラルネットワーク8に送信する。図示の例では、センサデータ34は、スポットの行から成り、スポットのそれぞれの行は、スマートカメラにとって可視である車線セグメントを表し、それぞれのスポットは、3つの空間座標によって表される。スポットの列は、仮想的な環境22におけるシミュレートされた路上走行車14aのための移動範囲を指定する。第1のシミュレーション14aのためのニューラルネットワーク8の第1の訓練目標は、第1のシミュレーション14aによってシミュレートされた路上走行車が、仮想的なテストルート32上の所定の区間、例えば5キロメートルの区間を、この区間上にいる間に、シミュレートされたセンサデータ34におけるスポットの行のうちの1つの行からのいずれのスポットとも衝突することなく進行するように、第1のシミュレーション14aを作動させることである。この目的のために、訓練機能24は、第1のシミュレーション14aによってシミュレートされた路上走行車が仮想的なテストルート32上で進行するルートを監視して、路上走行車と道路境界線との衝突を認識するように構成されている。
【0041】
センサデータ34におけるスポットの行は、いわゆるグラウンドトゥルースのセンサデータの一例である。センサデータ34におけるスポットの行は、画像生成センサからの生データのスマート評価の後に利用可能となるセンサデータをシミュレートし、仮想的な環境22に基づいてシミュレートすることが特に簡単である。しかしながら、基本的に、シミュレートされたセンサデータ34は、ニューラルネットワーク8が処理するように訓練されるべきセンサデータ34の種類に応じて任意の形態で構成されていてよく、例えば、オブジェクトリストとして、またはカメラ、熱画像カメラ、レーダ、ライダ、もしくは反響定位からの生データとして構成されていてよい。シミュレートされたセンサデータ34は、仮想的な環境22の画像がセンサシミュレーション30の視点からリアルタイムにレンダリングされているスクリーンに向けられた、現実世界のカメラから発生していてもよい。当業者であれば、センサシミュレーションの種々異なるオプションと、そのために実装されるべきブレークポイントと、の概要を、カメラシミュレーションの例を使用している科学論文“Full spectrum camera simulation for reliable virtual development and validation of ADAS and automated driving applications”Rene Molenaar et al., 2015 IEEE Intelligent Vehicles Symposium (IV)において見出すことができる。
【0042】
図5の図面は、路上走行車の第1のシミュレーション14aの考えられる構成を示す。ニューラルネットワーク8からの入力として、第1のシミュレーションは、操舵角θを受信し、一定の操舵感度sとシミュレーションステップサイズΔtとを乗算することにより、簡単な一次関数に基づいて、仮想的なテストルート32の2次元平面上における路上走行車の方向変化Δφを操舵角θに割り当てる。方向変化Δφに基づいて、第1のシミュレーション14bは、後続のシミュレーションステップにおける新たな進行方向を計算する。したがって、第1のシミュレーション14aは、路上走行車の極めて簡単化されたモデルであり、このモデルでは、路上走行車は、いかなる回転自由度も有していない中実体であり、どの時点においても完全な円弧上を地面と平行に移動し、この完全な円弧の曲率は、操舵角θによって線形に事前に定められている。第1のシミュレーション14aに基づいて、ニューラルネットワーク8は、路上走行車を操舵する基礎を学習する。
【0043】
第1の訓練目標が達成されると、
図1に基づいて上述したように第1のシミュレーション14aは、
図6の図面に示されている第2のシミュレーション14bによって置き換えられる。第1のシミュレーション14aと正確に同じように、第2のシミュレーションは、ニューラルネットワーク8から入力として操舵角θを受信し、ニューラルネットワーク8に送信されたセンサデータ34のおかげでニューラルネットワーク8にとって可視である方向変化Δφを、この操舵角θに基づいて確認し、その際、センサデータ34の構成は、第1のシミュレーション14aと比較して不変のままである。したがって、ニューラルネットワーク8が、第2のシミュレーション14bから状態データ(このケースでは、センサデータ34)を読み出すため、かつ第2のシミュレーション14bに制御データ(このケースでは、操舵角θ)を転送するために用いる第2のデータインターフェース16bは、第1のシミュレーションの第1のデータインターフェース16aと同一である。したがって、ニューラルネットワークは、第1のシミュレーション14aが第2のシミュレーション14bによって置き換えられたことを直接的に識別することができない。しかしながら、第2のシミュレーション14bは、現実と比較して依然として非常に簡単化されてもいるが、第1のシミュレーション14bよりも現実的になるように構成されている。第2のシミュレーション14bは、いわゆるキネマティック自転車モデル(kinematic bicycle model)であり、このモデルは、四輪の陸上ベースの車両の簡単なシミュレーションのための当業者には公知の基本モデルである。キネマティック自転車モデルは、1つのレベルに位置するそれぞれの2つの車輪を、これら2つの車輪が共通の長手方向軸線上に配置されるように1つの車輪へと組み合わせ、その際、前輪には、操舵角θに応じた傾斜角が割り当てられ、この傾斜角から、固定の後輪と連携して方向変化Δφが計算される。キネマティック自転車モデルは、第1のシミュレーション14aよりも多くの自由度、すなわち前輪が回転する能力と、より多くの物理的な現象、例えば空間内での車両の範囲または車両の質量中心の存在と、を考慮する。したがって、第2のシミュレーション14bのシミュレーションサイクルの場合には、第1のシミュレーション14aのシミュレーションサイクルの場合よりも多くの数学的演算を処理しなければならない。したがって、全体として、ニューラルネットワーク8の訓練は、第1のシミュレーション14a上での訓練と比較してより緩慢になる。しかしながら、第2のシミュレーション14bは、依然として多数の現象、例えばタイヤの粘着力の損失および車両の自由度を無視している。したがって、第2のシミュレーション14bは、第2の訓練フェーズにおいても迅速な訓練の成功を達成するために十分に高速である。
【0044】
第2のシミュレーション14bには、第2の訓練目標が割り当てられており、第2の訓練目標は、第1の訓練目標と同一であってよい。訓練目標が達成されると、上述したように第2のシミュレーション14bは、
図7の図面に示されている第3のシミュレーション14cによって置き換えられる。第3のシミュレーション14cは、現実世界の路上走行車における技術的動作および機械的動作を高詳細度に再現している複雑なシミュレーションである。第3のシミュレーション14cは、車両のドライブトレインおよび全てのサスペンションの完全なシミュレーションと、現実的な加速挙動および制動挙動を有するエンジンのシミュレーションと、現実的なタイヤモデルと、車体が道路上に配置されているときの車両のヨー運動およびロール運動と、一部または全部のタイヤと道路との接触の損失と、車両に作用する空気力と、を含む。第3のシミュレーション14cの第3のデータインターフェース16cも、第2のデータインターフェース16bおよび第1のデータインターフェース16aと同一である。
【0045】
第3のシミュレーション14cにおける詳細度が高いことに起因して、第3のシミュレーション14cを用いた訓練は、第2のシミュレーション14bおよび第1のシミュレーション14aを用いた訓練よりも大幅に時間を要するものとなるが、第3のシミュレーション14cの性能は、路上走行車の実際の性能に大いに類似している。結果として、第3の訓練目標が達成されると、ニューラルネットワークは、高度な訓練レベルに到達し、現実世界の路上走行車を現実世界のテストルート上で実験的に作動させることが可能となる。
【外国語明細書】