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

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

  2. TOC Data-centric AI 振り返り <- Confident Learning 概要 Confident Learning

    実装: Clean Lab
  3. Data-centric AI 振り返り Data-centric AI Confident Learning Data Perf

  4. Data-centric AI データの改善に着目したム ーブメント モデルよりもデータの改善 のほうが効果的という Andrew Ng の過去の経験に 基づく

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

  6. Data Perf ML Perf: 機械学習アルゴリ ズムのベンチマーク Data Perf: データセットのベ ンチマーク

    いずれはアルゴリズム - テ スト - データセットをすべ てインクリメンタルに改善 するフレームワークを提供 するという野心的な提案
  7. TOC Data-centric AI 振り返り Confident Learning 概要 <- Confident Learning

    実装: Clean Lab
  8. Confident Learning 概要 背景 論文の内容 手法 結果 Pervasive Label Errors

    in Test Sets Destabilize Machine Learning Benchmarks https://arxiv.org/abs/2103.14749
  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
  10. 論文の内容 Confident Learning という 手法を提案 多クラス分類において、既 存の手法よりも効率的にラ ベルの誤りを発見 MNIST, ImageNet

    などのデ ータセットにラベルの誤り を実際に発見した Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks https://arxiv.org/abs/2103.14749
  11. 手法 データセットを用いてモデ ルを訓練 & 推論 (k-fold) 推論結果に Confident Learning を適用し、誤りが

    疑われるデータの一覧を作 成 Amazon Mechanical Turk で改めてアノテーション Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks https://arxiv.org/abs/2103.14749
  12. 結果: データセットの誤り率 Pervasive Label Errors in Test Sets Destabilize Machine

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

    Learning Benchmarks https://arxiv.org/abs/2103.14749
  14. どうしようもない例 右の画像は ImageNet で tick (ダニ) とラベル付けされたもの クラウドソーシングで scorpion とラ

    ベルが振り直された 実際は Solifugae (ヒヨケムシ、クモ やサソリではない)
  15. TOC Data-centric AI 振り返り Confident Learning 概要 Confident Learning 実装:

    Clean Lab <-
  16. Confident Learning 実装: Clean Lab 解決したい問題 アルゴリズム概要 Clean Lab 特徴

    実用例 Confident Learning: Estimating Uncertainty in Dataset Labels https://arxiv.org/abs/1911.00068
  17. 解決したい問題 ラベルの誤りを検出するためには normalized margin を用いてデータを 並び替えれば良いことは既知 それぞれの誤り方に対して何件を抽出するのが良いのか決定する手段は 未解決 しきい値をもとにクラスを判断し Confusion

    Matrix を作成する手法では データが不均衡なときに少数派のデータに対して望ましくない振る舞い をする
  18. Normalized margin

  19. アルゴリズム概要 k-fold を行い、データセッ ト全体に対してスコアを計 算 ラベルの値ごとにしきい値 を調整 (式は次ページ) し Confusion

    Matrix を作成 Confusion Matrix の対角成 分以外の総和を各ラベルの 誤りの件数とする Confident Learning: Estimating Uncertainty in Dataset Labels https://arxiv.org/abs/1911.00068
  20. しきい値の調整 しきい値はモデルの出力の平均を用いる Confident Learning: Estimating Uncertainty in Dataset Labels https://arxiv.org/abs/1911.00068

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

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

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

    OSS 実装もあり利用しやすい (Citadel Lens に組み込み 済)