Slide 1

Slide 1 text

Human-in-the-loop勉強会 @natsutan

Slide 2

Slide 2 text

目次 本の紹介 Human-in-the-loopの学習サイクル Human-in-the-loopの学習を始める前に 人手でアノテーションするデータの選び方 不確実性サンプリング 多様性サンプリング 物体検出でどのようにサンプリングするか Human-in-the-loopのアノテーション、学習サイクル Human-in-the-loopの学習の終わり

Slide 3

Slide 3 text

本の紹介 Human-in-the-Loop Machine Learning: Active learning and annotation for human-centered AI Human-in-the-Loop機械学習: 人間参加型AIのための能動学習とアノテーション Deep Learningのデータ+アノテーションに注目した本。良いことがいっぱい書いてある。 前半がHuman-in-the-loopの学習戦略の話、後半がアノテーションの評価の話。 今日は前半の紹介をします。後半はHuman-in-the-loopのイテレーションが回ってからでも良い。 図表の引用は特に指定なければこの本から。

Slide 4

Slide 4 text

Human-in-the-loopの学習サイクル Fig2.2 アノテーションが終わって いないデータ+アノテー ション済みデータ 何らかのアルゴリズム(ラン ダム含む)で、データを抽出 人手によるアノテーション 再学習、追加学習 デプロイ なんでもかんでも学習データを追加するのではなく、学習に効果的なデータを抽出して、アノテーションを行い学習する。 その結果を使って、また効果的な学習データを抽出する。 このループを作る。

Slide 5

Slide 5 text

Human-in-the-loopの学習を始める前に Human-in-the-loopの学習をする前に、評価用のデータセットを作る。 →Train、Val、TestでいうとTestにあたるデータセット。 学習データのプールとは分ける。 基本的にはランダムサンプリング。 意図的にデータを選ぶとBIASが入ってしまう。 意味 この本の訳 英語 日本語(E資格) 学習に使うデータ 学習データ Train data 学習データ 過学習を検出するために使うデータ 検証データ Validation data 検証データ 最終的にモデルを評価するためのデータ 評価データ Test data テストデータ 本には最大4つの検証データが必要と書いてあるが、当面ランダムに選んだ1つの検証データで良い。 ・テストデータと同じ分布に従う検証データ ・各反復においてまだラベル付けしていないデータから作成された検証データ ・各反復で新たにサンプリングされたデータと同じ分布に従う検証データ ・これまでにサンプリングされたデータと同じ分布に従う検証データ

Slide 6

Slide 6 text

人手でアノテーションするデータの選び方 大量のデータ アノテーションするデータ 大量の学習データ候補から、実際にアノテーションするデータを選ぶ。 アノテーションにはコストがかかるので、できる限り学習に回して有効なデータだけアノテーションしたい。 Fig1.2 Fig1.2 不確実性サンプリング 多様性サンプリング 判断の境目にあるデータ。 間違えやすいデータ。 今までの学習データとは ちょっと違ったデータ。 外れ値的なデータ 不確実性サンプリング+ 多様性サンプリング この2つを組み合わせると、 モデルを改善しやすいデー タが集まる。 Fig1.2

Slide 7

Slide 7 text

不確実性サンプリング 判断の境目にあるデータ(間違えやすいデータ)を集めるアルゴリズム 信頼度はDep LearningであればNNの出力(softmax前or後)。Scoreだったり精度と呼んだりする。 ・最小確信度サンプリング 正解値の信頼度を100%として、モデルの出力との差を取る。犬の画像に対して、犬80%という推論をした時の不確実性は0.2 ・確信度マージンサンプリング 2番目の信頼度の差をマージンとして計測。犬の画像に対して、犬80%、猫10%と推論した時、不確実性は100-(80-10)で0.3 一つ目と二つ目の差が大きいと不確実性が減る。 ・確信度比率サンプリング 一つ目と2つめの信頼度の比率をとる。犬80%、猫10%の時は10/80 = 0.125が不確実性。 ・エントロピー基準サンプリング 信頼度のエントロピーを計算する。他クラス分類の時はすべての出力を使う。 例えば犬80%、猫50%の時、足して1にならないので、softmaxを取って0.574, 0.426にする。このエントロピーを取って0.984を不確実性とする。 ChatGPTに計算させたけど、E資格受験者は電 卓叩いて自力で計算できるように

Slide 8

Slide 8 text

アルゴリズムによって不確定サンプリングの方法が違う 興味ある人は本買って読むこと

Slide 9

Slide 9 text

多様性サンプリング まだ学習に使われていないようなデータを集めるアルゴリズム 層化サンプリング、代表点サンプリング、外れ値検出、異常検知とも呼ばれる。 何も考えずにランダムサンプリングを行うと、BIASが増幅される可能性がある。 ・モデルベースの外れ値サンプリング どのデータが現在のモデルにとって未知なのかを特定する。 ・クラスタベースのサンプリング モデルとは独立した手法でデータを特定する、 ・代表点サンプリング 特徴的でまだ学習していないデータを特定する。 ・実世界における多様性を考慮したサンプリング 実世界のデータを使って、様々なデータが学習に含まれるようにする。

Slide 10

Slide 10 text

モデルベースの多様性サンプリング Softmax前の値を取り出せるようにする。 ReluよりもLeakyReluを使う。情報が捨てられ難い。 アノテーションしていないデータセットを、学習済みのモデルで推論する。 各ニューロンのニューロンの出力に順位をつけ、その順位を外れ値の度合いとする。 画像が10枚あり9番目であれば0.9とする。 すべてのニューロンの外れ値度合いを平均し、その画像の外れ値スコアとする。 →これじゃ伝わらないと思うので本読んで 欠点 ・類似した外れ値が何度も選ばれ、外れ値としての多様性に欠ける ・モデル自体のBIASは取り除けない 等 イメージは入力1万枚くらい想定。 Fig 4.2 学習したモデルを使って、そのモデルにとっての外れ値となるデータを見つ ける

Slide 11

Slide 11 text

クラスタリングベースの多様性サンプリング 教師無しクラスタリングを行い、その結果で外れ値を見つける Fig 4.4 細かい実装方法は、本を読もう ・ユークリッド距離よりもコサイン類似度が良い ・PCA有効 ・GMM、K-NN等

Slide 12

Slide 12 text

代表点サンプリング 学習に使った データ 学習には使われていな いが、実際には存在する データから代表的な物を 選ぶ モデルを適用したいドメインに最も近いデータを集めて学習する。 同じモデルを違うカスタマー(特に産業界)に提供するとき有効。 過学習の危険はある。

Slide 13

Slide 13 text

実世界における多様性を考慮したサンプリング 層化サンプリング 特に実世界のデータの場合、学習データはどうしても偏りがでる。 例:英語のニュースが多いため、世界のニュースを集めると英語が多くなる。 その国の人口やマスコミの数によって、ニュースの量が変る。 複数のBIASが組み合わされ、交差BIASが発生する。 データセットを属性に分け、その中からサンプリングを行う。 例:各属性に対して、最小確信度サンプリングを行い、各属性からもっとも信頼度の高いデータを集める。 各属性に対してクラスタリングを行い、外れ値データを集める。 Deep Learningでは影響は少ないが、他の機械学習の場合はサンプリングで精度が変ってしまう可能性がある。

Slide 14

Slide 14 text

物体検出でどのようにサンプリングするか アノテーションしていないデータを推論させてみて、確信度(Score)を基準に学習用データを選ぶ。 確信度が高い物を選ぶと、元々分かっているデータなのでBIASが固定される欠点がある。 確信度が低い物を選ぶと、誤検出が増え検出数が多くなってしまう。 →層化サンプリングを使う ・確信度 10~20%の画像を100枚サンプリング ・確信度 20~30%の画像を100枚サンプリング : ・確信度 90~100%の画像を100枚サンプリング 物体検出多数では確信度が低く背景を誤検出しているデータでも、学習データに追加することで 「ここは背景」と学習できるので有効。これに、クラスタリングベースのサンプリング(中央値)の組 み合わせ等も有効。 Segmentationもこれで良いと思う。 Fig 6.5 境界のデータと、境界から遠 いデータがバランス良く集まる

Slide 15

Slide 15 text

Human-in-the-loopのアノテーション、学習サイクル データ (大量) アルゴリズム sampling & sort 高 低 優先順位の高いデータか らアノテーション 学習 学習によってモデルが更新されると、そのモデルを使って、次の アノテーションデータを自動で抽出、優先順位付けを行う。 評価 新しいデータだけを使った追加 学習と、今までの全データを使っ た学習の2種類がある。 それぞれの目的が違う。 →詳細は本読んで 評価データ queue

Slide 16

Slide 16 text

Human-in-the-loopの学習の終わり 評価データを使ったモデルの精度が上がらなくなったら終了。 モデルの精度が上がらず、目標の精度に達しない場合は別のモデル、アルゴリズムを検討する。 どのようなやり方をしても、データが増えるに従ってモデルの学習効率は下がっていく。 →最初はどんどんよくなるが、段々精度向上が鈍化する。 費用対効果が見せられると、継続するかどうかの判断がしやすい。 Fig 7.7 精度を上げて行くためには指数的にデータを増やさないと駄目。 最初は1ループ50枚で良かったとしても、さらに精度を上げるためには、 100枚、200枚、500枚、1000枚と指数的に増やしていく必要がある。

Slide 17

Slide 17 text

この資料で取り上げてないこと ・Deep Learningモデルに関する考察(Softmax、Dropout) ・不確実性サンプリングと多様性サンプリングの組み合わせ指標 ・言語系モデルのHuman-in-the-loop ・動画、音声、セグメンテーション ・転移学習、追加学習 ・アノテーションの品質管理 ・アノテーターの評価 ・アノテーターの雇用 ・アノテーションツール、データ拡張 興味ある人は是非本買って読んでください!