# サンプリング手法
## 定義
サンプリング手法とは、現実世界のあらゆるデータにアクセスできない、またはすべてを処理するには時間やリソースがかかりすぎるという制約のもとで、機械学習の訓練データ(あるいは訓練用・検証用・テスト用への分割、モニタリング対象のイベント)として使う現実世界のデータのサブセットを選び出す方法である。サンプリング手法は大きく非確率サンプリングと確率サンプリングの2系統に分かれる。(Source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 4 訓練データ]] §4.1)
非確率サンプリング(nonprobability sampling)は確率の尺度に基づかずデータを選ぶ手法群で、コンビニエンスサンプリング(入手しやすさで選ぶ)、スノーボールサンプリング(既存サンプルを起点に芋づる式に選ぶ)、ジャッジメントサンプリング(専門家が判断して選ぶ)、クオータサンプリング(実際の分布と無関係にスライスごとの人数枠を満たすよう選ぶ)の4手法がある。いずれも選択バイアスに満ちており訓練データを選ぶ手段としては望ましくないとされるが、言語モデリング(収集が容易なWikipedia・Common Crawl・Redditに偏る)、センチメント分析(IMDB・Amazonのレビューに偏る)、自動運転(晴天が多い地域に偏る)のように、利便性ありきで依然として広く使われている。(Source: 同 §4.1.1)
確率サンプリングには次の5手法がある。(1) シンプルなランダムサンプリング(母集団の全サンプルが等しい確率で選ばれるが、少数派クラスが選ばれない可能性がある)、(2) 層化サンプリング(母集団を層に分割し層ごとに独立にサンプリングすることで少数派クラスの取りこぼしを防ぐが、マルチラベルタスクでは1サンプルが複数層に属しうるため常に可能とは限らない)、(3) 重み付きサンプリング(各サンプルに与える重みで選ぶ確率を調整し、ドメイン知識の反映や実際の分布とのずれの補正に使う。近縁の概念にサンプルウェイトがあり、こちらは損失関数への寄与度を調整する)、(4) リザーバーサンプリング(要素数が事前に分からないストリームデータから、いつ停止しても正しい確率で全要素を等しくサンプリングできるアルゴリズム)、(5) 重点サンプリング(サンプリングが困難な分布P(x)の代わりに容易な分布Q(x)からサンプリングしP(x)/Q(x)で重み付けする手法。ポリシーベースの強化学習で古いポリシーの報酬を新しいポリシー向けに再重み付けする用途などに使われる)。(Source: 同 §4.1.2–§4.1.6)
## 横断的知見
(この節は今後、複数ソースの突き合わせで得られた知見を蓄積する。現時点では単一ソース([[@2023__OReillyJapan__機械学習システムデザイン - Chapter 4 訓練データ]])からの知見のみ。)
## 未解決の問い
- 非確率サンプリングで初期プロジェクトを立ち上げた後、確率サンプリングへ移行する具体的な移行手順やタイミングの目安は本ソースでは扱われていない。
- 層化サンプリングの層をどう定義するか(単一ラベルタスクとマルチラベルタスクとで層の切り方がどう変わるべきか)についての実務的な指針は示されていない。
- 重み付きサンプリングと[[クラス不均衡]]のデータレベルの手法(リサンプリング)は、いずれも訓練データの分布を調整する点で似ているが、両者を組み合わせて使うべき場面・使い分けるべき場面の基準は本ソースでは明示されていない。
- リザーバーサンプリングは能動学習([[ラベル不足への対処]])がリアルタイムのデータストリームからサンプルを選ぶ場面と関係が深そうだが、両者を組み合わせた具体的な手法は本ソースでは扱われていない。
## 関連
- source: [[@2023__OReillyJapan__機械学習システムデザイン - Chapter 4 訓練データ]]
- concept: [[教師データ収集手段の選択]](誰がラベルを付けるかという別軸の教師データ取得論点) / [[クラス不均衡]](重み付きサンプリング・リサンプリングと関わる不均衡対処) / [[ラベル不足への対処]](能動学習のサンプル選択と関わる)
## 出典
- Chip Huyen 著, 江川崇・平山順一 訳, 『機械学習システムデザイン』, オライリー・ジャパン, 2023, 4 章, §4.1.