[Data Augmentation 第1回] mixup 事始め

皆さんご存知の通りDeep Learningの学習には大量の学習データが必要です。実際の問題として学習データを数多く集め、適切なラベルを振るのはとても大変です。私たちは以前からData Augmentationにはお世話になってきていていますし、クロマキー合成でデータ生成をしてみたり、Unityを利用してみたりと色々なことを試してきました。(そういえばスタジオを借りたこともありました)



このあたりの研究は活発なようで、最近でもcutoutとかrandom eraseを見かけます。こうした中で汎用的にData Augumentationが可能なmixupはとても興味深く、いくつか実験も行っています。今回はまずは論文のご紹介からはじめます。

1. mixup とは

mixupのarxivにある論文はこれです。

mixup: Beyond Empirical Risk Minimization
https://arxiv.org/abs/1710.09412  [1]

最新論文はこちらです。

https://openreview.net/forum?id=r1Ddp1-Rb  [2]

ICLR 2018 Conferenceに採択されたそうです。

手法としてmixupは以下を実施するだけです。

mixup1_pic1

要は2つのデータに対して、ラベル/データ双方を線形補完して新たなデータを作ろうというものです。新たにBeta分布のαがハイパーパラメータとなってしまいますが、ドメイン知識なしでもData Augmentationができるのは興味深いところです。センサーデータなど データを増やす汎用的な方法がなかなか無いもありますので、この手法がうまくいくととてもよいです。なお、Beta分布の確率密度関数は以下の形となります。α=1の場合は一様分布、αが1より小さければ鍋型、1より大きい場合は釣り鐘型になります。

図 11 Beta分布
図 11 Beta分布

2. mixupの効果

mixupの効果を論文から拾ってみます。参照しているのは最新論文[2]です。

2.1 ImageNet 分類

Model Method Epochs Top-1 Error Top-5 Error
ResNet-50 ERM (Goyal et al., 2017) 90 23.5
  mixup α = 0.2 90 23.3 6.6
ResNet-101 ERM (Goyal et al., 2017) 90 22.1
  mixup α = 0.2 90 21.5 5.6
ResNeXt-101 32*4d ERM (Xie et al., 2016) 100 21.2
  ERM 90 21.2 5.6
  mixup α = 0.4 90 20.7 5.3
ResNeXt-101 64*4d ERM (Xie et al., 2016) 100 20.4 5.3
  mixup α = 0.4 90 19.8 4.9
ResNet-50 ERM 200 23.6 7
  mixup α = 0.2 200 22.1 6.1
ResNet-101 ERM 200 22 6.1
  mixup α = 0.2 200 20.8 5.4
ResNeXt-101 32*4d ERM 200 21.3 5.9
  mixup α = 0.4 200 20.1 5

表 2-1 [2] Table 1: Validation errors for ERM and mixup on the development set of ImageNet-2012

ImageNet-2012の分類による性能比較。ERMはEmpirical Risk Minimization(経験誤差最小化)の略です。真の分布の期待値からの誤差は期待誤差(expected error)と呼ばれますが、一般には期待誤差を直接評価することができませんので訓練データの誤差(経験誤差/empirical error)で近似します。これを最小化するのがまさしくERMで通常の機械学習の枠組みです。ここでは従来手法のことを指しています。ERMでは標準的なdata augmentationであるスケール、アスペクト比、ランダムクロップ、水平反転など適用しています。mixupについて、αは0.1から0.4の間で実験を行っている。αを大きくしすぎるとunderfittingとなったとのこと。epochs 90 -> 200 でERMは結果がほぼ変りませんがmixupは性能が向上しています。200 epochs でTop1が1%以上違うのはかなりすごい結果ですね。ResNet-50でResNet-101並みの性能が出でているのも注目です。

2.2 CIFAR-10 AND CIFAR-100

Dataset Model ERM mixup
CIFAR-10 PreAct ResNet-18 5.6 4.2
  WideResNet-28-10 3.8 2.7
  DenseNet-BC-190 3.7 2.7
CIFAR-100 PreAct ResNet-18 25.6 21.1
  WideResNet-28-10 19.4 17.5
  DenseNet-BC-190 19 16.8

表 2-2 [2] Figure 3: Test errors for ERM and mixup on the CIFAR experiments.

CIFAR-10とCIFAR-100での性能比較。Epoch数は200で固定。α=1。これもかなり性能向上しています。αが大きいのはネットワークのパラメータに対してデータ数が少ないからでしょうか。

2.3 SPEECH DATA

Google commands dataset。65,000の発話(utterance)1秒の長さで30クラス。yes, no, down, leftなどの命令を異なる数千人で発話されたものです。16 kHzまでの音を周波数変換した画像(160 x 101)に変換。画像変換後にmixupしました。

mixupのときは最初の5エポックはmixupオフで学習し、その後オンで学習した

そうすると初期の収束が早いことを発見したそうです。

Model Method Validation set Test set
LeNet ERM 9.8 10.3
  mixup (α = 0.1) 10.1 10.8
  mixup (α = 0.2) 10.2 11.3
VGG-11 ERM 5 4.6
  mixup (α = 0.1) 4 3.8
  mixup (α = 0.2) 3.9 3.4

表 2-3 [2] Figure 4: Classification errors of ERM and mixup on the Google commands dataset

LeNetよりも表現力の高いVGG-11の方で性能向上が見られました。

2.4 MEMORIZATION OF CORRUPTED LABELSMEMORIZATION OF CORRUPTED LABELS

CIFAR-10で20,50,80%の確率でラベルをランダムに変更する(Corrupt)、という実験を行っています。

Label corruption Method Test error Training error
Best last Real Corrupted
20% ERM 12.7 16.6 0.05 0.28
ERM + dropout (p = 0.7) 8.8 10.4 5.26 83.55
mixup (α = 8) 5.9 6.4 2.27 86.32
mixup + dropout (α = 4, p = 0.1) 6.2 6.2 1.92 85.02
50% ERM 18.8 44.6 0.26 0.64
ERM + dropout (p = 0.8) 14.1 15.5 12.71 86.98
mixup (α = 32) 11.3 12.7 5.84 85.71
mixup + dropout (α = 8, p = 0.3) 10.9 10.9 7.56 87.9
80% ERM 36.5 73.9 0.62 0.83
ERM + dropout (p = 0.8) 30.9 35.1 29.84 86.37
mixup (α = 32) 25.3 30.9 18.92 85.44
mixup + dropout (α = 8, p = 0.3) 24 24.8 19.7 87.67

表 2-4 [2] Table 2: Results on the corrupted label experiments for the best models.

ERMはトレーニングエラーが小さくテストエラーが大きいので過学習しているといえるでしょう。Corruptedはランダムにラベルを変更しているにも関わらずトレーニングエラーが小さくなっています。これはネットワーク中にトレーニングデータを記憶している(MEMORIZATION)と解釈できます。mixupはαを1,2,8,32と変更して実験を行っています。一番いい結果はmixupとdropoutを組み合わせでした。
なお、α=8,32のときの確率密度関数はこんな形状です。

mixup1_002

2.5 ROBUSTNESS TO ADVERSARIAL EXAMPLES

Metric Method FGSM I-FGSM
Top-1 ERM 90.7 99.9
mixup 75.2 99.6
Top-5 ERM 63.1 93.4
mixup 49.1 95.8

(a) White box attacks.

Metric Method FGSM I-FGSM
Top-1 ERM 57.0 57.3
mixup 46.0 40.9
Top-5 ERM 24.8 18.1
mixup 17.4 11.8

(b) Black box attacks.

表 2-5 [2] Table 3: Classification errors of ERM and mixup models when tested on adversarial examples.

Adversarial examples とは視覚的に知覚できないような小さな摂動を加えることでモデルの性能低下を引き起こすサンプルです。Adversarial examplesに対する堅牢性を改善することは、活発な研究のテーマとなっています。この問題の対応方法はいくつか提案はされていますが、計算上のオーバーヘッドを招きがちです。mixupはオーバーヘッドを回避しつつ堅牢性の向上に役に立ちます。
評価はホワイトボックスとブラックボックスの2種類。ホワイトボックスは2つのモデルのそれぞれについて、高速勾配符号法(Fast Gradient Sign Method /FGSM)及び反復FGSM法(Iterative FGSM /I-FGSM)を使用して、モデル自体を使用して敵対的な例を生成しています。すべてのピクセルについて最大摂動= 4となる。I-FGSMでは、ステップサイズが等しい10回の反復を使用しました。
ブラックボックスについては、最初のERMモデルを使用して、FGSMとI-FGSMを使用して敵対的な例を生成する。次に、第2のERMモデルとmixupプモデルの堅牢性をこれらの例に対してテストしました。
mixupを使うとrobust性は向上が認められます。但しだまされなくなる訳ではないようです。

2.6 TABULAR DATA

Dataset ERM mixup
Abalone 74.0 73.6
Arcene 57.6 48
Arrhythmia 56.6 46.3
Dataset ERM mixup
Htru2 2.0 2.0
Iris 21.3 17.3
Phishing 16.3 15.2

表 2-6 [2] Table 4: ERM and mixup classification errors on the UCI datasets.

非画像データに対するmixupの性能をさらに調べるために、UCIデータセット(https://archive.ics.uci.edu/ml/datasets.html )から抽出された6つの任意の分類問題に関する一連の実験を実施しました。ここでは隠れ層2のFCスタックで活性化関数はReLUです。最適化関数はAdamで、サイズ16のミニバッチの10回以上にわたって学習しました。数値はテストデータにおけるエラーです。6つの評価すべてでERMを下回るものはなく、大半で性能が改善されています。

2.7 STABILIZATION OF GENERATIVE ADVERSARIAL NETWORKS (GANS)

生成系として盛り上がっているGAN(Generative Adversarial Networks)についてもmixupは有効でした。数学的にGANは以下を最適化する問題と同一です。

mixup1_pic2

mixupによる最適化の式は以下のとおり

mixup1_pic3

実画像とブレンドするので、discriminatorには難しくなるのではないでしょうか。

003

図 2-1 [2] Figure 5: Effect of mixup on stabilizing GAN training at iterations 10, 100, 1000, 10000, and 20000.

mixupの方が安定した生成を実現しているのが見て取れます。

2.8 ABLATION STUDIES

Mixupはラベルとデータを線形補完して新たなラベルとデータを作成していますが、その方法にはいくつか選択肢がありえます。いくつかのバターンで比較実験を行いました。

データセット:CIFAR-10
ネットワーク:PreAct ResNet-18
weight decay は2種類( 10-4, 5 X 10-4 )

Method Specification Modified Weight decay
Input Target 10-4 5 X 10-4
ERM   X X 5.53 5.18
mixup AC + RP 4.24 4.68
AC + KNN 4.98 5.26
mix labels and latent representations (AC + RP) Layer 1 4.44 4.51
Layer 2 4.56 4.61
Layer 3 5.39 5.55
Layer 4 5.95 5.43
Layer 5 5.39 5.15
mix inputs only SC + KNN(Chawla et al., 2002) X 5.45 5.52
AC + KNN X 5.43 5.48
SC + RP X 5.23 5.55
AC + RP X 5.17 5.72
label smoothing (Szegedy et al.,2016) ε = 0.05 X 5.25 5.02
ε= 0.1 X 5.33 5.17
ε= 0.2 X 5.34 5.06
mix inputs + label smoothing (AC + RP) ε= 0.05 5.02 5.4
ε= 0.1 5.08 5.09
ε= 0.2 4.98 5.06
ε= 0.4 5.25 5.39
add Gaussian noise to inputs σ = 0.05 X 5.53 5.04
σ = 0.1 X 6.41 5.86
σ = 0.2 X 7.16 7.24

表 2-7 [2] Table 5

AC:すべてのクラスでmixする
SC:同じクラスでmixする
RP:ランダムに選んだペアでmixする
KNN:(k=200)のk-近傍のペアでmixする(特徴量が何かは記載なし)
label smoothing:ε/10の確率で誤ったラベルに付け替える

結果の数値は最後の10エポックのテスト誤差の中央値です。CNN feartureをmixしたりlabel smoothing したりいろいろと評価したが結果としてmixupが一番よいとの結果でした。

2.9 その他の可能性

論文の「5 Discussion」にて、mixupの探索の方向性も議論されています。1つは回帰問題、構造化予測問題への応用、もう一つは教師なし、半教師あり、および強化学習への応用です。mixupはドメイン知識なしにデータ拡張が可能で、かつその計算上のオーバーヘッドがほとんどない点を考えると、色々応用してみたい手法であります。

3. mixupで半教師あり学習?

以下の記事でmixupを再定式化が検討されています。

http://www.inference.vc/mixup-data-dependent-data-augmentation/

これによるとバイナリまたは多項式クロスエントロピー損失を使用する限りにおいて、ラベルのミックスを含まない形での再定式化が可能だった。但しλの分布は以下に変わります。

mixup1_pic4

ラベルのミックスなしでデータだけのミックスで対応できるならば半教師あり学習に応用できるはず。是非試してみたいところです。

4. 今後

私たちmixupについてのリサーチと実験を行ってきています。それらのいくつかは別の記事にて報告していきます。