敵対的サンプルで精度を上げる(Adversarial Examples Improve Image Recognitionの紹介)

この記事について

この記事は2019/11/21に投稿された”Adversarial Examples Improve Image Recognition”[1]についての解説記事です。この論文の概要をまとめると以下のようになります。

敵対的サンプルを使ってImageNetとノイズ付きのImageNetの精度を大幅に改善するAdvPropを提案。Adeversarial Trainingにおいて、通常データと敵対的サンプルが通るBatch Normalizationを分けることを提案。通常のデータとノイズが乗っているデータはドメインが違うため、2つのデータを混合した分布で学習するのは不適ではないか、という考えに基づく。外部データを使わず、ImageNet Top-1 Accで85.5%を達成し、外部データを使わないものではState-of-the-artとなっている。

敵対的サンプルとAdversarial Training

敵対的サンプル(Adversarial Examples)とは、モデルを誤認識させる小さなノイズを人工的に作り出し、それを載せたデータのことです。画像に使った例が下の図です。

敵対的サンプルの例

ここでは、パンダの画像にモデルを誤認識させるように設計した小さなノイズを載せています。何もない状態では、少し自信なさげに「パンダ」と回答していたモデルが、Adversarial Exampleになると高確信度でGibbon(猿の一種)と回答しています。このようなノイズを使ってモデルを誤認識させることはAdersarial Attackと呼ばれています。

このノイズは、正しいラベルに分類したたときにロスが大きくなるような摂動を加えることで作ることができます。この原理を用いたAdversarial Attackやそれを防御する方法は、現在盛んな研究分野の1つとなっています。

ところで、モデルを誤判断させる敵対的サンプルですが、それを学習データに入れる方法があり、Adversarial Trainingと呼ばれています。

予め敵対的サンプルを学習データに加えておくことにより、少し敵対的サンプルへの耐性が向上し、場合によっては汎化性能も向上することもあります。

Key Insight

この記事で紹介する”Adversarial Examples Improve Image Recognition”では、AdaPropというAdversarial Trainingを上手く利用して精度を向上する手法提案しています。

この論文のキーポイントはBatch Normalizationという正則化手法の使い方です。Batch Normalizationとは、ミニバッチ毎に平均と分散を計算して入力を標準化し、それに係数とバイアスを加えたものを出力するという正則化手法です。Batch Normalizationは頻繁に用いられる正則化手法の1つで、後述するResNetにおいて層を深くすることができた要因の1つでもあります。

[8]より。Batch Normalizationのアルゴリズム

敵対的サンプルを上手く使って汎化性能を向上させることを目指しますが、敵対的サンプルと通常のデータは違う分布を持つため、Batch Normalizationに一緒くたに入れるとデータの分布が本来持つものと異なってしまいます。そのため、敵対的サンプルと通常データで別々のBatch Normalizationを通すことにより、不適な混合分布による影響を低減しています。

提案手法

この論文で提案しているAdvPropでは、各学習ステップで敵対的サンプルを作り、それを使った更新と通常のミニバッチデータを使った更新を行なっています。アルゴリズムは下記の通りです。

AdvPropのアルゴリズム

敵対的サンプルの生成、それによるモデルの更新は全て敵対的サンプル用のBatch Normalization (Auxiliary BN)を通し、通常のデータによるモデルの更新はmain BNを通していることに注目して下さい。これによって、2つの異なるドメインからくるデータを混ぜることによって発生する不適切な混合分布の発生を防いでいます。

また、Auxiliary BNですが原理上1つに限定されるわけではありません。必要に応じて3つ以上作ることもできます。また、推論時はAuxiliary BNを使わず、main BNのみ使用します。

実験で使うネットワークについて

結果をお見せする前に、実験で使用するネットワークであるResNetとEfficientNetの説明を少しします。

ResNet

ResNet[7]は2015年末に提案された画像認識用のネットワークで、当時のDeep Neural Networksの中では飛び抜けて深い152の層をもち、当時の最高性能を出しました。

深いネットワークでは勾配消失の問題がありましたが、ResNetではskip connectionと、Batch Normalizationを使ってその問題を解決しました。4年経った現在でも比較対象として頻繁に引用されており、画像認識における事実上基本モデルの1つになっています。

ResNetのSkip Connection

EfficientNet

次にEfficientNet[9]を説明します。EfficientNetは2019年5月に提案された、ネットワーク自動探索(Neural Architecture Search)で最適化されたネットワークで、最近注目を集めています。

初めて幅(channel数), 深さ(layer数)、解像度の3つを同時に探索したことにより、高精度、かつ、少パラメータなネットワーク構造探索に成功しました。スケーリングパラメーターφを固定することで、幅、深さ、解像度の3つを変えながら探索を行います。パラメータ数が少ない順に(φが小さい順)にEfficientNet-B0,B1…B7となっています。

結果

まず、ノイズなしImageNetをEfficientNetで学習させた結果です。

最大で0.7% Top-1 Accを向上させ、EfficientNetB7では85.2%を達成しています。図示はありませんでしたが、EffientNetB7をさらに巨大にしたEfficientNetB8で外部データを使わず、ImageNet Top-1 Accで85.5%を達成しています。これは外部データを使わないものではState-of-the-artです。(私の知る限り、外部データを用いた2019/11/28現在のSOTAは、2019/11/11の研究[3]でTop-1 Acc 87.4%です。)

次にノイズや間違いやすいデータセットにおける精度向上効果を見てみます。使うのはImageNet-A[4], ImageNet-C[5] Stylized-ImageNet[6]の3つです。ImageNet-Aは難易度が高い画像を集めたデータセット、ImageNet-Cは画像に様々なノイズを複数の段階で加えたデータセット、Stylized-ImageNetはスタイル変換をかけたデータセットです。

ImageNet-Cでは、mean corruption error(mCE)という指標で評価を行なっています。簡単にいうと、AlexNetと比較してどれだけ画像ノイズに強くなっているかという指標で、5つのノイズのレベルの平均値です。値が低いほどノイズに強いことを示しています。

mCEの定義式

結果は以下の通りです。どのデータセットに対しても改善されています。

最後にこの論文のポイントである「BNを分離」による効果を見てみます。以下の表はEffientNetのネットワークのサイズ(B0<B1<…<B7)とBNを分離したときの効果の向上の幅を示したものです。ネットワークが大きくなるほど、分離による恩恵が小さくなっています。これはネットワークが大きくなって表現力が向上したため、混合分布でもうまく学習できているからだと考えられます。

素のAdeversarial Trainingと比較したのが以下の図です。Adversarial Trainigを入れると汎化性能は悪化していますが、BNを分離するAdvPropを入れると精度向上に転じます。ここでもBNを分離することが大きな効果を生んでいることがわかります。また、ネットワークサイズが大きくなるほど(ResNet-50<…<ResNet-200)差分が小さくなっており、上の仮説の実証例となっています。

まとめ

この記事では、敵対的サンプル用と通常データ用にBNを2つ用意するAdeversarial Training, AdvPropを紹介しました。この戦略はネットワーク構造によらず使える非常に汎用的な手法です。さらに、ノイズにも強いネットワークができるので、非常に実用的な手法ではないかと考えています。

Twitter , 一言論文紹介とかしてます。

Reference

  1. Cihang Xie, Adversarial Examples Improve Image Recognition, arXiv:1911.09665, 2019
  2. Ian J Goodfellow, EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES , ICLR2015
  3. Qizhe Xie, Adversarial Samples-training with Noisy Student improves ImageNet classification, arXiv:1911.04252, 2019
  4. Dan Hendrycks et al. Natural adversarial examples. arXiv preprint arXiv:1907.07174, 2019
  5. Dan Hendrycks and Thomas G Dietterich. Benchmarking neural network robustness to common corruptions and surface variations. arXiv:1807.01697, 2018
  6. Robert Geirhos, et al. Imagenet-trained cnns are biased towards texture; increasing shape bias improves accuracy and robustness. In ICLR, 2018.
  7. Kaiming He, Deep Residual Learning for Image Recognition, srXiv1512.03385, 2015
  8. Sergey Ioffe et al. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift , arXiv:1502.03167,2015
  9. Mingxing Tan and Quoc V, EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks, arXiv:2019.11946, 2019

Data Scientist (Engineer) in Japan Twitter : https://twitter.com/AkiraTOSEI LinkedIn : https://www.linkedin.com/mwlite/in/亮宏-藤井-999868122