※本記事は、Stanford AA228V「Validation of Safety Critical Systems」講義の「Explainability」回の内容を基に作成されています。講義の詳細情報は https://aa228v.stanford.edu/ でご覧いただけます。教科書は https://algorithmsbook.com/validation/ で入手可能です。
登壇者紹介:
- Sydney Katz氏:スタンフォード大学ポストドクトラル研究員。詳細情報は https://sydneymkatz.com/ でご覧いただけます。
本記事では、講義の内容を要約しております。なお、本記事の内容は原講義の見解を正確に反映するよう努めていますが、要約や解釈による誤りがある可能性もありますので、正確な情報や文脈については、オリジナルの講義動画をご視聴いただくことをお勧めいたします。
この講義は、Stanford Onlineを通じて提供されています。Stanford Onlineは、スタンフォード大学工学部のグローバル・オンライン教育センター(CGOE)が運営・管理する学術・専門教育ポータルです。詳細情報は https://online.stanford.edu/ でご覧いただけます。
1. 導入・背景
1.1 航空機衝突回避システム(ACAS)の実例
Sydney Katz:私たちはこれまで衝突回避を例題問題の一つとして扱ってきましたが、皆さんの多くがご存知の通り、Mykelは ACAS X(エーカス・エックス)と呼ばれる航空機衝突回避システムに取り組んでいました。このシステムについて特に興味深いのは、私がこの授業のどこかで言及したと思いますが、彼らが大陸横断アメリカ全土にわたる9ヶ月間のレーダーデータに基づいて空域のモデルを訓練したことです。
AA228を受講した皆さんにとって興味深いことに、このモデルは実際にはベイジアンネットワークとして表現されており、これは非常に素晴らしいことです。基本的に、このベイジアンネットワークから航空機の遭遇シナリオをサンプリングして、2機の航空機が互いに飛行する状況をシミュレートし、システムが近接中間空中衝突(NMAC:Near Mid-Air Collision)を防ぐかどうかを理解することができます。
最終的に計算したいのは、システムを使用した場合に、ある種の遭遇シナリオが与えられたときに航空機が近接中間空中衝突を起こす確率です。これは、ベイジアンネットワークから多数の遭遇をサンプリングし、衝突回避システムを使用したときにそのうち何回がNMACを引き起こすかを確認することで実現できます。
しかし、論文で言及されているように、そしてこの授業でもかなり話してきたように、このアプローチは非常に非効率的である傾向があります。なぜなら、空域は一般的にすでにかなり安全であるため、近接中間空中衝突はあまり発生しないからです。近接中間空中衝突を引き起こすような多くのシナリオには遭遇しないのですが、これは良いことです。
より良い推定値を得たい場合は、実際にベイジアンネットワークからサンプリングした後、より小さな垂直および水平ミス距離を持つように分布にバイアスをかけることで、異なる分布からサンプリングすることができます。これにより、必要なより興味深い動作が得られ、その後重要度再重み付けを行って近接中間空中衝突の確率の推定値を得ることができます。
これは、ACAS衝突回避システムの確率推定において重要度サンプリングが実際に役立つ現実世界の素晴らしい例です。もし皆さんがより詳しく知りたいのであれば、この論文をEdで共有します。これはMykelが書いた論文なので、もちろん素晴らしい論文であり、チェックしてみてください。
1.2 重要度サンプリングによる効率的な確率推定
Sydney Katz:このACAS衝突回避システムでの重要度サンプリングの応用について詳しく説明しましょう。通常のアプローチでは、ベイジアンネットワークから単純に多数の航空機遭遇シナリオをサンプリングし、それらのうち何回が近接中間空中衝突(NMAC)を引き起こすかを観察することになります。しかし、これは極めて非効率的なアプローチです。
その理由は、現実の空域が既に十分に安全であるという事実にあります。つまり、近接中間空中衝突を引き起こすような危険なシナリオは実際には非常に稀にしか発生しません。これは安全性の観点からは良いことですが、統計的推定の観点からは問題となります。なぜなら、興味のある事象(NMAC)がほとんど発生しないため、信頼できる確率推定を得るために膨大な数のシミュレーションが必要になるからです。
この問題を解決するために、重要度サンプリングという手法を適用することができます。具体的な手順は以下の通りです:まず、ベイジアンネットワークから通常通り航空機遭遇シナリオをサンプリングします。しかし、その後で分布にバイアスをかけて、垂直方向および水平方向のミス距離がより小さくなるようにします。
このバイアスによって、より危険で興味深い航空機の動作を捉えることができるようになります。航空機同士がより接近した状況でのシナリオが多く生成されるため、NMACが発生する可能性の高いシナリオに焦点を当てることができます。そして、このバイアス分布からのサンプリング結果を用いて重要度再重み付けを行うことで、実際の確率分布における近接中間空中衝突の確率を正確に推定することができます。
この手法により、計算効率を大幅に改善しながら、統計的に信頼できる推定値を得ることが可能になります。これは、重要度サンプリングが実際の安全クリティカルシステムにおいて実用的な価値を持つ優れた実例となっています。
1.3 説明可能性の必要性と課題
Sydney Katz:これまでのこの授業では、実際のところ、私たちは非常に単純なアプローチを取ってきました。基本的に「動作しない」か「動作する」かのどちらかでした。故障を発見したり、故障確率を推定したり、時には故障がないことを証明したりしてきました。そして時には、何が起こっているかについてある程度の洞察を得ることもありましたが、なぜ動作するのか、なぜ動作しないのかを明示的に説明することは実際にはしていませんでした。単に「動作する」と言っているだけでした。
時にはそれで十分な場合もあります。動作することを証明できれば、「よし、動作するからこのまま進めよう」と言えることもあります。しかし、時には実際になぜ動作するのか、なぜそのような動作をするのかが本当に重要になります。なぜなら、システムに騙されてしまう可能性があるからです。
システムは、あなたが検証している全ての項目において常に動作しているかもしれませんが、おそらくあなたが見落としているメトリクスがあり、そのメトリクスにおいてはシステムが非常に悪いパフォーマンスを示すことが判明する可能性があります。代わりに、システムの動作を説明し、「このシステムは、これとこれとこれのためにこの決定を下している、またはこの方法で失敗している」と言えるなら、実際に何が起こっているかについてより良いアイデアを得ることができ、実世界でシステムを展開する際により自信を持つことができます。
実際に動作する理由を知ることが良い場合があります。これが今日私たちが行うことです。説明可能性のための様々な技術について話します。まず、ポリシー可視化から始め、その後しばらく特徴量重要度について話します。次に、ポリシーを説明するための代理モデルについて話し、最後の2つのトピックについては簡潔に触れますが、反実仮想と故障モード特性化について話します。
2. ポリシー可視化(Policy Visualization)
2.1 システムのロールアウト可視化
Sydney Katz:ポリシー可視化については、実際にこの授業で既にたくさん行ってきました。基本的にできることは、システムのロールアウトを可視化することです。これまで何度も行ってきたことです。
例えば、衝突回避システムを何度もロールアウトして、何が起こるかを見ることができます。そうすると、基本的に2つの動作モードがあることがわかります。侵入機の上を通るか、侵入機の下を通るかのどちらかです。これは、システムを設計する際に最初に行うことの一つでしょう。システムをロールアウトして、合理的に見えることを確認することです。
倒立振子についても同様です。ほとんどの場合、角度ゼロで直立したままでいることがわかり、時々転倒することがあります。これが実行できることの一つです。
2.2 ポリシーの直接可視化手法
Sydney Katz:もう一つできることは、エージェントのポリシーをプロットしようとすることです。まず右側の図を見てみましょう。これは倒立振子のポリシーです。倒立振子について素晴らしいのは、2次元の状態を持ち、ポリシーは現在の状態のみに依存していることです。そのため、これらの状態のいずれかの観測値が与えられた場合にエージェントが何をするべきかを見ることができます。
この軸にはθ(角度)があり、この軸にはω(角速度)があります。これらすべてが理にかなっているかどうかをサニティチェックできます。例えば、ゼロの位置、つまり完全に直立していて全く動いていない状態では、そのままの状態を維持したいと思うでしょう。そのため、ゼロのトルクを適用したいと思います。ここでトルクがゼロになっているのがわかり、これは合理的です。
θが正である右側に移動すると、反対方向に押し戻したいので負のトルクが得られます。左側に移動すると、押し戻すために正のトルクが得られます。このようにして続きます。これは、ポリシーをプロットするための良いサニティチェックです。
衝突回避システムでも同様のことができますが、今度は行動が離散的です。ここでは、この軸に衝突までの時間があり、この軸に自機と侵入機の間の相対高度がある状態空間のスライスをプロットしています。このプロット内のどこかに侵入機があると想像でき、自機をこれらの場所のいずれかに置くと、これが得られる行動です。
侵入機より上にいる場合は上昇するように指示され、下にいる場合は下降するように指示されます。十分に上または十分に下にいる場合は、危険な状況にいないため、無警告の「衝突の危険なし」が表示され、何もする必要がありません。これは非常に興味深く、これは実際にACAS Xのポリシーを最初に生成していた時に行ったことです。このような興味深い直感的でない特徴を見つけることができます。例えば、この後ろにあるノッチのようなものです。
このノッチが埋められていない理由、なぜ無警告になっているのかについて、誰かアイデアはありますか?AA228を受講した人がいれば。そうですね、上昇するか下降するかのどちらが良いかわからないのです。これは興味深く、このようなポリシー可視化を行うことで興味深い特徴を発見できます。システムを設計する際には、これを絶対に推奨します。
2.3 高次元ポリシーのスライス可視化
Sydney Katz:衝突回避ポリシーについてここで注目すべきもう一つのことは、具体的にポリシースライスをプロットしているということです。倒立振子について素晴らしいのは、状態が2次元だけだったので、ポリシー全体をプロットして、それがどのように見えるかを確認できることでした。
衝突回避ポリシーの状態は実際には4次元なので、一度に全体をプロットして可視化することはできません。4次元をどのように可視化するかが実際にはわからないからです。そのため、異なるスライスをプロットする必要があります。
これらのより複雑な高次元ポリシーを扱う場合の別の方法として、状態空間を分割することができます。これがぼやけているのは本当に困りますが、正直に言って修正する時間がありませんでした。申し訳ありません。本では鮮明になっています。一部のPDFレンダラーがこれをぼやけさせる理由がわかりません。とにかく、ぼやけていないふりをしてください。
私たちは状態空間を多数の領域に分割し、その後多数の軌道をシミュレートすることもできます。以前に見た全てのロールアウトを想像してください。そして、領域を通過するたびに、その領域でどの行動を取ったかを記録します。これらの領域では常に同じ垂直速度や前の行動を持っているわけではないので、各領域で常に同じ行動を取るとは限りませんが、各領域で取った行動を記録し続けます。そして、例えば各領域で最も頻繁に取られた行動をプロットすることができます。
2.4 状態空間の分割による可視化
Sydney Katz:状態空間の分割による可視化について詳しく説明しましょう。まず、状態空間を多数の領域に分割します。その後、多数の軌道をシミュレートします。以前に見たすべてのロールアウトを想像してください。
軌道が各領域を通過するたびに、その領域でどの行動を取ったかを記録します。これらの領域では、垂直速度や前の行動が常に同じというわけではないため、各領域で常に同じ行動を取るとは限りません。しかし、各領域で取った行動を記録し続け、例えば各領域で最も頻繁に取られた行動をプロットすることができます。
学生からの質問:「これは何を解決しようとしているのですか?」
Sydney Katz:単に4次元のポリシーを可視化できるようにしようとしているだけです。
学生:「多数のロールアウトを行うことですか?」
Sydney Katz:私たちは行動として取られたものをプロットしているのです。ロールアウトを行う際に通過した状態の履歴に依存するため、振り子では履歴に依存しませんが、実際にはこれは履歴に依存しません。ただ、4次元であるためスライスをプロットしているだけで、そのため異なるものが得られる可能性があります。
しかし、これは私の次のポイントにつながります。この手法について本当に素晴らしいのは、非マルコフシステムに対しても機能することです。
2.5 非マルコフシステムへの対応
Sydney Katz:この手法について本当に素晴らしいのは、非マルコフシステムに対しても機能することです。履歴に依存している場合、状態空間を見渡して「この状態では、この行動を取る」と単純に言うことはできません。なぜなら、その状態にどのように到達したかにも時々依存するからです。
この場合、多数のロールアウトをシミュレートするだけで、すべての単一状態にどのように到達したかを知ることができ、複雑で潜在的に非マルコフなシステムがある場合でも、この種の可視化を行うことができます。これは、履歴依存の複雑なシステムがある場合にも良い方法です。
3. 特徴量重要度(Feature Importance)
3.1 感度解析(Sensitivity Analysis)
3.1.1 基本概念と計算手法
Sydney Katz:では、長い間話すことになるこの特徴量重要度について話しましょう。これは、多くの人が説明可能性について考える際に思い浮かべるものだと思います。基本的に、特徴量重要度の目標は、システムの全体的な動作に対する様々な特徴量の寄与を理解することです。特徴量は多くの異なるものである可能性があります。システムの状態、適用する外乱、画像のピクセルなど、様々なものが考えられます。これらのものが、私たちが関心を持つシステムの動作や何らかの出力にどのように影響するかを理解したいのです。
より具体的にするために、いくつかの例を示しましょう。滑走路の画像を撮影している航空機があり、その画像を使用して滑走路を下って自分自身を操縦しているとします。特定の画像が与えられたとき、最終的に取ることになる操舵角を決定するために、画像のどのピクセルが最も重要だったかを知りたいと思うかもしれません。
この画像の明るいピクセルは(これをどのように見つけるかについては少し後で話しますが)、操舵角を決定する際に最も重要だったピクセルのアイデアを与えてくれます。同様に、外乱に対する軌道について何かを行うことができます。ここに倒立振子の軌道があり、これらの各点は観測外乱のようなものです。それは振子がどこにあると思ったかのようなものです。そして、より暗い点は、軌道の最終結果、軌道の頑健性により影響を与えた外乱を示しています。
初期の外乱が軌道後半の外乱よりも影響力があることがわかります。特徴量重要度について考える方法は2つあります。一つは感度解析と呼ばれるもので、もう一つはShapley値です。両方について話します。
感度解析から始めましょう。感度解析により、単一の特徴量が変更されたときに特定の出力がどのように変わるかを理解することができます。ここに概念的な例があります。環境内でのエージェントの軌道があり、白い軌道は私たちが見る軌道のようなものだと想像してください。ここでは両方とも同じ白い軌道を持っていますが、一つの特徴量を変更するとします。軌道内のこの点で外乱をリサンプリングし、そこから同じ外乱で軌道の残りをロールアウトします。軌道内の一点だけを摂動させ、両方でそれを行います。
右と左のどちらがより高い感度を持つか、誰か推測できますか?右の方だと思います。基本的に、私たちがやろうとしていることは、この物を変更すると最終結果に大きく影響するかどうかを理解することです。大きく影響する場合、または可能な結果のこの種の高い変動性がある場合、高い感度があると言います。可能な結果の変動性が低い場合、低い感度があると言います。
ここに、これを計算する一つの方法があります。特定の軌道内のすべての外乱の感度を計算したいとしましょう。最初の外乱だけに対する、この軌道の最終結果またはこの軌道の頑健性の感度を計算したいとします。私たちができることは、軌道の残りについてはすべての外乱を同じに保ちますが、最初の外乱を名目外乱分布のようなものからリサンプリングし、その後これらのリサンプリングされたバージョンをすべてシミュレートして、結果として生じる軌道の広がりを確認することです。
リサンプリングしてこれらの新しい軌道をシミュレートしたときに得られる頑健性値の広がりまたは標準偏差のようなものを見ることができます。これが私たちにこの感度を与えてくれます。次の外乱についても同じことができます。この外乱を一定に保ち、将来のすべてを一定に保ち、軌道に渡る広がりを見ます。軌道の残りに対してこれを繰り返すことができ、軌道に渡る広がりを見て、その外乱を変更したときの可能な結果として生じる軌道を見ることができます。
もう一度再生してみます。軌道の終わりに近づくにつれて、広がりがどんどん小さくなっていることに気づくでしょう。そのため、軌道の後半に適用された外乱よりも、ここに適用された外乱に対して頑健性がより敏感であることがわかります。
学生からの質問:「これは任意の複数のシステムで常に当てはまるのではないでしょうか?」
Sydney Katz:もしここで非常に悪い外乱があったとしたら、それは本当に敏感かもしれないと思います。これは一般的に当てはまると思います。必ずしも興味深い説明を見つけたとは言いませんが、説明を見つけました。それはあなたの良いポイントです。これらのものが出てきて、人間がそれらを解釈し、意味があるかどうかを決めるのは人間次第のようなものです。
学生:「私たちは常に幼少期を責めます。」
Sydney Katz:それは良いものでした。そうですね、広がりを計算するときに、これらの色を作ったとき、私が見ていたのは分散でした。広がりを定量化するために任意のメトリックを選ぶことができます。
3.1.2 航空機画像認識での実例
Sydney Katz:私たちのタクシー問題についても同じことができます。もう少し詳しく説明するために、私たちは滑走路のこの画像を持っており、この滑走路の画像をニューラルネットワークに通して、滑走路をまっすぐ進み続けるための操舵角を出力します。これは64×64なので、合計4096ピクセルを持っています。
私たちができることは、ここにあるこれらのピクセルの各々を通り、他のすべてを同じに保ち、そのピクセルの値だけをリサンプリングして、それが操舵角をどのように変えるかを見ることです。そして、これらの操舵角のすべての相対的変化、または操舵角の変化における相対的な広がりを画像の上にプロットすることができます。
それを行うと、このようなものが得られます。少しノイズが多いですが、最も敏感なピクセルは、エッジラインや中央線の一部を示す画像の部分にあるピクセルのように見えます。これは、私たちがどこにいるかを本当に特定するのに役立つからです。これを見て、「なるほど、エッジラインと中央線の一部に注意を払っているようで、それは私たちが期待するものだ」と言うことができます。
この件について質問はありますか?
学生からの質問:「その欠点は何でしょうか?なぜそれをしたいのでしょうか?」
Sydney Katz:はい、なぜこれの代わりにそれをしたいのでしょうか?
学生:「少し速くなりますね。」
Sydney Katz:そうですね、確かにもう少し速くなります。これはかなり非効率的です。4096ピクセルすべてに対してそのサンプリングを実際に行うのは、本にこの図を入れるときに実際にキャッシュしたほど時間がかかります。本をコンパイルするたびにこれを再実行しないようにするためです。とても高価です。
バックプロパゲーションまたはSaliency Mapsと呼ばれるものを使用して計算コストを削減することができます。
3.1.3 軌道における外乱の影響分析
Sydney Katz:軌道における外乱の影響について、より詳細に分析した結果を見てみましょう。倒立振子の軌道において、各点は観測外乱を表しています。これは振子がどこにあると考えたかのようなものです。より暗い点は、軌道の最終結果や軌道の頑健性により大きな影響を与えた外乱を示しています。
興味深いことに、軌道の初期に適用された外乱が、後半に適用された外乱よりもより影響力があることがわかりました。これは、先ほどのアニメーションでも確認できました。軌道の終わりに近づくにつれて、外乱による広がりがどんどん小さくなっていくのを観察できました。
学生から「これは任意の動的システムで常に当てはまるのではないでしょうか?」という質問がありました。私は、もしここで非常に悪い外乱があったとしたら、それは本当に敏感かもしれないと思いますが、これは一般的に当てはまると思います。
必ずしも興味深い説明を見つけたとは言いませんが、説明を見つけました。これらの結果が出てきて、人間がそれらを解釈し、意味があるかどうかを決めるのは人間次第のようなものです。ある学生が「私たちは常に幼少期を責めます」と冗談を言ったのは、とても良い例えでした。
広がりを計算する際に、これらの色を作ったとき私が見ていたのは分散でした。広がりを定量化するために任意のメトリックを選ぶことができます。標準偏差やその他の統計的指標を使用することも可能です。
3.2 勾配ベース手法とSaliency Maps
3.2.1 バックプロパゲーションによる高速化
Sydney Katz:Saliency Mapsの背後にあるアイデアは、勾配を使用して特定の結果を決定する上で最も重要またはサリエント(顕著)な入力を識別することです。サリエントという言葉はここから来ています。基本的に私たちが行うことは、この場合、軌道の頑健性の各外乱に対する勾配を取ることです。
アイデアは、より高い勾配を持つ入力または特徴量は、それらの小さな変化が出力により大きく影響することを意味するということです。そのため、勾配の大きさをプロットするだけで、どの特徴量がより敏感であるかを示すはずです。これが一般的なアイデアです。
実際にかなりうまく機能するようです。ここに、一度に一つずつ摂動を加えて、リサンプリングを行った感度解析の結果があります。勾配を取るだけで、非常に似たようなものが得られます。これらのものを近似する別の方法です。
タクシー問題でも同じことができます。ここに、各々を個別に摂動させたときに得られた結果があり、勾配を取ると少し異なるものが得られますが、滑走路のエッジラインに焦点を当てた似たような領域に焦点を当てています。
学生からの質問:「いつ両方を行う価値があるのでしょうか?」
Sydney Katz:それは良い質問です。このスライドで言いたいポイントの一つは、将来のスライドでも続けて言うつもりですが、これはこれとは少し異なる説明を生成するということです。それらは感度の異なる定義のようなものだからです。おそらくこれは勾配を取っているだけなので、より局所的で、現在の入力周辺の小さな領域についてのみ話しているということです。
一般的に、なぜこれがエッジラインのみに焦点を当てているように見えて、これがここに焦点を当てているように見えるのかを解釈するのは困難な場合があります。それは常に明らかではありません。これは説明技術の課題の一つです。なぜなら、人間がそれらを理解することになるからです。時には、これらの方法のいくつかを行って、すべてが似たようなものを生成するかどうかを確認することが理にかなっているかもしれませんが、そうですね。
しかし、この方法にはまだ一つの問題があります。
3.2.2 飽和特徴量の問題
Sydney Katz:この方法にはまだ一つの問題があります。いくつかの問題があるかもしれませんが、一つの問題は飽和特徴量を見落とす可能性があることです。ここでそれが何を意味するかを見てみましょう。
本当に簡単な例を見てみましょう。一つの入力特徴量だけがあり、出力f(x)に興味があります。入力特徴量はxで、出力はf(x)です。このプロットを見ると、f(x)はxの値に対して敏感に見えますか?うなずいてください。
はい、同意します。xが変化するにつれて、f(x)は確実にここで変化していると思います。しかし、個々のデータポイントを見ていて、現在のポイントがここにあり、勾配を使用して感度を理解しようとしているとしましょう。そうすると、このような勾配が得られます。
それはかなり平坦なので、f(x)は実際にはxにあまり敏感ではないと結論づけることになります。なぜなら、この勾配は非常に平坦で、非常に小さいからです。しかし、それは必ずしもここで起こっていることではありません。xが特徴関数の非常に飽和したポイントにあるだけです。
代わりに一部の人々が行うことは、ベースラインポイントから始めると言うことです。おそらくゼロから始めて、そこで勾配を取ります。今度は、はるかに大きな勾配が得られ、その後、現在いる現在のポイントまで継続的に勾配を取って道を作ることができます。今度は、すべてのこれらの勾配を平均化することができ、非ゼロまたはあまり平坦でない勾配がいくつか得られて、この出力が実際にこの入力に敏感であることを示します。
この特定のアルゴリズムは統合勾配と呼ばれ、基本的にはベースラインから開始し、現在いるポイントまで徐々に移動し、その道のりで勾配を平均化するだけです。
学生からの質問がありました:「名目的な状況では特徴量に対して飽和があるかもしれませんが、任意の画像を作成できるなら、このニューラルネットワークは特定のピクセルに対して顕著な勾配を持つでしょう。おそらく、全データセットを通して、損失をゼロにしてバックプロパゲーションを行う手順と比較して、ベースラインから始めるのと違いがあるのでしょうか?ベースラインが何かはわかりませんが、ゼロ画像と言いましょう。」
Sydney Katz:アイデアは、完全に黒い画像から始めて、次に見るように、関心のある画像まで徐々に明度を上げていくということです。特徴量は、エッジなどがある程度見えるようになるまでの間のどこかの時点で現れ、それが現れる瞬間を基本的に捉えたいと思います。そして、そのときの勾配を得たいと思います。それがアイデアです。
学生:「現在のポイントは一つの例の画像ですね。」
Sydney Katz:はい、そうです。いくつか選ぶ必要があると思います。良い質問です。
3.2.3 統合勾配法(Integrated Gradients)
Sydney Katz:統合勾配法の例を見てみましょう。先ほど見たのと同じタクシー画像を使用しますが、今度は完全に黒いので、実際にはエッジは見えません。少し後でアニメーションを再生しますが、私たちがこの黒い画像からゆっくりと明度を上げて、興味のある画像まで移動する際の勾配を見ていきます。
この黒い画像からその画像まで移動する間、青でハイライトされたこのピクセルの勾配と、緑でハイライトされたこのピクセルの勾配がどのように見えるかを見て、それをこの軸にプロットします。これを見てみましょう。
基本的に何が起こったかというと、予想通り、緑のピクセルはエッジラインの近くにないので、それに対して敏感であるべきではありません。実際に、勾配は全体を通してかなり小さいことがわかります。一方、青のピクセルについては、黒い画像から真の画像に移動する際に勾配に大きな変化があります。
もう一度再生してみます。基本的に何が起こったかというと、予想されるように、この緑のピクセルはエッジラインの近くにないので、それに敏感であるべきではなく、実際に勾配は全体を通してかなり小さいことがわかります。一方、この青のピクセルについては、黒い画像から真の画像に移動する際に勾配のこの大きな変化があります。
学生からの質問:「勾配を保持しているのですね?青は統合勾配の観点で大きいだけでなく、勾配も高く保持しているのですね?」
Sydney Katz:そうです、それは正しいです。この場合は、通常の勾配でもうまくいったであろう例を見つけたかったのですが、そうですね、これは統合勾配でも通常の勾配でも機能したでしょう。
学生からの質問:「説明可能性とは通常、より大きな問題を解決するために行うものですよね。例えば、このモデルがより大きなコンテキストでどのように使用できるかを推論しようとするためです。もし例えばこれを行った場合、それを使用してどのような問題を解決できるか説明していただけますか?」
Sydney Katz:説明可能性が有用であると思うのは、これらすべてのものを使用することについて少し後で注意を促すつもりですが、私の意見では、説明が実際に何が起こっているかに忠実である場合、説明可能性を持つことが有用なのは、システムが正しいことであなたを騙している可能性があるからです。
良い結果を得たときでも、それを精査したいと思うでしょう。なぜなら、実際に良い結果を引き起こしたバグがあるかもしれないからです。他のすべての検証を行って、「ああ、失敗の確率は本当に低い」とか「これらの仮定の下では動作することを証明した」と言うかもしれませんが、おそらくそれはすべて間違った理由で動作していて、正しく一般化しないでしょう。
私の意見では、説明可能性が行うことは、「いや、それは正しいことに焦点を当てている、私たちがこの決定を下すために焦点を当てるべきだと思う特徴に焦点を当てている」という追加の信頼を与えることです。それが私がそれを言う方法です。
また、システムの追加的な失敗モードがどこにあるかを理解するのにも役立つかもしれません。証明や一般化といった非常に大きな言葉を使っていますが...
学生:「まあ、もしそれがこれらの線に焦点を当てていることがわかったら、線がある別の画像に一般化することを期待するかもしれません。」
Sydney Katz:そう思いますが、これに深く入り込むことはしませんが、これらの方法のいくつかを使用して良く見える結果を得ることができますが、実際にはこれは非常に誤解を招く結果であり、モデルは実際には...という多くの論文があります。私たちはそれについて話すつもりです。
3.3 説明可能性手法への警告
3.3.1 Sanity Checks論文の知見
Sydney Katz:注意すべき点があります。これは私からの警告です。これは実際に「Sanity Checks for Saliency Maps」という論文から来ており、基本的にこれらの多くのものについて、それらから引き出す情報に注意する必要があるということを話しています。
基本的なアイデアは、彼らが鳥のこの画像を持っていて、なぜそれを鳥と呼んでいるのかの説明を提供しているということです。これらの異なる説明の各タイプは、それぞれ異なる種類のsaliency mapを生成しています。しかし、すべて鳥のように見えており、その後、説明しようとしているモデルを完全に無視して、画像をエッジ検出器に通すだけで、右側のこの画像が得られることがわかります。これは、前に見たすべての説明のように見えます。これは良くありません。
説明しようとしているモデルに依存しない説明は望ましくありません。それは良いことではありません。興味深いことに、彼らは抄録でこのように述べています:「広範な実験を通じて、既存のsaliency map手法の一部は、モデルとデータ生成プロセスの両方に依存しないことを示しています。」
彼らはまた、この論文でデータのすべてのラベルを混ぜ上げても、なぜすべてがそうであるかについて同じ説明が得られることを示しています。
学生からの質問:「ある意味では、あなたは画像に固有の何らかの特徴を学習していて、鳥の画像を見たら、下流のタスクが何であれ、それは鳥のようなものです。鳥を見ることを学習し、モデルがエッジを見ることを学習するのは、何をしようとしているかに関係なく良いことなのではないでしょうか?」
Sydney Katz:事前訓練の観点ではそうだと思います。彼らは実際にこの論文で、特定のアーキテクチャが帰納的バイアスを持つ方法について話しています。畳み込みネットワークを配置すると、ランダムな重みがあってもエッジ検出器が得られる可能性があります。
学生:「この勾配はそうですね...」
Sydney Katz:はい、それが何かのように見えるかどうかはわかりませんが、それが一つのことです。注意すべき点であり、実際に非常に論争的です。
3.3.2 モデル非依存性の問題
Sydney Katz:この基本的にここで見ていた行は、すべての異なる手法での元の説明であり、その後この論文で彼らが行ったことは、各行について、ネットワーク内で層ごとに進み、各層の重みをランダムな重みに置き換えただけでした。ここでは最終層をランダムな重みに置き換えただけで、ロジットだけです。そして、このプロット内で右に移動するにつれて、ここまで完全に到達すると、完全にランダムなネットワークになります。以前に説明しようとしていたモデルとは全く同じではありません。
彼らは全体を通して同じように見えることを確認しました。これは非常に懸念される点です。彼らは、一部の手法ではこれが起こらないようです。この手法はそうかもしれませんが、よくわかりません。しかし、これらの手法を適用しようとする際に考慮すべき注意点です。
人間として、十分長い時間見つめていれば、物事から説明を作り出すのは簡単だと思いますが、それが常に忠実な説明であるとは限りません。一般的に、何もないところに意味を見つけないよう注意すべきです。
ここに本当に良いジョークがあると思ったのですが、時間がなくなってしまったので申し訳ありません。学期のこの時点になってしまいました。しかし、昨夜遅くに本当に面白いものを送ってくれたので、ここに投げ込もうと思いました。
以前にこのようなものを見たことがあります。実際、私たちの研究室の仲間の一人がJulia用にこれらの一つを書きました。しかし、これは正直に言って、私が見た中で最高のものの一つだと思います。本当に良いものがいくつかあるので、10秒ほど鑑賞してもらいます。
学生からの質問:「Rはそうですね...」
Sydney Katz:Rは例外を投げますか?Rの例外は奇妙ですが、それに似たことをします。
学生:「そうですね、これは良いものです。皆さん理解できましたね。」
Sydney Katz:はい、とにかく。後でスライドをダウンロードできます。見終わっていない場合は。
3.3.3 ランダムネットワークでの同様結果
Sydney Katz:解釈可能性について一つ言いたいことがあります。もしピクセルレベルを超えた何かが欲しいなら、最近「機械論的解釈可能性」と呼ばれるトピックがあり、今とても注目されています。しかし、これは非常に未解決の問題です。ピクセルレベルでの解釈可能性を行う代わりに、セマンティックレベルでの解釈可能性を行えるかどうかを試みています。例えば、鳥はくちばしと翼とこれらの種類のもので構成されているというような具合にです。
もし研究問題を探しているなら、これは素晴らしい研究トピックだと思います。しかし、同様に、この問題を最小化するのではなく、実際に悪化させているのではないかと思います。これは非常に論争的なトピックです。
ここで別の意見が欲しければ、この件について1時間の会話をしたので、話すことができます。私は機械論的解釈可能性を嫌いです。なぜなら、実際にはこの問題を最小化するのではなく、悪化させていると思うからです。今日は非常に論争的なトピックです。
しかし、これらすべてについて考えることは本当に良いことだと思います。もし私たちがこれらのモデルが実際に何をしているかの核心に本当に到達でき、実際に何が起こっているかを本当に説明する説明を持つことができれば、それらについて多くのことができると思います。しかし、行うべき研究があると思います。私たちが今いるのはそこです。
これが感度解析についてです。そして、特徴量重要度について話したいもう一つのことは、Shapley値と呼ばれるものです。
4. Shapley値による特徴量重要度
4.1 特徴量間相互作用の重要性
Sydney Katz:特徴量重要度について話したいもう一つのことは、Shapley値と呼ばれるものです。基本的にここでの重要な違いは、感度解析を行っていたときは、一度に一つの特徴量のみを変化させる効果を見ていたということです。一方、Shapley値では、実際に特徴量間の相互作用を捉えることができます。
なぜこれが重要なのか、またはどこでこれが問題になるのかを動機づけるために、山火事シナリオの非常に簡単化されたバージョンを考えてみましょう。世界のある地域があり、その地域を燃焼している可能性があるか燃焼していない可能性がある異なるセルに分割したと想像してください。燃焼していないセルは白で、燃焼しているセルは赤です。
この大部分は実際には人が住んでいない土地なので、あまり心配していないとしましょう。しかし、この右上の角には高価な不動産や家や人々がいるかもしれず、この特定の角が火事にならないことを確認したい、または少なくともこの特定の角が火事になる確率を理解したいと思います。
これが私たちの現在の状態です。どのセルが燃焼していて、どのセルが燃焼していないかとして状態を表現します。そして、この問題に対して非常にシンプルなダイナミクスのバージョンを持ちます。セルが次の時刻に燃焼している確率は、前の時刻で燃焼していた場合は1になります。つまり、燃焼し続けると仮定します。
そして、前の時刻で燃焼していたセルに隣接するすべてのセルは、次の時刻で燃焼する30%の確率を持ちます。基本的に今、この私たちが関心を持つセルにおいて、次の時刻で燃焼している確率は0.3であることがわかります。
今度は、特にここにあるこのセルを見てみましょう。これを私たちが興味を持っている特徴量と言いましょう。各特徴量はセルです。私たちはこの特徴量に興味があります。このセルは右上の角が燃焼する確率に影響を与えるでしょうか?皆さんはどう思いますか?
はい、影響を与えると思います。しかし、感度解析を行っている場合、ここで起こることは、この一つの特徴量だけを除去し、この特徴量だけを変更するということです。そして、次の時刻でのセルが燃焼する確率を見ると、この一つを除去しても、まだ0.3に等しいです。なぜなら、まだこのセルが燃焼していて、このセルが0.3の確率を与えているからです。隣接するセルの一つが燃焼していれば、次の時刻で燃焼する0.3の確率を持つからです。
もし一度に一つの特徴量だけを考慮する感度解析を行っているなら、実際にはここにあるこのセルが次の時刻でセルが燃焼する確率にほとんど影響を与えないと結論するでしょう。
学生:「これも同じですね、これも同じです。」
Sydney Katz:はい、これについても同じ結論に達するでしょう。それは正しいです。基本的にここで起こっていることは、これらの特徴量間の相互作用を見落としているということです。実際にはまだ重要だからです。これらの2つのうち少なくとも1つは燃焼している必要があり、そのため実際にまだ影響を与えています。
一般的に私たちがやりたいことは、実際に一度に一つの特徴量を変更するのではなく、特徴量のサブセットを変更する効果を考慮することです。それを行うためにShapley値を使用します。
4.2 山火事シナリオでの動機例
Sydney Katz:山火事シナリオに戻りましょう。再び私たちがいた状態に戻ります。私たちは次の時刻でこのセルが燃焼する確率について関心があり、この特定の特徴量に対するShapley値を求めたいと思います。ゼロを得ることは望んでおらず、実際にこの特徴量に敏感であることを示すことができることを期待しています。
私たちが行うことは、セルのランダムなサブセットを固定することです。私はランダムなサブセットを選んだだけで、これらの青いセルはすべて固定されています。燃焼している場合は常に燃焼し続け、燃焼していない場合は常に燃焼しないと言います。
そして、残りのすべてのセル、青くないセルについては、それらが燃焼しているかどうかをランダムにサンプリングします。それらのことが起こる確率を与えられて行います。そして、固定されていないすべてのセルをランダムに再サンプリングしたとしましょう。今度は実際に、これら両方が燃焼していないように変わりました。それらが再サンプリングされ、今度はここの確率を見ると、燃焼している確率がゼロであることがわかります。
次に、まったく同じプロセスを繰り返しますが、セルIをその元の特徴量値に固定します。この値を固定するセルのサブセットに追加します。そのため、燃焼に戻り、今度は0.3の確率を持ちます。
そして、これら2つのシナリオの間の差を見ます。基本的に私たちが言っているのは、この値がその元の値に固定されたサブセットと、この値をランダムにサンプリングさせたサブセットがあり、それが固定されたときと固定されなかったときの、私たちが関心を持つ特徴量値の違いを見るということです。
基本的に私たちが行ったことは、サブセットを固定し、残りすべてを再サンプリングすると言い、サブセットを固定するときの一つは、私たちが関心を持つ特徴量を含め、一つの時は私たちが関心を持つ特徴量を含めない、そしてこれら2つのもの間の差を取ることで、その特徴量を含めることと含めないことがどれだけの違いを生じるかのアイデアを与えてくれるということです。
学生からの質問:「どのようにサブセットを選ぶのですか?」
Sydney Katz:ランダムに、同じようにランダムにサブセットを選びます。
学生:「もし私たちがたまたま、原因となっているもの、つまりこのものを選んだらどうなりますか?」
Sydney Katz:そうしたら、ここでも0.3が得られ、これはゼロになりますが、これを約30回行い、平均を取ることを想像したいと思います。
基本的にShapley値に対して私たちが行っていることは、すべての可能なサブセットにわたってこの差の期待値を取りたいということです。ここではこのサブセットを行いました。すべての可能なサブセットを取り、同じことを行うことを想像してください。
4.3 Shapley値の計算手法
Sydney Katz:基本的にShapley値に対して私たちが行っていることは、少し頭で理解するのが困難な場合がありますが、基本的に私たちが言っているのは、含めることと含めないことのこの差の期待値を取りたいということです。すべての可能なサブセットにわたって行います。
ここではこのサブセットを行いました。すべての可能なサブセットを取り、同じことを行い、これを30回実行してこの差をすべて30回計算し、何らかの値を得て、その後すべての可能なサブセットを取り、同じことを行うことを想像してください。
誰か、ここで何が問題になるかもしれないと思いますか?
学生:「チェックするべきサブセットが非常に多い。」
Sydney Katz:はい、たくさんのサブセットがあります。この例では25個の特徴量しかない場合でも、1600万を超える可能なサブセットがあります。私たちがShapley値を計算したいすべての特徴量について、1600万のサブセットすべてを試し、期待値を推定するために何度もランダムサンプリングを行う必要があります。これは基本的に扱いにくくなります。
実際には、人々が行うことは、いくつかの異なるサブセットをランダムにサンプリングするだけで、実際にはかなり合理的な推定値を提供する傾向があります。そのため、1600万すべてを通る必要はなく、それを実装することができます。
学生からの質問:「1600万のサブセットのそれぞれについて、あなたが固定するものとサンプリングを実行する必要があります。」
Sydney Katz:はい、まさにその通りです。技術的には期待値の観点で定義されていますが、それはあなたが推定する必要があるもう一つのものです。そうです、基本的にK回掛ける1600万を推定しているのです。
私は意図的に数学を示しませんでした。なぜなら、それを解析するのがさらに混乱すると思うからですが、基本的に起こっていることは、すべての可能なサブセットを見て、サブセットに特徴量を含めることと含めないことがそのサブセットでどのように影響するかを見て、その後、私たちが持つすべての他の特徴量のコンテキストでその特徴量がどれだけ重要かのアイデアを与えてくれるということです。
4.4 計算複雑性と近似手法
Sydney Katz:課題は、かなり多くのサブセットがあることです。この例では25個の特徴量しかない場合でも、1600万を超える可能なサブセットがあります。私たちがShapley値を計算したいすべての特徴量について、1600万のサブセットすべてを試す必要があります。そして、それらすべてに対して何度もランダムサンプリングを行って期待値を推定する必要があります。これは基本的に扱いにくくなります。
実際には、人々が行うことは、いくつかの異なるサブセットをランダムにサンプリングするだけです。実際にはかなり合理的な推定値を提供する傾向があります。そのため、1600万すべてを通る必要はなく、それらのうちのいくつかをランダムにサンプリングするだけでこれを実装することができます。
学生からの質問:「1600万のサブセットのそれぞれについて、あなたが固定するものとサンプリングを実行する必要があります。」
Sydney Katz:はい、まさにその通りです。技術的には期待値の観点で定義されていますが、それはあなたが推定する必要があるもう一つのものです。そうです、基本的にK回掛ける1600万を推定しているのです。
私は意図的に数学を示しませんでした。なぜなら、それを解析するのがさらに混乱すると思うからです。記法が本当に混乱するのです。そのため、本では記法をできるだけ混乱しないようにしようと可能な限り努力しました。もし皆さんがそれをチェックしたい場合は、コードでも実装されています。しかし、数学を通ることができます。記法が混乱するだけで、起こっていることは実際にはそれほど複雑ではありません。ただ、数学で明確に書き下すのが本当に難しいだけです。
4.5 倒立振子での実験結果
Sydney Katz:倒立振子に対するShapley値がどのように見えるかを示します。Shapley値が最も高いのは、実際よりも直立に近いと思わせるような外乱であることがわかります。これは理にかなっています。なぜなら、振子を実際よりも直立に近いと思わせると、直立に向かって移動するのに十分なトルクを適用しないからです。これらは、軌道の最終結果に本当に影響を与えるものであるべきです。
これを検証することができます。4番目に高いShapley値を持つ特徴量を除去するとどうなるかを言ってみましょう。その外乱を取り、それをゼロに設定します。そうすると、新しい軌道が少し変化することがわかります。失敗により近くなりますが、まだ失敗しています。
2番目に高いShapley値を持つものを取ることができます。これも少し変化し、3番目に高いもの、4番目に高いものも変化します。しかし、これら4つの特徴量すべてを同時に取り除く場合、つまりこれら4つの外乱すべてをゼロにすると、軌道に非常に大きな違いが生じ、軌道はもはや失敗ではなくなります。
基本的に私たちが見つけているのは、4つの特徴量を除去したい場合、またはこれら4つの時刻で外乱を制御したい場合、軌道はもはや失敗ではなくなるということです。これがShapley値があなたに与えることができるものの一種です。
学生からの質問:「あなたがやったのは上位を取ることですね?」
Sydney Katz:そうです、それが私がやったことです。
学生からの質問:「最終的な軌道全体ような、全体に対する特徴量の相互作用を見るためのものですか?前の例では、山火事ベースで、各サブセットが互いに相互作用していると思ったのですが、実際の最終的な何かの出力というよりも。おそらく私が技術的に理解していないのかもしれません。」
Sydney Katz:これらの説明可能性手法すべてについて素晴らしいことの一つは、それらが非常に広範囲であることです。入力特徴量のセットが与えられて、何らかの出力に対する効果を知りたいだけなのです。山火事の場合、出力は右上のセルが燃焼しているかどうかのようなものであり、入力特徴量は基本的に他のすべてのセルが燃焼しているかどうかでした。
この場合、出力は軌道の頑健性であり、入力は各時刻での外乱です。一つの場合では、特徴量は時間の単一スナップショットにあり、この場合では時間をまたいでいます。
学生からの質問についてさらに詳しく説明すると、この例では、一つの外乱をオンまたはオフにする際のプロセスについて、ランダムな外乱の割り当てを作成し、この一つの外乱をオンにし、一つの外乱をオフにし、2つの値を得て減算し、その後別の割り当てに対して再び行うということになります。
Sydney Katz:はい、基本的に失敗軌道があるとします。「この失敗を引き起こすことにおける各外乱の寄与を理解したい」と言うことになります。その後、毎回その差を計算するたびに、ランダムなサブセットをサンプリングすることになります。基本的にランダムな時刻のサブセットで、「これらの時刻での外乱を固定し、他のすべての時刻での外乱を変更して、頑健性がどうなるかを見る」と言います。その後、私が関心を持つ特徴量を固定されたセットに含め、その差を取ります。次回は、別のランダムなサブセットをサンプリングし、これを続けます。
学生:「あなたが関心を持つのは...あなたは名目的な分布から再サンプリングしますね?」
Sydney Katz:はい、それが私が行うことです。あなたが固定しなかったもののために、名目的な分布から再サンプリングします。なぜなら、あなたが固定しなかったものの期待値を取っているからで、期待値は名目的な分布に関してのものになるからです。
数学をここで実際に通すことはしませんでした。記法が本当に混乱するので、本でできるだけ混乱しないようにしようと努力しました。もし皆さんがそれをチェックしたい場合は、コードでも実装されています。しかし、数学を通ることができます。記法が混乱するだけで、起こっていることは実際にはそれほど複雑ではありません。
5. 代理モデル(Surrogate Models)
5.1 忠実度と解釈可能性のトレードオフ
Sydney Katz:特徴量重要度についてはこれで終わりです。説明可能性のためにできるもう一つのことは、代理モデルを使用することです。これらはエージェントのポリシーを説明するためによく使用されます。
具体的には、複雑なポリシーを持つエージェント、例えばニューラルネットワークのようなものがある場合、実際にそのポリシーを近似する代理モデルを構築することができます。理想的には、最初から解釈しやすい代理モデルを使用します。
代理モデルに何を使用するかを考える際に、心に留めておきたいことがいくつかあります。一つは、代理モデルが高い忠実度を持つことを望むということです。モデル化しているポリシーを正確に表現すべきです。なぜなら、そうでなければ、そのポリシーを説明しようとしても、実際に説明しようとしているポリシーと一致しないため、あまり意味がないからです。
第二に、解釈可能であることを望みます。なぜなら、これを取って自分たちで見て、エージェントが何をしているかについて結論を導き出すことができるようにしたいからです。
ご想像の通り、通常これら2つの特性の間にはトレードオフがあります。なぜなら、真のポリシーを完璧に近似する高い解釈可能性を持つポリシーを持つことができるなら、高い解釈可能性を持つポリシーを実際のポリシーとして使用すればよいからです。一般的に、これら2つの間にはトレードオフがある傾向があります。
5.2 線形モデルによる局所近似
5.2.1 LIME手法の概要
Sydney Katz:これに使用できるモデルの例がいくつかあります。一つの例は線形モデルです。エージェントのある動作をこの関数f(x)で表現したいとしましょう。そうしたら、xのすべての異なるサブコンポーネントに重みを掛けた線形和を取ることができます。
これが解釈可能である傾向がある理由は、これらの重みが各特徴量の相対的重要度を示すためです。重みの大きさが大きいほど、出力f(x)に大きな影響を与えるからです。
多くの場合、局所線形モデルを使用します。多くの場合、エージェントのポリシー全体をその完全な入力ドメインにわたって説明しようとしているわけではありません。線形モデルは通常、何らかの局所領域にいるときに最もうまく機能するからです。
皆さんの中には、LIMEと呼ばれるこの非常に有名な説明技術を聞いたことがある人もいるでしょう。これは基本的に特徴量の局所線形モデルを作成することについてです。必ずしも線形モデルである必要はありませんが、LIME論文の大部分は局所線形モデルについて話しています。
5.2.2 衝突回避ポリシーでの局所線形モデル
Sydney Katz:それがどのように見えるかを確認するために、これは私たちの衝突回避ポリシーで、少しズームインしています。この特定の領域、この円の中のポリシーの局所モデルを作成したいとしましょう。ここで何が起こっているかを説明したいのです。
私たちができることは、この小さな線形、または小さな領域、小さな円形領域から多数のサンプルを描き、それらの各点で取られる行動でラベル付けし、その後その領域でポリシーを近似するために線形モデルを訓練することです。そうすると、おそらくこのようなものになるでしょう。
この円の中では非常によく近似していることがわかりますが、繰り返しますが、これは局所モデルなので、ポリシーの残りを見ると、確実に良い近似はしていませんが、この領域内では、このモデルは真のポリシーにかなり正確に一致することを理解できます。
そして、私たちが言っていたように、実際にモデルの重みを見ることができ、各特徴量がどれだけ重要かを理解できます。例えば、航空機の相対高度と衝突までの時間の両方の重みが、この特定の領域で取る行動を決定するために重要であることがわかります。
おそらくこの特別な例については、これなしでそれを理解できたでしょうが、一般的に、これらの高次元なものがある場合、これらの線形モデルを構築することは非常に有用です。
そして、例えば、状態空間の異なる部分の局所モデルと比較することができます。例えば、中央にあるこの領域にモデルをフィットするかもしれません。ここでは、これら2つの行動を分離するきれいな線形モデルが得られ、重みを見ると、予想通り、出力またはエージェントが取る行動がこの領域では相対高度に大きく依存していることがわかりますが、衝突までの時間に関係なく、実際には行動を変更しないので、衝突までの時間に対して非常に低い重みがあります。
状態空間の多くの異なる領域でこれを行うことができ、各入力特徴量がポリシーが取る行動にどこで重要かのアイデアを得ることができます。
学生からの質問:「線形モデルのようなもので、偽造や私たちが設定したい待機ポイントを見つけるのに多くの時間を費やしたのを知っていますが、どこでウェイトを設定するかという観点で、どのような例を知っているかということです。」
Sydney Katz:あなたが理解していない場所、説明を生成する線形モデルを作成したい場所について、ある程度のドメイン知識が必要だと思います。
5.3 決定木による政策近似
5.3.1 決定木の解釈可能性
Sydney Katz:先ほど言ったように、忠実度と解釈可能性の間にはトレードオフがあります。この領域でのポリシーにうまくフィットするこの直線は、この曲がったエッジをあまりよくフィットしていないようです。より良いフィットを得るために、より多くの特徴量を追加することができます。衝突時間と高度だけでなく、衝突時間の二乗や高度×衝突時間のようなものを追加できます。
しかし、今これらの重みを見ると、「高度×衝突時間は高度だけよりも高い重みを持っているが、それが実際に何を意味するかはあまり解釈可能ではない」ということになります。より良くフィットしますが、解釈可能性の一部を失います。一般的に、これらのことを行う際には、これらのトレードオフのバランスを取るのに役立つ決定を行う必要があります。
今は白いテーマになっています。これをダークテーマに変える時間がなかったからです。解釈可能なモデルの別の例は決定木です。私たちの衝突回避ポリシーに戻りますが、今度は決定木を訓練してこのポリシーを近似しようとすることができます。
決定木をどのように訓練するかについては説明しませんが、それを行ってくれる素晴らしいパッケージがあります。JuliaにはDecisionTree.jlというものがあります。実際にはこれらのラベルが逆になっているので、無視するか、頭の中で逆にしてください。約1時間前に本でそれを修正しました。
基本的に、私たちは決定木を訓練してこのポリシーを近似しました。この決定木が示しているのは、すべての黒いノードが相対高度次元での分割を示し、もし灰色のノードがあったとしたら(ありませんが)、それらは衝突時間次元での分割を示すということです。
基本的に私たちが言っているのは、相対高度ゼロから始めて、現在の相対高度がゼロより大きい場合、ここに行きます。もう一つ質問します:現在の相対高度は98より大きいですか?もしそうなら、十分に離れているので、衝突の危険がなしになります。そうでなければ、少し近すぎるので、航空機に上昇するように指示すべきです。航空機に上昇するように指示して、より多くの相対高度を得ます。
ここでも同じことができます。ゼロより小さい、十分にゼロより小さいか?はい、なら無警告、近すぎるなら下降するように指示します。
この決定木が何を意味するかについて質問はありますか?これは私たちにとって非常に解釈可能です。ポリシーはかなり賢明に見えます。上にいるなら、どれくらい上にいるかをチェックし、十分に上なら何もしない、近すぎるなら上昇するように指示する。これはすべて合理的に思えるので、これは私たちのポリシーを解釈するのに役立ちます。
しかし、もちろん、これは真のポリシーに完全に忠実ではありません。
5.3.2 忠実度向上による複雑化
Sydney Katz:この決定木ポリシーがどのように見えるかを示します。私たちは基本的にここに層を作成しました。忠実度と解釈可能性の間に同じトレードオフがあります。ここでは、真のポリシーにはるかに近く見える決定木を得ることができますが、その後、何が実際に起こっているかを理解しようとするために通らなければならない多くの異なる分岐を持つこの大きな決定木があります。
これが代理モデルです。
6. 反実仮想(Counterfactuals)
6.1 概念説明(講師の個人的体験を通した説明)
Sydney Katz:今度は最後の2つについて非常に簡潔に話しますが、反実仮想から始めます。
反実仮想について、この講義を作成する際の舞台裏を少しお話しします。基本的に何が起こったかというと、今週末に町を離れる予定で、先週の終わりにかなり追い込まれていて、週末に作業する時間がないので、この講義を本当に終わらせる必要があると思っていました。そこで金曜日を、この講義で非常に生産的な日にするつもりでした。
しかし、私の顔のこの絆創膏に気づいたかもしれませんが、これは基本的に虫に刺されたと思うのですが、金曜日の朝に目が覚めたとき、顔の右側全体が本当に腫れていて、目を完全に開けることもできませんでした。これは良くないと思いました。夫は私を見て「緊急治療室に行く必要がある」と言い、母親にFaceTimeしたら「緊急治療室に行く必要がある」と言われたので、わかりました、と言いました。
そこで金曜日の朝を緊急治療室で過ごしました。どうやら大丈夫で、腫れは引いているようですが、わかりません。そこで、基本的に私はこの講義に取り組んでいませんでした。そして、昨夜非常に遅くにこの講義に取り組んでいて、もし時間を遡ってこの虫に刺されなかったとしたら、実際に反実仮想について説明する時間があっただろうかと自分に問いかけていました。答えはおそらくそうですが、今日ではありません。
笑いがより激しい人は、そのジョークのより深い意味を理解したのかもしれません。それ自体が反実仮想だからです。基本的に反実仮想とは、時間を遡って「もし私がこれをしていたら何が起こっていただろうか」と言うようなものです。これはあなたの手法を説明する方法になりえます。もし興味があるなら、本のセクション11.5をチェックしてください。しかし、本当にそれについてのスライドを作る時間がありませんでした。
6.2 参考文献の紹介
Sydney Katz:反実仮想については、それが反実仮想です。もし興味があるなら、本のセクション11.5をチェックしてください。しかし、本当にそれについてのスライドを作る時間がありませんでした。
7. 故障モード特性化(Failure Mode Characterization)
7.1 クラスタリングによる故障分析
Sydney Katz:最後のことは故障モード特性化です。多くの場合、システムの異なる故障を見つけるために使用できる異なるアルゴリズムについて学んだかもしれません。偽造を行ったり、故障分布からサンプリングしたりして、これらすべての故障があり、基本的にそれらを理解したいと思います。
実際にクラスタリングアルゴリズムを使用してこれを行うことができます。基本的に、互いに類似している故障軌道のグループ化を作成し、時にはそれが何が起こっているか、これらの異なる故障が何を意味するかについて何らかの洞察を与えてくれることがあります。
クラスタリングアルゴリズムについて非常に詳しくは説明しませんが、基本的にできることは、K-meansと呼ばれる非常に一般的なものを使用することです。これは反復的に、あなたが見つけようとしている2つの素晴らしい明確なクラスター、またはあなたが見つけようとしている明確なクラスターの数を見つけます。
ここでは振子でそれを行っており、時間をかけて最終的にこれら2つの異なるクラスターに収束することがわかります。
7.2 K-meansクラスタリングの適用
Sydney Katz:このクラスタリングを行う際には、どの特徴量に基づいてクラスタリングしたいかを選択する必要があります。ここでは、軌道の平均角度と軌道にわたる平均角速度に基づいて、すべての故障軌道をクラスタリングしています。
それを行うと、これら2つの本当に素晴らしいクラスターが得られることがわかります。ここでは特に複雑なことは起こっていませんが、右に転倒するクラスターと左に転倒するクラスターが得られただけです。しかし、一般的に、多くの故障モードがあり、それらが解釈するのがそれほど簡単ではない場合、これはあなたにとって便利で有用なツールになりえます。
7.3 特徴量選択の影響
7.3.1 平均角度・角速度による分類
Sydney Katz:一般的に、結果は私たちがクラスタリングに使用する特徴量に依存します。ここでは、平均θ(角度)と平均ω(角速度)を手動で選択しましたが、軌道の平均角度と軌道にわたる平均角速度に基づいて、すべての故障軌道をクラスタリングしています。
それを行うと、これら2つの本当に素晴らしいクラスターが得られることがわかります。ここでは特に複雑なことは起こっていませんが、右に転倒するクラスターと左に転倒するクラスターが得られただけです。しかし、一般的に、多くの故障モードがあり、それらが解釈するのがそれほど簡単ではない場合、これはあなたにとって便利で有用なツールになりえます。
7.3.2 状態ベクトル全体での分類
Sydney Katz:状態ベクトル全体にわたってそれを行うこともできます。100次元のような状態ベクトル全体を取り、その100次元領域でクラスタリングするだけです。それでも実際にかなり解釈可能なものが得られます。同じものが得られます。
7.3.3 行動軌道による分類
Sydney Katz:行動軌道でクラスタリングすることもできます。すべての行動を積み重ねて、その空間でクラスタリングできます。この場合でも、実際にかなり解釈可能なものが得られ、同様の結果が得られます。
7.3.4 外乱による分類
Sydney Katz:外乱についてもクラスタリングできます。この場合、振子について外乱でクラスタリングしても、私たちにとって非常に解釈可能な結果は得られませんでした。あまり意味をなさない軌道の大きな混合が得られただけです。
しかし、もしこれに興味があるなら、最近非常にクールな研究を行った人と話すべきです。彼らはPCAを実行して高次元外乱空間内のサブスペースを見ることで、高次元外乱空間でのクラスタを理解しようとすることができました。そこに潜在的に興味深い道筋があります。もしそれについてもっと知りたいなら、話すことができます。
7.4 時相論理特徴量によるクラスタリング
7.4.1 パラメトリック信号時相論理の活用
Sydney Katz:最後に、本当にクールなのは、詳しくは説明しませんが、時相論理特徴量に基づいてクラスタリングできることです。すべては、クラスタリングアルゴリズムに投入する特徴量に依存すると言いましたが、実際にそこに投入する特徴量について非常に創造的になることができます。
パラメトリック信号時相論理と呼ばれるものがあり、これにより時相論理式にパラメータを割り当てることができ、実際にその特定のパラメータ空間でクラスタリングを行うことができます。そうすると、クラスタが異なる時相論理式に対応することになり、基本的に異なる時相論理式を理解するのに役立ちます。
7.4.2 より解釈可能なクラスタの生成
Sydney Katz:パラメトリック信号時相論理を使用することで、より興味深く、より解釈可能なクラスタを自動的に時相論理パラメータ空間で実行することで得ることができます。
この場合の例では、これらの故障は時刻何かの前に転倒した故障であり、これらの故障は時刻何かの後に転倒した故障であるというようなことになります。時相論理パラメータ空間で自動的に実行することで、より興味深く、より解釈可能なクラスタを得ることができます。
8. 総括
8.1 説明可能性技術の概観
Sydney Katz:これで説明可能性技術についてはほぼ終わりです。私たちは多くの異なる説明可能性技術について話しました。ポリシー可視化から始めて、その後特徴量重要度について長い間話し、ポリシーを説明するための代理モデルについて話し、そして最後の2つのトピックについては簡潔に触れましたが、反実仮想と故障モード特性化について話しました。
8.2 論争性と課題
Sydney Katz:おそらくそれが少し論争的であることについて話しました。一つ、解釈可能性について言いたいことがあります。もしピクセルレベルを超えた何かが欲しいなら、最近「機械論的解釈可能性」と呼ばれるトピックがあり、今とても注目されています。しかし、これは非常に未解決の問題です。ピクセルレベルでの解釈可能性を行う代わりに、セマンティックレベルでの解釈可能性を行えるかどうかを試みています。例えば、鳥はくちばしと翼とこれらの種類のもので構成されているというような具合にです。
もし研究問題を探しているなら、これは素晴らしい研究トピックだと思います。しかし、同様に、この問題を最小化するのではなく、実際に悪化させているのではないかと思います。これは非常に論争的なトピックです。ここで別の意見が欲しければ、この件について1時間の会話をしたので、話すことができます。私は機械論的解釈可能性を嫌いです。なぜなら、実際にはこの問題を最小化するのではなく、悪化させていると思うからです。今日は非常に論争的なトピックです。
しかし、これらすべてについて考えることは本当に良いことだと思います。
8.3 説明不可能な事柄の存在
Sydney Katz:もし私たちがこれらのモデルが実際に何をしているかの核心に本当に到達でき、実際に何が起こっているかを本当に説明する説明を持つことができれば、それらについて多くのことができると思います。しかし、行うべき研究があると思います。私たちが今いるのはそこです。
一般的に、この世界には説明できないことがあるということを心に留めておいてほしいと思います。