大域的探索から局所的探索へ
データ拡張 (Data Augmentation)を用いた学習の探索テクニック
学習中にデータを切り替えることで精度を向上させる
背景
● Deep Neural Networksは画像認識など幅広い領域で高いパフォーマンスを達成してきているが、何千ものパラメ
ータを持つ複雑なモデルを限られた学習データで学習することは難しい
● 新しいデータを集めることなく学習データを用いて人工的にデータを生成することで、学習データの多様性を向
上させ、モデルのロバスト性を向上させる手法としてデータ拡張が用いられる
標準的なデータ拡張手法: 縮尺やアスペクト比の調整、ランダムクロップ、水平反転など
複雑なデータ拡張手法: Mixup、Cutout、Cutmixなど
データ拡張 (Data Augmentation)とは
データが足りない データを加工して使いまわす
データ拡張
拡張データ 拡張データ
訓練誤差が増加して汎化誤差が良くなる?
● 機械学習では、オーバーフィッティングに気をつけながら訓練誤差を小さくし、
汎化誤差の小さいモデルを作成する (訓練誤差が小さい → 汎化誤差が小さくなる)
● 一方、データ拡張では、純粋な学習データだけ用いたとき学習よりも訓練誤差が
大きくなる傾向がある (ときには、汎化誤差より大きくなることも)
● 学習時に訓練誤差が大きくなっても、テスト時には拡張データが存在しない純粋
なデータなので、汎化誤差が小さくなれば問題ない
汎化誤差
小 大
訓練誤差 小 ○ ✕
大 ○ ✕
● 論文
○ タイトル: Data Augmentation Revisited: Rethinking the
Distribution Gap between Clean and Augmented Data
○ 2019年
● 内容
○ データ拡張の新しい戦略であるRefined Data Augmentationを提案
○ 既存のデータ拡張手法のほとんどを改善
○ データ拡張による探索とデータ拡張をしない場合の探索について考
察
論文
● 問題
○ 元データと拡張データの分布の差がモデルの収束を阻害している
○ データ拡張によって、相対的に影響が小さい特徴が無視されてしまう可能性がある
● 提案手法
○ Refined Data Augmentation
● モデル学習を2つのステージに分割
○ 学習の序盤では元データと拡張データを両方使用
○ 学習の終盤では元データのみを使用
提案手法
拡張データ 元データ 元データ
学習序盤 学習終盤
学習終盤では
拡張データを使わない
Refined Data Augmentaionの訓練誤差と汎化誤差
手法概要
● データ拡張の手法としてMixupとAutoAugmentを使用
● 最初の400 epochは拡張したデータを元データに混ぜて学習
● 最後の50 epochは元データのみで学習
結果
● 400 epoch目以降でテストデータに対する誤差が改善
そもそもデータ拡張の役割とは?
● データ拡張は、データの特徴の平均化と分散の正則化に対応
● 影響が大きい特徴はできるだけ保存され、影響が小さい特徴はデータ拡張後
に大きく変更される可能性がある
● データ拡張は事前知識によって関数空間に何らかの制約を与える正則化とし
て機能しており、モデルが主要な特徴に集中することを可能にする (e.g. 数字
画像では水平反転などは使われない)
特徴が残るように
データ拡張
事前知識により
やらないデータ拡張
✕
訓練誤差の等高線図
● データ拡張によって左図(データ拡張なし)から右図(データ拡張あり)で局所
最適の数が減少
→ データ拡張で大域最適への収束が容易になる
● Refined Data Augmentaionでは右図(データ拡張あり)で大域的に探索をし
た後、左図(データ拡張なし)でより詳細な探索をする
データ拡張なし データ拡張あり
実験: 正解率の比較
● 提案手法はほとんどの場合精度向上
○ 特にMixupにおいて、standard data
augmentationを用いてモデルをrefineするこ
とはCIFAR100で精度を大きく向上
● 他にも交差エントロピー誤差の調査やepoch数とオ
ーバフィッティングや物体検知における有効性に
ついての実験は論文を参照
まとめ
● データ拡張とは、機械学習で十分なデータがないときに、オリジナルデータ
を加工することでデータを増やす手法
● データ拡張は、データの特徴の平均化と分散の正則化に対応
● Refined Data Augmentationでは、学習序盤でデータ拡張を使い、学習の終
盤ではオリジナルデータのみ使用するという戦略を取る
● Refined Data Augmentationによって、データ拡張を用いて大きな特徴を捉
える大域的な探索をした後、細かい特徴を捉える局所的な探索ができる
● 既存のデータ拡張手法に適用することができ、多くの場合で精度を上げるこ
とができた
チャンネル紹介
● チャンネル名: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル
● URL: https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg
● チャンネルの内容
○ 経営・データサイエンス・開発に関する情報を発信しています。
○ 例: アジャイル開発、データパイプライン構築、AIで使われるアルゴリズム4種類など
● noteでも情報発信しています → https://note.com/kenichiro
APPENDIX
様々なData Augmentation手法
Mixup
・二つのサンプルをピクセルレベルで線形に組み合わせることによって別画像を生成
・いくつかの変異手法も存在
Cutout
・
Cutmix
・MixupとCutoutの複合
AutoAugment
・強化学習ベースの検索アルゴリズムで最善のdata augmentation戦略を探索
Population Based Augmentation
・Augmentation policy scheduleを探索
Fast AutoAugment
・各policyでtrainingすることを避けることでAutoAugmentを高速化
data augmentationの定式化
Mixupで生成されるx, y
Cutmixで生成されるx, y
Augmentationの仕組みの再考
Mixupで生成されるx, y
Cutmixで生成されるx, y
Augmentationの仕組みの再考
data augmentationの恩恵は2種類考えられる
・経験損失が小さくなること
・augmented dataが大きくなること
Refinementの効果
定義
● T1: AutoAugmentを用いて学習させるepoch数
● T2: refinementを行うepoch数
結果
● refinementがaccuracyを著しく向上させている
● augmented dataに対するオーバーフィッティングを抑制
Augmentationの仕組みの再考
data augmentationの恩恵は2種類考えられる
・経験損失が小さくなること
・augmented dataが大きくなること
数式関連
data augmentationにおけるmajor featureとminor featureの扱い
epochごとのエラー曲線
Mixupを除去したepochごとのテストエラー曲線
400 epochでのMixupの除去ではrefinementは起きていない
SVD
・Mixupベースの手法とAutoAugment手法では異なる傾向を示す
・考察: Mixupベースの手法は主にクラス間距離に影響を与えるが、
・AutoAugmentはより多くの特徴を導入して、普遍性を誘導する
交差エントロピー誤差
● clean dataとaugmented dataの分布gapを量的に評価するためにcross entropy (CE)を計
算
○ Mixupがclean dataとaugmented dataの間に最も大きな差異を生んだ
Tiny-ImageNetとImageNetの分類精度
● Tiny-ImageNetとImageNet両方のデータセットで、提案手法が通常のデータ拡張よりも優れて
いる結果となった
物体検知への展望
物体検知での結果
● 事前学習させたMixupとAutoAugmentのモデルは分類タスクでは高い性能を試したが、物体検出タ
スクではオリジナルに劣る結果
● Refinementを行った事前学習モデルは、行わなかったモデルだけでなく、オリジナルモデルよりも
高いmean average precision (mAP)となった
考察
● 分類と違い、物体検出では位置に関する追加の特徴量が必要
● データ拡張は位置に関する特徴量を小さなものとして扱う
● 物体検出には適さない複雑なデータ拡張手法であってもrefinementによってモデルの性能が向上す
る可能性

大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック

Editor's Notes

  • #2 今回は「大域的探索から局所的探索へ、データ拡張を用いた学習の探索テクニック」というテーマでお話します。 データ拡張やデータオーグメンテーションと呼ばれる技術は、データを人工的に増やすことにより機械学習の精度を上げることができるため、ディープニューラルネットワークで学習するときなどによく使われています。 データ拡張の手法は様々存在しているのですが、今回は学習途中でデータを切り替えることにより精度向上できる技術について紹介します。 データのより深い活用のために役立つ知識となるので、ぜひ最後までご視聴ください。 このチャンネルでは、機械学習などのデータサイエンスの研究の話や、経営や開発の話をしていきます。 興味のある方はぜひチャンネル登録をお願いします。
  • #3 ではまず、データ拡張とは何かについて説明します。 ディープニューラルネットワークは、画像認識など幅広い領域で高いパフォーマンスを出せるようになってきています。 しかし、多くのパラメータを持つ複雑なモデルであるディープニューラルネットワークは、学習に大量のデータを必要とするため、十分な量のデータを用意することが大きな課題となっています。 そこで、十分なデータがないのであれば、すでにあるデータから人工的にデータを作ってしまえばいいというのがデータ拡張の考え方です。 画像を左右反転させたり、ノイズを入れたり、色相を変えたりすることで、1つのデータから複数のデータを作成していきます。 データ拡張では、MixupやCutoutなどの複雑なデータ拡張手法も登場しており、注目されている研究領域の1つです。
  • #4 データ拡張は加工したデータを使用するため、訓練誤差が大きくなる傾向があります。 ここで少しだけ訓練誤差と汎化誤差について説明します。 機械学習では、テスト用のデータを用いた汎化誤差が小さいモデルを作成することを大きな目的の1つをします。 汎化誤差を小さくするために、オーバーフィッティングに気をつけながら訓練誤差を小さくするように学習します。 学習データで当てはまりのよいモデルであれば、テストデータでも当てはまりが良くなるであろうということですね。 しかし、データ拡張では、データ拡張をしない元データよりも訓練誤差が大きくなる傾向があります。 データ拡張をすると、訓練誤差が大きくなるが、汎化誤差が小さくなるということが起きているということですね。 機械学習では、訓練誤差をいくら小さくしても汎化誤差が大きければ使えないモデルになりますが、訓練誤差がいくら大きくても汎化誤差が小さければ使えるモデルになります。 あくまでも未知のデータでの予測精度の高さが求められるということですね。
  • #5 今回の動画では、データ拡張とデータの分布を再考した2019年に投稿された論文を解説します。 この論文では、データ拡張の新しい戦略であるRefined Data Augmentationが提案されています。 Refined Data Augmentationでは、学習途中の簡単なデータの切り替えで既存のデータ拡張手法のほとんどを改善することができます。 また、データ拡張によってどのようにパラメータ探索が変わるかを、訓練誤差の分布とともに論文内で説明がされています。 それでは、さっそく解説していきます。
  • #6 従来のデータ拡張では、2つの問題があります。 1つは元データとデータ拡張により得られたデータの分布の差がモデルの収束を阻害するということ。 もう1つが、データ拡張によって、相対的に影響が小さな特徴が無視されてしまう可能性があるということです。 これらの問題に対応するために、この論文ではRefined Data Augmentationという手法が提案されています。 Refined Data Augmentationでは、学習を2つのステージに分けています。 まず学習の前半では元データとデータ拡張によって得られたデータを使って学習します。 そして、学習がある程度進んだ段階で、データ拡張によって得られたデータを取り除き、元のデータだけで学習をします。 学習の終盤で元データのみを使うことにより、元データに含まれる影響の小さな特徴をモデルの調整の最終段階で反映していくイメージです。 シンプルな戦略なので、非常に簡単ですね。
  • #7 では、さっそくですが、実際にMixupとAutoAugmentという2つのデータ拡張の手法に対して、Refined Data Augmentationを適用した結果を紹介します。 ここにある図が訓練誤差と汎化誤差の推移を表しています。 縦軸が誤差で、横軸がEpoch数となります。 赤い線が訓練誤差になっており、赤の実線が元の学習データの訓練誤差、赤の破線がデータ拡張によって得られた学習データの訓練誤差を表しています。 データ拡張によって得られた学習データの訓練誤差が元の学習データの訓練誤差よりも誤差が大きいことが分かります。 そして、緑の線が汎化誤差を表しています。 緑の線の値が小さくなればなるほど、よい機械学習のモデルと言うことができます。 400epochにある黒い破線は、Refined data augmentationによるデータの切り替えのタイミングを表しており、このタイミングでデータ拡張によって得られたデータを学習から取り除いています。 そのため、赤い破線のデータ拡張によって得られた学習データの訓練誤差は400epoch以降はなくなっています。 この図を見ると、黒い破線のデータの切替のタイミングで、汎化誤差を表す緑の線が400epoch以降で下がっていることがわかります。 つまり、refined data augmentationによる戦略の変更でパフォーマンスが改善したということですね。
  • #8 Refined data augmentationが有効そうであるということがわかったところで、そもそもデータ拡張がなんの役に立っているかを解説をします。 データ拡張は、データの特徴の平均化と分散の正則化の役割を持ちます。 左下の猫の画像から拡張された画像のように、データ拡張では判別した物体の特徴を残すようにデータを加工します。 つまり、この例でいうと、猫だと判別できるような画像になるようにデータ拡張をしています。 言い換えると、猫が判別できるというような大まかな特徴だけ保存し、猫の判別に必要のない他の小さな特徴を取り除いたデータを作成するということです。 データ拡張では、判別したいものが判別できないものとなってしまっては意味がないため、事前知識による制約が必要となります。 例えば、数字データの場合は、水平反転すると全く別の物となるという事前知識があるため、水平反転を行いません。 まとめると、データ拡張は、事前知識を用いてデータを加工して増やし、それを学習に活かすことで、大まかな特徴を抽出するという役割を持っています。
  • #9 冒頭の説明で、データ拡張によって訓練誤差が大きくなるという話がありましたが、実際の訓練誤差の分布を等高線で表すと下の図のようなものとなります。 左の図がデータ拡張なしの訓練誤差の分布で、右の図がデータ拡張ありの訓練誤差の分布です。 データ拡張のありなしで、訓練誤差が変わっていることが分かると思います。 左のデータ拡張なしでは、局所最適解が複数あるのに対して、右のデータ拡張ありでは局所最適の数が減っており、大域的に最適な探索が容易になっていることが分かります。 Refined Data Augmentationでは、右の図のデータ拡張の分布で大域的な探索を行った後、左図のデータ拡張なしの分布で局所的な探索を行っているということになります。
  • #10 次に、論文にある実験結果の1つを紹介します。 右にある表が実験結果になっていて、左の2列が通常のデータ拡張の正解率、右の2列が今回提案されているRefined data augmentationでの正解率を表しています。 左2列と右2列を比較して、正解率が高かった部分が太字となっており、正解率がほとんど変わらなかった部分は、太字になっていません。 この表を見て分かるように、右2列のRefined data augmentationがほとんどの場合で正解率が向上しています。 この結果より、多くの場合で、データ拡張を途中でなくすことに意味があると言えそうですね。 この他にも論文では、交差エントロピー誤差の調査やepoch数とオーバーフィッティングの関係の調査、物体検知における有効性を調べた実験なども紹介されています。 興味のある方は、元の論文をぜひ読んでみてください。 Refined data augmentationはシンプルな戦略であるけれど、既存のアルゴリズムを改善して良い精度が出ているので、今後の拡張が期待できそうですね。
  • #11 まとめをします。 データ拡張とは、十分なデータがないときにオリジナルのデータから加工した人口データを作り出す手法で、画像認識の分野などで多く使われています。 データ拡張は、データの特徴の平均かと分散の正則化に対応しており、データの大まかな特徴を捉えることに貢献しています。 そして、今回の動画のメインテーマであるデータ拡張の新しい戦略であるRefined Data Augmentationでは、学習の終盤でデータ拡張によって得られたデータを取り除いて学習をします。 Refined Data Augmentationでは、最初に大域的な探索、最後に局所的な探索を行うことで、マイナーな特徴をモデルに組み込むことが可能になります。 Refined Data Augmentationは、既存のデータ拡張手法に簡単に組み込むことができ、多くの場合で精度を上げることができたということを紹介しました。 データ拡張の世界はまだまだ発展中なので、これからも面白そうな手法が出たら解説していきたいと思います。
  • #12 最後にチャンネルの紹介をさせてください。 このチャンネルでは、経営やデータサイエンスや開発の話をしていきます。 聞きたい話のリクエストも募集中です。 もし、この動画が役に立ったら高評価とチャンネル登録をお願いいたします。
  • #23 Rの値が大きいほどclean dataとaugmented dataの差異が大きいことを表す AugmentationとRefinementを比較するとMixupが最も改善している
  • #25 最後に物体検知における展望についてお話します。 下にある表が物体検知によるmean Average Presicionを表しています。 Standardとなっているものが、データ拡張をしていないもの