データ拡張 でーたかくちょう
データ拡張オーグメンテーション過学習対策画像変換訓練データ増加
データ拡張について教えて
簡単に言うとこんな感じ!
手持ちのデータを「加工・変形」して水増しするテクニックだよ。写真を回転させたり明るさを変えたりして「似て非なるデータ」を大量に作り出し、AIに豊富な経験を積ませる方法なんだ!
データ拡張とは
データ拡張(Data Augmentation)とは、既存の訓練データに対して様々な変換を加えることで、見かけ上のデータ量を増やす手法です。機械学習モデル、特にディープラーニングは大量のデータを必要とするため、データが少ない場合の過学習を防ぎ、汎化性能を高めるために広く使われています。
実際のビジネス現場では、医療画像の収集コストが高い・不良品の発生頻度が低いなど「十分なデータが集まらない」ことはよくあります。データ拡張はこうした現実的な制約を乗り越える実践的な解決策です。
変換後のデータは元データとラベルが同じである(意味が変わらない)ことが前提です。猫の写真を回転させても猫であることに変わりないため、そのまま訓練データとして使えます。
主な拡張手法
画像データの拡張
| 手法 | 説明 | 用途 |
|---|---|---|
| 水平・垂直反転 | 左右・上下に鏡像化 | 物体検出、分類 |
| 回転 | 任意の角度で回転 | 医療画像、衛星画像 |
| クロップ | ランダムな領域を切り抜き | 分類全般 |
| 明度・コントラスト変換 | 明るさ・色味を変更 | 照明条件の多様化 |
| ノイズ付加 | ガウスノイズなどを加算 | ロバスト性向上 |
| カットアウト/グリッドマスク | 一部領域をマスク | 遮蔽への耐性 |
| MixUp / CutMix | 2枚の画像を合成 | 汎化性能向上 |
テキストデータの拡張
| 手法 | 説明 |
|---|---|
| 同義語置換 | 単語を類義語で置き換え |
| ランダム削除・挿入 | 単語をランダムに削除・追加 |
| 逆翻訳 | 他言語に翻訳して戻す |
| LLMによる言い換え | GPT等で表現を変える |
音声データの拡張
- タイムストレッチ:速度を変えて時間軸を伸縮
- ピッチシフト:声の高さを変更
- 背景ノイズ付加:実環境を模擬
- SpecAugment:スペクトログラム上でマスキング
歴史と背景
- 2012年:AlexNetがImageNetで圧倒的な精度を達成。クロップ・反転の拡張が有効と実証
- 2017年:MixUpが提案。ラベルも混合する手法として注目
- 2019年:AutoAugmentが登場。拡張のパラメータをAI自体が探索する手法
- 2020年代:LLMを使ったテキスト拡張が普及。合成データ生成との境界が曖昧に
拡張のやりすぎに注意
データ拡張は強力ですが、過度な拡張は逆効果になることもあります。
適切な拡張の例(文書分類)
○ 同義語置換、逆翻訳
× ランダムに単語を並び替え(意味が破壊される)
適切な拡張の例(医療X線)
○ 輝度変換、水平反転
× 垂直反転(臓器の位置関係が変わる)
「意味が保たれているか」を常に確認することが重要です。
関連する規格・RFC
(データ拡張に関する国際標準・RFCは特に存在しない)