【論文紹介】Improving model calibration with accuracy versus uncertainty ~
こんにちは、竹輪内からしです。
NeurIPS2020にuncertainty calibrationの論文が発表されていました。
様々な手法と組み合わせられそうだったので、紹介します。
論文の情報
- タイトル:Improving model calibration with accuracy versus uncertainty optimization
- 著者:
- Ranganath Krishnan(Intel Labs)
- Omesh Tickoo(Intel Labs)
- 公開日: Mon, 14 Dec 2020 20:19:21 UTC (NeurIPS2020)
- リンク:
論文の概要
- uncertaintyの正解値なしで、予測が正しいとは限らないデータのuncertaintyを高く、予測が正しそうなデータのuncertaintyを低くするuncertainty calibrationという問題に取り組んだ。
- 微分可能なaccuracy vs uncertainty calibrationを提案した。
- distribution shiftのある画像分類問題において、他のuncertainty calibration手法よりもよいcalibrationができることを示した。
uncetaintyとは
Uncertaintyとは「予測結果が正しいとは限らない度合い」のことです。
ここでは、分類器を例に挙げて説明していきます。
分類器の多くは「どの程度予測が正しそうか」を評価します。例えば、以下の図のように、「各クラスである確率がどの程度か」を評価します。
分類器の出力例
上の図の場合は、"1"クラスの確率が99%なので、"1"クラスを予測結果として出力されます。
このときの99%という確率をconfidenceと呼びます。
これは、予測結果が正しそうな度合いと見なすことができます。
逆に、uncertaintyは予測結果が正しいとは限らない度合いです。
Uncertaintyの評価方法は様々ありますが、
例えば、どれだけ複数のクラス間で確率がばらつくか(下の図参照)や、
確率が1クラスのみで高いときには予測が正しそうですが、
複数のクラス間で確率が同様の場合は予測が正しいとは限らなそうです
複数の分類器で予測した場合にどれだけ予測結果がばらつくか(下の図参照)などがあります。
複数の異なる分類器で同じ予測をすれば予測は正しそうですが、
複数の分類器で予測がばらばらであれば予測が正しいとは限らなそうです
Uncertaintyを正しく評価できれば、正しい予測をするときには機械を使って、予測が正しくないかもしれないときには人間が判断をする、といった分担ができるかもしれません。
そのため、AIの安全性(AI Safety)の分野で注目されています。
ここで、様々なタスクを高精度に解ける深層学習分類器では予測が誤るにも関わらず、confidenceが高くなる(uncertaintyが低くなる)場合があることが報告されています[1]。
手法
本論文では、2種類のキャリブレーション方法が提案されています。
- 学習時にキャリブレーションするad-hocな方法
- 学習後にキャリブレーションするpost-hocな方法
どちらの方法も以下の表を使ってキャリブレーションしていきます。
certain | uncertain | |
---|---|---|
正解 | AC | AU |
不正解 | IC | IU |
推論した全てのデータがACかIUに属すれば、よいuncertaintyを評価できたといえます。
そのため、ACとIUを増やし、AUとICを減らすことを目指します。
ad-hocな手法
ad-hocな方法ではロスを工夫して、学習時にキャリブレーションします。
ACとIUを増やし、AUとICを減らす項をロスに付け足すことでキャリブレーションを行います。
では、この項はどのように実現できるでしょうか?
AUに属するデータの個数
ACに属するデータの個数
ここで、
これら
しかし、ここで問題があります。
式
つまり、勾配法による最適化ができず、学習できません。
そこで、以下のように微分可能な式で
ここで、
式
この項はELBO(変分下限)を最大化する学習や、cross entropyを最小化する学習など、様々なロスに足すことで、組み合わせることができます。
組み合わせたロスで学習することで、学習時にuncertaintyをキャリブレーションします。
post-hocな手法
post-hocな方法ではTemperature scaling[2]という方法に基づいて、学習後にキャリブレーションします。
Temperature scalingはuncertaintyのキャリブレーション方法の1種です。
Temperature scalingはsoftmax前の出力を温度パラメータ
まずはsoftmaxについて説明します。
深層学習分類器などでは、最終出力でそのクラスが正解である確率を推定しています。
確率を出力にするためには、各クラスに関する値が0以上となり、全クラスでの総和が1になるように調整する必要があります。
このために使うのが次式で表されるsoftmax関数です。
ここで、
このSoftmax関数は下図のように最終出力の直前に用います。
softmax関数と最終出力
Temperament scalingではこのsoftmax前の出力
ここで、
このTemperature scalingで大切なのは適切に
本論文では、この
論文にはあまり詳しく書いていないため、憶測になってしまいますが、
式
このときに、式
式
実験と結果
uncertaintyが適切にキャリブレーションされているかどうかを以下の指標を用いて評価します。
これらはいずれも低いほど高性能を表す指標です。
提案手法はSVI-AvUC(ad-hocな手法)、SVI-AvUTS(post-hocな手法)です。
CIFAR-10での結果
提案手法は比較的適切にキャリブレーションされていることがわかります。
また、カテゴリは同じでも異なるデータセットのデータを検出する分布シフト検知(distribution shift detection)、カテゴリが異なるデータセットのデータを検出する分布外検知(out-of-distribution(OOD) detection)の結果も見てみましょう。
分布シフト検知・分布外検知の結果
提案手法が比較手法の中では一番良い性能を達成していることがわかります。
Discussion