データ拡張(データかくちょう、)は、量が不十分な訓練データからの最尤推定を可能にする統計的手法。データ拡張はベイズ解析において重要な応用があり、また、この手法は、既存のデータをわずかに変更した複数のコピーでモデルを訓練することにより、機械学習モデルの訓練時における過学習を減らし汎化能力を高めるために、機械学習の分野で広く使用されている。
例えば、手書き文字の画像認識において「データ拡張として画像に-15~15度の回転をかける」というのは「手書き文字は-15~15度の回転をかけても文字の種類が変わらない」という事前知識をモデルの学習に使用することを意味している。数字の6を180度回転すると9になるが「データ拡張に180度の回転を含めない」というのは「手書き文字は180度の回転をかけると文字の種類が変わる」という事前知識を使用している。
画像分類でのデータ拡張 1990年代半ばに畳み込みニューラルネットワーク(CNN)が大規模化すると、利用できるデータが不足していた。特に、データセット全体の一部は後のテスト用に残しておく必要があった。そこで、既存の訓練データにアフィン変換で摂動を加え、同じラベルを持つ新しい訓練データを作成することが提案された。2003年にマイクロソフトの研究者等がMNISTデータセットに対する弾性歪み(elastic distortion)を提案し、この技術は2010年代には広く利用されるようになった。データ拡張は畳み込みニューラルネットワークの性能を向上させ、畳み込みニューラルネットワークに対するプロファイリング攻撃に対する対抗策としても機能する。
データ拡張は画像分類において基本となっており、訓練データセットの多様性を豊かにして、モデルの汎化能力と性能を向上させる。この手法の進化により、幾何学的変換、色空間変換、ノイズ注入など、広範な技術が導入されてきた。
幾何学的変換 幾何学的変換は、画像の空間的特性を変化させることで、異なる視点、向き、スケールをシミュレートするものである。主な手法として、以下のものが挙げられる。
アフィン変換 回転:モデルが様々な角度で物体を認識できるよう、画像を指定の角度で回転させる。 鏡映:向きに多様性を持たせるため、画像を水平または垂直に反転させる。 平行移動:モデルに位置不変性を学習させるため、画像を異なる方向に移動させる。 拡大縮小 せん断写像 切り抜き:特定の特徴に焦点を当てたり、より近い視点をシミュレートしたりするために、画像の一部を切り取る。 弾性歪み 同一クラス内モーフィング:同じクラスに属する2つの画像間でモーフィング技術を適用して新しいサンプルを生成し、それによってクラス内の多様性を高める。
色空間変換 色空間変換は、照明、色の彩度、コントラストの変動に対応し、画像の色特性を変化させる。その手法には以下のようなものがある。
明るさの調整: さまざまな照明条件をシミュレートするために、画像の明るさを変更する。 コントラストの調整: さまざまな鮮明度の下でモデルが物体を認識しやすくなるよう、コントラストを変更する。 彩度の調整: モデルが多様な色強度の画像に対応できるよう、彩度を変更する。 カラージッター: 明るさ、コントラスト、彩度、色相をランダムに調整することで、色の多様性を導入する。
ノイズ注入 画像にノイズを注入することは、現実世界の不完全性をシミュレートし、モデルが無関係な変動を無視するよう学習させるものである。その手法は以下の通りである。
ガウスノイズ:ガウスノイズを追加することは、センサーノイズや画像の粒状性を模倣する。 ゴマ塩ノイズ:黒または白のピクセルをランダムに導入することで、センサーダストやデッドピクセルをシミュレートする。
参照