[17′ CVPR] Residual Attention Network for Image Classification

This entry is part 15 of 22 in the series Vision Model

내용 요약

Residual Attention Network 이전 방식의 문제점을 생각해봅니다. 이어서 Residual Attention Network의 제안 방법을 살펴봅니다. 마지막으로 실험 결과를 통해 제안 방법의 효과를 살펴봅니다.

1. 들어가며

이번 글에서는 2017년 CVPR에 발표된 Residual Attention Network for Image Classification 논문을 리뷰합니다. 편의상 Residual Attention Network 라고 지칭하겠습니다.

2. 기존 방식의 문제점

CNN은 입력 이미지로부터 어디에 무엇이 있는지 등의 정보를 추출하고 이 정보들을 종합하여 이 이미지가 무엇인지를 판단합니다. 그런데 입력 이미지에서 꼭 필요한 부분에만 집중할 수는 없을까요? 예를 들어 아래 그림과 같은 강아지 이미지에 대해 CNN을 사용해 연산한다고 상상해보겠습니다.

1.중요한 정보와 안중요한 정보 구분하기
1.중요한 정보와 안중요한 정보 구분하기

입력 이미지에는 강아지뿐만 아니라 왼쪽의 태양과 오른쪽의 나무도 있습니다. 하지만 태양과 나무는 배경일뿐 강아지를 판단하는 데에 영향을 주면 안 되는 정보입니다. 그럼 필요 없는 정보는 무시하고 꼭 필요한 정보에만 집중해서 연산할 수는 없을까요?

3. 제안 방법

이러한 문제를 해결하기 위한 저자들의 제안 방법을 살펴보겠습니다.

3-1.  픽셀 별 중요도를 평가해서 반영하자 : Soft Mask

저자들의 큰 그림은 이렇습니다. 위의 강아지 그림을 연산하는 과정을 다시 상상해보겠습니다.

2.soft mask 적용하기
2.soft mask 적용하기

동일한 강아지와 태양, 나무 배경이 있는 이미지를 연산을 하는데, Mask를 씌워 필요 없는 배경 부분은 지워주는 겁니다. 이때 Mask는 입력 이미지와 동일한 사이즈여야 하고 픽셀 별로 중요도를 반영한 픽셀 값을 가져야 할 겁니다. 예를 들어 강아지 부분의 mask 픽셀 값은 1에 가까운 값이고, 나머지 배경 부분은 0에 가까운 값을 갖게 해 주는 거죠. 그 다음 입력 이미지와 Mask를 동일한 픽셀 위치 값끼리 곱해주면 최종적으로는 오른쪽 그림처럼 배경은 거의 지워진 그림이 나오게 될 겁니다.

3-2. Soft Mask 구현 방법

그럼 이렇게 배경을 지워주고 목표 대상에만 집중하게 해주는 Soft Mask는 어떻게 만들 수 있을까요?

3.soft mask 구현 방법
3.soft mask 구현 방법

다양한 방법이 있겠지만 저자들은 위의 그림과 같이 Auto Encoder 구조로 구현해줍니다. Soft Mask 생성 부분은 입력 Feature Map을 압축하는 과정과 팽창하는 구조로 구성되어 있습니다. 이때 압축하는 과정은 Pooling과 Convolution을 사용하고, 팽창하는 과정은 Interpolation과 Convolution을 사용했습니다. Pooling과 Interpolation은 학습 파라미터가 없는 고정된 연산이므로, 학습 과정에서 Convolution 파라미터만 사용하여 Soft Mask를 학습한다고 할 수 있습니다.

3-3. ResNet에 Soft Mask 기능 추가하기

그럼 위에서 살펴본 Soft Mask 기능을 ResNet에 추가해보겠습니다.

4.ResNet + Attention
4.ResNet + Attention

위 그림은 ResNet과 Soft Mask (Attention)를 추가한 Residual Attention Network의 기본 블록을 비교한 그림입니다. ResNet은 Convolution 연산과 Identity Mapping을 사용한 지름길 연결로 구성된 모습을 볼 수 있습니다.

이제 오른쪽의 Residual Attention Network는 ResNet과 어떤 부분이 다른지 보겠습니다. Convolution 연산과 Identity Mapping을 지름길로 연결해준다는 점은 동일합니다. 결정적인 차이는 Convolution 연산을 통해 나온 Feature Map을 지름길과 연결해주기 전에 Soft Mask를 적용해준다는 점입니다. 이렇게 Convolution 연산 결과 Feature Map과 Soft Mask를 동일 위치 픽셀 값끼리 곱해서 나온 Feature Map은 (분홍색) 위의 예시에서 배경은 지워지고 강아지에만 하이라이트 된 Feature Map이라고 생각할 수 있습니다. 최종 Block의 Output은 Identity Mapping 연산을 더해서 완성됩니다.

3-4. Soft Mask 학습의 의미

마지막으로 Soft Mask는 어떻게 학습되는 건지 생각해보겠습니다. 위에서 살펴본 기본 Block 만을 떼어서 학습 과정에서 Gradient의 흐름을 생각해보면 다음과 같습니다.

5.soft mask 학습 원리
5.soft mask 학습 원리

크게 보면 Convolution 연산 쪽으로 흘러가는 Gradient와 (파란색), Soft Mask 쪽으로 흘러가는 Gradient (초록색)이 있을 겁니다. 파란색 Gradient는 기존 ResNet과 마찬가지로 ‘입력 이미지가 강아지로 연산되기 위한 필터 값’을 학습할 겁니다.

그럼 초록색 Gradient는 무슨 역할을 할까요? 마찬가지 원리로 생각해보면 ‘어느 부분을 하이라이트해야 입력 이미지가 강아지로 연산될 것인지’를 학습할 겁니다. 이 두 가지 Gradient가 같이 연합하여 Soft Mask는 차차 강아지 부분을 찾아갈 거고, Convolution 필터는 강아지를 인식하기 위한 필터를 찾아가게 됩니다.

4. 효과

다음은 이렇게 제안한 방법의 효과에 대해 알아보겠습니다.

4-1. ImageNet 성능

ImageNet 데이터셋에 대한 ResNetInception 모델에 Soft Mask 기능을 추가하면 어떻게 되는지 살펴보겠습니다.

6.ImageNet 성능
6.ImageNet 성능

모든 ResNet, Inception 모델들에 대해 Soft Mask를 추가했을 때 (Attention) 성능이 향상되는 모습을 볼 수 있습니다.

Series Navigation<< [17′ CVPR] Active Convolution: Learning the Shape of Convolution for Image Classification[18′ CVPR] SENet : Squeeze and excitation networks >>
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top