画像分類のモデルが「猫:確率95%」って出した
でも、95%と出たやつを集めて調べたら、当たってたのは8割くらいやった。これって普通なん?
【疑問】AI が「確率95%」って言うたら、95%当たるん?キャリブレーション(確率の較正)と温度スケーリング【AI】
>>1
モデルが出す確率と、実際に当たる割合が一致してる状態を「較正されている(キャリブレーションが取れている)」という
95%と言ったものが本当に95%当たるなら較正が取れてる。8割しか当たらんなら、自信過剰
>>2
正解率が高ければそれでええやん。確率の数字まで合ってる必要ある?
>>3
確率を使って判断するときに困る。たとえば医療の画像で「確信が低いものだけ人が見る」と決めてたら、95%の中の外れが素通りする
天気予報の降水確率も、70%と言った日に7割くらい降るから使える
>>4
ずれの大きさはどう測るん
>>5
よく使うのが ECE(期待較正誤差)。確信度で予測をいくつかの区間に分けて、区間ごとの「平均確信度」と「正解率」の差を、件数の割合で重みをつけて足す
>>6
数字でやってみて
>>7
200件の予測を2つに分ける
区間1:100件、平均確信度0.95、正解率0.80 → 差0.15
区間2:100件、平均確信度0.75、正解率0.70 → 差0.05
>>8
区間の切り方で値が変わりそう
>>9
変わる。区間の数や切り方、件数の少ない区間の扱いで値が動くから、比べるときは同じ条件でそろえる
区間ごとの確信度と正解率を図にしたもの(信頼度図)も一緒に見る
深いネットワークって、自信過剰になりやすいん?
>>11
画像分類で、昔の浅いネットワークより、層が深くて幅の広い最近のネットワークのほうが、正解率は高いのに較正が悪いと報告した研究がある(Guo et al., 2017)
学習データをほぼ全部当てられるようになったあとも、損失(負の対数尤度)を下げるために確信度だけを上げ続ける、という説明をしてる
>>12
直し方は?
>>13
同じ論文で効いたのが温度スケーリング。ソフトマックスに入れる前の値を、1つの数 で割るだけ
は学習に使ってない検証データで、負の対数尤度が小さくなるように決める
>>14
割るだけで何が変わるん
>>15
出力前の値が なら、 で確率は約
にすると約 。いちばん大きいのは同じクラスのまま、確信だけ下がる
>>16
順番が変わらんのやったら、正解率も変わらんってこと?
>>17
そう。温度スケーリングは予測するクラスを変えないから、正解率はそのままで確率の数字だけ直る
>>18
それって、全部の予測を一律に弱めてるだけやろ。自信があってちゃんと当たってるやつまで弱めたら損ちゃう?
>>19
一律に見えるけど、出力前の値の差が大きいものほど確率は高いまま残る。それに は全体の当たり方に合わせて決めるから、強めすぎた分を戻すだけ
ただ、学習時と違う種類のデータ(分布のずれ)が来ると、検証データで決めた がもう合わなくなることはある
管理人のひとこと
- 較正とは、モデルが出す確率と実際に当たる割合が一致していること。95%と言ったものが8割しか当たらないなら自信過剰。
- ECE は確信度の区間ごとに |正解率−平均確信度| を件数の割合で足したもの(例:)。区間の切り方で値が変わるので、信頼度図と一緒に見る。
- 温度スケーリングは出力前の値を で割るだけで、予測するクラスと正解率は変えずに確率を直す。 は検証データで決め、分布がずれると合わなくなることがある。