深層学習モデルをロバストにする最新手法　Achieving robustness in classification using optimal transport with hinge regularizationをまとめてみたよ


論文↓
[Achieving robustness in classification using optimal transport with hinge regularization](https://openaccess.thecvf.com/content/CVPR2021/papers/Serrurier_Achieving_Robustness_in_Classification_Using_Optimal_Transport_With_Hinge_Regularization_CVPR_2021_paper.pdf)

# そもそもNeural Networkのロバスト性ってなに？

これまでの研究から、Neural Networkには**敵対的画像（adversarial example）**が存在することが知られています。
敵対的画像とは、Neural Networkの入力に対して、NNが**誤分類**をするようにノイズを加えた画像のことです。例えば**めっちゃ精度を出すNeural Networkであっても**、うまく攻撃を防御するように学習していないと**簡単に敵対的画像を生成されてしまいます**。

Neural Networkのロバスト性とは、敵対的画像が入力されても正しく分類できる性質です。近年の流れから、新しい攻撃手法は、既存のロバストなNeural Networkやロバストになる学習方法で学習されたneural Networkに対して攻撃を仕掛けて、ロバスト性を低下させることを目標に開発されています。

敵対的画像は、例えば**自動運転の分野**であったり、防犯カメラで**人物検知** をする際に大きな問題となります。そのため、2014年以降、この敵対的画像を生成する攻撃手法と攻撃を防ぐ防御手法が開発されており、現在に至っても**絶対的な防御手法や攻撃手法の開発はできていません。**

有名な事例で、自動で交通標識を認識するシステムを搭載した自動車が、天下一品のロゴを**交通標識の侵入禁止のマーク**と誤認識した[事例](https://grapee.jp/561164)がありました。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/71ac0197-c1af-b50e-c36f-4d580f26554d.png)
確かに、似ている。。。。。。。


# 先行研究では

先行研究では、**1-Lipschitz性**をNeural Networkの制約として加えるとロバスト性が向上することが知られていました。しかし、これまでの制約のかけ方では、**1-Lipschitz性**を重視するあまり、本来のタスクの精度が低下することが課題となっていました。

そこで本手法では、1-Lipschitz性を担保しつつ、精度を向上させる防御手法を提案しました。以下で、手法の詳細について述べ、最後に実験結果を示します。

※1-Lipschitz性についてはappendixに定義を記載しています。

# Wasserstein距離(Earth Mover Distance, EM Distance)の導出

Wasserstein距離とは、２つの確率分布が与えられたときの近さを表すものです。画像処理や音声処理では比較的有名な距離尺度として情報科学の分野で知られています[1]。

距離空間$\Omega$上の２つの確率分布$\mu, \nu$におけるEM distanceは、

$$\displaystyle W(\mu, \nu) = \inf_{\pi \in \Pi}(\mu, \nu)\mathbb{E}_{x,z\sim \pi}||\bf x-\bf z||$$

です。ここで、$\Pi(\mu, \nu)$は$\mu$と$\nu$を周辺分布とする$\Omega\times \Omega$上の確率測度全体です。

特にwasserstein-1距離では、Kantorovich-Rubinsteinの双対表現が知られています。

```math 
 W(\mu,\nu)=\sup_{f\in Lip_1(\Omega)}\mathbb{E}_{x\in \mu}[f(\mathbf{x})]-\mathbb{E}_{x\in\nu}[f(\mathbf{x})]
```


ここで$Lip_1(\Omega)$とは、 $\Omega$上の1-Lipschitzな関数全体を表しています。

EM distanceを用いているものとして、例えばWasserstein GANはその双対表現をcritic（他のGANにおけるDiscriminator、生成画像か実画像かどうかを２値分類する分類器）の目的関数として学習しています。Wasserstein距離を今回のrobust trainingに対して用いる理由は、NNにLipschitz正則化を与える必要があり、既存の研究から、学習済みのNNがロバストなることが期待されているためです。

まず、単純にkantorovich-Rubinsteinの双対表現を用いて2値分類を行う分類器を学習させた場合にうまくいかない例を示し、本論文でのmain contributionであるhinge-KRロスについて示していきます。

# KR classifierの導出

KR classifierの導出$X$を特徴ベクトル空間として、2値分類問題を考えます。ラベル集合を$Y=\{1,-1\}$とします。また2つの確率分布$P_+=\mathbb{P}(X|Y=1)$、$P_- = \mathbb{P}(X|Y=-1)$を用意し、確率変数$Y$に関する事前分布として、$p=P(Y=1)$を設定します。﻿

この定義により、$1-p=P(Y=-1)$となります。この2値分類問題は、$p=\frac{1}{2}$の場合に安定します。

Wasserstein GANのcriticの学習と同様にして、$P_+$と$P_-$を分類する学習済み分類器を$f^* $とする。このとき次で定まる$f^*_c$の符号(Sign)を見れば分類が可能となる

```math 
f^*_c(x)=f^*(x)-\frac{1}{2}(\mathbb{E}_{z\sim P_+}[f^*(z)]+\mathbb{E}_{z\sim P_\_ }[f^*(z)])
```
![スクリーンショット_2021-08-29_22.03.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/7863e732-fd92-c74a-8d58-a6f46079e469.png)



上記のFig1は、KR classificationのトイデータに対する分類結果である。$\hat{f}$は、実験的に得られた解（大域的最適解とは限らない）を表している。(a)(b)からわかるように、うまく分類できていない。筆者らは、kantorovich-Rubinsteinの双対表現で学習された分類器について、2つの分布における画像の期待値の差分を最大化することでは、2つの分布の重なりを最小化（＝うまく分類すること）を達成していないと要因分析をしている。

# Hinge-KRの導出Hinge lossについて

上記のうまく分類できない問題に対して、著者らはHinge Lossを追加して対応しています。Hinge Loss自体は、最近**GANの学習において着目**を浴びており、代表的なものとして、SPADE[3]と呼ばれる手法があります[4]。

著者らは、Hinge Lossを先程のkantorovich-Rubinsteinの双対表現に加えた損失関数として

```math 
\sup_{f\in Lip_1(\Omega)} -L_\lambda^{hKR}(f)=\inf _{f\in Lip_1(\Omega)}\mathbb{E}_{x \sim P_\_}[f(x)]-\mathbb{E}_{x\sim P_+}[f(x)]+\lambda \mathbb{E}_x(1-Yf(x))_+
```


を提案しており、この損失関数を**Hinge-KR loss**と提唱しています。Hinge Lossは最後の項です。Neural Networkが正しく分類しているときにロスが$0$となり、逆に正しく分類できていないとロスが発生するようになっています。

実際、$Y=1\ (-1)$の場合、NNの出力が$f(x)=1 \ (-1)$だとロスが０になり、$f(x)=-1 \(1)$の場合、ロスが$2$になります。


さらに、著者は、Hinge-KR lossで学習した場合、

- 最適解が存在していること(Theorem 1)
- 最適輸送理論の1つであるとみなせること(Theorem 2)

を示しています。

![スクリーンショット_2021-08-29_23.06.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/a69a2bf6-dda1-bb25-e3f3-6df2180eb035.png)
![スクリーンショット_2021-08-29_23.06.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/c362ca94-de7c-e862-224e-f3d1902551e2.png)


# Hinge-KR lossを用いた場合のadversarial example

Hinge-KR lossを用いて学習された学習済みモデル$f$について、ある画像$x$に対するadversarial example $adv(f,x)$は、

$$\displaystyle 
adv(f,x)=\underset{z\in \Omega|sign(f(z))=-sign(f(x))}{\arg\min} ||x-z||$$

と表される。制約$sign(f(z))=-sign(f(x))$で誤分類していることを表しており、最小化する対象である$||x-z||$で加えられているノイズが最小となることを表しています。

ここで、Hinge-KR lossで学習された分類器$f$は、1-Lipschitzである（そのように学習する）ことから次の不等式が成り立ちます。

$$|\hat{f}(x)|\leq |\hat{f}(x)-\hat{f}(adv(\hat{f},x))|\leq ||x-adv(\hat{f}, x)||.$$

この不等式により、任意のadversarial attackのノイズの最小ノルムが$|\hat{f}(x)|$であることがわかります。

よって、Hinge-KR lossで学習された学習済みモデルは、

- Hinge Lossにより**精度が向上する**
- KR Lossにより**ロバスト性向上する**

ことが期待されます。

![Untitled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/9d3b2418-c140-788a-7c96-42c0a7b0c86a.png)

上記のFig2は、Hinge-KR lossを用いて、トイデータに対して学習を行なった結果です。Fig1と比較して、(a)で**精度が向上**していることがわかります。

# 複数クラスへの対応

これまでは２値分類を対象に考えてきたが、CIFAR10に代表されるデータセットではマルチクラスに対応していることが必要である。著者らは上記のHinge-KR lossで学習するNNをクラス数分用意して、one-vs-allで学習・推論をさせれば良いとしています。

これでマルチクラスのデータセットへの適用が可能となり、既存の手法との比較が可能となりました。

# どうやって有効だと検証した？

著者らは、5つの手法と比較しています。

- $Adv$: Adversarial learning[6]
- $LIP_{log}$: [7]で提唱されている方法に従って学習。
- $GNP_{hin}^m$ : hinge lossに関する勾配の正則化を行なって学習[8]。
- $GNP_{log}$: [8]の類似で、log entropy lossに関する勾配の正則化を行なって学習。
- $hKR_\alpha^m$ : 提案手法。

使用データセットは以下の3つである。

- MNIST: one-hotクラス分類
- CIFAR10：one-hotクラス分類
- Celeba-A：バイナリクラス分類

![スクリーンショット_2021-08-29_23.43.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/d8925737-2dad-92a7-e8e0-5b5b9068283d.png)



上記のFig3は、5つの手法で学習したモデルに対して、deepfool[9]という攻撃手法を適用し、画像枚数が増える（横軸）ごとに、攻撃を受けて正解率（縦軸）が減少していく様子を可視化しています。これを見ますと、提案手法であるhKRの正解率の減少傾向が緩やかであることがわかります。


![スクリーンショット_2021-08-29_23.57.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/459b4f8d-8f82-0d17-a66d-34aef421c3bf.png)


上記のTable1は、3つの攻撃手法に対する攻撃前(Base)と攻撃後の正解率をまとめています。**なお、４行目の$l_2GPD$は$l_2PGD$の表記ミスです。**

Table1を確認すると、攻撃前の正解率では$Adv[$6]で提案されている手法が最も良いですが、リプシッツ制約を受けている$GNP$系の手法と比較すると**提案手法である$hKR$が良いことがわかります。**

3つの攻撃手法を受けた後の正解率を確認すると、$FGSM$に対してのみ$Adv$[6]で学習されたモデルの正解率が高いですが、それ以外では**$hKR$で学習されたモデルの正解率が良い**ことがわかります。

これによりhKRが有効であることが実験的に示されました。

以下に、今回比較した5つの防御手法で学習されたモデルに対して行われたadversarial attackで出力されたadversarial exampleの例を示します。


![スクリーンショット_2021-08-30_0.11.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/258554/fe11e3eb-977d-1f37-1916-e0dd9b894b03.png)



ノイズで顔が覆われているがいらっしゃることがわかります。防御手法ごとにノイズの加わり方が異なるのは面白いですね。

# 次に読むべき論文は？

今回は、CVPR2021で発表された**防御手法**について解説しました。CV関連で**adversarial attackの話題は毎年議論**されるので、非常に多くの論文があります。

例えば、同じ**CVPR2021**に掲載されている

[Enhancing the Transferability of Adversarial Attacks through Variance Tuning](https://openaccess.thecvf.com/content/CVPR2021/papers/Wang_Enhancing_the_Transferability_of_Adversarial_Attacks_Through_Variance_Tuning_CVPR_2021_paper.pdf)

は、タイトルから推察する限り、**adversarial exampleの転移性**に着目して、転移性を高めるための攻撃手法を開発していると思います。この**転移性を利用してblack box attack**ができたりするので**転移性を高める研究は非常に重要**だと考えています。

全てのCVPR2021の論文には目を通せていないので、追加がありましたら次の記事で記載します。

# Reference

[1]:  [Earth Mover's Distance (EMD)](https://aidiary.hatenablog.com/entry/20120804/1344058475)

[2]: [Improved Training of Wasserstein GANs](https://arxiv.org/pdf/1704.00028.pdf)

[3]: https://nvlabs.github.io/SPADE/(https://nvlabs.github.io/SPADE/)

[4]: https://qiita.com/koshian2/items/9add09dabb44cab2b4c0(https://qiita.com/koshian2/items/9add09dabb44cab2b4c0)

[5]: [SPECTRAL NORMALIZATION FOR GENERATIVE ADVERSARIAL NETWORKS](https://arxiv.org/pdf/1802.05957.pdf)

[6]: [Towards Deep Learning Models Resistant to Adversarial Attacks](https://arxiv.org/pdf/1706.06083.pdf)

[7]: [Parseval Networks: Improving Robustness to Adversarial Examples](https://arxiv.org/pdf/1704.08847.pdf)

[8]: [Preventing Gradient Attenuation in Lipschitz Constrained Convolutional Networks](https://arxiv.org/pdf/1911.00937.pdf)

[9]: [DeepFool: a simple and accurate method to fool deep neural networks](https://arxiv.org/pdf/1511.04599.pdf)

[3]: https://qiita.com/koshian2/items/9add09dabb44cab2b4c0(https://qiita.com/koshian2/items/9add09dabb44cab2b4c0)

# Appendix: リプシッツ性、リプシッツ連続

２つの距離空間$(x,d_x)$, $(Y, d_Y)$に対して、写像$f:X\rightarrow Y$が**リプシッツ連続**であるとは、定数$K\geq 0$が存在して

$$d_Y(f(x_1), f(x_2))\leq Kd_X(x_1, x_2) ~ (\forall x_1, x_2 \in X))$$

を満たすことである。定数$K$自身、またその最小のものをリプシッツ定数と呼ぶ。特に$K<1$のとき、縮小写像とよばれる。

- 一階微分が有界な任意の関数はリプシッツである。
- 微分方程式における解の一意性はこの性質から導かれる。