AnyTech Engineer Blog

AnyTech Engineer Blogは、AnyTechのエンジニアたちによる調査や成果、Tipsなどを公開するブログです。

DeepNetに99%癌ではないと判定されて安心できますか?

DeepNetに99%癌ではないと判定されて安心できますか? こんにちは!AnyTechの立浪と申します。この記事では、neural networkのcalibrationについての研究をご紹介したいと思います。地味なテーマですが注視すべき話題ですので、少しキャッチーなタイトルをつけさせて頂きました。

Calibrationとは?

Calibrationとは?

Confidence calibration (以後calibration)とは、モデルが正しい確率を与える能力として定義されます。医用画像から癌かそうでないかを予測するようなアプリケーションを考えてみましょう。このケースにおいてcalibrationが完全であれば、モデルが99%の確信度で癌でないと予測すればこの予測は99%正しいのです。

Calibrationはアプリケーションによっては重要な概念となり得ます。上記の例でモデルのcalibrationが著しく欠如していたらどうでしょうか?モデルが99%の確信度で癌ではないと予測しているにも関わらず、実際は60%癌ではないということが起こり得ます。いいかえれば、モデルの結果では1%の癌の確率しかないにも関わらず、40%癌であるということ。このようなことがあれば、見過ごすわけにはいきません。このように、calibrationの悪さは人間の意思決定に対して悪影響を及ぼします。大きな間違いを起こさないようにするためにも、calibrationは重要な、そして実務者が知っておくべき概念と言えます。

この記事では、neural networkのcalibrationの実態をご紹介します。まず、calibrationの計測方法についての定義し、その上で主に画像分類モデルが対象とする、neural networkのcalibrationについての研究を紹介します。最後に、CVPR2023に採択されたセマンティックセグメンテーションのcalibrationの研究についてもご紹介したいと思います。

Calibrationの定義

Calibrationを定義していきましょう。

Perfect calibrationとは、具体的には「モデルが99%の確信度で癌でないと予測すればこの予測は99%正しい」ということです。これを一般的に定義すると以下の式で定義されます。

 \forall p\in\Delta: P(Y = y|f(X)=p)=p_y\;{\rm where}\; \Delta = {p\in{[0,1]}^k|{\sum}^k_{y=1}p_y=1}

この式は、モデルが癌ではないと99%の確信度で予測するデータを十分に集めてくれば、そのうちの99%のデータが癌ではないということを意味します。2クラス分類のときはこれで問題ありませんが、3クラス分類のときは、モデルが予測する最大の確信度のクラスのみに注目します(ただし、状況によっては考え方は正しくないと思いますので、慎重に扱いましょう)。

 P(Y\in{\rm argmax}p|\max f(X)=p^∗)=p^∗

モデルのcalibrationの定義するためには、完璧からどのくらい離れているがわからなければなりません。そのためにいくつかの概念を導入します。

Perfect calibrationの左辺を正確に計算することができません。理想的には、モデルが癌ではないと99%の確信度で予測するデータは十分にあってほしいのです。しかしながら、実際にはデータセットは有限のサイズであり、モデルが癌ではないと99%の確信度で予測するデータを都合よく集めることは難しいのです。

正確に計算することは難しくても、どうすれば近似計算できるでしょうか?この問題99%の確信度付近の予測となるように定義すれば、近似できますね。例えば、99.14%、98.65%などのように、幅を広げれば条件に沿うようなデータを集めやすいでしょう。

この考え方を具体的に定義します。まず、予測値を M個の等間隔な区間ビンにわけます。区間ビン B_m の中の平均正解率を acc(B_m)、予測確率の平均値を conf(B_m)で定義しましょう。perfect calibrationであれば、 acc(B_m)=conf(B_m)となるはずで、 acc(B_m) conf(B_m)がcalibrationを定義するに当たり、重要な値であることがわかります。

 acc(B_m)を使って、次のようなダイアグラムを書くことができます。この分野では、このダイアグラムは信頼性ダイアグラムと呼ばれています。信頼性ダイアグラムを使うと、どのくらいモデルがperfect calibrationに近いのかが視覚的にわかりますね!

arXiv:1706.04599図1
出典: [arXiv:1706.04599]図1

Expected Calibration Error (ECE)

信頼性ダイアグラムは視覚的にはわかりやすいですが、その一方で、calibrationを測るための統計量も必要ですよね。その一つに、Expected Calibration Error (ECE)があります。

 ECE=\sum_{m=1}^M\frac{|B_m|}{n}\left|{\rm acc}(B_m)-{\rm conf}(B_m)\right|

これは、区間ビン B_mの中の正解数と予測確率の和にどのくらい差があるのかについて、サンプル数で平均を取って定義したものです。大変素直な定義ですね。

Maximum Calibration Error (MCE)

ECEに対して、平均ではなく最大値で定義するMaximum Calibration Error (MCE)もあります。

 MCE=\max_m \left|{\rm acc}(B_m)-{\rm conf}(B_m)\right|

この統計量は、最も悪いところだけ見ていることになりますね。MCEは人命に関わるような、厳しくすべきアプリケーションにはECEよりも向いているかも知れません。

初期のニューラルネットワークのCalibration

ResNetのcalibrationは悪い

初期の研究であるGuo et al. (2017)では、LeNetと比較して、ResNetのcalibrationが悪いということが発見されました。以下のヒストグラムと信頼性ダイアグラムは、CIFAR-100での比較です。

arXiv:1706.04599図]
出典: [arXiv:1706.04599]図1

このヒストグラムから、ResNetが自信過剰であることがわかりますし、信頼性ダイアグラムからはLeNetと比較してcalibrationが悪さが目立ちます。

この結果から、ResNetは使えないという思考に陥ってしまうかもしれません。しかしながら、neural networkに対してはpost-hoc calibrationと呼ばれる後処理を行うことで、calibrationを改善できます。

温度スケーリングによるpost-hoc calibration

post-hoc calibrationの手法は複数ありますが、Guo et al. (2017)で最も効果があった手法の一つに温度スケーリングがあります。モデルの最後に適用するsoftmax関数 softmax(z)を温度付きsoftmax関数 softmax(z/T)に置き換えて、温度 Tを調整する方法です。ResNetにおけるCIFAR-100の例では、温度スケーリングの有無でこれだけの差があります。

arXiv:1706.04599図4
出典: [arXiv:1706.04599]図4

温度の調整だけで済みますので、十分な検証用のデータがあればやらない手はないですね。

近年のニューラルネットワークのCalibration

Guo et al. (2017)では、ResNetのような当時の最先端のニューラルネットワークに関する不確実性の問題点を指摘し、その改善方法として、温度スケーリングが有効であることまで示されていました。そして、結果を丁寧に分析して、「モデル容量の増加やBatch Normalization がモデルのcalibrationを悪化させるのではないか?」と仮説まで立てられていました。しかしながら、近年の研究を見る限りでは、単純なモデル容量の増加だけでcalibrationが悪化するとも限らないようです。

Vision Transformer & MLP-Mixer

Minderer et al. (2021)では、ImageNetに対して、Vision TransformerやMLP-Mixerのような最近のモデルで調査しています。以下は、ImageNetのvalidation setの80%を使って計測したとのことです(20%は温度スケーリングのチューニング用)

arXiv:2106.07998図1
出典: [arXiv:2106.07998]図1

このスケーリング前の結果から、Vision TransformerやMLP-MixerはBiTやResNeXt WSLのような畳み込みベースのneural networkと比較して、well-caliblatedであることがわかります。

Minderer et al. (2021)では、温度スケーリングを行ったものとの比較もされています。ECEは減るものの、元々の配置は大きく変わらないことがわかります。つまり、温度スケーリング後もVision Transformer & MLP-Mixerは依然としてwell-caliblatedです。

arXiv:2106.07998図2
出典: [arXiv:2106.07998]図2

ドメインシフト

実用的な現場では、分布がシフトしたデータに対しても、well-caliblatedなモデルであることが期待されることは言うまでもないでしょう。Minderer et al. (2021)では、そういった検証もしており、大変参考になります。例えば、ImageNet-Cを使った検証です。ImageNet-Cは、ImageNetのvalidation setに破損(ぼかし、ノイズなど)を適用させて作成したデータセットです。画像の破損度合いによって、corruption severityと呼ばれる数値(0~5までで、5が最も破損している)が割り当てられています。

この数値ごとに、ECEを計測した結果が以下です(図中の●の大きさはモデルサイズを表しています)。

arXiv:2106.07998図4
[arXiv:2106.07998]図4

この結果は、MLP-MixerやViTの大規模なモデルが、ImageNet-Cの下でもwell-caliblatedであることを示しています。

Minderer et al. (2021)では、上記以外にも、精度がよくcalibrationが悪いモデルと精度が悪くcalibrationが良いモデルのどちらを使うべきかについても議論されています。論文中の結論では「精度がよくcalibrationが悪いモデル」でした。ただ、この問題はアプリケーション先のコストをどのように定義するかに深く関わるので、鵜呑みにするのではなく、実務レベルで深く検討する余地があると考えています。

最近の研究では、よりスケールしたVision Transformerで、ECEと精度のトレードオフが改善した報告もあるようです(Dehghani et al. (2023))。これは、同じVision Transformerのファミリーにおいて、モデル容量を大きくしてもcalibrationが改善するという意味で、これまでの定説を裏切るものですね。

その他

今回はpost-hoc calibrationの方法としてシンプルな温度スケーリングのみ紹介しましたが、最近でもMa and Blaschko (2021)のような新たな手法が開発されているようです。実務で色々試したい方は、他の手法も探してみると良いかも知れません。

セマンティックセグメンテーションにおけるCalibration

これまで、calibrationの研究は画像分類を対象とするものが多かったのですが、CVPR2023に採択されたWang et al. (2022)は、セマンティックセグメンテーションにおけるcalibrationを包括的に研究しています。セマンティックセグメンテーションのcalibrationについて興味深い考察をしています。また、選択的スケーリングという大変シンプルな方法を導入しています。

なお、セマンティックセグメンテーションにおけるpost-hoc calibrationの手法は、ドメインに依らない研究としては、例えば、Ding et al. (2020)がありました。この研究では、局所温度スケーリングという方法を提案しています。CNNで局所温度を推定し、その温度を使って温度スケーリングを行うことをしています。

Wang et al. (2022)で提案された選択的スケーリングは、局所温度スケーリングと比較しても、あるいは汎用的なpost-hoc calibrationの手法と比較しても、圧倒的に優れています。現段階では敵なしといった感じです。

ここでは、Wang et al. (2022)の結果についてご紹介したいと思います。

セグメンテーションモデルの不確実性についての考察

この研究では、モデルはSegFormerに固定して、異なる容量のモデルを用意し、mIoUとECEを計測する試みが行われています。結果は以下の図の通りで、モデル容量が増えるとmIoUが増える、しかしECEも増えるという結果が出ています。これはモデル容量の増加によって精度は上がるが、calibrationが悪くなってしまうというGuo et al. (2017)の結果に近いです。

次にクロップサイズとcalibrationの関係も考察されております。こちらは、5つのモデルで、クロップサイズが大きいほど、mIoUが増えてECEが減るという結果を得ています。このことから、クロップサイズの増やすことで、予測精度もcalibrationも良くなるウハウハ状態だということが言えますね。

続いて、マルチスケールテストも試みられています。マルチスケールテストとは、複数のスケールの画像でセグメンテーションの予測マップを作り、それらを統合してよりよい予測を得る方法です。精度に有効であることは知られていました。マルチスケールテストを行うことでECEも下がることが、5つのモデルでの実験で示されています。

最後に、予測の正解・不正解が、ECEに関係するのか分析をしています。以下の結果から、予測の不正解のときに、ECEが高く、正解のときにECEが低いことがわかります。これは、今回分析しているSegFormerやSegmentatorのようなモデルが自信過剰であることを示しております。

選択的スケーリング

まず、予測が正解・不正解を当てるバイナリ分類器を用意します。その上で、その分類によって別の温度を定義するだけです。

{\displaystyle 
\begin{eqnarray}
  \left\{
    \begin{array}{l}
      \hat{p}={\rm softmax}(z/T_1) \;if\; \hat{y}\neq y \\
      \hat{p}={\rm softmax}(z/T_2) \;otherwise
    \end{array}
  \right.
\end{eqnarray}
}

予測が不正解のときに自信過剰なので、 T_1 > T_2となるように T_1を定義し、 T_2=1としましょう。このように、極めてシンプルなpost-hoc calibarationが効果を発揮します。

arXiv:2212.12053図1]
[arXiv:2212.12053]図1

また、ドメイン内でのcalibaration評価のみならず、ドメインシフトした場合のcalibarationの評価にも絶大な効果を発揮してくれます。

最後に

今回は、neural networkのcalibrationの研究についてご紹介しました。calibrationの定義から、最近の画像分類・セグメンテーションモデルのcalibrationの研究や、post-hoc calibrationの手法について触れました。

アプリケーションによっては、calibrationに注意を払う必要があることは、お分かり頂けたかと思います。また、たとえ人命に関わらないようなアプリケーションであっても、ユーザさんは無意識にcalibrationがよいモデルを仮定していることも気をつけなければなりません。calibrationには限界があることをユーザさんに説明しつつ、必要ならばpost-hoc calibrationの手法なども試し、真摯にユーザさんの課題に向き合う必要がありますね。