※本記事は、Stanford大学のコース「AA228V: Validation of Safety Critical Systems」におけるAnthony Corso氏(Terra AI)のゲスト講義の内容を基に作成されています。コースの詳細情報はhttps://aa228v.stanford.edu/ でご覧いただけ、関連テキストブックはhttps://algorithmsbook.com/validation/ で入手可能です。
講師陣について:
- Anthony Corso氏:Terra AI所属。適応型ストレステストの専門家。詳細はhttps://ancorso.github.io/ をご参照ください。
- Sydney Katz氏:Stanford大学ポスドク研究員。詳細はhttps://sydneymkatz.com/ をご参照ください。
- Mykel Kochenderfer氏:Stanford大学航空宇宙工学准教授(コンピュータサイエンス兼任)。詳細はhttps://mykel.kochenderfer.com/ をご参照ください。
コースへの登録や詳細については、Stanford Onlineのウェブサイト(https://online.stanford.edu/ )をご覧ください。Stanford Onlineは、Stanford工学部のグローバル・オンライン教育センター(CGOE)によって運営・管理されており、Stanford大学全体から提供される学術的・専門的教育へのポータルとなっています。
本記事では講義の内容を要約しておりますが、原著作者の見解を正確に反映するよう努めております。ただし、要約や解釈による誤りがある可能性もありますので、正確な情報については原講義の視聴をお勧めいたします。
1. 導入部分
1.1 授業の概要と前回の振り返り
Sydney Katz:今日は前回の続きから始めて、残りの2つのトピックを終えた後、とても興味深いゲスト講義に移ります。先週は偽陽性(falsification)、つまりシステムの失敗を発見する方法について話しました。特に木曜日には計画技術を使った偽陽性の方法について詳しく説明しました。木探索の2つの異なるタイプ、ヒューリスティック探索とモンテカルロ木探索について取り上げました。ヒューリスティック探索は、高速拡張ランダム木(rapidly exploring random trees)というアルゴリズムのさまざまなバリエーションでした。モンテカルロ木探索で話を終えたので、今日はまずこれら2つの残りのトピックから始めて、強化学習に入りたいと思います。
高レベルで考えると、私たちが行ってきたのは、テスト対象のシステムがあり、私たちはそのシステムの敵対者として考えることができます。私たちはシステムに障害を起こさせようとしていて、敵対者ができることは各タイムステップでシステムに障害を与えることです。システムはステップ関数を呼び出して次のステップを実行し、システムは敵対者に報酬を返します。敵対者にとって報酬が「良い」と考えるのは少し変ですが、敵対者なので、状況が悪ければ悪いほど敵対者の報酬は高くなります。つまり、システムが失敗に近づくほど、敵対者はより高い報酬を得ることになります。
このループはおそらく皆さんにとって馴染みがあるかもしれません。スライドにすでに答えがありますが、これは強化学習を思い出させるはずです。ここでの重要な洞察は、これが正確に強化学習のセットアップであるということです。私たちは何らかのタスクを行うためにエージェントをトレーニングし、報酬フィードバックを得て、いくつかのアクションを取ることができます。この場合、アクションは障害であり、エージェントではなく敵対者と呼んでいますが、これはシステム内のエージェントと混同しないためです。ここでのアイデアは、このセットアップを使用して、システムの失敗を引き起こすことができる敵対者をトレーニングするために、存在するすべての強化学習アルゴリズムを活用できるということです。
私は様々な強化学習アルゴリズムについては詳しく説明しません。それは明らかにスタンフォードの別のコース全体です。しかし、このように私たちのシステムをセットアップすれば、すぐに使える強化学習アルゴリズムを利用できるという点が素晴らしいところです。なぜこれをしたいのかというと、過去数十年にわたって強化学習の分野では、サンプル効率の良い強化学習アルゴリズムを設計するための膨大な研究が行われてきました。私たちはこのループを通してできるだけ少ないステップで良いポリシー、つまり良い敵対者を学習したいのです。強化学習の分野全体の大きな焦点はこのサンプル効率にあります。私たちはこの分野ですでに行われているすべての研究と作業を活用して、強化学習を使って非常に効率的に失敗を見つけることができます。
先週見たほかのアルゴリズムとは異なるもう一つの素晴らしいことは、異なる初期状態に一般化できることです。木探索を行っていた時、ある初期状態から始めて、そこから木を構築していました。木探索を使って異なる状態からの失敗を見つけたい場合は、多くの異なる初期状態から始める必要があります。しかし強化学習では、これらのアルゴリズムの多くは、エージェント(または敵対者)が多くの異なる状態に一般化することを可能にします。そのため、異なる出発点から失敗を見つけることができます。
ここで例を示しましょう。これは以前のセクションで使用したコンティニュアムワールドですが、今回は一つの初期状態からではなく、多くの異なる初期状態から始めています。これらの軌跡はすべて、ある初期状態から始まり、何らかの経路に展開されるものです。私たちの目標はこれらすべての軌跡を失敗させることです。現在、これらはどれも障害物に当たっていないので、失敗していません。私たちがしたいのは、強化学習エージェントをトレーニングして、軌跡全体で異なる状態にある各タイムステップで障害を選択し、障害物に衝突させることです。このアニメーションを表示すると、この強化学習エージェントのトレーニングがどのように見えるかがわかります。異なる初期状態からこれらの失敗を徐々に生成することができます。これがトレーニングの様子です。数回のトレーニングステップの後、まだ完全に理解していませんが、より長くトレーニングするにつれて、敵対者はシステムを失敗させることがより上手になります。
最後に一つ注意点があります。MCTSや強化学習を使用してシステムの最も可能性の高い失敗を探すというコンセプトは、しばしば適応型ストレステスト(adaptive stress testing)と呼ばれます。もしその言葉が周りで使われているのを聞いたことがあれば、それは私たちが今やったことを意味します。通常、適応型ストレステストは、使用している目的関数に関連付けられます。この場合、強化学習エージェントの報酬には、何らかの可能性の概念が含まれています。しかし一般的には、最も可能性の高い失敗を見つけようとするとき、それを適応型ストレステストと呼びます。Anthonyは今日の彼のゲスト講義でこれについてもっと話します。興味深いことに、適応型ストレステストのアイデアは、ここ私たちの研究室で、Richie Leeという元学生によって形成されました。もっと知りたければ彼の論文をチェックしてください。
1.2 適応型ストレステスト(Adaptive Stress Testing)の基本概念紹介
Anthony Corso:適応型ストレステストは、Sydneyが導入してくれてありがとう。適応型ストレステストは、最も可能性の高い失敗の目的関数を用いた偽陽性検出のための一種の高度な用語です。Richie Leeによる最初の研究での主要な洞察は、単に失敗をナイーブに探すのではなく、モンテカルロ木探索や深層強化学習などの既知の最適化技術を使って積極的に失敗を探し、問題をこのように設定するということでした。
これは、おそらく以前見たことのあるものと非常に似ていますが、基本的な考え方は、テスト対象のシステムがあり、これはエージェントで、何らかの環境内でアクションを取っています。そして、環境を何らかの方法で攪乱する敵対者がいます。それはセンサーのノイズを制御したり、環境内の他のエージェントの行動を制御したりするかもしれません。敵対者は環境内で何が起きているかについての情報をもとに行動します。このように設定すると、最適化と強化学習のアルゴリズムを非常に簡単に適用できます。
適応型ストレステストに関する最初の研究におけるもう一つの重要な洞察は、単に任意の失敗を探すのではなく、最も可能性の高い失敗を探すということです。非常に極端な攪乱を加えることで簡単に見つけられる失敗ではなく、実際に発生する可能性がまだある失敗、つまり非常に極端な例ではない攪乱のタイプを探すということです。
初期の研究は次のようなものでした。非常に類似した図ですが、いくつかの違いがあります。シミュレータがあり、この場合はAACAS X形式の衝突回避システムで、内部動作にはアクセスできないブラックボックスシミュレータにパッケージ化されていました。しかし、各ステップでシミュレータの乱数シードを設定でき、その乱数シードは確率的サンプリングプロセスの結果を変更していました。シードを入力すると、遷移確率が出力されました。つまり、シードを与えると、その遷移が発生する可能性がどれくらいあるかを教えてくれました。また、例えば衝突が発生したかどうかについても情報を提供しました。これが探していたレアイベントです。しかし、二つの航空機が最接近点でどれだけ近かったかという概念も提供しました。これにより、最適化を通知するために利用できる信号が少し得られます。
これを木探索スタイルのアルゴリズムに導入し、非常に興味深い結果が得られました。この衝突回避システムを実行している二つの航空機間のニアミスを相当数見つける能力を発見しました。ここには上面図と側面図があり、特定の軌跡と勧告の反転を示しています。これらの結果は、失敗につながる可能性のある構成を理解するために、システムの設計者にとって非常に有用でした。
1.3 安全性重視システムの重要性と失敗の代償
Anthony Corso:安全性重視のドメインに自律システムを導入することを考える際、私個人的には起こりうる悪い結果について多く考えてきましたが、そもそもなぜこれを行いたいのかを忘れないことが重要です。交通システムにより多くの自律性をもたらすことから得られる素晴らしいことがたくさんあると思います。
航空はすでに非常に高い安全基準を享受していますが、空域はより複雑で密度が高くなり、私たちは本当にその非常に高いレベルの安全性を維持することができるようにしたいと思っています。Michael、Robert、Sydneyが全員関わったAcas Xシステムのようなものは、衝突回避の安全性係数を3〜5倍向上させることが示されており、これはとても刺激的です。
同様に、現在、交通事故は毎年100万人以上を殺し、そのうち約94%は単なる人間のミスによるものです。この数を減らすことができれば、世界に大きな恩恵をもたらすことができるでしょう。
しかし、もちろんリスクはあります。2018年に発生した特定の衝突についてすでに聞いたことがあるかもしれません。これは自律走行車による最初の歩行者死亡事故と考えられていました。UberのATG(自動運転部門)で、今はなくなっていますが、アリゾナ州で運用していて、女性が自転車で道路を横断していました。一連のエラーがありましたが、主にシステムがこの人と自転車の組み合わせを正しく分類できなかったことと、彼女がどこにいるかを予測するのが下手だったことにより、車両は彼女にぶつかり死亡させました。
実世界で運用されるこのような種類のシステムには、非常に強い現実世界の結果があります。もちろん、現在、道路上にはもっと多くの自律性があります。これは実際にたった2年前のものです。Teslaのオートパイロット機能に関連する数多くの衝突がありました。これは完全に自律しているわけではありませんが、実際に致命的な衝突につながっています。
ここで実際に起こっていることは、これらのシステムが機械学習システムが脆い方法で脆くなっているということです。ここに誰かがTeslaで録画している例があります。道路を下ってくる多くの交通信号を見ていて、何が起こっているのか不思議に思うかもしれません。そして実際に見えるのは、交通信号を運んでいるトラックがTeslaの前で運転しているということです。道路に出すとき、必ずしも予測できない種類の奇妙なエッジケースがあります。
安全な自律性を世界に提供することを非常に困難にしているもう一つのことは、多くのドメインで非常に厳しい安全要件があることです。それは当然のことです。例えば航空では、飛行時間150秒ごとに10^-9以上の故障確率がないという仕様がある場合があります。そのため、この自律性を構築している企業は、構築しているシステムが十分に安全であることを規制当局に証明するという追加の課題があります。これをシミュレーションで行う場合、おそらく数講義前に話したかもしれませんが、10^-9レベルの安全性が必要な場合、その閾値に達していることに確信を持つには何十億、何百億ものシミュレーションが必要になります。AcasXのために何回シミュレーションを実行しましたか?
Michael Kochenderfer:おそらく約1000億です。
Anthony Corso:1000億、そうですね。それも巨大なスーパーコンピュータを使用してのことで、難しいですね。つまり、これはすべて、安全性検証問題に非常にナイーブなアプローチを取った場合、非常に難しくなるということです。そのため、この研究室や他の多くの研究室で行われている多くの研究が、デプロイしたいシステムのこれらの失敗モードをより効率的に見つける方法に焦点を当てています。
2. 強化学習を用いた検証
2.1 強化学習アプローチの基本構造
Sydney Katz:強化学習を使用した検証について話すとき、高レベルのアプローチを考えてみましょう。私たちが持っているのは、テスト対象のシステムです。そして、私たちはこのシステムをテストする自分自身を、システムの敵対者として考えることができます。私たちはシステムを失敗させようとしており、敵対者ができることは、各タイムステップでシステムに障害を与えることです。システムはそのステップ関数を呼び出して、ステップを実行し、そしてシステムは敵対者に何らかの報酬を返すことができます。
報酬を「悪いこと」として考えるのは少し変ですが、これは敵対者なので、状況が悪いほど敵対者の報酬は高くなります。つまり、システムが失敗に近づくほど、敵対者はより高い報酬を得ることになります。ここでこのループがあり、システムがあり、この敵対者がいます。これは皆さんの一部には馴染みがあるかもしれません。
スライドには既に答えがありますが、これは強化学習を思い出させるはずです。ここでの重要な洞察は、これが正確に強化学習のセットアップであるということです。私たちは何らかのタスクを実行するためにエージェントをトレーニングしようとしており、それはいくつかの報酬フィードバックを得て、いくつかのアクションを取ることができます。この場合、アクションは障害です。また、私たちはそれをエージェントとは呼ばず、敵対者と呼んでいます。なぜなら、システム内のエージェントと混同したくないからです。
しかし、ここでのアイデアは、このセットアップを使用して、システムに失敗を引き起こすことができる敵対者をトレーニングするために、存在するすべての強化学習アルゴリズムを活用できるということです。私は様々な強化学習アルゴリズムについて詳しく説明することはありません。それは明らかにスタンフォードでの別のコース全体です。しかし、素晴らしいことは、このように私たちのシステムをセットアップすることができれば、すぐに使える強化学習アルゴリズムを簡単に利用できるということです。
2.2 システム検証における敵対的アプローチ
Sydney Katz:システム検証における敵対的アプローチの仕組みを説明しましょう。私たちのセットアップでは、テスト対象のシステムに対して敵対者を配置します。この敵対者の役割は意図的にシステムを失敗させることです。この敵対的関係では、敵対者は各タイムステップでシステムに障害(disturbances)を与えることができます。
これらの障害はさまざまな形を取ることができます。エージェント自体に対する障害かもしれませんし、環境に対する障害、あるいはセンサーに対する障害かもしれません。システムに対して何が障害となるかは、検証対象のシステムによって異なります。各タイムステップで敵対者はこれらの障害の中から選択します。
このセットアップの興味深い点は、報酬の概念です。通常、報酬は良いことを達成するためのものですが、敵対的なコンテキストでは、敵対者は状況が悪化するほど高い報酬を受け取ります。システムが失敗に近づくほど、敵対者の報酬は高くなります。これは敵対者の目標がシステムを失敗させることであるためです。
このようなセットアップをすることで、私たちは強化学習の枠組みの中でシステム検証問題を考えることができます。敵対者はシステムに障害を与え、システムは次のステップを実行し、そしてシステムの新しい状態に基づいて敵対者は報酬を受け取ります。敵対者は最大の報酬を得るために、つまりシステムを失敗させるために、最適な障害シーケンスを学習します。
この敵対的アプローチの利点は、単にランダムな障害を試すのではなく、システム上でもっとも効果的な攻撃を学習することができる点です。強化学習の枠組みを使うことで、敵対者は体系的にシステムの弱点を見つけ出し、システムが失敗する最も効率的な方法を学習することができます。
2.3 強化学習の優位性(サンプル効率性と異なる初期状態への一般化)
Sydney Katz:強化学習を使う大きな利点は、なぜ私たちがこれを行いたいのかという点にあります。過去数十年にわたり、強化学習の分野では、サンプル効率の良い強化学習アルゴリズムを設計するための膨大な研究が行われてきました。私たちの目標は、このループをできるだけ少ないステップで通過して、良いポリシーつまり良い敵対者を学習することです。
強化学習の分野全体で、このサンプル効率は非常に大きな焦点領域となっています。そのため、私たちはこの分野ですでに行われた膨大な研究と成果を活用して、強化学習を使って非常に効率的に失敗を見つけることができます。これは非常に素晴らしいことです。
もう一つの素晴らしい点は、先週見た他のアルゴリズムとは異なり、異なる初期状態に一般化できることです。木探索を行っていたとき、ある初期状態から始めて、そこから木を構築していました。木探索を使って異なる状態からの失敗を見つけたい場合は、さまざまな異なる初期状態から始める必要があります。
しかし、強化学習では、これらのアルゴリズムの多くが、エージェント(または敵対者)が多くの異なる状態に一般化することを可能にします。そのため、私たちは実質的に、多くの異なる出発点から失敗を見つけることができます。
これらは強化学習の大きな利点です。サンプル効率が良いことと、異なる初期状態に対して容易に一般化できることです。これにより、より複雑なシステムの検証においても、効率的かつ効果的に失敗を発見することができるのです。
2.4 コンティニュアムワールドの例による実演と訓練過程の視覚化
Sydney Katz:ここで実際の例をお見せしましょう。ここで起きていることは、再び私たちのコンティニュアムワールドがありますが、今回は過去の講義の他の部分で行っていたような単一の初期状態からではなく、多数の異なる初期状態から始めています。ここにあるこれらの軌跡はすべて、ある初期状態から始まり、何らかの経路に展開したものです。
私たちの目標はこれらすべての軌跡を失敗させることです。現在、これらはどれも実際に障害物に衝突していないので、失敗していません。私たちがしたいのは、強化学習エージェントをトレーニングして、軌跡全体を通して異なる状態にいる各タイムステップで障害を選択し、障害物に衝突させることです。
アニメーションをお見せすると、この強化学習エージェントのトレーニングがどのように見えるかがわかります。異なる初期状態からこれらの失敗を徐々に生成できることがわかるでしょう。このトレーニングの経過を示します。
これで、ほとんどの軌跡が何らかの初期状態から始まり、障害物に移動するように障害を選択するようこの敵対者をトレーニングしたことがわかります。これが時間の経過とともにトレーニングがどのように見えるかです。数回のトレーニングステップの後、まだ完全に理解していませんが、より長くトレーニングするにつれて、敵対者はシステムを失敗させることがより上手になっていきます。
この例は、強化学習がどのように複数の初期状態から始まるシステムに対して失敗を見つける能力を持つかを示しています。時間の経過とともに、エージェントは異なる初期条件に対して効果的な障害の選択を学習し、最終的にはほとんどの軌跡を障害物に衝突させることに成功しています。これは、単一の初期状態だけでなく、さまざまな初期条件からシステムを検証できることを示す重要な利点です。
3. シミュレータ要件と検証方法の選択
3.1 検証方法選択の考慮事項
Sydney Katz:強化学習について説明したところで、シミュレータの要件について簡単に触れておきたいと思います。より一般的には、偽陽性検出(falsification)の方法をどのように選択するかというトピックについて話したいと思います。この1週間ほどで偽陽性検出のための多くの方法を紹介してきました。「どのように決めればいいのか?」と疑問に思うかもしれません。これは、プロジェクトを進める際にも関連するかもしれません—何をすべきか決める方法です。
ここにはいくつかの考慮事項があります。まず一般的な考慮事項として、これは非常にドメイン固有です。あるドメインでは一部のアルゴリズムが非常にうまく機能し、別のドメインでは全く機能しないことがあります。実際に試してみるまでわからないことがよくあります。
考慮すべきもう一つのことは、失敗の稀少性です。システムの失敗がそれほど稀ではない場合—例えば、安全性が重要でない場合や、まだ初期段階で頻繁に失敗している場合—MCTSを適用して失敗を見つけたり、これらの大きな勾配ベースの最適化を使用して失敗を見つけたりするのは、非常に効率的ではないかもしれません。
私たちが最初に話した直接サンプリング、つまり最初のアルゴリズムでただ失敗を見つけるほうが良いでしょう。この場合、失敗を見つけるのが既に容易であれば、勾配を取ったり、木探索を行ったりする理由はないので、おそらくより効率的です。しかし、これらの失敗がより稀になればなるほど、木探索のような非常にサンプル効率の良いアルゴリズムを使用することによるメリットが大きくなります。
最後に、このスライドに示されているように、これは本の中にある図ですが、持っているシミュレータのタイプ、つまりシステムをシミュレーションするために使用しているモデルやシミュレータのタイプによって、使用できる偽陽性検出方法が既に制限されることについて話したいと思います。
例えば、初期状態と一連の障害を入力でき、発生した軌跡やロバスト性などを出力できるが、その軌跡を生成するために実際に何が起こったかを見ることができないシミュレータがあるとします。例えば、大きな飛行シミュレータでは、フードの下で何が起きているのか実際にはわからないかもしれません。
その場合、直接サンプリング、ファジング、直接的手法、集団手法など、勾配を必要としないすべての方法を使用できます。これによって、すでに使用できるものが制限される可能性があります。システムの勾配を取ることができない場合は、これらの一次や二次の方法を使用できません。
さらに、強化学習ベースの方法や木探索ベースの方法は、システムの個々のステップを実行し、停止して、その間に何が起こったかを確認し、新しい決定を下し、そして別のステップを実行することが実際にできる必要があります。シミュレータでそれができない場合、つまり何かを入力して全体の軌跡を得るだけの場合は、これらのタイプの方法を使用することはできません。
これは、偽陽性検出方法を選択する際に考慮すべき経験則です。
3.2 シミュレータタイプと適用可能な検証手法の関係
Sydney Katz:検証方法を選択する際の重要な制約の一つは、使用しているシミュレータまたはモデルのタイプです。これは本にある図にも示されていますが、シミュレータのタイプによって適用できる検証手法が大きく制限されます。
例えば、初期状態と一連の障害を入力して、発生した軌跡やロバスト性などを出力するシミュレータがあるとしましょう。しかし、その軌跡を生成するために実際に何が中間で起きたかを見ることができない場合を考えてみましょう。これは大きな飛行シミュレータのようなもので、フードの下で何が起きているか実際には分からないシナリオです。
このようなシミュレータの場合、直接サンプリング、ファジング、直接的手法、集団手法など、勾配を必要としない方法はすべて使用できます。これは、既にあなたが使用できる検証手法を制限する可能性があります。もしシステムの勾配を取ることができなければ、一次や二次の手法のような勾配に依存する手法は使えません。
さらに重要なのは、強化学習ベースの手法や木探索ベースの手法は、システムの個々のステップを実行して停止し、中間で何が起きたかを確認し、新たな意思決定をしてから次のステップを実行できることを要求する点です。もしシミュレータでこれができない場合、つまり何かを入力して全体の軌跡が出力されるだけの場合は、これらのタイプの方法を使用することができません。
これは検証手法を選択する際の重要な考慮点です。実際のシステム検証では、使用しているシミュレータの性質を理解し、そのシミュレータでできることとできないことに基づいて適切な検証手法を選択する必要があります。
3.3 勾配を必要とする検証手法と必要としない検証手法の区別
Sydney Katz:一次手法と二次手法について、もう少し詳しく説明してほしいという質問をいただきました。一次手法と二次手法とは何か、そして最初のカテゴリーとの違いは何でしょうか。
一次手法と二次手法は、先週話した局所降下カテゴリーに属する方法の一種です。基本的に初期設計点から始めて、最小値に向かってステップを踏むものです。一次手法と二次手法を使用する場合、関数の一次導関数と二次導関数、つまり勾配とヘッセ行列が必要です。
例えば、大きな飛行シミュレータがあり、ブラックボックスで、内部で何が起きているのか実際にはわからない場合、勾配を計算することができません。この場合、これらの一次手法と二次手法を使用することはできません。
しかし、勾配を計算できる場合、勾配は実際にこの最適化を行うための非常に強力なツールとなります。そのため、勾配を計算できれば、それは大きなプラスです。なぜなら、これらの方法の方がより良いパフォーマンスを発揮する可能性があるからです。
直接サンプリングと直接的手法の違いとは何かという質問もありました。直接サンプリングは、最初に紹介したアルゴリズムで、モンテカルロサンプリングのようなものです。システムを多数回サンプリングするだけです。直接的手法は、ステップを取る局所降下法のようなものですが、どのステップを取るかを決めるのに勾配情報を使用しません。これはゼロ次手法とも呼ばれます。
勾配を必要とする手法と必要としない手法の選択は、使用するシミュレータの種類によって大きく影響されます。もしシミュレータがブラックボックスであったり、勾配の計算ができない設計になっていたりする場合は、勾配を必要としない手法に限定されます。一方、シミュレータが透明で、勾配計算が可能な場合は、一次手法や二次手法などの勾配を活用する手法を使用することで、より効率的に失敗を見つけることができる可能性があります。
3.4 手法選択の一般的ガイドライン
Sydney Katz:偽陽性検出方法の選択に関して一般的なガイドラインをお話ししましょう。ここにはいくつかの考慮事項があります。
まず、一般的な考慮事項として、これは非常にドメイン固有です。一部のアルゴリズムはあるドメインでは非常にうまく機能し、別のドメインでは全く機能しないことがあります。実際に試してみるまで、どれが最もうまく機能するかはわからないことがよくあります。
次に考慮すべきことは、失敗の稀少性です。システムの失敗があまり稀ではない場合—例えば、安全性が重要でないか、まだ初期段階で頻繁に失敗している場合—MCTSを適用して失敗を見つけたり、大きな勾配ベースの最適化を用いて失敗を発見したりするのは非常に効率的ではないかもしれません。
最初に話した直接サンプリング、つまり最初のアルゴリズムを使用して失敗を見つける方がより良いでしょう。この場合、すでに失敗を見つけるのが容易であれば、勾配を取ったり木探索を行ったりする理由はないため、おそらくより効率的です。しかし、これらの失敗がより稀になればなるほど、木探索のような非常にサンプル効率の良いアルゴリズムを使用することの利点はより大きくなります。
また、シミュレータのタイプによって選択できる手法が制限されることも考慮する必要があります。例えば、勾配情報が利用できない場合は、勾配を必要としない方法のみを使用できます。さらに、強化学習や木探索ベースの方法を使うには、シミュレータがステップごとに状態を観察し決定を行うアプローチをサポートしている必要があります。
最適な手法の選択は、問題の性質、失敗の頻度、および使用可能なシミュレータの特性によって決まります。これらの要素を慎重に考慮することで、特定の検証問題に最も適した手法を選択することができます。
4. 交通システムにおける適応型ストレステスト
4.1 自律交通システムの安全性の課題とケーススタディ
Anthony Corso:適応型ストレステストの歴史的背景を踏まえて、この研究がそこからどのように発展してきたかについて話したいと思います。これを実世界に適用しようとするときに生じる課題について説明します。
私は課題を大まかに3つのカテゴリーに分けました。1つ目は目標の指定が難しいという点です。場合によっては、気にすべき目標は非常に明確です。例えば衝突回避では、避けたいのは2機の航空機が衝突することです。道路での運転ではもう少し不明確かもしれません。衝突は間違いなく避けたいものですが、交通ルールのようなより微妙なものもあるかもしれません。
これは交差点での振る舞い方に関する時相論理仕様です。読もうとしないでください、目が疲れるでしょう。これらの仕様は非常に複雑になる可能性があり、重要なことを見逃す可能性が非常に高いです。なぜなら、私たちは皆、交差点で正確に道路の規則通りに操作しているわけではないからです。その地域の文化的規範などに基づいて行動しています。
もう一つの課題は、既に述べられていますが、環境をどのようにモデル化するかということです。運転や交通のドメインでは、これは非常に難しくなる可能性があります。例をいくつかお見せします。最後に、これらの非常に複雑で長期的な時間軸を持つ環境でどのように最適化するかということです。
これらの問題に対処する方法のいくつかの例をお見せします。まず目標の指定から始めましょう。Richieが航空部門でこの適応型ストレステストのアプローチを示す研究を行った直後、私たちはこれを運転部門にどのように適用できるかを考え始めました。道路上でテストされ始めていたこれらのシステムの安全性を確保することに大きな関心がありました。
そこで、道路を横断する歩行者がいて、エージェントが観察した場合に歩行者のために停止するという単純なポリシーを持つ車両というかなり単純なシナリオを設定しました。しかし、環境で発生する可能性のあるノイズや障害があると言いました。まず、歩行者は直線上を一定速度で歩くという選択をしない可能性があります。歩行者の行動にはある程度のばらつきがある可能性があります。さらに、車両は必ずしも歩行者を空間内で正確に位置付けることができるわけではありません。
これらを障害として指定しました:歩行者の行動とセンサーノイズです。そして、私たちが考えていた非常に洗練された報酬関数を作成しました。「失敗を見つけられないことにペナルティを与え、Richieがやったように車両と歩行者がどれだけ近かったかについてのヒューリスティックを持ち、稀なアクションにペナルティを与えて、最も可能性の高い失敗の結果を見つけようとする」と言いました。そして、MCTSとDRLなどのソルバーを適用しました。
その結果は以下のようなものでした。再生させますが、基本的に車両は歩行者を正しく識別し、安全に停止し、歩行者は車両に向かって全力で走ります。ここで何が問題だったのでしょうか?まず、目標を正しく指定していなかったことが問題でした。二つの物体が接触したときにのみ失敗が発生するとだけ言っていて、例えば車両が衝突の原因であるかどうかは言及していませんでした。これは私たちが気にすべきことかもしれません。
また、歩行者の行動についてのモデルが過度に単純化されていた可能性もあります。しかし、この動画を見せた後に、人々が保険詐欺のためにまさにこのようなことをしている動画を見せてくれた人もいます。なので、心配すべきことかもしれません。
4.2 Uberの自動運転事故事例分析
Anthony Corso:自律システムを安全性重視のドメインで使用することを考える際に、起こり得る悪い結果について多く考えてきましたが、なぜそもそもこれをしたいのかを忘れないことが重要です。交通システムにより多くの自律性をもたらすことから得られる素晴らしいことがたくさんあると思います。
航空はすでに非常に高い安全基準を享受していますが、空域はより複雑で密度が高くなり、私たちは本当にその非常に高いレベルの安全性を維持することができるようにしたいと思っています。Michael、Robert、Sydneyが全員関わったAcas Xシステムのようなものは、衝突回避の安全性係数を3〜5倍向上させることが示されており、これはとても刺激的です。
同様に、現在、交通事故は毎年100万人以上を殺し、そのうち約94%は単なる人間のミスによるものです。この数を減らすことができれば、世界に大きな恩恵をもたらすことができるでしょう。
しかし、もちろんリスクはあります。2018年に発生した特定の衝突についてすでに聞いたことがあるかもしれません。これは自律走行車による最初の歩行者死亡事故と考えられていました。UberのATG(自動運転部門)で、今はなくなっていますが、アリゾナ州で運用していて、女性が自転車で道路を横断していました。一連のエラーがありましたが、主にシステムがこの人と自転車の組み合わせを正しく分類できなかったことと、彼女がどこにいるかを予測するのが下手だったことにより、車両は彼女にぶつかり死亡させました。
実世界で運用されるこのような種類のシステムには、非常に強い現実世界の結果があります。もちろん、現在、道路上にはもっと多くの自律性があります。これは実際にたった2年前のものです。Teslaのオートパイロット機能に関連する数多くの衝突がありました。これは完全に自律しているわけではありませんが、実際に致命的な衝突につながっています。
4.3 自動運転システムの脆弱性の具体例
Anthony Corso:ここで実際に起こっていることは、これらのシステムが機械学習システムが脆い方法で脆くなっているということです。ここに誰かがTeslaで録画している例があります。道路を下ってくる多くの交通信号を見ていて、何が起こっているのか不思議に思うかもしれません。そして実際に見えるのは、交通信号を運んでいるトラックがTeslaの前で運転しているということです。これは、道路に出すとき、必ずしも予測できない種類の奇妙なエッジケースの例です。
安全な自律性を世界に提供することを非常に困難にしているもう一つのことは、多くのドメインで非常に厳しい安全要件があることです。それは当然のことです。例えば航空では、飛行時間150秒ごとに10^-9以上の故障確率がないという仕様がある場合があります。そのため、この自律性を構築している企業は、構築しているシステムが十分に安全であることを規制当局に証明するという追加の課題があります。
これをシミュレーションで行う場合、おそらく数講義前に話したかもしれませんが、10^-9レベルの安全性が必要な場合、その閾値に達していることに確信を持つには何十億、何百億ものシミュレーションが必要になります。AcasXのために何回シミュレーションを実行しましたか?
Michael Kochenderfer:おそらく約1000億です。
Anthony Corso:1000億、そうですね。それも巨大なスーパーコンピュータを使用してのことで、難しいですね。つまり、これはすべて、安全性検証問題に非常にナイーブなアプローチを取った場合、非常に難しくなるということです。そのため、この研究室や他の多くの研究室で行われている多くの研究が、デプロイしたいシステムのこれらの失敗モードをより効率的に見つける方法に焦点を当てています。
これらの自動運転システムの脆弱性は、予測不可能なエッジケースだけでなく、非常に厳格な安全性要件と、それが実世界でどのように機能するかを証明する難しさにも関連しています。これらの課題は、効率的な検証方法の必要性をさらに強調しています。
5. 安全性検証における課題
5.1 目標設定の難しさ
Anthony Corso:適応型ストレステストの研究が発展してきた様子と、実世界での適用に際して生じる課題について説明します。私はこれらの課題を3つの大まかなカテゴリーに分けました。
まず1つ目は目標の指定が難しいという点です。場合によっては、気にすべき目標は非常に明確です。例えば衝突回避では、避けたいのは2機の航空機が衝突することです。このような場合は目標が明確に定義できます。
しかし、道路での運転ではより不明確になる可能性があります。衝突は間違いなく避けたいものですが、交通ルールのようなより微妙なものもあるかもしれません。ここにある図は交差点での振る舞い方に関する時相論理仕様です。読もうとしないでください、目が疲れるでしょう。それを見たい場合は、後で確認できます。
これらの仕様は非常に複雑になる可能性があり、重要なことを見逃す可能性が非常に高いです。なぜなら、私たちは皆、交差点で正確に道路の規則通りに操作しているわけではないからです。その地域の文化的規範などに基づいて行動しています。
これが目標設定の難しさの例です。私たちは単に「衝突を避ける」という単純な目標だけでなく、実際の道路環境で発生する複雑な動作や文化的規範も含めて考慮する必要があります。時相論理を使って形式的に記述できる交通ルールは非常に複雑で、すべてのケースを網羅するのは困難です。
さらに、私たちは先ほどの例で見たように、誰が責任を持つべきかという問題も考慮する必要があります。単に接触が発生したかどうかだけでなく、その接触の責任はどちらにあるのかという点も重要です。歩行者が車両に向かって走って衝突するケースと、車両が歩行者を検出できずに衝突するケースでは、安全性の評価は大きく異なります。
これらの複雑さゆえに、安全性検証の目標を適切に設定することは、システム検証の中でも特に難しい課題となっています。
5.2 環境モデリングの複雑さ
Anthony Corso:2つ目の課題セットは、既に講義でもある程度カバーされているかもしれませんが、システムが運用されることを意図している運用環境に現実的な方法で環境をモデル化する方法についてです。
特に運転のコンテキストでは、ここでの課題は二つあります。まず第一に、道路上での人間の行動は信じられないほど複雑です。例えば、「自動運転車のポリシーをシミュレーションで評価したいので、他のドライバーのように振る舞う道路上の他のエージェントを多数作成したい」と考えるとします。しかし、他のドライバーのように振る舞うエージェントを作ることは、自動運転車を作ること自体と同じくらい難しい問題です。つまり、自動運転車をたくさん作って道路上に置くことなく、この振る舞いを模倣する方法が必要です。これは非常に難しくなる可能性があります。
また、車両が使用するセンサーも単純ではありません。LIDARセンサーやカメラセンサーがあり、これらは非常に高次元で扱いにくいセンサーです。例えばセンサーのノイズ分布を捉えようとする場合、それはLIDARについての真実を尊重する必要があり、GPSのように特性がよく知られているエラー分布を持つセンサーと比べてはるかに複雑になる可能性があります。
人々は一般的にデータから環境をモデル化しようとします。これは馴染みがあるはずです。実世界からかシミュレーションを通してか、環境のサンプルを取得し、それらのサンプルからモデルを学習します。特に運転については、多くの素晴らしいデータセットがあります。例えば、高速道路の上をドローンで飛ばし、カメラですべての異なる車両が高速道路で相互作用している様子を記録したものがあります。その後、ある種の自動セグメンテーションとオブジェクト検出を行って誰が誰かを把握し、時間の経過とともにどのように振る舞っているかを理解します。結果として、道路上の他のエージェントが何をしているかについての軌跡が多数含まれるデータセットを得ることができます。
さらに、固定カメラからこの情報を得ることもできます。重要なのは、物事が非常に複雑になり、人々が非常に洗練された方法で相互作用している交差点を通じた相互作用を観察するデータセットもあるということです。
このデータで何をするのでしょうか?あらゆる種類のモデルを構築できますが、実世界のデータを模倣するのに効果的だったモデルの種類の一つは深層生成モデルです。これは現在、大規模言語モデルや拡散モデルなどでさらに普及しています。この多くの研究が行われていた当時、このための最良のモデルは敵対的生成ネットワーク(GAN)でした。これらは、ゼロサムゲームをプレイするディープ生成モデルで、ジェネレーターは提供されたデータのように見える現実的な画像を生成しようとし、識別器は実際のものと偽物を識別しようとします。結果として、EMNISTデータセットからの手書き数字などを生成できるジェネレーターを学習します。
GANのバージョンは多くのドメインで適用されています。その一つは、道路上の複数のエージェントの順次的行動をモデル化することです。これもSizzle研究室からの研究で、これらのデータセットの1つを取り、高速道路でドライバーがどのように相互作用するかのモデルを学習し始めました。小さな車両が運転しているのを見ることができ、これらはすべて学習したポリシーからのものです。前の車がブレーキをかけると、お互いにブレーキをかけるように引き起こし、現実的な交通行動が得られます。これは、例えば高速道路でシステムを評価したい場合の非常に有用なモデルです。
これらと同じタイプのディープ生成モデルを使用して、自律車両として観測する可能性のあるセンサーダイナミクスをモデル化することもできます。右側にあるこれは、Sydneyと私自身、そして他の人たちからのもので、航空機が滑走路を走行しているときに見る可能性のある画像のようなGANをトレーニングしました。この具体的な例については、もう少し詳しくお話しします。
ここでのアイデアは、実際の検証に入る労力の大部分がこの部分であるということです。シミュレーターを効果的に実世界のように見せ、振る舞わせる方法はどうすればよいでしょうか?そうしないと、シミュレーターから得た検証は必ずしも実世界の環境に変換されないからです。
5.3 最適化の課題
Anthony Corso:さて、3つ目の課題について話しましょう。これについてはSizzleの研究からもう少し共有します。この課題は最適化に関するものです。ここで私たちが言っているのは、目標を固定し、環境をモデル化してシミュレータをセットアップしたとして、これらの失敗を効率的に探す方法、つまり実際に失敗を見つけ、最も可能性の高い失敗(これが全体的な目標です)を見つける方法についてです。
以前に見た非常にクールなシステムの一例はTaxiNetというシステムです。TaxiNetは非常にシンプルな自律システムですが、実世界での影響が本当に良いものです。そのアイデアは、航空機があり、滑走路周辺を自律的にタクシーしたいというものです。空港間を移動し、すべて自律的に離陸できるようにするためです。
このアイデアは、航空機の翼にカメラを取り付け、滑走路を下に向けて撮影し、主な目標は航空機が滑走路をまっすぐに走行し、どちらの側にも逸脱しないようにすることです。私たちが問いかけた質問は、「カメラから得られる画像のエラーが航空機を滑走路から外れさせることがあるのか」というものでした。もしそれが起こるなら、それは本当に懸念されるべきことです。
このシステムがどのように実際に動作したかについて、もう少し詳しく説明します。高解像度の画像を取得し、それをはるかに小さな低解像度の画像にダウンサンプリングします。これはグレースケールのみです。これは、非常に小さなニューラルネットワークがその画像を処理し、基本的に滑走路上のどこにいるかの推定を提供できるようにするために行われます。それにより、滑走路を走行する際にまっすぐに保ち、滑走路と整列したままでいられる制御入力を生成できます。
これはクローズドループで動作しています。つまり、毎ステップで新しい画像を取り込み、それをダウンサンプリングし、ニューラルネットワークを通して実行し、まっすぐに保つためのラダー制御を決定します。非常に小さなニューラルネットワークを持ちたい理由は、後で少し話す技術をニューラルネットワークに適用できるようにするためです。ニューラルネットワークを検証したり、すぐに示すことをしたりするためです。
このコントローラをいくつかの異なる環境で実行すると、以下のような結果が得られます。これはあなたのモンテカルロサンプリングで、システムがどれだけうまく動作するかを評価するためのものです。滑走路のどこからスタートしても、それがどこにあるかを判断でき、うまく中央に戻り、その後まっすぐに進むことができます。また、少し異なる気象条件、例えば曇りの場合でも、非常に良いパフォーマンスを得ることができます。
しかし、このコースで既にご存知の通り、それはこのシステムが必ずしも安全であることを意味するわけではありません。ほんの一握りのシミュレーションを実行しただけだからです。
ここでのアイデアは何でしょうか?カメラにはある程度のノイズがあり、そのノイズは各ピクセルでおおよそガウス分布しているかもしれないことを知っています。あなたはそのようなファジーなノイズを得ることができます。そこで問題は、画像にどのようなノイズが発生して、航空機に非常に間違った操舵角度を与える可能性があるかということです。
例えば、航空機が右にいる場合、左に舵を切るべきですが、受け取ったノイズに基づいて、実際には右に舵を切り戻している可能性があります。これは非常に悪いことです。では、何ができるでしょうか?単一のタイムステップで最大の偏差をもたらすノイズの構成を見つけようとすることができます。そして、ニューラルネットワークが非常に小さいため、数講義後に学ぶニューラル検証の文献からのツールを実際に使用できます。この問題を正確に解くことができます。つまり、入力ノイズに基づいて出力のエラーを最大化したいと言えます。そして、その最大のエラーをもたらす小さなノイズが何であるかを見つけることができます。そして、エラーを右または左に最大化することができます。
では、すべてのタイムステップで可能な最悪のエラーを得た場合どうなるでしょうか?常に左に曲がりたいという偏りを与えており、既に滑走路の左側にいるので、滑走路から外れる可能性があるとしましょう。そうすると、以下のようになります。
下に航空機の軌跡、実際の画像、ダウンサンプリングされた画像、そして擾乱を受けた画像が表示されています。この擾乱を受けた画像は、航空機が左に曲がるべきだと考えるようなノイズが適用されています。これをしばらく実行させると、実際には滑走路から外れることはないということがわかります。
単に毎回左に偏らせただけですが、ネットワークは十分に堅牢で、この最悪のシナリオでも滑走路の左側にいることを理解でき、少なくとも左に進み続けるべきではないことを認識します。そして、安全な軌跡で終わります。
6. 具体的検証手法の事例
6.1 責任分析に基づく目標設定の改善
Anthony Corso:では、どのようにして目標設定やより一般的に言えば最適化している目的関数を変更して、より微妙な要素を考慮するかについてお話ししましょう。
この特定の研究では、責任感応安全性(responsibility sensitive safety)と呼ばれる概念から引用しました。これは基本的に安全運転の多くのルールを成文化する取り組みです。道路のルールを非常に特定の数学的仕様として成文化したものです。彼らは「後ろから誰かに衝突しない」「無謀に割り込まない」というような高レベルの概念を取り、これらを数学的な方法で形式化しました。
そして、彼らはこれを特定の状況で誰に責任があるか、そして安全に運転するためにどのように振る舞うべきだったかを特定する方法として使用しました。彼らはこれを道路のルールを書き下す方法と考えていました。それが実際に機能するとは思いませんが、特定のシナリオを評価し、誰に責任があるかを確認するためのとても有用なツールです。
ここでの主要なアイデアは、これらのステートメントを取り、衝突に関与する各当事者の安全性と責任を評価するために使用したということです。ここでは車両と歩行者の軌跡が示されています。基本的にここから判断したのは、状況は危険であり衝突の可能性があったものの、車両の対応は「適切」だったということです。正しいブレーキを適用し、実際に衝突前に完全に停止していました。
ここでの主要なアイデアは、目標を変更して、自律車両自体に責任がある失敗を探し、今見ているこのような状況にならないようにすることです。目標を変更して最適化を再度実行すると、次のような状況になります。
今、最も可能性の高い失敗として現れるのは、歩行者がUberのATG衝突に非常に似た斜め方向の歩行をするケースです。センサーノイズは偏った方法で増幅され、車両は歩行者がまだ歩道上にいると考え、結果として衝突が発生します。これらの技術を使用することで、自律運転のためのより関連性が高いまたは責任のある失敗モードを見つけることができます。
ここで質問がありました。センサーノイズを増幅し、特定の方向に偏らせることについて話すとき、それがどれほど単に失敗を探すことであり、どれほどシステムモデル全体を偏らせることなのかという点です。
ここで起きていることは、センサーノイズのモデルがあり、おそらくいくつかのデータから学習したものです。そのため、どのようなノイズが予想されるかの範囲を理解しています。通常の操作では、実際にそのセンサーノイズが適用され、均一に分布し、ゼロ平均などを持っています。
適応型ストレステストが行っていることは、基本的に失敗につながるセンサーノイズのシーケンスを見つけることです。そして、センサーノイズに偏りがある場合に失敗が発生するということがたまたま起こります。エンジニアにこのような状況に注意するよう伝えるだけです。これは実世界で経験されるセンサーノイズが偏っているという意味ではなく、システムを構築しているエンジニアに、この特定の状況に注意し、そこから学ぶべきだということを伝えているだけです。
6.2 責任感応安全性(RSS)の活用
Anthony Corso:この特定の研究では、責任感応安全性(Responsibility Sensitive Safety、略してRSS)と呼ばれる概念を用いました。これは安全運転の多くのルールを成文化する取り組みです。道路のルールを非常に特定の数学的仕様として成文化したものです。
RSSの基本的な考え方は、「後ろから誰かに衝突しない」「無謀に割り込まない」といった高レベルの一般的な概念を取り、これらを数学的な方法で形式化することです。開発者たちはこれを特定の状況で誰に責任があるか、そして安全に運転するためにどのように振る舞うべきだったかを特定する方法として使用しました。
彼らはこれを道路のルールを書き下す方法として考えていました。私はそれが完全に機能するとは思っていませんが、特定のシナリオを評価し、誰に責任があるかを確認するためのとても有用なツールとなっています。
私たちの研究での主要なアイデアは、これらのRSSのステートメントを取り、衝突に関与する各当事者の安全性と責任を評価するために使用したということです。先ほど示した車両と歩行者の軌跡を見ると、RSSを用いた分析から以下のことが判断できました:
- 状況自体は危険であり、衝突の可能性があった
- しかし車両の対応は「適切」だった
- 車両は正しいブレーキングを適用した
- 車両は実際に衝突前に完全に停止していた
このRSSの枠組みを用いることで、単に「衝突が発生した」という基準ではなく、「責任ある主体はどちらか」という、より微妙で現実的な評価が可能になります。これによって、「自動車のせいではない衝突」と「自動車に責任がある衝突」を区別することができます。
この区別は非常に重要です。なぜなら、自律運転システムの目標は、単に衝突を避けることではなく、責任ある安全な運転を実現することだからです。RSSの枠組みは、この責任の概念を数学的に形式化し、検証プロセスに組み込むことを可能にします。
これにより、私たちは目標を変更して、単に「衝突が発生した」ケースではなく、「自律車両自体に責任がある失敗」を探すことができるようになりました。このように目標設定を変更することで、より現実的で意味のある失敗ケースを発見することができるのです。
6.3 歩行者と車両の衝突シナリオ分析
Anthony Corso:Richieが航空分野での適応型ストレステストの研究を行った直後、私たちはこのアプローチを運転分野にどのように適用できるか考え始めました。道路でテストされ始めていたこれらのシステムの安全性を確保することに大きな関心がありました。
そこで、かなり単純なシナリオを設定しました:道路を横断する歩行者がいて、車両は歩行者を観察した場合に停止するという単純なポリシーを持っています。しかし、環境で発生する可能性のあるノイズや障害がいくつかあると言いました。まず、歩行者は直線上を一定速度で歩かない可能性があります。歩行者の行動にはある程度のばらつきがある可能性があります。さらに、車両は必ずしも歩行者を空間内で正確に位置付けることができるわけではありません。
これらを障害として指定しました:歩行者の行動とセンサーノイズです。そして、非常に精巧な報酬関数を作成したと思いました。「失敗を見つけられないことにペナルティを与え、Richieがやったように車両と歩行者がどれだけ近かったかについてのヒューリスティックを持ち、稀なアクションにペナルティを与えて、最も可能性の高い失敗の結果を見つけようとする」と言いました。そして、MCTSとDRL(深層強化学習)などのソルバーを適用しました。
結果は以下のようになりました:車両は歩行者を正しく識別し、安全に停止します。そして歩行者は車両に向かって全力で走ります。ここで何が問題だったのでしょうか?まず、目標を正しく指定していなかったことが問題でした。二つの物体が接触したときにのみ失敗が発生するとだけ言っていて、例えば車両が衝突の原因であるかどうかは言及していませんでした。これは私たちが気にすべきことかもしれません。
また、歩行者の行動についてのモデルが過度に単純化されていた可能性もあります。しかし、この動画を見せた後に、人々が保険詐欺のためにまさにこのような行動をしている動画を見せてくれた人もいます。そのため、これも考慮すべき状況かもしれません。
そこで、RSSの概念を取り入れて目標を変更し、最適化を再度実行しました。今度最も可能性の高い失敗として現れたのは、次のような状況です:歩行者がUberのATG衝突に非常に似た斜め方向の歩行をします。センサーノイズは偏った方法で増幅され、車両は歩行者がまだ歩道上にいると考えます。結果として、車両が衝突の原因となる失敗が発生します。
この例は、単に「衝突が発生した」ことを探すのではなく、「車両に責任がある失敗」を探すことの重要性を示しています。目標関数をより適切に設定することで、自律運転にとってより関連性の高い、現実的な失敗モードを発見することができるのです。これは、実際の自動運転システムの安全性を向上させるために非常に価値のある情報となります。
7. 環境モデリングのアプローチ
7.1 データに基づく環境モデリング
Anthony Corso:適応型ストレステストの2つ目の課題セットである環境モデリングについてもう少し詳しく説明します。これは講義でもある程度カバーされているかもしれませんが、システムが運用されることを意図している運用環境に現実的な方法で環境をモデル化する方法について重要な課題があります。
特に運転のコンテキストでは、課題は二つあります。まず第一に、道路上での人間の行動は信じられないほど複雑です。例えば、「自動運転車のポリシーをシミュレーションで評価したいので、他のドライバーのように振る舞う道路上の他のエージェントを多数作成したい」と考えるとします。しかし、他のドライバーのように振る舞うエージェントを作ることは、自動運転車を作ること自体と同じくらい難しい問題です。そのため、自動運転車をたくさん作って道路上に置くことなく、この振る舞いを模倣する方法が必要です。これは非常に難しくなる可能性があります。
また、車両が使用するセンサーも単純ではありません。LIDARセンサーやカメラセンサーがあり、これらは非常に高次元で扱いにくいセンサーです。例えばセンサーのノイズ分布を捉えようとする場合、それはLIDARについての真実を尊重する必要があり、GPSのように特性がよく知られているエラー分布を持つセンサーと比べてはるかに複雑になる可能性があります。
人々は一般的にデータから環境をモデル化しようとします。これは馴染みがあるはずです。実世界からかシミュレーションを通してか、環境のサンプルを取得し、それらのサンプルからモデルを学習します。特に運転については、多くの素晴らしいデータセットがあります。例えば、高速道路の上をドローンで飛ばし、カメラですべての異なる車両が高速道路で相互作用している様子を記録したものがあります。その後、ある種の自動セグメンテーションとオブジェクト検出を行って誰が誰かを把握し、時間の経過とともにどのように振る舞っているかを理解します。結果として、道路上の他のエージェントが何をしているかについての軌跡が多数含まれるデータセットを得ることができます。
また、固定カメラからもこの情報を得ることができます。重要なのは、物事が非常に複雑になり、人々が非常に洗練された方法で相互作用している交差点を通じた相互作用を観察するデータセットもあるということです。
実世界の交通シナリオのデータを収集することで、他の車両や歩行者の現実的な動きをモデル化することができます。これらのデータセットは特に交差点など、複雑な相互作用が発生する状況を捉える上で貴重です。このようなデータに基づくアプローチにより、シミュレーション環境をより現実的なものにし、検証結果の信頼性を高めることができます。
7.2 生成型深層学習モデル(GAN)の活用
Anthony Corso:このデータで何をするのでしょうか?あらゆる種類のモデルを構築できますが、実世界のデータを模倣するのに特に効果的だったモデルの種類の一つは深層生成モデルです。これは現在では大規模言語モデルや拡散モデルなどでさらに普及しています。
この多くの研究が行われていた当時、このための最良のモデルは敵対的生成ネットワーク(GAN)でした。これらはディープ生成モデルで、ゼロサムゲームをプレイします。ジェネレーターは提供されたデータのように見える現実的な画像を生成しようとし、識別器は実際のものと偽物を識別しようとします。この結果、EMNISTデータセットからの手書き数字などを生成できるジェネレーターを学習します。
GANのバージョンは多くのドメインで応用されています。その一つは、道路上の複数のエージェントの順次的行動をモデル化することです。これもSizzle研究室からの研究で、これらのデータセットの1つを取り、高速道路でドライバーがどのように相互作用するかのモデルを学習し始めました。
小さな車両が運転している様子を見ることができます。これらはすべて学習したポリシーからのものです。前の車がブレーキをかけると、後ろの車にもブレーキをかけさせ、現実的な交通行動のパターンが得られます。これは、例えば高速道路でシステムを評価したい場合の非常に有用なモデルです。
同様に、これらと同じタイプのディープ生成モデルを使用して、自律車両として観測する可能性のあるセンサーダイナミクスをモデル化することもできます。右側にあるこの例は、Sydneyと私自身、そして他の人たちからのもので、航空機が滑走路を走行しているときに見る可能性のある画像のようなGANをトレーニングしました。この具体的な例については、もう少し後で詳しくお話しします。
GANを使用することで、非常に複雑で高次元の環境要素を現実的にモデル化することができます。交通フローのモデリングでは、学習したGANモデルが車両間の相互作用を現実的に再現します。例えば前方の車両がブレーキをかけると、後続車両も反応してブレーキをかける様子を捉えることができます。
同様に、センサーデータのモデリングでは、GANを使用して実際のセンサーが捉えるようなノイズや特性を再現することができます。航空機のTaxiNetの例では、滑走路上のカメラ画像を現実的に生成するためにGANを使用しました。
これらの生成モデルは、実世界の複雑さを捉えながらも、制御可能で再現可能なシミュレーション環境を提供するという点で非常に価値があります。実際の検証作業において、シミュレーターが実世界のように見え、振る舞うようにすることは非常に重要です。そうしないと、シミュレーターから得た検証結果が実世界の環境に必ずしも適用できないからです。
7.3 航空機タクシーシステム(TaxiNet)の事例
Anthony Corso:ここで、TaxiNetというシステムの例をより詳しく説明しましょう。TaxiNetは非常にシンプルな自律システムですが、実世界での影響が本当に優れています。そのアイデアは、航空機が空港間を自律的に移動できるように、滑走路周辺を自律的にタクシーさせることです。
具体的には、航空機の翼にカメラを取り付け、滑走路を下に向けて撮影します。主な目標は航空機が滑走路をまっすぐに走行し、どちらの側にも逸脱しないようにすることです。私たちが問いかけた質問は、「カメラから得られる画像のエラーが航空機を滑走路から外れさせることがあるのか」というものでした。もしそれが起こるなら、それは本当に懸念されるべきことです。
このシステムの具体的な動作方法はこうです。まず高解像度の画像を取得し、それをグレースケールの非常に小さな低解像度画像にダウンサンプリングします。これは、非常に小さなニューラルネットワークがその画像を処理し、滑走路上のどこにいるかの推定を提供できるようにするためです。この位置推定に基づいて、航空機は滑走路をまっすぐに進み、滑走路と整列したままでいられるようなラダー制御(方向舵の操作)を生成します。
このシステムはクローズドループで動作しています。つまり、毎ステップで新しい画像を取り込み、それをダウンサンプリングし、ニューラルネットワークを通して実行し、まっすぐに保つためのラダー制御を決定します。非常に小さなニューラルネットワークを使用する理由は、後ほど説明するニューラル検証の技術を適用できるようにするためです。
このコントローラを異なる環境で実行すると、次のような結果が得られます。滑走路のどこからスタートしても、システムは自分の位置を判断でき、うまく中央に戻り、その後まっすぐに進むことができます。また、曇りなどの少し異なる気象条件でも、非常に良いパフォーマンスを発揮します。
しかし、このコースで既にご存知の通り、少数のシミュレーションを実行しただけでは、このシステムが安全であるという結論は出せません。このシステムはとてもシンプルですが、その単純さゆえに詳細な検証が可能になります。特に小さなニューラルネットワークを使用することで、形式的な検証手法を適用し、システムの安全性をより厳密に分析できるようになります。
この例は、実世界の自律システムにおいて環境モデリングと検証がいかに重要かを示しています。GANなどの生成モデルを使用して現実的なセンサーデータを生成し、それを用いてシステムの挙動を検証することで、デプロイ前に潜在的な問題を発見することができるのです。
8. 最適化手法と結果分析
8.1 ニューラルネットワークに対する検証技術
Anthony Corso:さて、3つ目の課題について話しましょう。Sizzle研究室からの成果をもう少し共有します。これは最適化に関する課題です。ここで言っているのは、目標を固定し、環境をモデル化してシミュレータをセットアップした後、これらの失敗を効率的に探す方法、つまり実際に失敗を見つけ、最も可能性の高い失敗を見つける方法についてです。
TaxiNetシステムについてのアイデアはこうです。カメラにはある程度のノイズがあり、そのノイズは各ピクセルでおおよそガウス分布しています。あのファジーなノイズがカメラに発生する可能性があります。そこで問題は、画像にどのようなノイズが発生して、航空機に非常に間違った操舵角度を与える可能性があるかということです。
例えば、航空機が右側にいる場合、左に舵を切るべきですが、受け取ったノイズに基づいて、実際には右に舵を切り戻すような状況です。これは非常に悪いことです。では、何ができるでしょうか?
私たちのアプローチは、単一のタイムステップで最大の偏差をもたらすノイズの構成を見つけることでした。TaxiNetのニューラルネットワークは非常に小さいため、数講義後に学ぶニューラル検証の文献からのツールを使用できます。この問題を正確に解くことができるのです。
具体的には、入力ノイズに基づいて出力のエラーを最大化したいと言えます。そして、その最大のエラーをもたらす小さなノイズのパターンを見つけることができます。エラーを右または左に最大化することも指定できます。
この検証技術の利点は、特定の条件下での最悪のケースのシナリオを正確に計算できることです。ニューラルネットワークが小さいため、形式的な検証手法を適用して、入力の摂動に対するネットワークの挙動を解析することができます。これにより、単にランダムにテストするのではなく、システムが最も失敗しやすい状況を特定的に見つけることができます。
また、この検証技術を使用すると、入力ノイズの上限を設定し、その範囲内での最悪のケースのシナリオを見つけることができます。これは現実的な運用条件下でのシステムの頑健性を評価する上で非常に重要です。
質問がありました:「このケースでの最悪の状況をどのように定義し、特に左側への偏りをどのように得るのですか?」
私たちは、制御入力がどうあるべきかを知っているので、最悪のケースを入力が反対方向に最大化されるものとして定量化しています。つまり、右に曲がるべきとわかっている場合、左側への最悪のケースは、実際に左に偏向させる操舵制御を生成することです。これは、画像への入力から始まり、コントローラー全体を通過し、最終的な出力となります。
8.2 最悪ケースシナリオの検証結果
Anthony Corso:では、すべてのタイムステップで可能な最悪のエラーを得た場合どうなるでしょうか?例えば、航空機が常に左に曲がりたいという偏りを与え、既に滑走路の左側にいる場合を考えてみましょう。この状況では、航空機が滑走路から外れてしまう可能性があります。
実際にシミュレーションを実行すると、次のような結果が得られます。下に航空機の軌跡、真の画像、ダウンサンプリングされた画像、そして攪乱された画像が表示されています。この攪乱された画像には、航空機が左に曲がるべきだと「思わせる」ようなノイズが適用されています。
これをしばらく実行させた結果、実は航空機は滑走路から外れることはないということがわかりました。毎回左に偏らせるという最悪のノイズを与えたにもかかわらず、ネットワークは十分に堅牢で、この最悪のシナリオでも滑走路の左側にいることを理解できています。そして少なくとも左に進み続けるべきではないことを認識し、結果として安全な軌跡で終わります。
質問がありました:「どのようにして滑走路から出ないように維持できるのか明確にしてもらえますか?」
これについて説明すると、航空機を制御しているニューラルネットワークは、基本的に滑走路上での航空機の位置を予測するように訓練されています。そして、制御はその予測から生じます。というのも、もし航空機が左側に大きく外れていれば、それを修正するように動作するからです。
ここで起きていることは、航空機が横に外れていて、敵対的に攪乱を与えても、ニューラルネットワークは滑走路上のどこにいるかについてまだかなり良い推定を持っているということです。そして、その推定が良好であるため、結果として得られる制御は少なくとも左側にさらに進むことはありません。これは単に、ニューラルネットワークが訓練された任務において実際にかなり優れているという関数です。
この結果は非常に興味深いものです。単一の種類の一貫したノイズパターンを適用した場合、システムは十分に堅牢であり、失敗を引き起こすことができないことを示しています。これは、単純な攻撃に対するシステムの頑健性を示していますが、次のステップでは、より複雑なシナリオを検討する必要があります。
8.3 モンテカルロツリー検索による失敗発見
Anthony Corso:同じ攪乱をすべての時間に適用した場合の結果をお見せしましたが、このコースからもご存知の通り、実際に起こる可能性のあるイベントのシーケンスは非常に重要です。そのため、このシステムが安全であるとは結論づけることはできません。
研究者たちが次に行ったのは、モンテカルロツリー検索を再び適用し、各ステップで左または右への最悪の攪乱を適用するかを決定し、時間の経過とともにこれを行うというものでした。目標は失敗の結果を見つけることでした。
ノイズの制限について質問がありましたが、ノイズの境界を変更することでいくつかの異なるレベルでこれを行いました。例えば、ピクセルへの2%の摂動というのは非常に小さなものですが、このレベルでは失敗は見つかりませんでした。もちろん、失敗が全くないとは結論づけることはできませんが、少なくとも見つけることはできませんでした。
しかし、その摂動を3%に上げると、非常に興味深いことが起こり始めました。ここでモンテカルロツリー検索アルゴリズムが発見したのは、初めは航空機が左側に進むように偏らせるが、ある地点まで来ると切り替わるという失敗軌跡でした。そこから「右に偏らせる」という指示に変わります。そのため、航空機は既に滑走路から大きく外れていて、今度は滑走路を横切って見ています。そのイメージは、滑走路を普通に走行する場合のトレーニングセットからあまりにもかけ離れているため、位置を把握するタスクで非常に悪い結果となり、最終的に航空機が滑走路から外れてしまうことを許してしまいました。
許可するノイズが多ければ多いほど、システムを失敗させることはより簡単になります。より短い失敗軌跡を見つけることができます。ここに示しているのは、単に左側に完全に進ませることができるケースです。
これは、実際に起こりうるイベントのシーケンスを理解する必要があることを強く示しています。なぜなら、失敗は非常に複雑な相互作用から生じる可能性があるからです。TaxiNetの例では、同じ方向への一貫した攪乱ではシステムは頑健でしたが、時間の経過とともに攪乱パターンを変更することで、システムを失敗させることができました。
質問がありました:「これは本当にクールですが、このような実験を始めるとき、これらのことを見つけられるかどうかはわかりません。では、いつ止めればいいのでしょうか?」
これは素晴らしい質問です。実験に入るとき、失敗を見つけられるかどうかはわかりません。では、探すのをいつ止めればいいのでしょうか?これは非常に難しい質問です。「このシステムが飛行するのに安全だと確信している」と言えるほどの高い確信度を構築することは非常に困難です。
Michael Kochenderferは、ACAS Xの評価は展開前に7〜8年かかったと話しています。FAAはいつ評価を止めるべきかをどうやって判断したのでしょうか?それは徐々に信頼を構築していったのであり、明確に定義された終了条件はありません。
基本的には、干し草の中の針のような問題になりうるのです。何らかの呪文を唱えると突然地球が爆発する可能性がある場合、それが存在しないことを証明する方法はありません。失敗が存在しないことを証明する方法はありますが、それは常にスケーラブルとは限らず、形式的手法のセクションで学ぶことになります。これは本当に素晴らしい質問であり、失敗が存在しないことを証明したと完全に確信することは非常に難しいのです。
9. 最新の研究動向
9.1 拡散モデル(Diffusion Models)を用いた検証
Anthony Corso:最後に話したいことは、この分野で現在起きている最新の動向についてです。もしこのトピックに関する研究に興味があるなら、まず誰と一緒に研究すべきか、そして現在まだ解決されていない課題は何かについてお伝えします。
これはHarrisonが取り組んでいる研究で、拡散モデルを使用したものです。拡散モデルは過去数年間で大きな成功を収めたディープ生成モデルの一種です。これらはStable DiffusionやDALL-Eなどの画像生成の基盤となるモデルで、非常に複雑な分布を表現するのに優れています。
複雑な分布の一つの用途は、非常に高次元の自律システムの興味深い失敗を見つけることです。これがHarrisonの研究のアイデアでした。拡散モデルはさまざまな分野で使用されています。最初は画像生成タスクにGANやVAEと同様に使用されていましたが、すぐにロボット計画などの高次元の分布マッチングタスクにも応用できることがわかりました。
例えば、ロボットアームが特定の位置にあり、目標位置があり、その目標に到達するためにロボットが取るべき経路の分布を学習したい場合などです。ロボットアームがある場所から別の場所に移動するという多くのトレーニングデータを生成し、「そこにたどり着きたい場合、経路はこのようになるだろう」と言えます。これを使用して、開始点と終了点を条件とする拡散モデルをトレーニングすることで、軌跡を生成することができます。
これは失敗の発見に使いたいことに少し似ています。目標は初期状態から始まり、潜在的な失敗結果が欲しいということです。あとはそのデータを生成する方法を考えるだけです。これがHarrisonが考えていたことです。複雑な条件付き拡散モデルを使用して、多様でありながらも可能性の高い失敗モードをサンプリングできるでしょうか?
この研究から生まれたアルゴリズムはDIFS(拡散ベースの失敗サンプリング)と呼ばれています。アイデアはこうです:失敗は稀であるため、初期状態と失敗のサンプルを単純に大量に生成することはできません。そこで、何らかのリスク測定値を定義します。これは初期に話した「ミス距離」に似ていて、二つの航空機がどれだけ近づいたかという、失敗にどれだけ近いかの代理指標です。これをRと呼び、リスク測定値とします。
多くのランダムサンプルを実行し、それらのサンプルのリスク測定値を計算できます。おそらくすべてがまだ失敗からは遠いかもしれませんが、それでもこれらのサンプルから得られるリスクの分布があります。これをデータセットに変換し、特定のリスク測定値を条件とした障害のポステリアサンプルを生成できる拡散モデルをそのデータセットでトレーニングします。
この拡散モデルは、示したリスク測定値の周辺でのみ優れていますが、特定のリスクを持つ追加の障害サンプルを生成できるはずです。そこでさらに障害サンプルを生成しますが、リスクの閾値を更新します。これで見たいリスクのレベルを上げ、そこでさらにサンプルを生成し、より高いリスク領域でより効果的にモデルを再トレーニングします。このプロセスを繰り返し、最終的に失敗につながるサンプルを生成しようとします。
これはより新しいアプローチで、高次元の問題で効率的に失敗を見つけるための革新的な方法を提供します。次に、このDIFSアルゴリズムがどのように機能するかをもう少し詳しく説明します。
9.2 DIFSアルゴリズムの説明
Anthony Corso:DIFSアルゴリズム(拡散ベースの失敗サンプリング)についてもう少し詳しく説明しましょう。これをゆっくり説明するために、おもちゃの問題を定義します。
ここでのアイデアは、私たちの障害が2次元ガウス分布から来ていると想像することです。これは中心の(0,0)マークに中心があり、中心部からいくつかのサンプルを得ます。そして、これらのサンプルの一つが左上または右上のボックスのいずれかに着地した場合に失敗が発生すると言います。リスク測定値は、これらの失敗領域までの距離のようなものになります。リスクレベルが3より大きい場合に失敗が発生すると定義し、これが赤いボックスで定義されています。
最初のステップは、元の単位ガウス分布からいくつかのサンプルを生成することです。確かに、これらのどれも非常に稀な失敗モードに当たっていませんが、各サンプルに関連するリスクの分布はかなり良いものです。
そこで拡散モデルをこれでトレーニングします。特に、リスクとそれに対応する障害のペアでトレーニングしています。次に言えることは、リスクの閾値の高いレベルの間で均一にサンプリングされたリスクから条件付けされた新しい障害サンプルを作成・サンプリングするということです。
これらのサンプルを生成し、それぞれのリスクを評価します。2回目の反復では、より高いリスクゾーンでより多くのサンプルを得ることができます。それらが見えています。そしてこれらをデータセットに追加し、これらのうちの上位の分位数を取るなどして新しいリスク閾値を作成し、このプロセスを続けます。失敗分布にどんどん近づいていくまでこのプロセスを繰り返します。
モバイルリスク閾値が関心のある失敗分布と一致するまでこれを繰り返し、最終的には次のようなサンプルを得ます。これを左側の小さなプロットと比較すると、Harrisonが多数のモンテカルロシミュレーションを実行して生成した実際の失敗分布からのサンプルです。
結果は非常に興味深いですが、「これは単なる視覚化のための単純なおもちゃの問題だ」と言うかもしれません。しかし、Harrisonはこれを他のさまざまな問題にも適用しています。
これらの軌跡は倒立振子問題からのもので、障害は振子のトルクに関するものです。ここで視覚化しているのは、拡散モデリングプロセスのシーケンスにおけるステップで、時間の経過とともにシステムの最も可能性の高い失敗に非常に似た失敗を生成することがどんどんうまくなっています。
DIFSアルゴリズムの仕組みをまとめると:
- リスク測定値Rを定義し、その分布からランダムサンプルを生成する
- これらのサンプルのリスクを計算し、(障害サンプル、リスク値)のペアのデータセットを作成する
- 特定のリスク値を条件として障害サンプルを生成する拡散モデルをトレーニングする
- より高いリスク領域から条件付けされた新しいサンプルを生成する
- それらのリスクを評価し、データセットに追加する
- リスク閾値を上げ、モデルを再トレーニングする
- 失敗サンプルが得られるまで繰り返す
このイテレーティブなアプローチにより、高次元空間で効率的に失敗を探索し、単純なランダムサンプリングでは見つけることが非常に難しい稀な失敗モードを発見することができます。また、この手法は拡散モデルの持つ高品質な生成能力を活かし、現実的で多様な失敗ケースを特定できる点でも優れています。
9.3 F-16モデルにおける高次元検証の成功事例
Anthony Corso:もう一つの本当に素晴らしい例は、F-16モデルからのものです。これは最終プロジェクトで一部の方が取り組んでいるかもしれませんね。これは多くの自由度を持つ非常に高次元のモデルで、時間の経過とともに動作します。このDIFSモデルは、軌跡の先端で航空機が地面と接触するという、より可能性の高い失敗モードを見つけることができます。
このような問題は、高次元性のため従来の最適化手法では解決が極めて困難です。しかし、このデータ駆動型の反復的アプローチを組み合わせることで、驚くほど効果的であることがわかりました。これは非常に高レベルの説明ですが、Harrisonの研究やそれに続く研究についてもっと知りたい場合は、ぜひ彼と話してみてください。
F-16モデルの例は特に印象的です。なぜなら、このモデルは多数の自由度を持ち、非常に複雑な力学系を表現しているからです。このような高次元の問題空間では、従来の勾配ベースの最適化手法や木探索アルゴリズムでは、効率的に失敗ケースを見つけることが非常に難しくなります。
しかし、DIFSアプローチを使用することで、Harrisonはこの複雑なモデルでも失敗ケースを特定することに成功しました。具体的には、航空機の軌跡がある点で地面と接触する状況を見つけました。このような衝突シナリオは航空機システムにとって明らかに重大な安全上の懸念事項です。
このF-16の例の重要なポイントは、DIFSが単に失敗を見つけるだけでなく、「より可能性の高い」失敗モードを識別できることです。つまり、極端に非現実的なエッジケースではなく、実際に起こりうる現実的なシナリオを特定します。これは安全性検証の観点からはるかに価値があります。なぜなら、システムの設計者は最も起こりやすい失敗から優先的に対処できるからです。
高次元問題でのDIFSの成功は、拡散モデルの表現能力と、イテレーティブなリスクベースのサンプリング戦略の組み合わせによるものです。このアプローチは従来の最適化手法では扱いきれなかった複雑な問題に対して新しい可能性を開きます。
このような新しい手法の開発は、ますます複雑化する自律システムの安全性検証において、非常に重要な進歩です。特にF-16のような高度な航空機システムでの成功は、同様のアプローチが他の複雑な安全性重視システムにも適用できる可能性を示しています。
10. 地球資源問題への応用
10.1 気候変動対策としての地下資源活用
Anthony Corso:最後に言いたいこととして、安全性は非常に全体的なものであることを、Sydneyもきっと話したでしょうが、システムの要件から設計、テスト、そして最終的に世界に出す準備ができているかどうかを決定する方法に至るまですべてを包括しています。適応型ストレステストは、このサイクルの面倒な部分を自動化することを可能にするパズルの非常に小さな部分を表しています。それは考えるだけでは本当に見つけられないエッジケースや興味深い結果、失敗モードを発見することです。しかし、最終的に世界に出しても安心できる製品にするためには、これを全体のプロセスに戻す必要があります。
ここで少し話題を変えて、Terra AIでの取り組みと地球資源問題について少しお話したいと思います。
まず、気候問題に関する研究に興味を持った経緯をお話しします。自律運転や航空などの分野でかなり取り組んでいましたが、気候分野の問題に遭遇し始めたとき、非常に魅力的に感じました。それは非常に興味深い問題だと思いますし、また非常に重要な影響があるからです。
現在、私たちは気候危機に関して何が起こりうるか、あるいは起こりえないかという非常に大きな転換点にいます。これは、異なる種類の政策が制定される可能性のある場合に起こりうるさまざまな加熱結果を示しています。オレンジ色で示しているのは現在の政策セットで、これらが維持されるかどうか、あるいは従われているかどうかは定かではありません。何もしなければ、4℃以上の加熱という非常に深刻な状況になります。しかし、1.5〜2℃の温度上昇だけを固定する道筋もあります。これはまだ非常に悪い状況ですが、起こりうる最悪の状況よりははるかに良いものです。
私は、この問題に対処するために今すぐに良い技術と政策が導入されることが非常に重要だと思います。しかし、多くの課題があります。まず第一に、エネルギー需要は増加しているだけです。世界の残りの部分が発展するにつれて、そして実際には先進国でさえも、各人が消費するエネルギー量は増えているだけです。ある程度の行動変化が必要になる可能性がありますが、例えば世界の残りの部分に発展するなと言うことはできません。
そのため、CO2排出量を削減すると同時に、生産するエネルギー量を劇的に増やす方法が必要です。これらの目標を達成するには、技術の組み合わせが必要になります。行動の変化、エネルギー効率、電化、そして対応する再生可能エネルギーが見えます。そして、セメントの生産や肥料、航空旅行など、脱炭素化が難しい特定のものについては、CO2を取り込み、大気中に放出されないようにする方法が必要です。
さらに、電化とすべての異なるバッテリーやエレクトロニクスに必要な重要鉱物の量には大きな不足が予測されています。基本的に、地面から取り出す必要のある鉱物が大量に不足しています。しかし、新しい鉱物堆積物を見つけることはどんどん下手になっているようです。
これは最近どれだけの新発見がなされたかを示しています。探査投資の量である黄色い曲線が上昇しているにもかかわらず、下降傾向があることがわかります。人々はものを見つけるためにより多くのお金を費やしているのに、見つけるのはどんどん下手になっています。この説明は非常に単純です。簡単なものはすべて見つかってしまったのです。そのため、より深く掘り下げ、より複雑なシステムを見つける必要があります。
これらすべてが示しているのは、地下は本当に重要な資源だということです。歴史的には、地下から炭化水素を取り出したために重要な資源でした。しかし今では、ネットゼロ移行のための重要な資源でもあります。既に示したスライドのように、原材料、再生可能エネルギー、炭素貯留があります。
これらの問題の興味深い点は、それらが互いに非常に異なっているにもかかわらず、新しいエネルギーシステムの開発、炭素の貯蔵など、一つの共通点があることです。それは、地質学の変動性から来る高い不確実性を持つ環境で非常に複雑な決定を下す必要があるということです。
10.2 炭素貯留技術の安全性課題
Anthony Corso:それでは、炭素貯留問題の文脈でその問題がどのように見えるかについて話しましょう。炭素貯留では、基本的に地中深くにこれらの典型的な塩水帯水層に掘削します。これは塩水が含まれた多孔質の岩で、飲料水としては有用ではありません。通常、その岩はより硬い岩でキャップされているため、CO2を注入すると、表面に浮き上がろうとするCO2が逆さまのボウルのように地下に閉じ込められます。
私たちの目標は基本的に、できるだけ多くのCO2を注入し、そこに閉じ込めておくことです。そのCO2が表面に戻る方法を見つけた場合、それは非常に悪いことになります。後でもう少し詳しく説明します。しかし、ここでのトリックは、私たちが実際に注入しているものがどのようなものか、実際には知らないということです。
できることとしては、探査穴を掘り、その特定の地点での岩の特性を観察することができます。また、貯留層を操作している間に、センサーを下に置いて、その特定の位置で何が起きているかを観察することもできます。あるいは、地面からの測定、例えば地震測定を行うこともできます。これは基本的に地球の地下のための超音波のようなものです。岩の密度などのいくつかの測定値を得ることができます。しかし、これらすべては、そこで何が起きているかの非常に不完全な絵を描くだけです。
これが重要な理由は、地下がどのようなものかについて不確かであれば、どこに注入すべきかという質問に本当に答えることができないからです。CO2を注入する能力にとって、より良い場所と悪い場所があるからです。「どれだけのCO2を注入できるか?」という基本的な質問にも答えられません。これはビジネスの観点から重要です。「X量のCO2を貯蔵します」という契約に署名する必要があるからです。そして、システムについてもっと学びたい場合、どのような測定を行うべきでしょうか?地震測定を行うべきか、地面に穴を掘るべきか、どのような順序でそれらの測定を行うべきでしょうか?
この問題の本当に素晴らしい点は、マイケルの不確実性下での決定に関する他のコースを受講した方々にとって、この問題をPOMDP(部分観測マルコフ決定過程)として定式化できることです。地下の状態がわからないため部分観測であり、さらにアクションを取り、目標と制約を持っています。このような様々なPOMDPソルバーを活用し、新しいデータソースを得たときにベイズ推論を行うことができます。地下についての信念をどのように更新するか、という点です。
POMDPが常に持っているものの一つは、時間の経過とともにシステムがどのように進化するかを記述する遷移関数です。炭素貯留の場合、CO2を地中に注入すると、それは時間の経過とともに地下で移動します。そして、このCO2が何千年もの間、あるいは実際に固形化して基本的に塩になるまで閉じ込められていることを確認する必要があります。そのため、このプロセスをシミュレートできる必要があります。
歴史的に、人々はガスが地下でどのように進化するかを物理ベースのシミュレーターを構築するために多大な努力を費やしてきました。しかし、それらは非常に非常に遅いです。一つのシミュレーションを実行するには、おそらく10〜12時間かかります。AIや最適化を行いたい場合、それをはるかに速く行う必要があります。
研究と会社の両方で私たちが焦点を当てている作業の一部は、このタイプのプロセスのための代用モデルを構築することです。ここで行うのは純粋に教師あり学習タスクです。物理ベースのシミュレーターを実行して、地下でCO2プルームがどのように見えるか、どのように進化するかを生成します。そして、その物理的な挙動を模倣するためにディープニューラルネットワークをトレーニングします。これを多様なサンプルで行います。
得られるのは基本的に何千倍も高速なシミュレーターです。精度は少し低くなりますが、より多くのシナリオを考慮できるという点でその精度の低さを十分に補っています。
これもPOMDPソリューションの結果で、現在投稿中の論文からのものです。基本的な最適化手法を使用したPOMDPソリューションが、これらの貯留層を設計するタスクを与えられた人間の貯留層エンジニアよりも優れた性能を発揮できることを示しています。
ここで基本的に示されているのは貯留層の設計です。彼らがインジェクターを配置した場所で、CO2を注入し、そのCO2はおよそ1000年の期間にわたって進化します。そして、このシミュレーションで、CO2がどれだけ貯留層に閉じ込められたままか、あるいはどれだけがドメインから出て表面に漏れる可能性があるかを測定できます。
貯留層エンジニアの専門家の場合、CO2の16%がこのボリュームから漏れ出すような状況がまだありましたが、AIはそれを非常に非常に小さな漏洩率で行うことができました。これはこの問題にこれらのアルゴリズム的決定ツールを適用する可能性を示しています。
10.3 不確実性下での複雑な意思決定問題
Anthony Corso:炭素貯留問題のような地下資源利用の主要な課題は、不確実性の高さと意思決定の複雑さです。この問題をPOMDP(部分観測マルコフ決定過程)として定式化できることは非常に興味深いポイントです。マイケルの不確実性下での決定に関する他のコースを受講した方々は馴染みがあるでしょう。
地下がどのようなものかについて不確かであれば、多くの重要な質問に答えることができません。例えば:
- どこに注入すべきか - CO2を注入する能力にとって、より良い場所と悪い場所があります
- どれだけのCO2を注入できるか - これはビジネスの観点から重要です。契約で特定量のCO2貯蔵を約束する必要があるからです
- システムについてもっと学ぶために、どのような測定を行うべきか - 地震測定か、探査穴を掘るか、どのような順序で行うべきか
地下環境の不確実性は、観測の限界によるものです。私たちができることは次のようなものです:
- 探査穴を掘って、特定の地点での岩の特性を観察する
- 貯留層を操作中にセンサーを設置し、特定の位置での状況を観察する
- 地面からの測定を行う(地震測定など - 地球の地下のための超音波のようなもの)
しかし、これらはすべて非常に限定的で不完全な情報しか提供しません。地下の完全な状態を知ることは不可能です。そのため、限られた情報に基づいて意思決定を行い、不確実性を管理しながら操作する必要があります。
この問題をPOMDPとして定式化することで、様々なPOMDPソルバーを活用できます。また、新しいデータが得られたときにベイズ推論を行い、地下についての信念を更新することができます。
POMDPフレームワークの重要な要素の一つは遷移関数です。これは時間の経過とともにシステムがどのように進化するかを記述します。炭素貯留の場合、CO2を地中に注入すると、それは時間の経過とともに地下で移動します。そのため、このプロセスを効率的にシミュレートできる必要があります。
しかし、従来の物理ベースのシミュレーターは非常に計算コストが高く、一つのシミュレーションを実行するのに10〜12時間もかかります。AIや最適化を効果的に行うためには、はるかに高速なシミュレーションが必要です。そこで私たちは深層学習を使用した代用モデルを開発しました。
この不確実性下での複雑な意思決定問題は、単なる計算上の課題ではなく、実際の世界への重大な影響を持つものです。高品質な意思決定支援ツールを開発することで、炭素貯留の効率性と安全性を大幅に向上させることができます。先ほど示したように、AIベースの手法は人間の専門家よりも優れた結果をもたらす可能性があります。
このような不確実性下での決定問題は、適応型ストレステストの文脈とも関連しています。両方のケースで、複雑なシステムの振る舞いを理解し、安全に運用するための方法を模索しているのです。
11. 意思決定問題としての地下資源管理
11.1 POMDP(部分観測マルコフ決定過程)としての問題定式化
Anthony Corso:地下資源利用における不確実性と意思決定の複雑さについて、もう少し詳しく説明しましょう。この問題が特に興味深い点は、マイケルの不確実性下での決定に関する他のコースを受講した方々にとって、これをPOMDP(部分観測マルコフ決定過程)として定式化できることです。
POMDPとして定式化する理由は、地下の状態が部分的にしか観測できないためです。私たちは地下の状態を完全には知ることができません。しかし、何らかのアクションを取り、目標と制約を持っています。このような状況は、まさにPOMDPフレームワークが対応するように設計されたものです。
POMDPの基本的な構成要素は以下のとおりです:
- 状態空間 - この場合、地下の地質学的特性(岩の種類、多孔性、透過性など)
- アクション空間 - どこに掘削するか、どこにCO2を注入するか、どのような測定を行うかなど
- 観測空間 - 掘削コア、地震データ、圧力測定値など、取得できる情報
- 遷移関数 - アクションに基づいて状態がどのように変化するか(例:CO2注入後の地下での移動)
- 観測関数 - 実際の状態に基づいて何を観測できるか
- 報酬関数 - 目標達成度を測る指標(例:安全に貯留されたCO2量)
このようにPOMDPとして定式化することで、様々なPOMDPソルバーを活用することができます。また、新しいデータが得られたときにベイズ推論を行い、地下の状態に関する信念を更新することができます。
例えば、最初に炭素貯留サイトに関するある程度の事前情報を持っているとします。これは初期信念状態となります。次に、探査穴を掘ることで新しい観測を得ます。この新しい情報に基づいて、地下の状態に関する信念を更新します。この更新された信念に基づいて、次にどのアクションを取るべきか(例:別の場所で掘削する、地震調査を行う、CO2の注入を開始するなど)を決定します。
POMDPフレームワークの強みは、不確実性を明示的に考慮しながら、長期的に最適な決定を行うことができる点です。一回限りの決定ではなく、情報収集と実際のオペレーションを含む一連の決定を最適化することができます。
この問題設定は、単にCO2貯留に限らず、地熱エネルギー生産や重要鉱物の探査など、他の地下資源管理問題にも適用できます。いずれの場合も、限られた観測に基づいて、高い不確実性の下で複雑な意思決定を行う必要があります。
11.2 物理ベースシミュレータの限界とサロゲートモデル構築
Anthony Corso:POMDPが常に持っているもう一つの要素は遷移関数で、これはシステムが時間とともにどのように進化するかを記述します。炭素貯留の場合、地中にCO2を注入すると、それは時間の経過とともに地下で移動します。私たちはこのCO2が何千年もの間、あるいは実際に固形化して基本的に塩になるまで閉じ込められていることを確認する必要があります。そのため、このプロセスをシミュレートできる必要があります。
歴史的に、人々はガスが地下でどのように進化するかという物理ベースのシミュレーターを構築するために多大な努力を費やしてきました。しかし、これらのシミュレーターは非常に計算コストが高いのです。一つのシミュレーションを実行するには、おそらく10〜12時間もかかります。AIや最適化のような手法を適用したい場合、これはあまりにも遅すぎます。はるかに高速なシミュレーションが必要です。
研究と会社の両方で私たちが焦点を当てている作業の一部は、このタイプのプロセスのためのサロゲートモデル(代理モデル)を構築することです。ここで行っているのは純粋に教師あり学習タスクです。まず物理ベースのシミュレーターを実行して、地下でCO2プルームがどのように見えるか、どのように進化するかを生成します。その後、この物理的な挙動を模倣するためにディープニューラルネットワークをトレーニングします。これを多様なサンプルに対して行います。
この結果として得られるのは、基本的に何千倍も高速なシミュレーターです。精度は若干低下しますが、その速度によって、より多くのシナリオを考慮できるという点でその精度の低さを十分に補います。物理ベースのシミュレーターでは10時間かかるケースでも、ニューラルネットワークベースのサロゲートモデルでは数秒で計算できるようになります。
サロゲートモデル構築の主な手順は以下の通りです:
- 物理ベースのシミュレーターを使用して、さまざまな条件下でのCO2の挙動に関するトレーニングデータを生成する
- このデータを使用して、同じ入出力関係を模倣するディープニューラルネットワークをトレーニングする
- トレーニングしたモデルの精度を評価し、必要に応じて調整する
- 最終的なサロゲートモデルを実際の最適化タスクに組み込む
この手法の大きな利点は、物理ベースのシミュレーターの基本的な物理法則を尊重しながらも、計算効率を劇的に向上させることができる点です。また、サロゲートモデルは不確実性の定量化にも対応できるように拡張することができます。
サロゲートモデルを用いることで、実用的な時間枠内で何千もの異なるシナリオをシミュレートし、より広範な可能性空間を探索することができます。これにより、POMDPフレームワーク内でより効果的な意思決定が可能になります。物理ベースのシミュレーターの限界を克服するこの手法は、地下資源管理だけでなく、計算コストの高いシミュレーションを必要とする他の多くの分野にも応用可能です。
11.3 AI意思決定手法の優位性実証
Anthony Corso:これらの技術を組み合わせた結果、現在投稿中の論文からの非常に興味深い成果があります。基本的な最適化手法を使用したPOMDPソリューションが、これらの貯留層を設計するタスクを与えられた人間の貯留層エンジニアよりも優れた性能を発揮できることを示しています。
ここで示している図は基本的に貯留層の設計です。CO2を注入するインジェクターの配置場所が示されており、そこからCO2が注入され、そのCO2はおよそ1000年の期間にわたって進化します。そして、このシミュレーションでは、CO2がどれだけ貯留層に閉じ込められたままか、あるいはどれだけがドメインから出て表面に漏れる可能性があるかを測定することができます。
人間の貯留層エンジニアの専門家が設計した場合、CO2の16%がこのボリュームから漏れ出すような状況がまだありました。一方、AIベースの手法はそれを非常に非常に小さな漏洩率で達成することができました。これは、この問題にこれらのアルゴリズム的意思決定ツールを適用する可能性と潜在的な利点を示しています。
AIベースの意思決定手法が人間の専門家よりも優れている理由はいくつかあります:
- 不確実性の体系的な処理: AIアプローチはPOMDPフレームワークを通じて、地下の不確実性を明示的かつ体系的に処理します。人間は不確実性を考慮しようとしますが、直感や経験に頼りがちで、それが最適ではない場合があります。
- 大量のシナリオの探索: サロゲートモデルの速度により、AIは人間が考慮できるよりもはるかに多くの可能なシナリオを探索できます。人間のエンジニアは計算時間の制約のため、限られた数のシナリオしか評価できません。
- 長期的な結果の最適化: AIアプローチは1000年という長期間にわたる結果を明示的に最適化できます。人間は短期的な目標に焦点を当てがちで、長期的な結果を完全に考慮することが難しい場合があります。
- バイアスの排除: 人間の意思決定は認知バイアスの影響を受けることがありますが、AIアプローチはデータと最適化原理に厳密に基づいて意思決定を行います。
この研究成果は、炭素貯留のような安全性重視のシステムにAIベースの意思決定手法を適用する価値を実証しています。特に、高い不確実性と複雑な力学を持つ問題では、AIアプローチが人間の専門家の能力を補完し、場合によっては上回ることができます。
ただし、これはAIが人間の専門家を完全に置き換えるべきだということではありません。むしろ、AIツールは人間の専門家を支援し、より良い決定を行うための強力なツールとして機能するべきです。最終的な意思決定では、AIの推奨と人間の専門知識や判断を組み合わせることが最適なアプローチとなるでしょう。
12. 安全性リスクと課題
12.1 誘発地震の危険性
Anthony Corso:次にリスクについてお話ししましょう。これらの問題が安全性重視である理由です。まず第一に、これは主に地熱エネルギー生産に関連するリスクですが、炭素貯留にも関連するリスクで、それは誘発地震の危険性です。
地熱エネルギーでは、通常、地面に二つの穴を掘り、一方から冷水を注入し、もう一方から温水を取り出します。時々、地中に水を注入する際、非常に高い圧力で注入することがあります。これは水の流量を多くし、したがって地中からより多くの熱を取り出すためです。しかし、高圧で注入すると、その地域にある断層を再活性化させる可能性があります。
断層とは、地下の破断部分で、通常は何らかの応力状態にあります。断層がずれるとき、それが地震を引き起こします。地熱プラントによって引き起こされた地震さえあります。韓国で大きな地震があり、それを最終的に都市のすぐ外にあった地熱プラントに関連付けました。地熱は電気と熱を生産するために使用されるため、しばしば都市の近くにあります。したがって、このような災害は人々に本当に害を与える可能性があります。
誘発地震のリスクは、地下での高圧水注入や炭素貯留活動によって地殻内の応力状態が変化することで生じます。特に既存の断層の近くでこのような活動を行うと、断層の安定性が崩れ、地震を誘発する可能性があります。
これが安全性重視の問題となる理由は明らかです。誘発地震は以下のような悪影響をもたらす可能性があります:
- 人命の危険: 特に都市部や人口密集地域の近くで大きな地震が発生した場合、人命が危険にさらされる可能性があります。
- インフラ被害: 建物、道路、橋、パイプラインなどのインフラが地震によって損傷を受ける可能性があります。
- 二次的災害: 地震は地滑り、洪水、あるいは工業施設での事故など、二次的な災害を引き起こす可能性があります。
- CO2漏洩のリスク増加: 炭素貯留の場合、誘発地震は貯留層のシールを破壊し、貯留されたCO2が漏れ出す経路を作り出す可能性があります。
韓国の事例は特に注目すべきものです。2017年に浦項(Pohang)で発生したマグニチュード5.4の地震は、近くの地熱プロジェクトが原因であることが後の調査で判明しました。この地震では数十人が負傷し、数千の建物が損傷し、約1.7億ドルの経済的損失をもたらしました。
このような事例は、地下資源の利用においてリスク評価と安全性検証が極めて重要であることを示しています。特に人口密集地域の近くで操業する場合、安全な運用パラメータ(注入圧力や量など)を特定し、継続的なモニタリングを行うことが不可欠です。これらの安全性課題はまさに、この講義の前半で議論した適応型ストレステストのような技術が適用できる分野です。
12.2 CO2漏洩のリスク(1986年の事例)
Anthony Corso:もう一つの潜在的な問題は、炭素貯留のケースに戻りますが、地中に大量のCO2を注入すると、前述のように、それは戻る道を見つけようとします。もし断層や何かを見つけると、表面に戻り始め、潜在的に最良のケースでは、大気中に戻り、私たちがやっていることの目的全体を打ち消します。しかし最悪のケースでは、実際に人々を殺す可能性があります。
これは炭素貯留のケースではありませんが、1986年に自然発生的に起こったことの例です。湖がありました。何らかの理由で一度に出てきた、この湖の下に地質学的にトラップされた大量のCO2がありました。それは実際に地元の村と多くの家畜を窒息させました。
これは非常に危険なことです。理想的には、人々がいない沖合でこの種の操業を行いますが、陸上操業についても議論されているプロジェクトがあります。これらは注意すべき本当に重要なことの一部です。
この1986年の事例はカメルーンのニオス湖で発生したものです。この災害はCO2の自然放出によるものでしたが、炭素貯留からの漏洩がもたらす潜在的なリスクを鮮明に示しています。ニオス湖の災害では、湖の底から突然放出された約10億立方メートルのCO2ガスが周辺地域を覆い、1,746人の死亡と多数の家畜の死をもたらしました。
CO2は空気より重いため、地表に沿って流れ、酸素を置き換えます。十分な濃度のCO2にさらされると、人間や動物は急速に意識を失い、窒息する可能性があります。炭素貯留の文脈では、このような大量漏洩のリスクは極めて深刻な安全上の懸念事項です。
炭素貯留からのCO2漏洩リスクは以下の点で重要です:
- 人命の危険: 高濃度のCO2は致命的です。特に居住地域の近くで漏洩が発生した場合、多数の死傷者が出る可能性があります。
- 環境への影響: CO2の漏洩は局所的な生態系に影響を与え、土壌の酸性化や地下水の汚染を引き起こす可能性があります。
- 気候変動対策の失敗: 漏洩が発生すると、貯留されたCO2が大気中に戻り、炭素貯留の目的が無効になります。
- 社会的受容性への影響: 重大な漏洩事故は炭素貯留技術に対する社会的信頼を大きく損なう可能性があります。
Anthony Corsoが指摘したように、理想的には炭素貯留は沖合で行われるべきです。沖合の操業は、漏洩が発生した場合の人間への直接的なリスクを最小限に抑えることができます。しかし、コスト、ロジスティクス、技術的課題のため、一部のプロジェクトは陸上での実施が検討されています。これらの陸上プロジェクトでは、漏洩リスクの徹底的な評価と安全対策の実施が絶対に不可欠です。
このようなリスクを管理するためには、注入サイトの慎重な選択、包括的なモニタリングシステム、早期漏洩検出メカニズム、そして緊急対応計画が必要です。さらに、長期的な安全性を確保するための規制フレームワークと監視体制も重要です。
12.3 安全性評価の今後の展望
Anthony Corso:私たちは状態に多くの不確実性がある状況にあり、非常に複雑な遷移ダイナミクスと、どのように操作するかについての非常に限られた観測しかありません。今後数年間でSizzle研究室が行うであろう研究と、会社で行うであろう研究の一部は、これらの問題を解決するためにより自動化された意思決定エージェントの安全性評価をどのように実際に行うかということです。
ここで話を終え、皆さんに今や将来、この安全性評価問題にどのようにアプローチするかについてのアイデアを共有していただきたいと思います。このクラスで学んだことや、コースの残りの部分で学ぶことに基づいて、どのようにこの問題に取り組むでしょうか。何か考えがありますか?実際にどのように適用するのか、どのような技術を使うのかについて聞いてみたいです。
この分野の安全性評価の今後の展望は非常に重要です。地下資源管理における不確実性と複雑性は、従来の安全性評価手法だけでは十分に対処できない課題を提起しています。特に、自動化された意思決定システムが関与する場合、そのシステムの安全性をどのように検証するかという新たな問題が生じます。
将来の安全性評価における重要な方向性としては以下が考えられます:
- 適応型ストレステストの応用: 講義の前半で議論した適応型ストレステスト技術は、地下資源管理システムにも応用できる可能性があります。例えば、どのような地質条件や運用パラメータの組み合わせが漏洩や誘発地震を引き起こす可能性があるかを特定するために使用できます。
- モデルの不確実性の明示的な考慮: 地下環境のモデリングには固有の不確実性があります。将来の安全性評価では、この不確実性を明示的に考慮し、最悪のケースのシナリオだけでなく、リスクの確率分布を評価する必要があります。
- マルチスケールアプローチ: ミクロなプロセス(岩石の微小亀裂など)からマクロなシステム動態(広域地質構造の挙動など)まで、異なるスケールでの安全性評価を統合するアプローチが必要です。
- 継続的モニタリングとオンライン安全性評価: 運用開始後も継続的なモニタリングデータを用いて安全性評価を更新し、状況の変化に応じて運用パラメータを調整するシステムが重要になります。
- AIと人間の専門知識の融合: 完全に自動化されたシステムだけでなく、AIの分析能力と人間の専門家の判断を組み合わせたハイブリッドアプローチが効果的でしょう。
- 形式的検証方法の応用: ソフトウェア検証の分野で開発された形式的検証手法を、不確実性を考慮した形で地下資源管理システムに応用することも有望です。
- 社会的・倫理的側面の統合: 技術的な安全性だけでなく、社会的受容性や公平性などの要素も安全性評価に統合することが重要になります。
これらの方向性に沿った研究と開発が進むことで、地下資源を安全かつ効果的に管理するための能力が向上し、気候変動対策や持続可能なエネルギー生産に貢献することが期待されます。同時に、これらの研究は他の安全性重視システムの検証にも応用できる可能性があり、より広い影響を持つ可能性があります。
最終的には、高度に自動化された意思決定システムの安全性を保証するための体系的かつ包括的なアプローチの開発が、この分野の重要な課題となるでしょう。