Slide 1

Slide 1 text

Active Learning for Auto Annotation FastLabel株式会社 鈴木 健史

Slide 2

Slide 2 text

2011年  早稲田大学大学院  機械学習アルゴリズムの研究に従事  論文採択、国際学会 2件などで研究発表 2013年  ワークスアプリケーションズ入社  会計システムのバックエンドエンジニア経験後、  会計システムの AIチーム立ち上げ、 AI機能を複数リリース  →アノテーション作業のつらみを経験 2020年  FastLabelを創業  アノテーション代行及びアノテーションツールを開発・提供  アノテーション自動化などに取り組む。 鈴木 健史 Suzuki Takeshi FastLabel Founder/R&D https://fastlabel.ai/ 自己紹介

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

アノテーション前 アノテーション後 自動で アノテーション付与 サービス特徴:自動アノテーション機能

Slide 5

Slide 5 text

本日話すこと Active Learningを利用した自動アノテーションした話をします。 以下、目次。 ● Active Learningを用いた背景 ● Active Learningとは ● Active Learning実践 ○ 検証結果 ○ 実プロジェクトでの活用結果 * 画像系機械学習(物体検出タスク) にフォーカスした内容になります!

Slide 6

Slide 6 text

Motivation Active Learningを用いた背景 前提 ● アノテーションサービスの納品期間の短期化およびコスト削減のために、自動アノテーションを している ● カメラ映像を対象したリアルなデータを扱うことが多く、フレーム分割したデータはほとんど同じ データを含むことが多い モチベーション ランダムな順番でアノテーションを行うのでなく、より賢いデータ選定を行うことで、自動アノテーショ ンによる作業のさらなる効率化が実現できるのではないか?  → Active Learningの出番か? リアルなデータセット ほぼ同じデータが多い Frame1 Frame2 Frame3 Frame4

Slide 7

Slide 7 text

Motivation Active Learningを用いた背景 分類タスクで、より高速にラベルデータを得るために Active Learningを利用しているケースも存 在。 https://medium.com/mindboard/active-learning-for-fast-data-set-labeling-890d4080d750

Slide 8

Slide 8 text

Motivation Active Learningを用いた背景:ゴールイメージ 下記は、よくあるActive Learningのデータ数に対する精度の推移。 Active Learningによるデータ選定で自動アノテーションの精度も少量データで上がるはず! https://labelbox.com/blog/active-learning-with-uncertainty-sampling/ Active Learning ランダム

Slide 9

Slide 9 text

本日お話しすること ● Active Learningを用いた背景 ● Active Learningとは ● Active Learning実践 ○ 検証結果 ○ 実プロジェクトでの活用結果

Slide 10

Slide 10 text

Active Learningとは Active Learningとは モデルの学習に効果的な画像を優先してアノテーションすることで、より少ないアノテーションでモデ ル精度を向上させるアプローチ。 (settles, 2009)

Slide 11

Slide 11 text

Active Learningとは Active Learningの種類 ● Active Learningでは、Pool-based Samplingがメジャー Pool-based Samplingとは、ラベル無しデータのプールからモデルを学習させる上で最も効 果が高いと考えられるデータを選択するアプローチ ● Pool-based SamplingのうちUncertanity Sampling(不確実性サンプリング)がメジャー https://tech-blog.abeja.asia/entry/active-learning-20200503

Slide 12

Slide 12 text

Active Learningとは 不確実性サンプリングの種類 ● 推論結果の不確実性がもっとも高いデータから優先してラベル付けをしていく ● 不確実性の尺度は以下のとおり、様々な計算方法が考えられる - Least Confident 「確率最大のラベル」の確率が最小のデータを選ぶ - Margin Sampling 「1番目に確率の高いラベル」の確率 - 「2番目に確率の高いラベル」の確率が最小のデータ を選ぶ - Entropy-based Approach 予測分布のエントロピーが最大のデータを選ぶ

Slide 13

Slide 13 text

Active Learningとは 不確実性サンプリングの種類 ● 推論結果の不確実性がもっとも高いデータから優先してラベル付けをしていく ● 不確実性の尺度は以下のとおり、様々な計算方法が考えられる - Least Confident 「確率最大のラベル」の確率が最小のデータを選ぶ - Margin Sampling 「1番目に確率の高いラベル」の確率 - 「2番目に確率の高いラベル」の確率が最小のデータ を選ぶ - Entropy-based Approach 予測分布のエントロピーが最大のデータを選ぶ 今回は、既存の自動アノテーション機能への実装容易性から、Least Confidentで検証を行った。

Slide 14

Slide 14 text

Active Learningとは Least Confident手法:分類タスクへの適用 Least Confident 法とは、推論結果についてモデルが最も自信のないサンプルを優先して次の学 習用データセットに採用する手法である。 画像分類の場合、以下のようにデータを選択。 犬猫判別AI 犬:0.8、猫:0.2 犬:0.1、猫:0.9 犬:0.4、猫:0.6 Confidence Scoreベースで、画像に対する最大値のう ち、画像間で最小のものを選択

Slide 15

Slide 15 text

Active Learningとは Least Confident手法:物体検出への適用 物体検出タスクにおいては、1枚の画像につき複数個のオブジェクトを検出する可能性があり、その 場合のconfidence値を集約する方法は様々だが、今回は最小値を採用する。また、閾値 0.2以上 の検出結果のみを対象とした。 Confidence Score : 0.29 Confidence Score : 0.89 この画像のConfidence Scoreは 0.29とする Confidence Score : 0.59

Slide 16

Slide 16 text

本日お話しすること ● Active Learningを用いた背景 ● Active Learningとは ● Active Learning実践 ○ 事前検証の結果 ○ 実プロジェクトの結果

Slide 17

Slide 17 text

Active Learning実践 事前検証:概要 実プロジェクト投入前の検証のため、すでに完了したプロジェクトデータで検証を行った。 ● プロジェクト概要 カメラの映像から人物の4つの状態を判別するモデルの開発 ● 検証方法 Active Learningを用いずにアノテーションをしたプロジェクトに対して、 Active Learningを適 用してランダム選定と比較して少ないアノテーション数でよりより精度がでるかを検証 状態1 状態1 状態2 状態4 状態3

Slide 18

Slide 18 text

Active Learning実践 事前検証:データセットのクラス分布 状態クラス数4クラスは、ばらつきがある。 ク ラ ス 1 ク ラ ス 2 ク ラ ス 3 ク ラ ス 4 状態のアノテーション数分布

Slide 19

Slide 19 text

Active Learning実践 事前検証:手順 物体検出タスク用のデーセットにおいて、以下2つの学習をおこおなう。 ● ランダム選定 ● Least Confident法(*初回はモデルがないため、ランダム選定を実施) それぞれの学習については、まず、学習用データセットの内、 1%のデータを用いて、学習を行う。 1% 1% 1% 1% 1% 1% ・・・ 10% 学習用データセット 1%刻みでデータセットを追加していく

Slide 20

Slide 20 text

Active Learning実践 事前検証:結果 サンプリング割合(%) 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% Least Conf - 0.594 0.694 0.765 0.765 0.798 0.796 0.824 0.813 0.822 Random 0.399 0.518 0.620 0.664 0.718 0.749 0.735 0.772 0.783 0.801 サンプリング割合ごとの mAP0.5(5回平均) ● ランダム選定と比較して、Least Confidentを用いることで、常に mAPのスコアが高い結果となった。 ● mAPが高いということは、より高精 度な自動アノテーション済みデータ を得られることが期待できそう。

Slide 21

Slide 21 text

Active Learning実践 事前検証:不確実性サンプリングのサンプリング傾向 選定したデータ分布が以下。 ランダム選定 LeastConfident 2% 5% 1%(初期データ・ランダム選定) ク ラ ス 1 ク ラ ス 2 ク ラ ス 3 ク ラ ス 4 ク ラ ス 1 ク ラ ス 2 ク ラ ス 3 ク ラ ス 4 ク ラ ス 1 ク ラ ス 2 ク ラ ス 3 ク ラ ス 4 ク ラ ス 1 ク ラ ス 2 ク ラ ス 3 ク ラ ス 4 選定したデータの各クラスのインスタンス数の傾向から、 LeastConfident手法ではバランス良くデータを選定できていることがわかった。 ク ラ ス 1 ク ラ ス 2 ク ラ ス 3 ク ラ ス 4

Slide 22

Slide 22 text

Active Learning実践 事前検証:不確実性サンプリングのサンプリング傾向 ランダム選定での精度(2%時点) LeastConfidentでの精度(2%時点) ● LeastConfidentでバランス良くデータ選定が行えた結果、ランダム選定と比較して、クラス1の mAPが 30%ほど上昇。 ● LeastConfidentでバランス良くデータ選定が行えた結果、ランダム選定と比較して、クラス1の mAPが 30%ほど上昇。 クラス1 0.839 クラス2 0.936 クラス3 0.902 クラス4 0.878 All クラス 0.889 クラス1 0.566 クラス2 0.935 クラス3 0.899 クラス4 0.840 All クラス 0.810

Slide 23

Slide 23 text

本日お話しすること ● Active Learningを用いた背景 ● Active Learningとは ● Active Learning実践 ○ 事前検証の結果 ○ 実プロジェクトの結果

Slide 24

Slide 24 text

ラベル付け Active Learning実践 実プロジェクト ● エンジニアが工数をかけては意味がないので、仕組みづくりが必要 エンジニア不要で、アノテーターのみで回るような仕組みに! 未ラベルデータ ラベルデータ 推論 不確実性の高いデータを 優先してアサイン 学習 アノテーター モデル

Slide 25

Slide 25 text

Active Learning実践 実プロジェクト:デモ ● 信頼度の値による検索フィルタリング機能 ● 優先度付け機能 を実装することで、ミニマムでLeast Confident手法が実施可能にしました。(もっと便利な機能には できるが、MVPとして実装。)

Slide 26

Slide 26 text

Active Learning実践 実プロジェクト:プロジェクト概要 ● 検証と同様の実プロジェクト ● 8708画像ある物体検出プロジェクト( 4つのクラス) ● 初回は、ランダムでデータを選定、その後は優先度に基づきアノテーションを実施 ● 1日の終わりに学習し、画像のアノテーション優先度を決定(このときに、推論した結果をアノ テーションのプリセットとして利用) プロジェクトの全データセット 1日目 (手動) 153件 2日目 (自動化) 745件 3日目 (自動化) 906件 4日目 (自動化) 990件 5日目 (自動化) 155件 ・・・

Slide 27

Slide 27 text

Active Learning実践 実プロジェクト:結果〜作業時間の推移 アノテーションあたりの作業時間の推移は下記の通りで、徐々に自動化( *)による改善がみられる。 初期の手動での作業時間と比較すると、約 80%ほど削減(41s → 7s)できている。(*作業習熟によ る改善も含まれる) 習熟による効率 化をみるため終 盤に、手動で 300件ほど実施 した結果が約 17s

Slide 28

Slide 28 text

Active Learning実践 実プロジェクト:結果〜アノテーション不要画像を非選択 今回、最後のセレクション時に、 155件ほどしか検出せず、残りのデータセットを見るとアノテーション 不要な画像であることが確認できた。 ランダムで選定すると、これらの画像は Skip対象になることから作業時間削減に多少なりとも寄与し ている。(そもそもアノテーション不要なのでそれほど時間がかかるものではないが) プロジェクトの全データセット( 8708件) 1日目 153件 2日目 745件 3日目 906件 4日目 990件 5日目 155件 検出結果なし 4128件

Slide 29

Slide 29 text

Active Learning実践 実プロジェクト:結果〜ランダム選定との比較 ランダム選定での自動アノテーションの結果と mAPの比較をした結果、ランダム選定のほうが効率 的な自動アノテーションができている結果となる。 各日付でランダム選定を仮定してデータセットを分割 Least Confident 手法 ランダム 選定 1日目 (手動) 153件 2日目 745件 3日目 906件 4日目 990件 5日目 155件 対象外 1日目は同じデータセット を利用してモデル作成 件数は同じだが、中身の データが異なる 各日付でのmAP 実際のアノテーション結果と各日付での自動アノテーションの結果を mAPで評価(5日目の評価間に合わず、割愛) 1日目 (手動) 153件 2日目 745件 3日目 906件 4日目 990件 5日目 155件 対象外 2日目 3日目 4日目 Least Confident手法 42.07% 42.99% 94.89% ランダム選定 51.53% 94.00% 99.09%

Slide 30

Slide 30 text

Active Learning実践 実プロジェクト:まとめ ● 自動アノテーションによるコスト削減、納期早期化は実現できた。(約半分ほどコスト削減) ● 今回の運用方法 × Least Confident手法を利用することで自動アノテーションの効率を逆に下 げていることがわかった。 以下、仮説。 事前検証では、データセットの1%刻みでActive Learningを実施していたため、ランダム選定と 比較して有効な結果がでていた。 一方、今回の運用では、1日単位でのサイクルでしか優先度付けができなかったため、データ セットの10%ほど刻みなってしまった。つまり、苦手なものを選定しすぎていて逆に非効率に なった。 → よりリアルタイムで学習、優先度付けを実行するしかないか?(要検討)

Slide 31

Slide 31 text

以下、Twitterより引用 
 
 
 
 
 
 
 
 
 
 
 
 
 
 引用元:
 https://twitter.com/Mr_Sakaue/status/1476544972459753477?s=20&t=ZUYFqFFellzcWP1dEOjJUg Active Learning実践 実プロジェクト:改善アイデア ConfidenceScoreを利用しつつ、以下のヒューリスティックな方法が実運用では効果を発揮するか も??(もし、ソース元知っている方いたら教えてください・・!!)

Slide 32

Slide 32 text

さいごに ● 今回は、自動アノテーションの効率をよりよくするために Active Learning(Least Confident手 法)を試してみた。 ● 事前検証では、ランダム選定と比較して Least Confident手法は早期に精度が上昇し、 アノテーションコストを削減できそうなことがわかった。 ● 今回の、1日1回の学習/優先度付けの運用では、ランダム選定と比較してアノテーション効率を 下げていることがわかった。改善策として、事前検証のように、よりリアルタイムに優先度をつ ける方法が考えられるがあまり運用が現実的ではない。改善策は要検討。 ● 今回のようなデータセットの場合、アノテーションする画像数を減らす目的で Active Learningを 活用した方が効果はでそうなため、こちらの方向性も検討する。

Slide 33

Slide 33 text

We are hiring! プロダクトエンジニア/ MLエンジニア積極採用してます! アノテーション、Human In the Loop、MLOps、Auto Labelling、Active Learningなど興味ある方 話しましょう! https://fastlabel.ai/recruit

Slide 34

Slide 34 text

Thank you!