$30 off During Our Annual Pro Sale. View Details »

Confident Learning

Asei Sugiyama
September 16, 2022

Confident Learning

データの品質向上に使える Confident Learning についての解説資料です。実際に使ってみた事例は今後追加していければと思います。この資料は Money Forward 社内で開かれた MLOps についての勉強会のために作成しました。

## Reference

Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks https://arxiv.org/abs/2103.14749
Confident Learning: Estimating Uncertainty in Dataset Labels https://arxiv.org/abs/1911.00068
cleanlab/cleanlab https://github.com/cleanlab/cleanlab

Asei Sugiyama

September 16, 2022
Tweet

More Decks by Asei Sugiyama

Other Decks in Technology

Transcript

  1. Confident Learning
    Asei Sugiyama

    View Slide

  2. TOC
    Data-centric AI 振り返り <-
    Confident Learning 概要
    Confident Learning 実装: Clean Lab

    View Slide

  3. Data-centric AI 振り返り
    Data-centric AI
    Confident Learning
    Data Perf

    View Slide

  4. Data-centric AI
    データの改善に着目したム
    ーブメント
    モデルよりもデータの改善
    のほうが効果的という
    Andrew Ng の過去の経験に
    基づく
    2021 年 12 月に大きなワー
    クショップが行われた

    View Slide

  5. Confident Learning
    ワークショップの中で紹介
    された取り組みの 1 つ
    データセットに含まれるラ
    ベルの誤りを検出
    詳細は後述

    View Slide

  6. Data Perf
    ML Perf: 機械学習アルゴリ
    ズムのベンチマーク
    Data Perf: データセットのベ
    ンチマーク
    いずれはアルゴリズム - テ
    スト - データセットをすべ
    てインクリメンタルに改善
    するフレームワークを提供
    するという野心的な提案

    View Slide

  7. TOC
    Data-centric AI 振り返り
    Confident Learning 概要 <-
    Confident Learning 実装: Clean Lab

    View Slide

  8. Confident Learning 概要
    背景
    論文の内容
    手法
    結果
    Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks
    https://arxiv.org/abs/2103.14749

    View Slide

  9. 背景
    Hinton が MNIST (LeCun が作成) の
    誤り 1 件を見つけて喜んでいるのを
    見ていた
    「こんなに有名な人がこんなに喜ん
    でいるのならこれは価値があるので
    は」と思ったのがきっかけ
    Cleanlab: Labeled Datasets that Correct Themselves Automatically // Curtis Northcutt //
    MLOps Coffee Sessions #105 https://anchor.fm/mlops/episodes/Cleanlab-Labeled-
    Datasets-that-Correct-Themselves-Automatically--Curtis-Northcutt--MLOps-Coffee-
    Sessions-105-e1k777l/a-a850eq6

    View Slide

  10. 論文の内容
    Confident Learning という
    手法を提案
    多クラス分類において、既
    存の手法よりも効率的にラ
    ベルの誤りを発見
    MNIST, ImageNet などのデ
    ータセットにラベルの誤り
    を実際に発見した
    Pervasive Label Errors in Test Sets Destabilize Machine Learning
    Benchmarks https://arxiv.org/abs/2103.14749

    View Slide

  11. 手法
    データセットを用いてモデ
    ルを訓練 & 推論 (k-fold)
    推論結果に Confident
    Learning を適用し、誤りが
    疑われるデータの一覧を作

    Amazon Mechanical Turk
    で改めてアノテーション
    Pervasive Label Errors in Test Sets Destabilize Machine Learning
    Benchmarks https://arxiv.org/abs/2103.14749

    View Slide

  12. 結果: データセットの誤り率
    Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks https://arxiv.org/abs/2103.14749

    View Slide

  13. 結果: 提案のワークフローで発生する見逃し
    Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks https://arxiv.org/abs/2103.14749

    View Slide

  14. どうしようもない例
    右の画像は ImageNet で tick (ダニ)
    とラベル付けされたもの
    クラウドソーシングで scorpion とラ
    ベルが振り直された
    実際は Solifugae (ヒヨケムシ、クモ
    やサソリではない)

    View Slide

  15. TOC
    Data-centric AI 振り返り
    Confident Learning 概要
    Confident Learning 実装: Clean Lab <-

    View Slide

  16. Confident Learning 実装:
    Clean Lab
    解決したい問題
    アルゴリズム概要
    Clean Lab
    特徴
    実用例
    Confident Learning: Estimating Uncertainty in Dataset Labels
    https://arxiv.org/abs/1911.00068

    View Slide

  17. 解決したい問題
    ラベルの誤りを検出するためには normalized margin を用いてデータを
    並び替えれば良いことは既知
    それぞれの誤り方に対して何件を抽出するのが良いのか決定する手段は
    未解決
    しきい値をもとにクラスを判断し Confusion Matrix を作成する手法では
    データが不均衡なときに少数派のデータに対して望ましくない振る舞い
    をする

    View Slide

  18. Normalized margin

    View Slide

  19. アルゴリズム概要
    k-fold を行い、データセッ
    ト全体に対してスコアを計

    ラベルの値ごとにしきい値
    を調整 (式は次ページ) し
    Confusion Matrix を作成
    Confusion Matrix の対角成
    分以外の総和を各ラベルの
    誤りの件数とする
    Confident Learning: Estimating Uncertainty in Dataset Labels
    https://arxiv.org/abs/1911.00068

    View Slide

  20. しきい値の調整
    しきい値はモデルの出力の平均を用いる
    Confident Learning: Estimating Uncertainty in Dataset Labels https://arxiv.org/abs/1911.00068

    View Slide

  21. Clean Lab
    Confident Learning の OSS
    実装
    Python から利用可能
    cleanlab/cleanlab https://github.com/cleanlab/cleanlab

    View Slide

  22. コード
    アルゴリズムはモデルの出力のみを用いるため、幅広い分類モデルを利
    用可能
    from cleanlab.filter import find_label_issues

    ordered_label_issues = find_label_issues(

    labels=labels,

    pred_probs=pred_probs,

    return_indices_ranked_by='self_confidence',

    )

    View Slide

  23. 特徴
    必要なのは k-fold で推論した結果のみであり、モデルに非依存 (モデル
    を共有する必要すらない)
    アルゴリズムが平易なため、再実装も容易
    Python ライブラリがかなり使いやすい

    View Slide

  24. まとめ
    Confident Learning はラベルの誤りを発見することでデータの品質向上
    に取り組むアルゴリズム
    ImageNet などのデータセットに対してアルゴリズムを適用することで
    実際に誤りを発見
    cleanlab という OSS 実装もあり利用しやすい (Citadel Lens に組み込み
    済)

    View Slide