本文へ移動

G検定(ジェネラリスト検定)

でーたかくちょう

データ拡張

Data Augmentation

学習データに正解を変えない変換を加えて新しい学習例を作り、データの量を人工的に増やす手法です。過学習を抑えて汎化性能を高めることを目指しますが、文字認識で「6」を180度回転させると「9」の形になるように、正解を変えてしまう変換は使えません。

詳しい説明

集める代わりに変換で学習例を作る

データ拡張は、手元にある学習データに変換を加えて新しい学習例を作り、学習データの量を人工的に増やす手法です。英語ではData Augmentationと呼ばれ、Dataset Augmentationと書かれることもあります。

モデルが学習データの細かな癖まで覚え込んでしまい、未知のデータに当てはまらなくなる現象を過学習と呼びます。学習に使える例が少ないほど、この現象は起きやすくなります。とはいえ、写真を新しく集めて一枚ずつ正解のラベルを付けるには手間がかかります。そこで、すでにある例を少し変えても正解が変わらない場合には、その変えた例も新しい学習例として使います。データ拡張は、こうして過学習を抑え、未知のデータに対する汎化性能を高めることを目指します。

猫の写真と手書き文字で比べる

架空の例として、猫と犬の写真を見分けるモデルを作る場面を考えます。猫の写真を左右に反転しても、写っているのは猫のままです。少しだけ傾けた写真や、一部を切り抜いた写真も猫の写真です。1枚の猫の写真から、正解が猫のままの写真を何枚も作れます。モデルはこれらを学習することで、向きや位置が少し違っても同じ猫だと判断できるようになることが期待されます。

一方、画像の中の文字を読み取る光学式文字認識、つまりOCR(Optical Character Recognition)では事情が変わります。小文字の「b」の画像を左右に反転すると「d」の形になります。数字の「6」の画像を180度回転させると「9」の形になります。この課題では、bとd、6と9を区別すること自体がモデルの仕事です。反転や回転を加えた画像に元の正解ラベルを付けたまま学習させると、モデルに誤った正解を教えることになります。

同じ左右反転でも、猫の写真では使えて、文字の画像では使えません。変換が適切かどうかは変換の種類だけでは決まらず、その課題で何を区別したいかによって決まります。

正解のクラスを変えない変換だけを選ぶ

イアン・グッドフェロー(Ian Goodfellow)、ヨシュア・ベンジオ(Yoshua Bengio)、アーロン・クールヴィル(Aaron Courville)の教科書"Deep Learning"(2016年)は、データ拡張を説明する節で、正しいクラスを変えてしまう変換を加えないよう注意が必要だと述べています。その例として挙げられているのが、上で見たOCRでの水平反転と180度回転です。

変換を選ぶときは、その変換を加えた後も人が見て同じ正解を付けるかを確かめます。猫の写真の左右反転のように答えが変わらないものは候補になります。文字の反転のように答えが変わるものは、どれほど簡単に作れても学習データに加えません。

画像以外のデータとノイズの付加

データ拡張は画像だけに使う手法ではありません。グッドフェローらの教科書は、ナヴディープ・ジェイトリー(Navdeep Jaitly)とジェフリー・ヒントン(Geoffrey Hinton)の2013年の研究を挙げ、音声認識の課題でもデータ拡張が効果的であると述べています。

同じ教科書は、入力にノイズを加えることもデータ拡張の一種と見なせるとしています。入力がわずかに変わっても、課題は同じように解けるはずだという考え方です。架空の例でいえば、録音に小さな雑音が混ざっても、話している言葉は変わりません。雑音を加えた音声に元の正解を付けて学習させることは、写真を少し傾けて学習例を増やすことと同じ発想に立っています。

過学習を抑えるほかの手法との関係

グッドフェローらの教科書では、データ拡張は正則化を扱う第7章の中の一節として説明されています。正則化は、学習データへの過剰な合わせ込みを抑えて汎化性能を高める工夫を広く指す言葉です。重みの大きさに罰則をかけるL2正則化や、学習中に一部のユニットを無作為に無効にするドロップアウトは、モデルの側に手を加えます(正則化の項目にあるとおり、L2正則化は目的関数にペナルティ項を加える戦略、ドロップアウトはパラメータに近い側への操作にあたります)。データ拡張は、モデルに見せる学習データの側を変える点がこれらと異なります。目的は同じなので、これらの手法は組み合わせて使うことができます。

試験で問われること

G検定

  • 手元の学習データに変換を加えて新しい学習例を作り、学習データの量を人工的に増やして過学習を抑える手法です。
  • 加えてよいのは正解のクラスを変えない変換だけで、どの変換が適切かは課題によって変わります。猫の写真の左右反転は正解を変えませんが、文字認識では「b」が「d」の形になるため適切ではありません。
  • 光学式文字認識では「6」と「9」を区別する必要があるため、画像の180度回転はデータ拡張として適切ではありません。
  • 画像だけでなく音声認識の課題でも効果的であり、入力にノイズを加えることもデータ拡張の一種と見なせます。
  • L2正則化やドロップアウトがモデルの側に制約を加えるのに対し、データ拡張は学習データの側を変えて汎化性能を高めます。

最終更新日: 2026/09/23