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

能動学習ライブラリ・ツールの紹介

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for pensukesan pensukesan
October 03, 2024
700

 能動学習ライブラリ・ツールの紹介

社内のAI技術共有会で使用した資料です。
能動学習のアルゴリズムを利用できるライブラリやツールについて紹介しています。

Avatar for pensukesan

pensukesan

October 03, 2024
Tweet

Transcript

  1. AI 2 自己紹介 廣中 栄介 GO株式会社 AI技術開発部 データサイエンスグループ • 経歴

    ◦ 機械工学専攻修士卒 (~2018.3) ◦ 大手車載機器メーカー入社(~2019.10) ▪ ドライバー状態推定の研究開発 ◦ IT・Webベンチャー(~2022.11) ▪ Web/Appの分析、画像認識モデル開発 ◦ AIベンチャー(~2024.1) ▪ 建設業界向けAIシステム開発・ゲームAI開発 ◦ GO株式会社 (2024.2~) ▪ 『DRIVE CHART』の分析・AI機能開発 • SNS ◦ X:https://twitter.com/pensuke_san ◦ kaggle:https://www.kaggle.com/pensukesan
  2. AI 5 ▪ 能動学習(=Active Learning)とは ▪ 能動学習:=「人間がアノテーションを行うためにどのデータをサ ンプリングするかを決定するプロセス」[1] ▪ 前提となる仮説:教師あり学習において適切に学習するデータを

    サンプリングできれば、より少ないデータでより良いパフォーマ ンスを発揮できる[2] ▪ ラベルの無いデータは容易に手に入るが、アノテーションに高い コストが掛かるようなケースで効果を発揮する 能動学習(Active Learningとは) [1]Monarch, R. (2023). Human-in-the-loop機械学習: 人間参加型AIのための能動学習とアノテーション. 共立出版. [2]Settles, B. (2009) Active Learning Literature Survey. Computer Sciences Technical Report 1648, University of Wisconsin-Madison.
  3. AI 6 ▪ ラベル無しデータから効率よくサンプリングして、 アノテーションして学習を繰り返していく 能動学習のイメージ 図:Settles, B. (2009) Active

    Learning Literature Survey. Computer Sciences Technical Report 1648, University of Wisconsin-Madison. 特に能動学習はサンプ リング戦略に注目する
  4. AI 7 能動学習の効果 左図:Settles, B. (2009) Active Learning Literature Survey.

    Computer Sciences Technical Report 1648, University of Wisconsin-Madison. 右図:Gal, Y., Islam, R., & Ghahramani, Z. (2017, March 8). Deep Bayesian active learning with Image Data. arXiv.org. https://arxiv.org/abs/1703.02910 ▪ 多くの研究ではランダムサンプリングより効率良く 性能が上がると報告されている
  5. AI 8 ▪ どうやってやればいいかわからない ▪ 教師あり学習そのものの分野と比べると能動学習は あまり体系的にまとまっていない印象 ▪ どの手法を使えばいいのかわからない ▪

    様々なサンプリング手法が提案されており、タスクや状況によっ て有効な手法が異なる ▪ 能動学習手法を比較する時間があったら、これまで通りランダム にサンプリングしたほうがよいことも 能動学習を実践したいが…
  6. AI 11 能動学習ライブラリ・ツールまとめ ライブラリ・ツール 特徴 タイプ Github 最終更新 modAL 典型的な能動学習アルゴリズムが実装されており

    scikit-learnベースで使いやすい。ドキュメントが豊富 能動学習 URL 2023 ALiPy 比較的新しい能動学習アルゴリズムが多く実装されてい る。応用というよりは手法の検証向き 能動学習 URL 2021 pytorch_active_learning Human-in-the-loop機械学習の著者が作成。本で紹介さ れている内容に沿ったアルゴリズムが書かれている 能動学習 URL 2021 ALToolbox 自然言語処理の能動学習付きアノテーションフレーム ワーク。他にもFAMIE,SMALL-TEXTなど自然言語処理 系の能動学習ライブラリがある アノテーション+ 能動学習 URL 2023 Label-Studio 様々なデータ形式(画像、音声、テキストなど)に対応した アノテーションツール、backendに機械学習モデルを設定 して能動学習できる。自動推論機能は有償 アノテーション+ 能動学習 URL 2024
  7. AI 12 能動学習ライブラリ・ツールまとめ ライブラリ・ツール 特徴 タイプ Github 最終更新 modAL 典型的な能動学習アルゴリズムが実装されており

    scikit-learnベースで使いやすい。ドキュメントが豊富 能動学習 URL 2023 ALiPy 比較的新しい能動学習アルゴリズムが多く実装されてい る。応用というよりは手法の検証向き 能動学習 URL 2021 pytorch_active_learning Human-in-the-loop機械学習の著者が作成。本で紹介さ れている内容に沿ったアルゴリズムが書かれている 能動学習 URL 2021 ALToolbox 自然言語処理の能動学習付きアノテーションフレーム ワーク。他にもFAMIE,SMALL-TEXTなど自然言語処理 系の能動学習ライブラリがある。 アノテーション+ 能動学習 URL 2023 Label-Studio 様々なデータ形式(画像、音声、テキストなど)に対応した アノテーションツール、backendに機械学習モデルを設定 して能動学習できる。自動推論機能は有償 アノテーション+ 能動学習 URL 2024 比較的使いやすいと思う3つを紹介
  8. AI 13 ▪ 基本的な使い方 modAL:使い方 https://github.com/modAL-python/modAL 手順 1. 学習器・サンプリング戦略・初 期学習データをセット

    2. ラベルのないプールデータをサ ンプリング&アノテーション 3. teachでサンプリングした データを学習
  9. AI 14 ▪ query_strategy: ▪ 入力:分類器・プール ▪ 出力:インデックスとデータ ▪ batch

    sampling ▪ 学習に時間がかかる場合 まとめてサンプリングしたい ▪ n_instancesで調整 ▪ uncertainty_batch_sampling も実装されている[3] modAL:サンプリング戦略のカスタマイズ [3] https://modal-python.readthedocs.io/en/latest/content/query_strategies/ranked_batch_mode.html
  10. AI 17 ▪ 不確実性サンプリング(Uncertainry sampling)※分類のみ ▪ 最小確信度サンプリング(uncertainty.uncertainty_sampling) ▪ 最大化する指標 :=

    1 - (予測の最大確信度) ▪ least confidence sampling ▪ 確信度マージンサンプリング(uncertainty.margin_sampling) ▪ 最大化する指標 := (予測の最大確信度) - (予測の2番目に大きい確信度) ▪ エントロピー基準サンプリング(uncertainty.entropy_sampling) ▪ 最大化する指標 := 予測確率のエントロピー(平均情報量) modAL:実装済み能動学習アルゴリズム①
  11. AI 18 ▪ Query by Committee ▪ 複数モデルのアンサンブルを使ってデータ選択 ▪ Vote

    entropy ▪ 予測クラスの投票分布のエントロピー計算 ▪ Consensus entropy ▪ 予測確率を平均してからエントロピー計算 ▪ Max disagreement ▪ 予測確率の平均と各投票確率のKLDを計算 ▪ Max Std Sampling ▪ 回帰タスクで予測の標準偏差を計算 modAL:実装済み能動学習アルゴリズム②
  12. AI 19 ▪ 能動学習のフレームワークでベイズ最適化もできる ▪ 予測性能を最大化するサンプル(=パラメータ)を選択する問題 と捉えて最適化できるクラスが用意されている ▪ ただわざわざmodALを使う理由はないかも ▪

    深層学習フレームワーク(Keras・Pytorch)での利用 ▪ scikit-learnのインターフェースのため直接使えない ▪ scikit-learnに変換するラッパーを使う ▪ from scikeras.wrappers import KerasClassifier ▪ from skorch import NeuralNetClassifier ▪ 深層学習の場合気軽に追加学習はしないと思うので、サンプリン グだけに使うとかになるとは思われる modAL:補足
  13. AI 20 ▪ 基本的な使い方[5] ALipy:使い方 手順 1. ToolBoxの定義 a. 対象データセット

    b. データ分割 c. 停止基準 2. プールデータからサンプリン グ&学習、サンプルと精度を saverに記録 3. analyserで結果を表示 [5] https://parnec.nuaa.edu.cn/huangsj/alipy/
  14. AI 21 ALipy:能動学習部分 • modALと異なりmodelを wrapする必要はない • サンプリング戦略の使い方 a. デフォルトモデル

    (model指定無し) b. 自前学習のモデル (scikit-learn形式) c. モデルの予測値 scikit-learn以外もOK ※ただし全て使えるわけ ではない
  15. AI 22 ▪ シミュレーションデータの分類実験[5] ▪ scikit_learn.make_classificationで作成した10次元の2値分類問題 ▪ 能動学習アルゴリズム種類 ▪ QBC:

    Query-By-Committee ▪ Unc: Uncertain Sampling ▪ EER: ExpectedErrorReduction ▪ Random ▪ QUIRE[6] ▪ Density[7] ▪ LAL[8] ALipy:能動学習アルゴリズムの比較実験例① [6] Huang, S.-J., Jin, R., & Zhou, Z.-H. (2014). Active learning by querying informative and representative examples. IEEE Transactions on Pattern Analysis and Machine Intelligence, 36(10), 1936–1949. https://doi.org/10.1109/tpami.2014.2307881 [7] Ebert, S., Fritz, M., & Schiele, B. (2012). Ralf: A reinforced active learning formulation for object class recognition. 2012 IEEE Conference on Computer Vision and Pattern Recognition. https://doi.org/10.1109/cvpr.2012.6248108 [8] Konyushkova, Ksenia, Sznitman, Raphael, & Fua, Pascal. (2017). Learning active learning from data.
  16. AI 23 ▪ シミュレーションデータの分類実験[5] ▪ analyzerを使えば簡単に比較してくれる ▪ performance=accuracy_score (モデルはロジスティック回帰) ▪

    Number of queries=サンプリング数 ▪ ※randomサンプリングより常に良いわけではない ALipy:能動学習アルゴリズムの比較実験例②
  17. AI 26 ▪ オープンソースのアノテーションプラットフォーム ▪ 様々なデータ形式(画像・テキスト・音声など)の アノテーションツールを構築できる ▪ Label Studio

    ML backend ▪ 事前・自動ラベル付け(人間が後でレビューするだけ) ▪ インタラクティブなラベル付け(SAMなど) ▪ 能動学習によるサンプリング Label Studio https://labelstud.io/
  18. AI 27 ▪ セットアップ a. モデルの予測をアノテーションに 使うには以下の2つが必要 ▪ Label Studio

    ▪ Label Studio Backend ML b. アノテーションツールの準備 ▪ データのアップロード ▪ UIの設定 Label Studio:セットアップ [9] https://www.kaggle.com/datasets/amananandrai/ag-news-classification-dataset AG News Dataset[9] 引用元:https://labelstud.io/guide/ml 引用元:https://labelstud.io/
  19. AI 30 ▪ 能動学習アルゴリズムのライブラリ ▪ やや古くここ数年の最新の能動学習のアルゴリズムは載ってない ▪ 能動学習手法の検証向きでそのまま実務応用はしづらい ▪ アノテーションツールとセットになって解決?

    ▪ モデル予測によるアノテーション支援のほうが改善幅が大きそう ▪ そもそも能動学習自体が有効なのか問題 ▪ モデル自体がベストな状態で能動学習手法が比較されていない、 サンプリングにより分布が変わってしまうなどの問題[10] ▪ 実務でも能動学習を実践して知見を貯めていくのが良さそう 能動学習ライブラリ・ツールの課題 [10] Mittal, S., Tatarchenko, M., Çiçek, Ö., & Brox, T. (2019, December 11). Parting with illusions about Deep Active Learning. arXiv.org. https://arxiv.org/abs/1912.05361
  20. AI 31 ▪ modAL ▪ 一番ドキュメントがしっかりしていて、典型的なアルゴリズムが 実装されている。まず能動学習の理解を深めるのに良い ▪ scikit-learnで作られており、トイデータで試すのも簡単 ▪

    ALipy ▪ 論文ベースで能動学習手法が多く実装されており、手法の比較が し易い。研究用途や良さそうな手法を探すのに良い ▪ Label-Studio ▪ オープンソースのアノテーションツール 能動学習を含むモデルによるアノテーション支援機能が充実 紹介した能動学習ツールのまとめ