スポンサーリンク

データ拡張について

データ拡張

データ拡張(Data Augmentation)とは、学習用データセットにバリエーションをつけて学習させる手法です。このデータ拡張を行わないと、過学習に陥ることが多いです。画像の基本的なデータ拡張の例としては、拡大・縮小・切り抜き・回転・フリップ・明るさ・コントラスト・色などのバリエーションを持たせることが挙げられます。

図の例は、回転と切り抜きとフリップを使ったデータ拡張の例になります。このように、ランダムにバリエーションを持たせることで、過学習になるのを防ぎます。

また、高度なデータ拡張としては、2つの画像をアルファ合成させた画像を学習させるもの(mixup)や、ランダムに画像をカットするもの(cutout)や、ランダムに画像をカットしたところにノイズを載せるもの(Random Erasing)などがあります。参考:https://arxiv.org/abs/1811.09030

まとめ

データ拡張は、CNNで画像を学習させるときには、ほぼ必須で実施しなければならない機能だと思っています。フレームワークでも、データ拡張のためのAPIが用意されているので、比較的簡単に実施することができると思います。(ただし、セグメンテーションや物体検出では、独自にデータ拡張しなければならない場合あり。しかも、物体検出では、回転のデータ拡張は、ほぼ行えない。)過学習を起こさないためにも、データ拡張を実施しましょう。

タイトルとURLをコピーしました