CNNとViTノイズへの頑健性について



**原論文**

- SegFormer: Simple and efficient design for semantic segmentation with transformers
https://arxiv.org/abs/2105.15203

- Intriguing properties of vision transformers
https://arxiv.org/abs/2105.10497

- Are vision transformers robust to patch perturbations?
https://arxiv.org/abs/2111.10659

- Are transformers more robust than cnns?
https://arxiv.org/abs/2111.05464

- How do Vision Transformers work?
https://arxiv.org/abs/2202.06709


**日本語解説**


- Vision transformersの魅力的な特性とは？
https://ai-scholar.tech/articles/transformer/intriguing-properties-ViT



- CNN vs. ViT
https://speakerdeck.com/yushiku/cnn-vs-vit?slide=1




**関連研究**
CNNとViTはテクスチャ重視？形状重視？【認識特性の違い】
https://qiita.com/wakayama_90b/items/e2c9f5e65aec08ffc122

CNN+ViTモデルの傾向【サーベイ】
https://qiita.com/wakayama_90b/items/96bf5d32b09cb0041c39





# CNNはViTよりノイズへの頑健性が低い
【SegFormer: Simple and efficient design for semantic segmentation with transformers】
ViTの登場以降，ViTをセグメンテーションタスクに応用したSegFormerの論文でImageNetに様々なノイズを付与したImageNet-Cで評価し，ノイズへの頑健性を調査した．その結果ViTはCNNモデルと比較してノイズへの頑健性が高いことが分かった．





【Intriguing properties of vision transformers】
画像をマスク，パッチのシャッフル，敵対パッチの頑健性はViTモデルが有効．


<img width="400" alt="a.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457775/df27aa8c-2cd6-30bb-5d4b-dc21e2dd974d.png">







# そんなことないよ！CNNも同等だよ
【Are transformers more robust than cnns?】
CNNモデルのResNetとViTモデルのDeiTを比較した際に，バニラのResNetでは頑健性が低下するが，ResNetに使用される活性化関数（ReLU）を（GELU）に変更した場合にDeiTと同等な精度を達成する．

![スクリーンショット 2023-07-01 19.24.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457775/bc9dd691-f804-16f7-9f2e-1b4a741b3aae.png)

ResNetのデータ拡張手法をDeiTとあわせた場合にテクスチャ攻撃（テクスチャを変更）で同程度の結果になる．（DeiT：47.7）

<img width="400" alt="a.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457775/6e4a490e-6151-2fd3-23de-755e21a2fcd7.png">





## CNN（ResNet）の方がいいタスクもある
【Are vision transformers robust to patch perturbations?】
一部のパッチに高周波ノイズを加えた画像の場合，ResNetの方が頑健である結果になった．これは，ViTの認識方法によるものであり，画像を小領域（パッチ）に分割して，パッチ間の類似度計算を行う．その際に，全く関係ないパッチが混ざっていると認識の邪魔になると考える．下図に注目位置を示すAttentionを示す．上段のResNetはパッチ高周波ノイズの影響を受けないが，下段のDeiTはパッチ高周波ノイズの影響を受けて，高周波のパッチのみを注目してしまっている．例え正解であったとしても，判断根拠が間違っている認識をしてしまい危険である．

![スクリーンショット 2023-07-01 19.33.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457775/acb4af02-4df8-d1b4-5a6a-2c9f636c5f12.png)



# CNNとViTの異なる得意分野
[【How do Vision Transformers work?】](https://qiita.com/wakayama_90b/items/ea820aea2ebeb50898e4 "Qiita")詳細解説
分析の結果，CNNは高周波を認識，ViTは低周波を認識する特性がある．そのため，画像全体に高周波ノイズを付与した場合，高周波認識を行うCNNに影響があり，精度を低下させる．反対に，低周波ノイズを付与した場合は，ViTの精度が低下する．下図は縦軸に分類精度，横軸で右にいくほど高周波のノイズを付与していることを示す．CNNとViTは認識特性の違いから，ノイズの強さ特性も異なる．


<img width="400" alt="a.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457775/b456ccaa-e228-edbb-5584-ace5167ac30a.png">







## CNNの最強モデル（ConvNeXt）で学習条件を揃えて評価
【An Impartial Take to the CNN vs Transformer Robustness Contest】
結論：明確な勝者はいない

- ConvNeXtとDeiTで同程度の結果
    - 前景と背景を同クラスで入れ替えた画像（MS），前景と背景を別クラスで入れ替えた画像（MR），テクスチャ情報を入れ替えた画像（CCS）
    - Out of Distribution Detection(分布外検知）
    - 学習データとテストデータの分布が異なる（共変量シフト）
    - ImageNet-A（ResNet誤分類）,-R（折り紙など），-SK，-V2


<!--
ViTは画像を全体を並列に処理しているため画像全体を注目する．けど，CNNのように局所的な認識をする．図１では，Mnistをランダムにすると，精度低下．CIFA-10をランダムにすると精度変化しない．
単純なものに依存してしまう．分類でCIFA-10は無視してしまう．
-->


ViTはチヤホヤされているけど，超有能ではないことが分かる．ImageNetの分類精度はConvNeXtの方が高い結果であるし．


# まとめ
今回は，CNNとViTノイズへの頑健性について解説した．結果は，同程度ってことが分かった．しかし，CNNとViTがそれぞれ認識に得意としている画像があるため，応用するタスクによって使い分けれるといいのかもです．