Upgrade to Pro — share decks privately, control downloads, hide ads and more …

直感的に理解するConformal Prediction

masatoto
February 27, 2023

直感的に理解するConformal Prediction

masatoto

February 27, 2023
Tweet

More Decks by masatoto

Other Decks in Research

Transcript

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

    View Slide

  2. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. よくない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}

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 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%を下回っている。

    View Slide

  13. 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%を⼤きく下回った。

    View Slide

  14. 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 )

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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


    パンダ { ⽝, パンダ }
    予測集合

    View Slide

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

    View Slide

  23. 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
    参考⽂献

    View Slide