Fortuna の紹介: 不確実性を定量化するためのライブラリ PlatoBlockchain Data Intelligence。垂直検索。あい。

Fortuna のご紹介: 不確実性の定量化のためのライブラリ

予測の不確実性を適切に推定することは、重要な決定を伴うアプリケーションの基本です。 不確実性を使用して、モデル予測の信頼性を評価したり、人間の介入をトリガーしたり、モデルを実際に安全に展開できるかどうかを判断したりできます。

紹介します 、不確実性定量化のためのオープンソース ライブラリ。 Fortuna は、コンフォーマル予測などのキャリブレーション方法を提供します。これをトレーニング済みニューラル ネットワークに適用して、キャリブレーションされた不確実性推定値を取得できます。 このライブラリはさらに、次の言語で記述されたディープ ニューラル ネットワークに適用できる多くのベイジアン推論メソッドをサポートしています。 亜麻. このライブラリにより、ベンチマークの実行が容易になり、実践者は高度な不確実性定量化手法を利用して、堅牢で信頼性の高い AI ソリューションを構築できるようになります。

深層学習に対する過信の問題

トレーニング済みのディープ ニューラル ネットワーク分類器によって返されたクラスの確率を見たことがある場合は、あるクラスの確率が他のクラスよりもはるかに大きいことに気付いたかもしれません。 たとえば、次のようなものです。

p = [0.0001、0.0002、…、0.9991、0.0003、…、0.0001]

これが予測の大部分に当てはまる場合、モデルは過信している可能性があります。 分類器によって返された確率の有効性を評価するために、それらをホールドアウト データ セットで達成された実際の精度と比較することがあります。 実際、正しく分類されたデータ ポイントの割合が、予測されたクラスの推定確率とほぼ一致すると仮定するのは自然なことです。 この概念は次のように知られています。 [Guo C. 他、2017].

残念ながら、多くの訓練された深層ニューラル ネットワークは正しく調整されていません。つまり、予測されたクラスの推定確率は、正しく分類された入力データ ポイントの割合よりもはるかに高くなります。 つまり、分類子は自信過剰です。

自信過剰であることは、実際には問題になる可能性があります。 AI による自信過剰な健康診断の結果として、医師は関連する追加の検査を注文しない場合があります。 自動運転車は、前方の物体が人ではないと自信を持って判断したため、ブレーキをかけないことを決定する場合があります。 AI によって推定された著名な自然災害の可能性が高すぎるため、知事は町からの避難を決定する場合があります。 これらのアプリケーションや他の多くのアプリケーションでは、モデル予測の信頼性を評価したり、人間の意思決定者にフォールバックしたり、モデルを安全に展開できるかどうかを判断したりするために、較正された不確実性の推定が重要です。

Fortuna: 不確実性定量化のためのライブラリ

ベイジアン推論など、予測の不確実性を推定または調整するための多くの手法が公開されています。 [ウィルソン AG、2020 年]、温度スケーリング [Guo C. 他、2017]、および等角予測 [Angelopulos AN et al., 2022] メソッド。 ただし、不確実性の定量化のための既存のツールとライブラリは範囲が狭く、単一の場所で幅広い手法を提供していません。 これにより、かなりのオーバーヘッドが発生し、生産システムへの不確実性の採用が妨げられます。

このギャップを埋めるために、不確実性定量化のためのライブラリである Fortuna を立ち上げました。これは、文献全体の著名な方法をまとめて、標準化された直感的なインターフェイスでユーザーが利用できるようにするものです。

例として、トレーニング、キャリブレーション、およびテスト データ ローダーがあるとします。 tensorflow.Tensor フォーマット、すなわち train_data_loader, calib_data_loader および test_data_loader. さらに、深層学習モデルが 亜麻、つまりモデル。 次に、Fortuna を使用して次のことができます。

  1. 事後分布に適合します。
  2. モデル出力を調整します。
  3. 調整された予測を行います。
  4. 不確実性の見積もりを見積もる。
  5. 評価指標を計算します。

次のコードは、これをすべて実行します。

from fortuna.data import DataLoader
from fortuna.prob_model.classification import ProbClassifier
from fortuna.metric.classification import expected_calibration_error

# convert data loaders
train_data_loader = DataLoader.from_tensorflow_data_loader(train_data_loader)
calib_data_loader = DataLoader.from_tensorflow_data_loader(calib_data_loader)
test_data_loader = DataLoader.from_tensorflow_data_loader(test_data_loader)

# define and train a probabilistic model
prob_model = ProbClassifier(model=model)
train_status = prob_model.train(train_data_loader=train_data_loader, calib_data_loader=calib_data_loader)

# make predictions and estimate uncertainty
test_inputs_loader = test_data_loader.to_inputs_loader()
test_means = prob_model.predictive.mean(inputs_loader=test_inputs_loader)
test_modes = prob_model.predictive.mode(inputs_loader=test_inputs_loader, means=test_means)

# compute the expected calibration error and plot a reliability diagram
test_targets = test_data_loader.to_array_targets()
ece = expected_calibration_error(preds=test_modes, probs=test_means, targets=test_targets)

上記のコードは、SWAG を含むいくつかのデフォルトの選択肢を利用しています。 [マドックス WJ ら、2019 年] 事後推論法として、温度スケーリング [Guo C. 他、2017] モデル出力、標準ガウス事前分布、および事後フィッティングとキャリブレーション プロセスの構成を調整します。 これらのコンポーネントはすべて簡単に構成できます。特定の構成を探している場合、または複数の構成を比較したい場合は、構成することを強くお勧めします。

使用モード

Fortuna には 1 つの使用モードがあります: XNUMX/ フラックスモデルからスタート、2 / モデル出力から開始、および 3/ 不確実性の推定から始める. それらのパイプラインは次の図に示され、それぞれが緑色のパネルの XNUMX つから始まります。 上記のコード スニペットは、Flax モデルから開始する Fortuna の使用例です。これにより、ベイジアン推論手順を使用してモデルをトレーニングできます。 または、モデルの出力から開始するか、独自の不確実性の見積もりから直接開始することもできます。 これらの後者のモードは両方とも フレームワークに依存しない 校正された不確かさの推定を得るのに役立ちます。 訓練されたモデル.

1/ 不確実性の推定から始める

不確実性の見積もりから開始すると、互換性要件が最小限になり、ライブラリとの対話が最も迅速なレベルになります。 この使用モードは、分類と回帰の両方に正角な予測方法を提供します。 これらは、不確実性の見積もりを numpy.ndarray ユーザーが指定したレベルの確率を保持する厳密な予測セットをフォーマットして返します。 XNUMX 次元回帰タスクでは、等角集合は、信頼区間または信頼区間の較正されたバージョンと考えることができます。

入力で提供する不確実性の推定が不正確な場合、等角集合が大きくなり、使用できない可能性があることに注意してください。 このため、アプリケーションで許可されている場合は、 モデル出力から開始 および フラックスモデルからスタート 以下に詳述する使用モード。

2/モデルのアウトプットからスタート

このモードは、何らかのフレームワークで既にモデルをトレーニングしており、Fortuna に到着してモデルの出力が numpy.ndarray 各入力データ ポイントの形式。 この使用モードでは、モデル出力のキャリブレーション、不確実性の推定、メトリクスの計算、等角集合の取得を行うことができます。

と比較して 不確実性の推定から始める 使用モード、 モデル出力から開始 不確実性の推定値が適切に調整されていることを確認できるため、より適切な制御が提供されます。 ただし、モデルが従来の方法でトレーニングされていた場合、結果として得られるモデル (認識論的) 不確実性の定量化は貧弱になる可能性があります。 この問題を軽減するには、 フラックスモデルからスタート 使用モード。

3/ アマビエモデルからスタート

亜麻のモデルから始めて、より高い互換性要件があります 不確実性の推定から始める および モデル出力から開始 で記述された深層学習モデルが必要なため、使用モード 亜麻. ただし、標準モデルのトレーニングをスケーラブルなベイジアン推論手順に置き換えることができます。これにより、予測の不確実性の定量化が大幅に改善される可能性があります。

ベイジアン法は、モデル パラメーターの不確実性を通じて、限られた情報が与えられた場合にどのソリューションが正しいかについての不確実性を表すことによって機能します。 このタイプの不確実性は、「認識論的」不確実性と呼ばれます。 ニューラル ネットワークは、パラメーターのさまざまな設定に対応する多くのさまざまなソリューションを表すことができるため、ベイズ法はディープ ラーニングで特に影響を与える可能性があります。 多くのスケーラブルなベイジアン推論手順を提供します。これは、不確実性の推定を提供するためによく使用されるだけでなく、精度とキャリブレーションを改善し、基本的にトレーニング時間のオーバーヘッドはありません。

まとめ

深層学習における不確実性定量化のためのライブラリである Fortuna の一般提供を発表しました。 Fortuna は、共形法、温度スケーリング、ベイジアン推論などの著名な手法をまとめて、標準化された直感的なインターフェイスでユーザーが利用できるようにします。 Fortuna の使用を開始するには、次のリソースを参照してください。

Fortuna を試してみて、感想をお聞かせください! ライブラリに貢献するか、提案や貢献を残すことをお勧めします。 問題 または開く プル要求. 私たちの側では、Fortuna の改善を続け、不確実性の定量化方法の範囲を広げ、いくつかのシナリオでの有用性を示す例をさらに追加します。


著者について

Fortuna の紹介: 不確実性を定量化するためのライブラリ PlatoBlockchain Data Intelligence。垂直検索。あい。

 

ジャンルカ・デトマソ AWS の応用科学者です。 彼は現在、深層学習における不確実性の定量化に取り組んでいます。 余暇には、ジャンルカはスポーツをしたり、美味しいものを食べたり、新しいスキルを学んだりするのが好きです。

Fortuna の紹介: 不確実性を定量化するためのライブラリ PlatoBlockchain Data Intelligence。垂直検索。あい。アルベルト・ガスパリン 2021 年 XNUMX 月から Amazon Community Shopping の応用科学者です。彼の興味には、自然言語処理、情報検索、不確実性の定量化が含まれます。 彼は料理とワインの愛好家です。

Fortuna の紹介: 不確実性を定量化するためのライブラリ PlatoBlockchain Data Intelligence。垂直検索。あい。ミケーレ・ドニーニ AWS の上級応用科学者です。 責任ある AI に取り組んでいる科学者チームを率いており、彼の研究対象はアルゴリズムの公平性と説明可能な機械学習です。

Fortuna の紹介: 不確実性を定量化するためのライブラリ PlatoBlockchain Data Intelligence。垂直検索。あい。マティアスシーガー AWSの主任応用科学者です。

Fortuna の紹介: 不確実性を定量化するためのライブラリ PlatoBlockchain Data Intelligence。垂直検索。あい。セドリックアルカンボー AWSの主任応用科学者であり、European Lab for Learning andIntelligentSystemsのフェローです。

Fortuna の紹介: 不確実性を定量化するためのライブラリ PlatoBlockchain Data Intelligence。垂直検索。あい。アンドリューゴードンウィルソン ニューヨーク大学の Courant Institute of Mathematical Sciences および Center for Data Science の准教授であり、AWS の Amazon Visiting Academic です。 彼は特に、ベイジアンおよび確率論的深層学習、スケーラブルなガウス プロセス、ベイジアン最適化、および物理学に着想を得た機械学習の手法の構築に取り組んでいます。

タイムスタンプ:

より多くの AWS機械学習