『データ拡張』は訓練データを水増しする技術。画像分類タスクで標準的に使われる実用テクニックです。
データ拡張って、どうやってデータを増やすの?
データ拡張(Data Augmentation) は、既存データにランダムな変換を施して新しいデータとして使う技術よ。
実質的に訓練データを増やせるの。
画像分類なら、ランダムクロップ、水平反転、回転、色調変更、ノイズ追加などが典型例ね。
写真をちょっと加工するだけで、学習データが増えちゃうんですかぁ?
そう。
例えば『猫』を水平反転しても猫のまま。
でもネットワークにとっては新しい画像なので、汎化性能が上がるのよ。
現代ではMixup、CutMix、RandAugmentなど高度な手法も登場。
Mixupは2枚の画像を線形補間して合成するの。
えっ、2枚混ぜちゃうの!?
犬と猫を0.3:0.7で混ぜた画像に、ラベル『犬0.3, 猫0.7』を付けて学習するのよ。
こうするとモデルが決定境界を滑らかに学べるの。
自然言語処理ではバックトランスレーションが有名。
日本語→英語→日本語と翻訳を往復させて言い換えを作るのよ。
翻訳を使ったデータ拡張、面白いですぅ♪
音声認識ではSpecAugmentが広く使われる。
スペクトログラムに時間・周波数方向のマスキングをかける手法ね。
注意点は、タスクに応じて適切な変換を選ぶこと。
医療画像では過度な回転が不自然になったり、文字認識では水平反転がラベルを変えてしまったりするわ。
なるほど〜、用途に合わせて選ぶってことだね!
G検定では『データ拡張の目的 (汎化性能)』『画像・自然言語・音声の各手法』『Mixup・CutMix』を押さえて!
確認クイズ
データ拡張の手法で、2枚の画像を線形補間して合成する手法はどれか。
- Random Crop
- Mixup
- Dropout
- Batch Normalization
こたえを見る
正解: 2. Mixup
Mixupは2枚の画像を線形補間して合成し、ラベルも同様に混合する手法です。モデルが決定境界を滑らかに学ぶことで汎化性能が向上します。Random Cropは単純な切り抜き、DropoutとBatchNormはネットワーク内の技法です。