自動運転システム検証で失敗事例を特定するためのコンピューター処理効率が高い機械学習ベースのアプローチ

2021-06-14

現実世界での運転はシナリオがほぼ無限にあるため、制約がない世界で安全に動作する数百万台の車両を構築することは大きな課題です。 各交差点には、数百万の異なるシナリオが容易に存在する可能性があり、どれだけのテストを行えば、すべての道路利用者の安全が確保されるのかを結論付けることは困難です。 安全性は消費者にとって車を選択する際の重要な要素であり、自動運転車の実用展開には安全性への規制対応が必要になります。 規制があったとしても、消費者は依然として自動運転車の安全性に警戒するでしょう。Partners for Automated Vehicle Education (PAVE) が実施した世論調査によると、アメリカ人の 48% が、「自動運転のタクシーや相乗りには絶対に乗らない」と回答しました。

自動運転車システムの安全性がきちんと検証されていることを自信を持って述べるために、開発チームは、名目上のシナリオだけでなく、制限速度、環境条件(例:天気、昼間/夜間)、およびアクター(例:周囲の車両、歩行者、物体)の存在とその動作などのパラメーターを含め、驚異的な数の組み合わせを説明する大きな「パラメーター空間」からのエッジケースシナリオをテストして、合格する必要があります。 生成されたシナリオが意図した相互作用を適切にテストしたことを保証するためのキャッチオールソリューションとしてランタイム制約などのアプローチが提案されていますが、実際には、より多くの失敗事例を検出するには、よりコンピューター処理効率の高いアプローチが必要です。 この投稿では、このような興味深いシナリオを特定するための一般的なアプローチを共有し、機械学習ベースのアプローチを使用して失敗したケースをより効率的かつプロアクティブに検索する方法について説明します。 

失敗したシナリオを特定する一般的なアプローチ

パラメータ空間全体のテストは、パラメータ空間の組み合わせが爆発的に多い(数百万の組み合わせ)ため計算コストが高く、ほとんどの組み合わせがありふれている物であったり、場合によっては非現実的であるため、あまり役に立ちません。シミュレーションで大きなパラメータ空間を探索するには、無効なシナリオ(たとえば、非現実的なアクターの動作や意図した相互作用が発生しない状況)を除外し、自動運転システムアルゴリズムが失敗しそうな(たとえば、歩行者が通りに飛び込む)「興味深いシナリオ」を賢く選択することが重要です。

離脱とクラッシュのレポート

通常、シナリオタイプ(繰り返し発生するトラフィックのケース)を理解するプロセスは、離脱とデータベースのクラッシュを調べることから始まります。 たとえば、カリフォルニア州陸運局(DMV)では自動運転車の衝突レポートが義務付けられており、自動運転システムプログラムにとって衝突パターンを理解するための貴重なデータソースです。 開発チームは、以前のレポートを調べることで、機能や条件(時刻、道路状況など)ごとのクラッシュの分布、自動運転システムのクラッシュと離脱に寄与する要因、自動運転システムの安全性能(事故の頻度/単位距離で測定)など人間のドライバーと比較しながら洞察を得ることができます。 これらの洞察は、テストシナリオを設計する際の着目点としての情報となります。

現実世界の事故分析は役立ちますが、車両が遭遇した衝突の数は、自動運転システムがポストプロダクション展開で遭遇する可能性があるリスクの高いシナリオのほんの一部であるため、自動運転システムの安全性の検証には不十分です。

要求駆動型テスト

現実世界のデータを使用する際の制約に対処するために、システム要件自体からシナリオを導き出すことで、より手続き的で系統的なアプローチを使用できます。 このアプローチでは、システムの要件を備えた検証プログラムが、自動運転システムのテストケースを定義します。 これらの要件とテストケースは、パラメーター化されると、パラメーターの多くの順列をスイープしたパラメーター化されたシナリオにリンクできます。 これらの生成されたシナリオは、自動運転システムエンジニアがスタックを非常に多様な状況でテストするのに役立ちます。その多くは、非常に危険であるか、現実の世界でテストすることが不可能な場合があります。

パラメータスイープベースの要件テストを改善するにはさまざまな方法がありますが、その中で最も簡単なのはパラメータベースのプルーニングです。 パラメータ化されたシナリオは、自動運転システムにとって現実的で簡単なシナリオ、現実的で困難なシナリオ、非現実的なシナリオの 3 つのカテゴリのシナリオを生成します。 パラメータベースのプルーニングにより、入力パラメータに基づいて、非現実的、不可能、またはその他の点で無関係であることがわかっているシナリオを除外できます。 パラメータスイープシナリオとプルーニングを組み合わせて使用することにより、現実的なシナリオ空間での実際のカバレッジをよりよく理解できます。

ランタイムの制約

パラメータベースのプルーニングの最大の欠点は、シナリオの作成者がシナリオのパラメータがシミュレーションのプロパティにどのように影響するかを知ることに依存していることです。 ランタイムの制約では、シナリオ作成者がシミュレーションプロパティ自体に制約を導入できるようにすることでこれを改善します。 シミュレーション時間中にアクターとエゴの相互作用に制約を指定することにより、特定の望ましい動作を表示しない例を無視したり、それらの動作を強制的に発生させたりすることができます。

高速道路で合流する際の乱暴なアクターを回避するためのテストを目標とするシナリオを想像してみてください。 パラメータには、高速道路の交通スポナーのパラメータと、指定された乱暴的なアクターの速度または乱暴性の要素が含まれます。 高速道路上の車両と乱暴的なアクターが衝突する場合や、乱暴的なアクターが後ろから自車両にぶつかる場合など、意味をなさない可能性のあるシミュレーションは、剪定または調整する必要があります。ただし、これらの観測結果は、自車両の動作に基づいて変化する可能性があり、入力パラメーターに明確な意味合いは結び付けられていません。この場合、ランタイム時の制約により、失敗したケースが早期に検出され、シミュレーション障害がトリガーされるか、境界条件内でシミュレーションが強制的に続行されます。

このアプローチにはいくつかの制限があります。 パラメータベースのプルーニングと同様に、ランタイム時の制約を重要な意味合いのある方法で定義するのは難しい場合があります。 前述した追突の例では、後方からの衝突をフィルタリングするのは簡単かもしれませんが、原因がテストケースの範囲外であるかどうかを判断するのは困難です。たとえば、追突は自車両の減速が速すぎることが原因である可能性があります。これは、テストスイートに含める必要のあるバリエーションですが、アクターの合流が遅すぎることが原因である可能性もあります。これは、除外する必要のある失敗です。 さらに、ランタイム時の制約は、特に制約を適用するときに、いくつかの非現実性をもたらす可能性があります。

これらの制限にもかかわらず、ランタイム制約は、パラメータがシミュレーションプロパティにどのようにマッピングされるかを知らなくても、シナリオのパラメータ空間の一部を意味的に整理するための有力な方法です。 入力パラメータ空間でのランダムまたは確率的サンプリング方法と組み合わせると、自動運転システムの検証に必要な計算を大幅に削減できます。

機械学習ベースアプローチ (自動サンプリング)

機械学習(ML)ベースのアプローチは、開発チームが関心のあるイベントのパラメーター空間をより賢く探索するのに役立ちます。 このアプローチ(自動サンプリングと呼びます)では、検証チームがシミュレーションテストを実行するときに、通常の興味のないケースが自動的に最小化されます。 失敗につながる、または失敗に近い興味深いケースを見つけることを目的として、組み合わせのサブセットのみが実行されるため、計算の時間とコストを大幅に削減できます。

大まかに言えば、このアプローチは、自動運転車のスタックを、シナリオのパラメータ空間とシミュレーションの結果の間のブラックボックスまたはグレーボックスの関数マッピングとしてモデル化することで機能します。 この抽象化により、自動サンプリングメカニズムでさまざまな統計手法を適用し、最も重要で興味深いエッジケースのみをサンプリングできます。

自動サンプリングは、検索されるパラメータの数を桁違いに減らせる可能性があります。 たとえば、自車両と 2 人のアクターがいる標準的な左折シナリオの場合、失敗を誘発するために、初期パラメーターの何千もの組み合わせを単調、またはランダムにサンプリングする必要があります。 自動サンプリングを使用すると、衝突までの時間(TTC)のシナリオパラメータ応答関数を概算して賢く検索できます。 この手法を使用すると、パラメーター空間の最も重要な領域にのみ焦点を当てるだけで、複雑なパラメーター化されたシナリオの実行に関連するシミュレーションコストと計算時間を最大 90 % 節約できます。

自動サンプリングには制限があり、これは主にブラックボックスの最適化における根本的な問題に起因します。 自動サンプリングを最も効果的にするには、応答関数が比較的適切に動作し、十分に決定論的である必要があります。 さらに、さまざまなサンプリング手法がさまざまな応答関数のトポグラフィーで構成されているため、応答関数がどのようになるかを事前に知ることは困難です。 ただし、自動サンプリングをパラメーターベースのプルーニングおよびランタイム制約と組み合わせることにより、ほとんどの問題を解決することができます。

自動サンプリングは、スタックの失敗から学習を重ね、その固有の原因を調査し、従来のパラメーター化されたシナリオにかかる何分の 1 かの時間で潜在的な故障モードを明らかにする強力なツールです。 これらの手法は、処理が容易な 99 % のケースではなく、1 % の失敗したケースを見つけてテストすることにより、検証と証明確認のワークフローを強化します。 そして、自動サンプリングは強力なツールを検証および証明確認ツールに追加し、あなたのチームがより強力なカバーストーリーを作成できるようにします。

当社のアプローチ

Applied Intuitionチームは、潜在的な失敗するケースをプロアクティブに検索するための探索的検証は、既存の検証ワークフローに補完する必要があると考えています。 当社の証明確認および検証管理ツールは、自動運転システム開発チームをサポートし、失敗するケースを早期に検出し、コストのリスクを抑え、危険な事象が現実の世界で発生するのを軽減します。 このツールは、当社のすべてのシミュレーション製品とシームレスに統合され、シミュレーションの実行を最適化し、興味深いイベントを賢く検出します。 製品内で堅牢な視覚化を通じて当社のツールは、利害関係者および規制当局への安全性および機能要件の伝達をサポートします。検証ワークフローのツールまたはアプローチの詳細については、エンジニアリングチームまでお問い合わせください。