深層学習におけるデータ拡張の原理と最新動向
2021.6.10
中山 英樹(東京大学)
幡谷 龍一郎(東京大学)
 前半)データ拡張とは
◦ データ拡張の例
◦ なぜうまくいくのか
◦ 画像データ拡張のアプローチ
 後半)データ拡張の自動設計法
2
目次
データ拡張 (data augmentation) とは
3
もっとたくさん欲しい
学習データ
の変わらないような変換 を用意し、変換画像も訓練に用いる
ネコであることは変わらな
い画像変換
教師付き学習
データ ラベル
「実質」のデータ数を増やすことで汎化性能を向上させる
損失関数
例:画像分類
 AlexNet [Krizhevsky+ 12] 以来,様々な分野で成果を発揮
4
深層学習とデータ拡張
[Baird 93]
[Yeager+ 96]
[Simard+ 91]
 90年代から文字認識のために利用されてきた
AlexNetは6,000万のパラメータがあり,120万枚の画像に過適合する
データ拡張+Dropoutによる正則化が重要
表現学習への応用
5
FixMatch [Sohn+20]
各クラスに4枚しかラベル
付き画像がなくても90%
近い精度
近づける
SimCLR [Chen+20]
近づける 遠ざける
ラベルなしでも教師あり
学習に近い表現を獲得
意味に対して不変な変換後の画像の特徴表現が近くなるように
特徴抽出ネットワークを学習 [Bengio +13]
半教師あり学習: ラベルが一部しかない設定で学習
自己教師あり学習: ラベルがない設定で良い表現を学習
他分野での例(自然言語処理)
 Easy Data Augmentation [Wei&Zou 19]
特にデータ少ない場合に有効
 構文木の利用 [Şahin&Steedman 18] 「切り抜き」:主要でない木の部位を削除
「回転」:順番を入れ替え
6
なぜうまくいくのか?
7
 ①データ分布を埋めることによる正則化
 ②タスクに関する事前知識をデータの外から与えている
◦ 「同じさ」は対象物によって異なる
?
=
データ拡張の方法を設計するときは、①・②のどちらの
効果を与えるものかを考えることが大事
適当にデータを増やせばよいというものではない(錬金術ではない!)
「データ拡張ならでは」
の効果としてはこちらが
特に大事
(講演者の意見)
画像データ拡張のアプローチ①:経験的な変換
8
 基本的な画像処理
0.7 ネコ
0.3 + 0.7
0.3 イヌ
反転 クロップ 平行移動 回転 色調変化
 mixup [Zhang+ 18] [Tokozume+, 18]
◦ 二枚の画像とラベルを線形に混合
 Cutout [DeVries+ 17] [Zhong+, 17]
◦ ランダムに画像の一部を矩形でマスク
画像データ拡張のアプローチ②:生成モデルの利用
9
 画像生成モデルの発展 e.g., BigGAN [Brock+ 19]
実は生成画像
 注:画像生成によるデータ拡張はまだ十分に確立されてはいない
◦ 特に、生成画像は高周波成分が実画像と異なる [Daznic+ 20]
→ そのままではデータ拡張には不向き? [Ravuri&Vinyals 19]
画像データ拡張のアプローチ②:生成モデルの利用
1
0
視線推定タスクでの性能向上
 シミュレータとの組合せ [Shrivastava+ 17]
◦ CG画像を実画像へ変換
 条件付きGANの利用 [Han+ 19]
◦ 位置・大きさ等を指定した
腫瘍画像生成
いずれの場合も、元の画像データセット
以外の情報を入れていることが重要
1
0
データ拡張の課題
11
 適切なデータ拡張ポリシーの設計は難しい
◦ 通常、タスクごとに設計者の試行錯誤を要する
反転 クロップ 平行移動 回転 色調変化
・・・
どの変換を使う?どのくらいの強さ?どれくらいの頻度?
データ拡張を自動的に設計することはできないだろうか?
深層学習におけるデータ拡張の原理と最新動向
幡谷龍一郎
1
画像認識のためのデータ拡張の高速な設計
データ拡張 (Data Augmentation) とは
2
ラベルの変わらないような画像変換 aφ : x !→ x′
!→
例:左右反転 aφ
動物画像分類:同一のラベル
を用意
!→ 文字画像分類:異なるラベル
データ数が多いほど機械学習モデルの性能は向上
→ 現実にはデータ数は容易には増やせない
画像変換によって実質的なデータ数を増やす
必要な画像変換はデータ・タスクに依存
d d
画像のデータ拡張
3
強度
確率
組合せ
pRot
1 − pRot
rotate( ⋅ ; μRot)
pInv
1 − pInv
invert( ⋅ ; )
pInv
1 − pInv
solarize
rotate
translate_x
invert
画像変換の集合
solarize
多様な画像が得られる
→実質データ数が増えて性能向上
パラメータ 例:評価損失最小化
データ拡張戦略の設計は「組合せ」「確率」「強度」の最適化
データ拡張戦略の自動設計
4
非常に広大な探索空間
∼ の可能な組合せ
→ 強化学習やベイズ最適化などの利用
1032
1064
CNNの学習に時間がかかる
→小さなCNNや学習データの一部のみの使用で代用
ただしAutoAugmentは探索が高コスト
CIFAR-10 Baseline AA
error rates 3.1 2.6
AutoAugment [Cubuk+19]
(CIFAR-10には5000GPU時間)
→ 高速化の研究が進められてきた
データ拡張戦略の自動設計
5
非常に広大な探索空間
∼ の可能な組合せ
→ 強化学習やベイズ最適化などの利用
1032
1064
CNNの学習に時間がかかる
→小さなCNNや学習データの一部のみの使用で代用
ただしAutoAugmentは探索が高コスト
CIFAR-10 Baseline AA
error rates 3.1 2.6
AutoAugment [Cubuk+19]
(CIFAR-10には5000GPU時間)
→ 高速化の研究が進められてきた
→ 戦略を微分可能にすることで
勾配降下法による高速化
→CNNの学習の繰り返しを
 避けることで高速化
Faster AutoAugmentは
精度劣化なしに15分程度で探索可能
Faster AutoAugment [Hataya+2020]
6
戦略
元画像 変換後の画像
分布間距離
誤差逆伝播
+ 分類損失
元画像と変換後の画像を近づける 変換がクラスを変えないように制限
強度
確率
組合せ
pRot
1 − pRot
rotate( ⋅ ; μRot)
pInv
1 − pInv
invert( ⋅ ; )
pInv
1 − pInv
solarize
rotate
translate_x
invert
画像変換の集合
solarize
Faster AutoAugment [Hataya+2020]
Faster AutoAugment [Hataya+2020]
• データ拡張の目的は分布の一致
7
元画像の分布 変換画像の分布
データ拡張では変換画像によって
元画像分布の欠損を補いたい
• GANの損失の応用
戦略
元画像 変換後の画像
元画像 or 変換画像?
誤差逆伝播
実験結果
• 探索時間の比較 (GPU時間)
• 戦略の性能比較(テスト誤差率)*
8
Dataset AA Fast AA Faster AA
CIFAR-10 5,000 3.5 0.23
SVHN 1,000 1.5 0.061
ImageNet 15,000 450 2.3
Dataset Baseline AA Fast AA Faster AA
CIFAR-10 3.1 2.6 2.7 2.6
CIFAR-100 18.8 17.1 17.3 17.3
SVHN 1.3 1.1 1.1 1.2
ImageNet 23.7 22.4 22.4 22.7
Faster AutoAugmentは極めて高速に探索が可能
Faster AutoAugmentの戦略は先行研究とほぼ同等
* ImageNetではResNet-50 [He+16],そのほかのデータでは WRN28-10 [Zagoruyko&Komodakis 17] を使用
AA:AutoAugment [Cubuk+ 2019]
Fast AA:Fast AutoAugment [Lim+ 2019]
実験結果
9
Dataset ランダム Faster AA
CIFAR-100 21.6 20.9
戦略の学習は必要?*
Dataset 分類損失なし Faster AA
CIFAR-100 21.5 20.9
分類損失は必要?*
* WRN40-2 [Zagoruyko&Komodakis 17] を使用
戦略
元画像 変換後の画像
分布間距離
誤差逆伝播
+ 分類損失
元画像と変換後の画像を近づける 変換がクラスを変えないように制限
まとめ
10
データ数が多いほど機械学習モデルの性能は向上
→ 現実にはデータ数は容易には増やせない
画像変換で「実質的な」データ数を増やすデータ拡張が有効
有効なデータ拡張戦略を自動設計する手法が登場
→特に微分可能なデータ拡張戦略は高速に探索可能
https:!"github.com/moskomule/dda
https:!"github.com/albumentations-team/autoalbument
Faster AutoAugmentについて
実装:
問合せ: hataya@nlab.c.i.u-tokyo.ac.jp

SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向