본문 바로가기

논문 리뷰/etc.

Can CNNs Be More Robust Than Transformers? 논문 리뷰

지금까지 transformer의 견고성은 self attention에서 나온다고 알고 있었지만 attention 없이 순수 CNN으로 transformer의 구조를 흉내내어 보았더니 CNN 쪽이 더 견고성이 좋았다는 내용이다

 

Github

Arxiv

 

Can CNNs Be More Robust Than Transformers?

The recent success of Vision Transformers is shaking the long dominance of Convolutional Neural Networks (CNNs) in image recognition for a decade. Specifically, in terms of robustness on out-of-distribution samples, recent research finds that Transformers

arxiv.org

 

 

 

Abstract

최근 ViT의 성공은 이미지 인식에서 CNN의 오랜 우위를 뒤흔들고 있다. 특히, 분포 외 샘플에 대한 견고성 측면에서, 최근의 연구는 transformer가 다른 훈련 설정에 관계없이 본질적으로 CNN보다 더 견고하다는 것을 발견했다. 더욱이 transformer의 이러한 우수성은 그들의 self attention과 같은 아키텍처 그 자체에 기인한다고 믿어진다. 본 논문에서, transformer의 설계를 면밀히 검토함으로써 그 믿음에 의문을 제기한다. 본 논문의 연구 결과는 견고성을 높이기 위한 세 가지 매우 효과적인 아키텍처 설계

  • 입력 이미지 패치 적용
  • 커널 크기 확장
  • 활성화 및 정규화 계층 감소

 

로 이어지지만 쉽게 코드로 구현할 수 있을 만큼 간단하다. 이러한 구성 요소를 결합하면 transformer만큼 강력하거나 심지어 더 강력한 순수한 CNN 아키텍처를 구축할 수 있다.

 

 

 

Introduction

본 연구는 신경 아키텍처 설계의 관점에서 분포 외 견고성을 개선하기 위한 세 가지 핵심 메시지를 제공한다.

  • 이미지를 겹치지 않는 패치로 패치화하면 분포 외 견고성에 크게 기여할 수 있다. 흥미로운 점은 패치 크기가 클수록 더 좋다는 것이다.
  • 분포 외 샘플에서 모델 견고성을 확보하기 위해 훨씬 더 큰 컨볼루션 커널 크기를 채택하는 것이 필요하다.
  • 정규화 계층과 활성화 함수는 적극적으로 줄이는 것이 분포 외 견고성에 도움이 된다. 이는 부차적으로 훈련 속도 또한 20%정도 향상시킨다.

 

 

 

 

Settings

딥러닝에서 가장 고전적인 ResNet과 ViT의 아키텍처를 기반으로 비교를 수행한다.

 

먼저 다음과 같이 4 가지의 다른 컨볼루션 블록을 인스턴스화 한다.

(a)는 1x1 conv 사이에 깊이별 컨볼루션을 배치한 전형적인 bottleneck 형태

 

(b)는 깊이별 컨볼루션의 채널이 더 많은 inverted bottleneck 형태

 

(c)는 ConvNeXT와 유사하게 깊이별 컨볼루션을 앞으로 옮기고 1x1 conv에 더 많은 가중치를 둔다.

 

(d)는 (c)에서 깊이별 컨볼루션을 뒤로 옮긴 형태

 

ResNet bottleneck 블록을 4개의 인스턴스화된 블록으로 교체하고 모델 성능을 높이기 위해 채널수를 늘린 후 블록 수를 조정하여 기준 모델의 총 FLOPs를 DeiT-S와 거의 동일하게 유지한다.

왼쪽에서부터 ImageNet, Stylized-ImageNet, ImageNet-R, ImageNet-schet

 

 

 

Component Diagnosis

CNN에서 놀랍도록 잘 작동하는 transformer의 3가지 효과적인 아키텍처들을 소개한다.

 

Patchify Stem

네트워크의 가장 초기 계층을 stem이라고 하는데, 기준 모델의 ResNet 스타일 stem을 마치 ViT의 패치와 같이 커널 크기 p와 stride 크기 p의 컨볼루션 patchify stem으로 교체한다.

 

패치 크기가 크면 클수록 정확도는 떨어질지언정 견고성은 계속해서 향상되는 것을 볼 수 있다.

 

Large Kernel Size

Self attention의 장점 중 하나는 전체 feature 맵을 수용 필드로 가지고 있다는 점인데, 이를 모방하기 위해 깊이별 컨볼루션의 커널 크기를 증가시킨다.

 

위의 그림을 보면 일반적으로 더 큰 커널 크기가 더 높은 정확도와 견고성을 보장하지만 너무 커지면 포화된다는 것을 알 수 있다.

 

커널 크기가 커지면 훨씬 더 큰 계산 비용이 필요하지만 깊이별 컨볼루션의 커널 크기만 확장함으로써 계산 비용이 거의 늘어나지 않는다.

 

Reducing Activation and Normalization Layers

ConvNeXT의 활성화와 정규화 계층을 줄이는 아이디어를 그대로 차용했다.

 

일련의 실험의 결과를 보면 하나의 ResNet 블록에서 각각 정규화와 활성화를 1개씩만 사용하는 경우가 견고성이 가장 높았다.

 

활성화와 정규화를 줄인 인스턴스 블록들의 구조는 다음과 같다.

 

 

 

Components Combination

앞서 설명한 3가지의 구성요소들을 합쳤을 때 비교

세 가지 방법을 모두 사용하였을 경우 모든 벤치마크에서 DeiT를 능가해 self attention이 없는 순수한 CNN도 ViT만큼 우수한 견고성을 달성할 수 있다는 것을 보여준다.

 

 

 

Knowledge Distillation

지식 증류의 개념

DeiT가 선생, ResNet-50이 학생일 때는 ResNet-50이 DeiT의 성능을 능가할 수 없으며, 그 반대의 경우는 DeiT가 ResNet-50을 능가한다.

 

하지만 DeiT가 선생 모델일 때 Robust-ResNet을 학생 모델로 사용하면 선생 모델을 능가할 수 있다. 이로써 Robust-ResNet이 명백히 더 나은 모델이라는 것을 증명할 수 있다.

 

 

 

Larger Models

더 큰 모델에서 비교해도 더 좋다.

 

 

 

Conclusion

본 논문에서는 transformer 아키텍처를 자세히 살펴보고 self attention 블록 외에 몇 가지 유용한 설계를 찾아본다. 연구진은 이러한 설계를 결합하여 ResNet에 도입하면 동일한 규모의 비전 트랜스포머 모델보다 더 강력할 수 있는 순수한 CNN 아키텍처로 이어질 수 있다는 것을 발견했다.