データ拡張:手元のデータを増やして賢くする
手元のデータを加工して水増しし、モデルを賢くするデータ拡張を学びます。基礎層では、なぜ水増しが役立つのかをつかみます。深掘り層では、Crop・Random Flip・Rotate・Contrast・Brightness といった画像の変形、Cutout・Random Erasing、Mixup・CutMix、RandAugument、noising、そして文章の paraphrasing まで説明できるようになります。
ねらい
このレッスンでは、手元のデータを加工して水増しし、モデルを賢くするデータ拡張(data augmentation)を学びます。
基礎
なぜ水増しがモデルの学習に役立つのかをつかみます。
1. データ拡張は、今あるデータを加工して増やします
データ拡張とは、手元にあるデータを少しずつ加工して、見た目の違うデータを新しく作り、量と種類を増やすことです。
写真であれば、少し回したり、明るさを変えたり、一部を切り取ったりします。元は同じ1枚でも、加工すれば、モデルにとっては別のデータに見えます。こうして、少ないデータからでも、多くのばらつきのある学習データを用意できます。
大切なのは、加工しても、そのデータが表す答えは変わらないようにする点です。犬の写真を左右に反転させても、写っているのは犬のままです。答えを変えずに見た目だけを変えることで、モデルは「多少見た目が変わっても、これは犬だ」と学べます。
ただし、加工のしかたによっては、答えのほうが変わってしまうことがあります。手書き数字の6を180度回転させると、9に見えます。このまま「6」という答えを付けたままにすると、モデルは間違った正解を教え込まれます。どの加工を使ってよいかは、扱うデータによって変わります。
データ拡張には、大きな効果があります。過学習を抑え、汎化性能を高めることです。過学習とは、学習に使ったデータだけに合わせすぎて、新しいデータにうまく対応できなくなることです。汎化性能とは、学習に使っていない新しいデータにも、うまく対応できる力のことです。どちらも、モデルの選択と評価のレッスンで学びました。データ拡張で見た目のばらつきを増やすと、モデルは細かな見た目に振り回されにくくなり、新しいデータにも対応しやすくなります。
ポイント
データ拡張は、答えを変えずに見た目だけを変えて、データを水増しします。ばらつきが増えるので、過学習を抑え、新しいデータへの対応力である汎化性能が高まります。
ここまでの要点
- データ拡張は、手元のデータを加工して、量と種類を増やす工夫です。
- 加工しても、そのデータが表す答えは変えません。
- ばらつきが増えるので、過学習を抑え、汎化性能を高めます。
まずは全体像をつかめれば十分という人は、ここで区切って大丈夫です。「答えは変えずに見た目を変えて水増しし、汎化を助ける」と押さえられていれば、この先の深掘りに進む土台はできています。
発展
ここからは、画像に対する代表的な手法と、文章に対する手法を順に見ます。
2. 画像の基本的な変形
画像のデータ拡張には、見た目を素直に変える、基本的な手法があります。
- Crop(クロップ)は、画像の一部を切り取ることです。切り取る場所を変えると、対象が画面のどこにあっても見分けられるように学べます。
- Random Flip(ランダム・フリップ)は、画像を左右や上下に反転させることです。左右反転は、犬や猫のように向きが変わっても意味が変わらない対象で、よく使われます。
- Rotate(ローテート)は、画像を少し回転させることです。かたむいて写った対象にも対応できるようになります。
- Contrast(コントラスト)は、明るい部分と暗い部分の差の強さを変えることです。
- Brightness(ブライトネス)は、画像全体の明るさを変えることです。撮影したときの光の具合が違っても対応できるように学べます。
これらは、どれも元の対象を保ったまま、見え方だけを変える工夫です。切り取り、反転、回転、そして明るさや色の調整によって、少ない画像から多くのばらつきを作り出します。
理解の確認
Crop は一部の切り取り、Random Flip は反転、Rotate は回転、Contrast は明暗差の調整、Brightness は明るさの調整です。いずれも対象を保ったまま見え方を変え、位置や向き、光の具合のばらつきに強くします。
3. 一部を隠す・混ぜ合わせる手法
見た目を変えるだけでなく、あえて情報を欠けさせたり、複数を混ぜたりする手法もあります。
Cutout(カットアウト)は、画像の一部を四角く隠して、その部分を見えなくします。Random Erasing(ランダム・イレージング)も、画像の一部を消したり別の値で塗りつぶしたりする、似た手法です。一部が隠れても対象を見分けられるように学ぶので、対象の一部だけに頼らず、全体で判断する力がつきます。
Mixup(ミックスアップ)は、2枚の画像をうっすら重ね合わせるように混ぜ合わせる手法です。答えのほうも、混ぜた割合に応じて混ぜ合わせます。たとえば犬の画像と猫の画像を半分ずつ混ぜたら、答えも半分犬・半分猫として扱います。CutMix(カットミックス)は、片方の画像の一部を切り取って、もう片方の画像に貼りつける手法です。貼りつけた面積の割合に応じて、答えを混ぜ合わせます。Mixup が全体をうっすら重ねるのに対し、CutMix は一部を切り貼りする点が違います。どちらも、複数のデータを混ぜることで、判断の境目をなめらかにし、過学習を抑えます。
さらに、noising(ノイジング)という手法もあります。これは、データにわざと細かな雑音を加えることです。少しの雑音が混じっても正しく判断できるように学ぶので、モデルが乱れに強くなります。
これら多くの手法のうち、どれをどれだけ使うか、人が1つずつ選ぶのは大変です。そこで、複数の手法の組み合わせと強さを自動で選ぶ RandAugument(ランドオーグメント)という手法も使われます。手法選びの手間を省きながら、効果の高い組み合わせを見つけられます。
理解の確認
Cutout と Random Erasing は画像の一部を隠す手法、Mixup と CutMix は複数の画像を混ぜる手法です。noising は雑音を加えて乱れに強くし、RandAugument は複数の手法の組み合わせと強さを自動で選びます。
4. 文章に対するデータ拡張
データ拡張は、画像だけのものではありません。文章にも使えます。
文章に対する代表的な手法が paraphrasing(パラフレージング)です。paraphrasing とは、言いかえのことです。文の意味を変えずに、別の言い回しに置きかえて、新しい学習データを作ります。たとえば「明日は雨が降る」を「あす、雨となる見込みだ」と言いかえます。意味は同じまま、表現だけが変わるので、モデルは同じ意味をいろいろな言い回しで受け取れるようになります。
ただし文章の言いかえは、画像の反転などより慎重さが要ります。少し言葉を変えただけで、意味が変わってしまうことがあるからです。意味を保てる範囲で言いかえる、という注意が必要です。
注意
データ拡張は、答えや意味が変わらない範囲で行います。画像を反転すると意味が変わる文字や標識、言いかえで意味がずれてしまう文章などでは、加工のしかたに注意が要ります。
理解の確認
文章に対するデータ拡張の代表が paraphrasing で、意味を変えずに言い回しを変えて水増しします。ただし言いかえで意味がずれないよう、画像より慎重に行う必要があります。
理解度の確認
説明できる項目にチェックを入れましょう。すべて確認できたら、完了ボタンで記録します。
分からなかった点・気になった点
読み込み中です。