皆さん、おはようございます。本日はご来場いただきありがとうございます。シミンと申します。現在、バージニア工科大学統計学科の博士課程5年目に在籍しており、JMPの実験計画法と信頼性グループで夏季インターンとして働いた経験もあります。本日は、JMPが信頼性分析をどのようにサポートし、自動運転車や人工知能の新たな分野の安全性を評価するのかを実演します。本日の講演タイトルは「自動運転車の安全性を探る:JMPを活用した信頼性分析」です。
本日の講演に入る前に、皆さんに私のことを知っていただくために、少し自己紹介をさせてください。私はシミンです。バージニア工科大学統計学科の博士課程5年生です。ゴー・ホーキーズ!私の研究は、AIシステムの信頼性、AI駆動型統計分析、大規模言語モデルの性能評価に焦点を当てています。そうです、大規模言語モデルを構築するのは私ではありませんが、その堅牢性と信頼性をテストするのは私です。私の研究関心はチームのミッションと密接に一致しているので、DoEと信頼性グループの一員であることは私にとってまさにぴったりです。
研究以外にも、いくつかの専門活動や団体に積極的に参加しています。バージニア工科大学構内で統計コンサルティングサービスを提供するStatistical Applications and Innovation Group(略称SAIG)の主任統計協力者を務めています。また、統計学部の企業パートナーイベントの委員も務めています。最近では、バージニア工科大学支部のMu Sigma Rhoの幹事に任命され、学生の積極的な参加と活動の支援に携わっています。
このプレゼンテーションはJMPユーザーの皆様を広く対象としていることは承知しております。「信頼性とは一体何なのか?」と疑問に思われる方もいらっしゃるかもしれません。信頼性について考える時、いくつかの重要な概念が思い浮かびます。一貫性、堅牢性、信頼性、実証済み、テスト済み、信頼性などです。これらはすべて、人々が信頼性と自然に結び付ける言葉であり、物理的な製品、ソフトウェアシステム、さらには機械学習モデルなど、どのような対象であっても当てはまります。つまり、信頼性とは、一貫したパフォーマンスを通じた信頼のことです。
さて、この分野におけるより正式な定義を詳しく見てみましょう。Meeker (2021) によると、信頼性は非公式には故障の回避と経時的な品質の両方として説明されています。言い換えれば、システムが故障を回避し、その寿命を通して良好なパフォーマンスを維持し続ける場合、信頼性が高いとみなされます。
この定義は、鉱業のあらゆる分野に適用されます。例えば、製品の信頼性では、通常、物理的なコンポーネントやシステムを指します。AIシステムの信頼性では、ソフトウェアの信頼性、つまりコードとインフラストラクチャが堅牢でクラッシュしないこと、そしてモデルの堅牢性とパフォーマンス、つまり予期しない入力やノイズの多い入力に直面してもモデルが適切に動作することを保証することにまで広がります。
信頼性について皆さんが大まかなイメージを掴んだところで、AIシステムについて見ていきましょう。AIシステムの普及が進むにつれ、AIにおける信頼性は新たな重要分野として浮上しています。人工知能システム(略してAIシステムと呼ばれることが多い)は、自律走行車(略してAV)、AI搭載ドローン、特徴認識、会話型AIなど、幅広い用途に使用されています。中でもAVは、安全性と信頼性が不可欠となる最も影響力のあるアプリケーションの一つであり、現実世界でのAVの挙動と不確実性を理解し、モデル化することが非常に重要です。
多くの研究では、被験者ごとに時間の経過とともに繰り返し発生するイベントを観察します。これは再発イベントプロセスと呼ばれ、結果として得られるデータは再発イベントデータと呼ばれます。自動運転の分野では、1種類ではなく複数の種類の再発イベントが観察されます。自動運転車には2種類のイベントが関与しています。1つはディスエンゲージメントイベント、もう1つは衝突イベントと呼ばれます。ディスエンゲージメントイベントは、システムの限界、不明瞭な道路状況、潜在的なリスクなどにより、自動運転システムが人間のドライバーに制御を戻す際に発生します。一方、衝突イベントは、自動運転中に実際に衝突が発生するイベントです。これらをまとめて、マルチタイプ再発イベントデータと呼びます。
これまでにも、AVの信頼性に関する論文を発表しています。まず、「AVの信頼性保証テスト計画」では、このエンゲージメントイベントに焦点を当て、反復イベントデータを用いてAVの信頼性保証テストを計画するための統計的手法を開発しています。次に、「DR-AIR」では、AI信頼性データのための確立されたリポジトリを導入し、共通の測定基準とデータタイプを定義し、この新興研究分野を支援するために利用可能なクリーンなデータセットを提供しています。これらを総合的に検討することで、AI信頼性という新興分野の分析を促進する方向性を示しています。
AVの信頼性分析のデータはどこから得られるのか、と疑問に思う方もいるかもしれません。AV分野では、カリフォルニア州DMVが2015年から自動運転車のテストプログラムを実施しています。このプログラムの一環として、カリフォルニア州でAVをテストする企業は、まず毎年のディスエンゲージレポートを提出し、次に事故発生後10日以内に衝突を報告することが義務付けられています。
このスライドには2つの例が示されています。左側はディスエンゲージメントレポートのスクリーンショット、右側は衝突レポートで、メーカーとAI-AIR別に詳細なインシデントがリストアップされています。ディスエンゲージメントと衝突という2つのAVイベントタイプに戻ります。本日は、AVの安全性を実証するための連合に主に焦点を合わせます。AIが進歩するにつれて、信頼性の高い最新のAVパフォーマンスを確立することが、社会の信頼を得るために重要になります。これは、次のような疑問につながります。第一に、AVの安全性はどのようにモデル化されるべきか?第二に、現在のAVの安全レベルは信頼できるか?第三に、JMPは再発する衝突イベントデータの分析にどのように役立つか?そして最も重要なのは、自律性レベルと安全性の関係性です。
本日の講演のワークフローは、エンドツーエンドでご説明します。まず、データの収集とクリーニング、PDFソースのインポート、信頼性分析に必要なフィールドの抽出を行います。次に、データ探索を行います。エクスポージャーベースの測定値を視覚化します。走行距離は、運転の頻度を反映するため、エクスポージャーとして機能します。走行距離が長いほど、衝突の可能性が高くなります。次に、衝突イベントのパターンを経時的に調査し、リスク指標である衝突イベント率を視覚化します。これは、走行距離に関係なく、ドライバーが衝突する可能性を定量化したものです。率が高いほど、同じエクスポージャーで衝突が発生する可能性が高くなります。
最後に、データ分析では、信頼性成長モデルに焦点を当て、集計データに信頼性モデリングを適用し、自律性レベルと安全性レベルの関係性を検証します。JMPの各ステップを詳しく説明し、AV信頼性分析におけるJMPの機能を紹介します。
衝突事故から始めるにあたり、カリフォルニア州DMV(自動車局)の報告書の概要を改めておさらいしておきましょう。DMVは、すべての自動運転車メーカーに対し、物的損害、負傷、さらには死亡事故が発生した場合の報告書の提出を求めています。ウェブサイトでは、これらの公開報告書はメーカー別、年別にリスト化されており、スライドの左側に表示されています。今日はWaymoに焦点を当てます。WaymoはGoogleの自動運転プロジェクトとして始まり、現在では一部の都市で自動運転車による広範囲な配車サービスを提供しています。Waymoのドライバーは、カメラ、レーダー、ラダー、地図、さらには機械学習を組み合わせ、慎重で予測可能なドライバーのように行動します。Waymoは広範な事業展開と一貫した詳細なレポートを提供しており、そのデータは信頼性分析に最適です。
カリフォルニア州DMVの衝突事故報告書をインポートしてクレンジングする方法をご紹介します。左側は先ほどご覧いただいた公開ポータルです。右側は典型的な衝突事故報告書です。報告書を開いて、含まれるフィールドを確認してみましょう。各PDFから、製造元、日時、車両の年式、メーカー、モデル、場所、その他の照合情報といった重要なフィールドを抽出します。次に、構造化データをJMPに読み込み、適切なタイプを割り当て、名前を標準化します。これにより、分析のためのクリーンな表が作成され、さらに詳しく調査することができます。
公開されている衝突事故報告書から主要なフィールドを抽出した後、衝突イベントデータセットの構造を見てみましょう。この表は、製造元、日付、年式、モデル、メーカー、車両、モデル、基本的な事故の詳細など、私たちが保持したフィールドを示していますが、VINなどの固有識別子は含まれていません。下部に記載されているように、衝突データは集計レベルでのみ利用可能です。つまり、VINレベルの情報はありません。最終分析段階に進む際には、この点に留意します。
これは、WaymoのJMPテーブルを抽出し、衝突レポートのフィールドに基づいて整理したものです。月次レベルでは、日数、AVテストの回数、キロマイルで測定された総走行距離、衝突イベント数が含まれています。これらはすべて集計値であり、VINレベルの詳細は含まれていないことに注意してください。これに基づいて、累積イベント数を追加し、時間の経過とともに衝突がどのように発生するかを確認します。さらに、AVの安全リスク指標も計算します。これらのイベントが時間の経過とともにどのくらい頻繁に発生するかを測定することで、衝突イベントの再発率を取得し、安全性の代理指標として使用します。
ここで別の疑問が浮かび上がります。JMPの既存の列情報に基づいて列を作成するにはどうすればよいでしょうか?詳細なクリックパスはここにまとめられています。まず、「列」メニューに移動し、「新規列」を選択します。次に、「列名」を「衝突発生率」に設定します。次に、「データ」タブを「数値」に、「モデル」タブを「連続」に設定します。次に、「列のプロパティ」を開き、「計算式」を選択して、新しい列のカスタム計算式を入力します。例えば、累積合計を使用して累積イベントの列を作成し、衝突発生率は衝突イベント数を総走行距離で割ることで計算されます。
新しい情報を追加した後のJMPデータテーブルは次のようになります。新しい数式を適用すると、累積衝突回数と衝突率という2つの新しい列が追加されました。これら2つの特徴量は、次に当てはめるPlopsとFeed信頼性モデルを駆動します。新しいJMPテーブルに基づいて、探索的データ分析でデータを探索してみましょう。走行距離がリスク要因であるため、走行距離が長いほど衝突の機会が増えることを意味します。
まず、カレンダータブで走行距離を視覚化することから始めましょう。JMPで走行距離チャートを作成するための手順を、分かりやすく説明します。まず、グラフを開いてグラフビルダーを選択します。次に、日付をX軸にドラッグします。次に、キロマイル単位で測定した総走行距離をY軸にドラッグします。そして、上部の2つの棒グラフから線要素を選択します。このチャートは、月ごとの走行距離と露出を示しています。最初は増加し、2020年には急激に減少し、2021年から2022年にかけて回復し、卒業生数は減少傾向にあり、最終的には緩やかな増加が見られます。
ここで指摘したいことが2つあります。1つ目は、2020年以降、走行距離がゼロの月があることです。これは、COVID-19の流行後にAVのテストが大幅に増加したことを意味します。2つ目は、仕事の後、走行距離が調整されたことです。これは、COVID-19の流行後にテストがより広範囲に行われたことを示しています。さらに一歩進んで、衝突事故の累積件数と月ごとの衝突件数を見て、AVの安全性の傾向を見てみましょう。この視覚化をJMPで作成するには、左側の累積プロットを作成するために、まずグラフビルダーを開きます。次に、日付をX軸にドラッグします。3番目に、衝突事故の累積件数をY軸にドラッグします。次に、線を選択します。より明確な傾向が必要な場合は、小さい値を追加します。累積プロットの傾きを見れば、そのことがわかります。
傾斜が緩やかであるほど、イベント数が少ないことを意味します。傾斜が急であるほど、月あたりのイベント数が多いことを意味します。最初は緩やかに増加し、2020 年頃には平坦になります。その後、2021 年から 2022 年にかけて急激に減少します。その後、傾斜は多少の上下を伴いながらも緩やかになります。右側には、月ごとの衝突件数が表示されています。まず、グラフ ビルダーを開きます。次に、日付を X 軸にドラッグします。次に、衝突イベント数を Y 軸にドラッグします。次に、視覚化で [棒グラフ] を選択します。赤い部分の視覚化から、月ごとに同じパターンが見られ、最初は件数が少なく、2020 年にラウンドが深くなり、2021 年から 2022 年にかけて急激に増加し、その後は混在していることがわかります。これは、現在関心のある年に基づいて、衝突件数がどのように発生するかについての大まかな概要を示しています。
これまでは、衝突件数と走行距離という2つの指標を別々に見てきました。では、どのようにこれらを組み合わせるのでしょうか?行数から、曝露調整リスク指標である衝突発生率に切り替えます。これにより、走行距離の異なる月を公平に比較できるようになります。まず、JMPで作成する方法を説明します。前のスライドで説明したのと同様のパターンに従います。グラフビルダーを開き、日数をX軸にドラッグします。次に、衝突発生率をY軸にドラッグします。最後に、視覚化に棒グラフを選択します。
この視覚化では、急上昇と急降下が見られます。バーが高いほど、男性1人あたりの月間衝突確率が高いことを意味します。バーが低いほど、リスクが低いことを意味します。全体的に衝突率は比較的低く、Waymoが自動運転車の安全性を管理していることを示しています。それでは、本日の講演の核となるJMPの信頼性分析に移りましょう。まず、区分ワイブルNHPP変化点検出を用いた信頼性グループを用いて、衝突リスクが時間とともにいつ、どのように変化するかを確認します。この手法では、タイムラインをフェーズに分割し、それぞれに独自のトレンドが見られます。
JMPではどのように行うのでしょうか?JMPの手順を順を追って説明します。まず、「分析」を開き、「信頼性と生存時間」モジュールに移動します。「信頼性成長」を選択します。次に、「日付形式」に注目してください。「日付」を「タイムスタンプ」にドラッグします。次に、「衝突イベント数」を「イベントカウント」にドラッグします。次に、プラットフォームを実行します。出力で、「区分ワイブル、NHPP変化点検出」を選択します。右側のプロットでは、累積衝突を示す点が確認できます。
緑色の帯は不確実性を考慮した近似曲線を示し、傾きはリスクを反映しています。傾きが急であるほどイベント発生率が高く、傾きが平坦であるほど信頼性が向上していることを意味します。ハイライト表示された領域の近くに、示唆される変化点が確認できます。変化点を超えると傾きが変化し、異なるリスクパターンを示しています。表は、区分ワイブル法(NHPP変化点検出)による推定値を示しています。モデルは2022年8月に変化点を検出しました。変化点以前は、beta[1]が約2.09で、衝突率が急速に上昇していたことを示しています。変化後は、beta[2]が約1.17で、より平坦に近くなり、率の上昇は緩やかになっています。Lambdaは全体の尺度を設定します。95%信頼区間は、各推定値の不確実性を示しています。
しかし、信頼性成長モデルの累積イベントプロットをよく見ると、タイムラインは複数のフェーズに分かれています。各フェーズでは、傾きが異なる様相を呈しています。複数の異なる傾きの変化が見られ、リスクパターンが期間ごとに変化していることを示唆しています。これが、カレンダーを複数のフェーズに分割し、モデルを再適合させて結果の変化を確認するという目的です。先ほど説明したロジックに従い、「フェーズ」という新しい列を追加し、信頼性成長モデルを再適合させました。まず、「フェーズ」ラベルを作成します。
JMPではどのように行うのでしょうか?具体的には、まず「列」メニューを開き、「新規列」を選択します。次に、「列名」を「フェーズ」に設定します。次に、「データ」タブを「文字」、「モデリング」タブを「名義尺度」に設定します。次に、列を時間範囲で入力します。日付範囲ごとに行を選択し、ラベルを入力するか、列のプロパティで式を追加します。右側のプロットには、フェーズの境界が青い破線で示されています。各フェーズでは、累積曲線の傾きがイベントの推移を示しています。傾きが急なほど単位時間あたりの衝突が多く、緩やかなほど改善が見られます。異なるフェーズ間で傾きを比較することで、ソフトウェア運用におけるリスクの変化と報酬の変化を結び付けることができます。
次に、フェーズを使って信頼性成長分析を再実行してみましょう。区分ワイブルNHPPを用いてモデルを当てはめます。このモデルは、タイムラインをそれぞれ独自のトレンドを持つ複数のフェーズに分割します。JMPで、以下の手順を実行してみましょう。まず、「分析」を開き、「信頼性と生存モジュール」を選択し、「信頼性成長モデル」を指定します。次に、「日付の形式」タブに移動します。最後に、「日付」を「タイムスタンプ」に、「衝突イベント数」を「イベントカウント」に、「フェーズ」を「フェーズ」にドラッグします。最後に「OK」をクリックして、すべてを再実行します。
右側を見ると、緑色の曲線と帯がフィッティングされた累積イベント数と不確実性を示しています。青色の破線はフェーズの境界を示しています。各フェーズ内では、傾きが衝突イベントの発生頻度を示しています。この表は、異なるフェーズごとの区分ワイブルNHPP推定値を示しています。ベータに注目してください。一般的な考え方としては、ベータが1より大きい場合、そのフェーズでは衝突率が上昇しています。ベータが1を超える場合、衝突率はほぼ横ばいです。ベータが1未満の場合は、衝突率は低下しています。これは信頼性の向上を示しています。
ここで、フェーズA、B、C、D、E、G、Iのベータは1を超えており、これらの期間にリスクが上昇していることを示しています。一方、フェーズFとHのベータは1未満であり、信頼性が向上していることを示唆しています。これが、これら2つの異なるモデルの適合方法と、異なる適合方法と比較した場合のモデル結果の変化です。自律性と安全性の関係についても調査する必要があることに注意してください。代理自律性として、ディスエンゲージメントイベントを検討します。これまでと同じアプローチを使用します。分析のために、最も集約的な月次ディスエンゲージメントデータを収集します。自律性と安全性を関連付けるために、ディスエンゲージメントイベント率を追加します。
これを衝突発生率と併せて使用し、離脱が少ない月は衝突発生率も少ないかどうかを確認します。JMPで離脱発生率を作成するには、以下の手順に従ってください。まず、「列」メニューに移動し、「新しい列」を選択します。次に、「列名」を「離脱発生率」と入力します。次に、「データ」タブを数値に設定し、「モデル」タブを「連続」に設定します。次に、カスタム式を入力します。離脱発生数を総走行距離で割ります。この式に基づいて、月ごとの離脱発生率を算出できます。
左側は自動運転車の安全性を示す指標である衝突発生率です。右側はディスエンゲージ発生率です。自動運転の安全性を示す指標はどちらも月ごとに変化します。ここで重要なのは、ディスエンゲージ発生率が低下すると、共謀発生率も低い水準を維持することが多いということですが、確実にするためには直接比較する必要があります。次に、これら2つの発生率をスマザー付きの散布図に表示し、2つの測定値の関係を定量化します。この視覚化では、X軸はディスエンゲージ発生率、Y軸は衝突発生率です。網掛けの線は、95%信頼区間で近似した線です。
ここから、わずかな上昇傾向が見られます。1マイルあたりの離脱が多い月は、1マイルあたりの衝突件数が多い傾向があります。この関係は統計的に有意ですが、緩やかなため、ばらつきが大きくなっています。これは、これら2つの測定値の間に相関関係があることを示しています。ここで重要なのは、自動運転技術が向上するにつれて、衝突率は平均的に低下していくということです。少なくとも、現在私たちが注目しているWaymoのようなメーカーの場合、その傾向は顕著です。
自動運転車の安全性を調査するために行った作業を簡単にまとめてみましょう。まず、データ収集とクリーニングを行い、DMVレポートをJMPにインポートし、道路フィールドから新しい列を作成して、JMPデータテーブルが分析可能な状態であることを確認しました。次に、データ探索に移ります。時間の経過に伴う走行距離であるエクスポージャーを視覚化し、衝突イベントとそのリスクをプロットして、エクスポージャー調整後のリスクのビューを取得しました。最後に、データ分析では、区分ワイブルNHPP変化点検出を使用して集計データに2つの信頼性成長モデルを当てはめ、フェーズと傾きのシフトを特定し、さらに区分ワイブルNHPPを使用してタイムラインを異なるフェーズに分割しました。さらに、ディスエンゲージ率と衝突率を比較することで、自動運転とAVの安全性の関係を調査しました。
最後になりましたが、重要なことです。