2024-02-01 機械学習勉強会
この勉強会では、Human-in-the-Loop機械学習で紹介されているトピックのうちいくつかを絞って紹介する。
Human-in-the-Loop機械学習とは
基本原則
- 「モデル」よりも「データ作成」に注目
- Human-in-the-Loop機械学習が達成したい目的
- 機械学習モデルの精度を向上させる
- 機械学習モデルが目標とする精度に到達するまでの時間を短縮する
- 人間と機械の知能を融合し、モデルの精度を最大化する
- 機械学習を用いて人間の作業効率を上げる
構成要素
能動学習 (Active Learning) + アノテーション + モデル学習の3セットの繰り返し
- 能動学習
- 人間がアノテーションを行うためにどのデータをサンプリングするかを決定するプロセス
- 必要になる状況: 膨大なデータから学習データを作成したい
- ごく一部しかアノテーションできない
- ランダムサンプリングではデータの多様性を担保できない
- 考えるべきこと
- サンプリング戦略(データの選び方)
- イテレーションをいつ終了すべきか
- 能動学習の評価方法
- アノテーション
- 機械学習の学習データを作成するために、ラベルが付けられていないデータにラベルを付けること
- 考えるべきこと
- アノテーションの品質管理(人間は間違える)
- ユーザーインターフェースの設計
- 機械と人間の相互支援
- 例: 機械翻訳が提案した単語やフレーズを、人間が受け入れるか拒否するか選ぶようなタスクにすると、高速化できる
機械学習の知識の4象限(図1.5)
アルゴリズムの設計によって解決(既知) | 能動学習とアノテーションによって解決(未知) | |
---|---|---|
現状のモデルで解決(既知) | モデルが自信を持って予測できる(既知の既知)→ 既存のモデルの状態 | モデルが自信を持って予測できない(既知の未知)→ 不確実性サンプリングにより解決 |
現状のモデルの外部で解決(未知) | 事前学習モデルの利用によって予測できる(未知の既知)→ 転移学習により解決 | モデルの知識が欠如している(未知の未知)→ 多様性サンプリングにより解決 |
サンプリング
アノテーションするデータをどう選択するか
手法
不確実性サンプリング
- 機械学習モデルの決定境界の近くに存在するラベル付けされていないデータを特定する
- 予測結果のスコアを利用して計算される
- ソフトマックスの出力(ラベル間の合計が1.0になっている)
- 戦略
- 最小確信度サンプリング
- 不確実性: 予測結果の最大確信度と100%の確信度との差
- 最も大きいスコアが小さいほど不確実性が高い
- 確信度マージンサンプリング
- 不確実性: 最も確信度が高い2つの予測の確信度の差
- 1番目の候補と2番目の候補とに対する確信度の差がないほど不確実性が高い
- 確信度比率サンプリング
- 不確実性: 最も確信度が高い2つの予測の確信度の比率
- 確信度マージンサンプリングを比率にしたもの
- エントロピー基準サンプリング
- 不確実性: すべての予測に対して計算したエントロピー
- 予測確率全体が均質なほど不確実性が高い
- 利用時の注意点
- 不確実性サンプリングは、モデルの不得意なデータを拾う観点では有効だが、データの多様性は低い
- 1つの反復(能動学習+アノテーション+モデル学習)でのサンプルサイズと、反復回数はトレードオフがある
- サンプルサイズが大きいとアノテーションコストが上がる
- 反復回数が多いとモデル学習コストが上がる
多様性サンプリング
- モデルが「知らないことを知らない」データを特定する
- 学習データができるだけ異なる特性を持つようにサンプリングする
- 戦略
- モデルベースの外れ値サンプリング(筆者の開発した手法)
- 現在のモデルにとって未知のデータを特定する
- ニューラルネットでは、ある層で活性が最も低いデータを見つける
- クラスタベースのサンプリング(最も一般的な手法)
- モデルとは独立した統計的手法(クラスタリング)を用いて特定する
- データをいくつかのクラスタに分割し、各クラスタから均等にサンプリングする
- あるクラスタからのサンプリングは、ランダム・セントロイド・外れ値(中心から遠いデータ)のいずれか
- 中心に近いデータは似通っているので、セントロイド+ランダムを組み合わせると良い
- 外れ値は純粋に珍しいだけのデータである可能性もあるので、少数にする
- 代表点サンプリング
- ラベル付けされていないデータから、学習データと比較して、対象ドメインにおいて最も特徴的なデータを特定する
- 単純な方法
- 学習データのみで構成されるクラスタを1つ作成する
- ラベルのないデータのみで構成されるクラスタを1つ作成する
- 前者と後者で外れ値スコア(中心からの”距離”)の差が最大のデータをサンプリングする
- 制約事項: エラーや過学習が発生しやすい
- 対象ドメインが「未来のデータ」の場合、単にラベル付けされていないデータを反映すると過去に適合してしまう。
- ラベル付けされていないデータに含まれるノイズに影響を受ける。
- 学習データとテストデータの分布に違いがない場合には、能動学習プロセスの後半のサイクルでのみ適用すると、学習結果に悪影響を及ぼすことがある
- 前半に不確実性サンプリング → 後半に代表点サンプリングのように適用すると、学習プロセスの後半に決定境界から離れたデータに引っ張られる
- 実世界における多様性を考慮したサンプリング
- 現実世界の多様なデータが含まれるようにする
- 層化サンプリング
- 各属性に対して不確実性サンプリングやここまでの多様性サンプリングを適用する
不確実性サンプリングと多様性サンプリングの組み合わせ
- 決定境界に近く、かつ多様性のあるデータをサンプリングできる
- 最小確信度サンプリング + クラスタベースのサンプリング
- 最小確信度サンプリングで多めにサンプリングし、クラスタベースのサンプリングで絞る
アノテーションの品質管理
アノテーションの品質をどのように高く保つか
手法
複数のアノテーション結果を集約する
- 複数の人の判断を集約した「集合知」の方が、個人の判断よりも正確な場合がある
- 例: 牛の体重の推測では、複数人の推定値の平均は、ほとんどの人の推測よりも正解に近い
- アノテーション結果を集約し、信頼度を計算する
- アノテーターの信頼度で加重平均
- 5人の信頼度が0.9で、3人がPedestrian、2人がCyclistと回答した場合、Pedestrianの信頼度は 、Cyclistの信頼度は
- 個々の回答の確信度を自己申告する設計も可能
- 回答欄に加え、「このラベルが正しい可能性は何パーセントですか」と明示的に質問する欄を用意する
- 機械学習で予測する
- (アノテーター、ラベル)を特徴量にして、真のラベルを予測する問題として解く
- 特徴量の値は0/1にする場合や、自己申告の確信度を用いる場合がある
- 回答ラベルごとの出現回数を特徴量にする方法もある
- animal: 0, cyclist: 2, pedestrian: 3, sign: 0 → pedestrian?
- 特徴量がスパースになるので工夫が必要
(Appendix) その他クラウドソーシングの文脈で使われる集約手法
- Dawid&Skene [Dawid 1979]: アノテーターの正解率と真のラベルを同時に推定する
- : アイテム i の真のラベル (0 or 1)
- : アノテーター j がアイテム i につけるラベル (0 or 1)
- : の時にアノテーター j が を回答する確率
- : の時にアノテーター j が を回答する確率
- 確率モデル をもとに、EMアルゴリズムで各パラメータを推定する
- EMアルゴリズム: E-step, M-stepを交互に繰り返す
- E-step: の期待値を計算(他のパラメータは固定)
- M-step: の推定