Slide 1

Slide 1 text

Conformal Prediction を直感的に理解する 2023年3⽉1⽇ 株式会社電通国際情報サービス Xイノベーション本部 AITC 太⽥ 真⼈

Slide 2

Slide 2 text

Conformal Prediction がどうやら⼈気がではじめた n Conformal Prediction の実装本(2023/2⽉発売) n 素晴らしい⼊⾨資料(2022/12⽉更新) n Scikit-learnライクなライブラリMAPIE n 最新論⽂や動画などまとまったリポジトリ公開 本︓https://leanpub.com/conformal-prediction/c/zFAwIlcHZhk0 論⽂︓https://arxiv.org/abs/2107.07511 リポジトリ︓https://github.com/valeman/awesome-conformal-prediction

Slide 3

Slide 3 text

nCPは予測の不確実性スコアを厳密な不確実性スコアに変える⽅法 n厳密な不確実性スコアは、予測区間/集合に真の結果を含むことを確率的に保証する。 n従来の不確実性スコアは、真の結果を含む保証がない。 Ø確信度が90%のサンプルを集めて精度を測ると80%と下回ることがある。 Øブートストラップは予測区間を過⼩評価することが知られている。 Øベイズ事後予測は信⽤区間で保証するが、事前分布や予測モデルの仮定に依存する。 Conformal Prediction (CP) とは 確信度 予測分散 近傍サンプルの距離 …

Slide 4

Slide 4 text

nCPでは確信度の⾼い結果を返すのではなく、予測集合(prediction set)を返す。 n予測集合の中に真の結果を含むことを確率的に保証する。 分類問題におけるCPの直感的な理解 予測集合を返すConformal Predic/on

Slide 5

Slide 5 text

n分類が簡単な⼊⼒には予測集合を⼩さく、難しい⼊⼒には⼤きい予測集合を返す。 n各予測集合の中に正解が含まれる。 分類における良いCPアルゴリズムとは Easy sample hard sample サンプル数 予測集合サイズ 1 2 3 4 5 6 良いCPアルゴリズム

Slide 6

Slide 6 text

よくないCPアルゴリズムの例 予測集合サイズ ✖ 常に全クラスを返す 精度は100%だが分類できていない ✖ 集合サイズが⼊⼒によらない サイズ1がないと分類の判断が全て⼈間になる 予測集合サイズ サンプル数 1 2 3 4 5 6 1 2 3 4 5 6 n CPアルゴリズムの良し悪しは、テストデータの予測集合の⼤きさと精度で評価する。 500 1000 CPアルゴリズムの悪い結果 サンプル数 予測集合の例 {A, B, D} 予測集合の例 {A, B, C, D, E, F}

Slide 7

Slide 7 text

nDistribution-Free︓アルゴリズムがデータ分布を仮定しない nModel-agnostic︓モデルに依存しない nCoverage guarantee︓予測集合の中に真の結果を含むことを確率的に保証する nUser-chosen error rate ︓ユーザーがエラー率を指定できる n確率的なサンプリングはなく、学習も推論も⼀度だけ nアルゴリズムを⾃分でカスタマイズ可能 直感的な利⽤イメージを次で説明する。 Conformal Prediction の良いところ

Slide 8

Slide 8 text

1. 医療診断AIで確率90%で当ててほしいとアプリ提供者が医者と決める。 ü User-chosen error rate︓エラー率10%と決める 2. Conformal Predictionを実⾏する。 ü あとで説明する。 3. テストデータセットに対し、確率90%のカバレッジが保証できる。 ü Coverage guarantee :100名のうち9割は当たっても、次の100名では8割であることもある。 4. ユーザーは病名候補を複数受け取る。 5. ユーザーは病名候補が多い場合はAIが⾃信がないと分かる。病名1つの場合はすぐ医者に⾏く⽅がいい。 ※モデルが貧弱の場合、低いエラー率を指定すると全ての病名が予測集合に含まれ診断の意味がない。 直感的なCPの利⽤イメージ︓医療診断

Slide 9

Slide 9 text

n 特徴で差別を⽣まないようにグループレベルで保証した分類 n 不均衡データ向けクラスレベルごとに保証した分類 n 回帰、分位点回帰 n マルチラベル分類 n 外れ値検知 n 時系列予測 (研究🔥) n クロスバリデーションCP、ジャックナイフCP Conformal Prediction で対応しているタスク 特徴ごとに保証 全体で保証 回帰 分位点回帰 予測集合 予測値 Conformal Predic8on

Slide 10

Slide 10 text

MAPIEでCPを実装すると簡単にできる scikit-learnライクな書き⽅で実装できる。 学習済み分類モデルを与える。 Model-agnos8c︓scikit-learnにある分類器ならOK 評価データを⽤いてCP⽤のハイパラを決定 テスト⼊⼒とエラー率α を与える。 通常の予測値と予測集合を得る。 予測集合サイズは2が多い。 エラー率0.05に対し、精度95%以上だった。 精度︓予測集合の中に正解が含まれるか否か

Slide 11

Slide 11 text

1. top 1の確信度を予測とすると精度は76.4% (全テストサンプル) ⽐較実験してみた 7クラスのDryBeanDatasetでGaussianNBを利⽤。 訓練1万件、評価1000件、テスト1611件 クラス 確信度 [1] 全サンプル確信度最⼤値のみで評価 A B C D 予測例: A

Slide 12

Slide 12 text

1. top 1の確信度を予測とすると精度は76.4% (全テストサンプル) 2. top 1の確信度が95%以上となるサンプル集合の精度は91.5% (部分テストサンプル) ⽐較実験してみた 7クラスのDryBeanDatasetでGaussianNBを利⽤。 訓練1万件、評価1000件、テスト1611件 クラス 確信度 [1] 全サンプル確信度最⼤値のみで評価 A B C D 予測例: A 確信度 カウント 0.6 0.7 0.8 0.95 [2] 確信度0.95以上のみで評価 精度が95%を下回っている。

Slide 13

Slide 13 text

1. top 1の確信度を予測とすると精度は76.4% (全テストサンプル) 2. top 1の確信度が95%以上となるサンプル集合の精度は91.5% (部分テストサンプル) 3. 確信度⾼い順の累積和が0.95以上となる最⼩の予測集合に対する精度は90.3% (全テストサンプル) ⽐較実験してみた 7クラスのDryBeanDatasetでGaussianNBを利⽤。 訓練1万件、評価1000件、テスト1611件 クラス 確信度 [1] 全サンプル確信度最⼤値のみで評価 クラス 累積確信度 0.95 A B C D A B C D 予測例: {A, B} 予測例: A [3] 全サンプル確信度累積で評価 確信度 カウント 0.6 0.7 0.8 0.95 [2] 確信度0.95以上のみで評価 確信度から予測集合をもとめたが、やはり95%を⼤きく下回った。

Slide 14

Slide 14 text

1. top 1の確信度を予測とすると精度は76.4% (全テストサンプル) 2. top 1の確信度が95%以上となるサンプル集合の精度は91.5% (部分テストサンプル) 3. 確信度⾼い順の累積和が0.95以上となる最⼩の予測集合に対する精度は90.3% (全テストサンプル) 4. CP法でエラー率を0.05に指定したときの予測集合の精度は96.3% (全テストサンプル) ⽐較実験してみた 7クラスのDryBeanDatasetでGaussianNBを利⽤。 訓練1万件、評価1000件、テスト1611件 クラス 確信度 [1] 全サンプル確信度最⼤値のみで評価 クラス 累積確信度 0.95 A B C D A B C D 予測例: {A, B} 予測例: A [3] 全サンプル確信度累積で評価 確信度 カウント 0.6 0.7 0.8 0.95 [2] 確信度0.95以上のみで評価 CP法が唯⼀、精度95%以上を確率的に保てた。 ( Coverage guarantee )

Slide 15

Slide 15 text

キャリブレーション集合︓ 学習済み多クラス分類モデル︓ 訓練と同分布のテストサンプル︓ 予測集合︓ エラー率︓ Conformal Predictionが保証すること n 予測集合の中に正解が含まれる確率がユーザー定義のエラー率を下回らない。 n ただし、キャリブレーションデータとテストデータの分布が⼤きく乖離しない前提 下限をユーザーが決める

Slide 16

Slide 16 text

Conformal Predictionが保証すること テストサンプルの予測集合の中に 正解クラスが含まれる確率 n 予測集合の中に正解が含まれる確率がユーザー定義のエラー率を下回らない。 n ただし、キャリブレーションデータとテストデータの分布が⼤きく乖離しない前提 下限をユーザーが決める キャリブレーション集合︓ 学習済み多クラス分類モデル︓ 訓練と同分布のテストサンプル︓ 予測集合︓ エラー率︓

Slide 17

Slide 17 text

Conformal Predictionが保証すること テストサンプルの予測集合の中に 正解クラスが含まれる確率 n 予測集合の中に正解が含まれる確率がユーザー定義のエラー率を下回らない。 n ただし、キャリブレーションデータとテストデータの分布が⼤きく乖離しない前提 下限をユーザーが決める キャリブーレションデータが多いほど 確率の範囲がユーザー定義に近づく。 経験的に1000サンプルでいいらしい キャリブレーション集合︓ 学習済み多クラス分類モデル︓ 訓練と同分布のテストサンプル︓ 予測集合︓ エラー率︓

Slide 18

Slide 18 text

1. データセットを訓練、キャリブレーション、テストに分ける。 Conformal Predictionをおこなう4ステップ Train Calibra/on Test キャリブレーションに全データを使うCVやジャックナイフを使ったCP法が出ている。 検証(validation)データを別で⽤意せず、calibrationを検証に⽤いても構わないそう。

Slide 19

Slide 19 text

1. データセットを訓練、キャリブレーション、テストに分ける。 2. Conformal score を定義する。 ØConformal score が⼩さいほど予測しやすく、値が⼤きいほど難しいことが望ましい。 Øカスタマイズ可能な部分。予測分散、確信度など 2ステップ⽬︓ Conformal score を定義 Certain Uncertain Conformal score 例) 1 – 正解クラスの確信度

Slide 20

Slide 20 text

1. データセットを訓練、キャリブレーション、テストに分ける。 2. Conformal score を定義する。 Ø Conformal score が⼩さいほど予測しやすく、値が⼤きいほど難しいことが望ましい。 Ø カスタマイズ可能な部分。予測分散、確信度など 3. キャリブレーションデータの正解クラスのscoreが全体の 1-α となる分位点 を求める。 3ステップ⽬︓閾値を求める Conformal score Certain Uncertain 1 - α α サンプル数

Slide 21

Slide 21 text

1. データセットを訓練、キャリブレーション、テストに分ける。 2. Conformal score を定義する。 Ø Conformal score が⼩さいほど予測しやすく、値が⼤きいほど難しいことが望ましい。 Ø カスタマイズ可能な部分。予測分散、確信度など 3. キャリブレーションデータの正解クラスのscoreが全体の 1-α となる分位点 を求める。 4. テストサンプルに対し、分位点 より⼤きい予測を集合で返す。 4ステップ⽬︓予測集合を返す Certain Uncertain 1 - α α ⽝ 猫 パンダ { ⽝, パンダ } 予測集合

Slide 22

Slide 22 text

n直感的にConformal Predictionを理解できるよう紹介した。 n分布シフトがない限り、予測集合に真値を含む確率をユーザー定義のエラー率で保証する。 n厳密な証明は論⽂を確認してください。 nベイズ推論と違い、分布を仮定せず、実装が容易である。 n応⽤も分位点回帰やマルチクラス分類とどんどん増えている。 n時系列予測にCPを適応する研究が盛んで、需要予測のスタンダードになるかもしれない。 最後に

Slide 23

Slide 23 text

n Introduction To Conformal Prediction With Python, Christoph Molnar Ø https://leanpub.com/conformal-prediction/c/zFAwIlcHZhk0 n A Gentle Introduction to Conformal Prediction and Distribution-Free Uncertainty Quantification Ø https://arxiv.org/abs/2107.07511 n Awesome Conformal Prediction Ø https://github.com/valeman/awesome-conformal-prediction n Probabilistic Machine Learning Advanced Topics , Kevin P. Murphy Ø 14.3 Conformal prediction Ø https://probml.github.io/pml-book/book2.html 参考⽂献