안녕하세요! 이번에 소개할 논문은 Residual Attention Network 입니다.
Residual Attention Network는 자연어 처리에서 활발하게 이용하고 있는 Attention에서 영감을 받아 탄생한 모델입니다. 실제 Attention 알고리즘을 사용하지는 않고, 비슷한 개념을 이용하기 때문에 Attention 이름이 붙여졌습니다.
Residual Attention Network는 Attention module로 이루어져 있습니다. 그리고, 이 Attention module은 다른 모델과 결합하여 사용할 수 있습니다. Attention module 내부에는 두 파트로 이루어져 있습니다. 마스크를 생성하는 부분과 기존 모듈(residual 모듈, inception 모듈)이 있습니다. 기존 모듈의 출력값에 마스크를 곱하여 출력값의 픽셀에 가중치를 부여하는 것입니다. 즉, Attention module은 이미지에서 중요한 특징을 포착하여 출력값을 정제해주는 역할을 합니다. 그리고 Attention module이 깊게 쌓일 수록 다양한 특징을 포착하고 가중치를 부여할 수 있어 성능이 향상됩니다.
위 그림을 보면 기존 이미지에서 생성한 피쳐맵이 Soft attention mask와 곱해져 배경을 제거했습니다. 중요하지 않은 정보라고 판단하여 배경을 제거한 것입니다. 그리고 high-level에서는 feature map이 마스크와 곱해져 풍선 픽셀을 정제합니다.
Attention module이 무엇인지 살펴보겠습니다.
Attention Module
Attention Module은 두 branch로 나뉘어집니다. soft mask branch와 trunk branch 입니다.
(1) Trunck branch
trunk branch는 입력값으로부터 특징을 추출합니다. trunk branch는 pre-activation resnet이나 resnext 같은 최신 모듈 구조를 사용합니다. 최신 모델에서 사용하는 모듈로 특징을 추출하는 것입니다. 출력값으로 T(x)를 출력합니다.
(2) Soft Mask Branch
Soft Mask Branch는 0~1 범위의 Mask를 생성합니다. M(x)로 표기합니다. 입력값을 최소 해상도 까지 down-sample하고, up-sample로 입력값 크기까지 해상도를 키웁니다. down-sample은 max-pooling을 사용하고, up-sample은 선형 보간법(linear interpolation)을 사용합니다. 그리고 soft-max를 거쳐서 0~1 범위를 갖습니다. 이 과정을 거치면 입력값에서 중요한 특징만 살아남게 됩니다. max-pooling으로 가장 큰 값을 이용해서 피쳐맵을 생성하면 작은 값들은 사라지기 때문입니다. 즉, 상대적으로 영향이 적은 픽셀들이 제거되는 것입니다. 그리고 크기를 키워서 trunch branch 출력값의 크기와 같아지도록 합니다.
다시 정리하면, down-sample로 가장 중요한 픽셀을 추출하고, up-sample로 원래 입력값에서 가장 중요한 픽셀의 위치를 파악하는 것입니다. 이렇게 마스크를 생성합니다. 그리고 마스크는 trunk branck 출력값에 곱해져 trunk branck 출력값을 정제하는 역할을 합니다. 논문에서는 feature selector라는 표현을 씁니다. 그리고 trunk 출력값에서 중요한 특징을 확대할 뿐만 아니라, 노이즈를 제거하는 효과도 있습니다.
M은 soft mask branch 출력값(0~1 범위), T는 trunk branch 출력값, H는 attention module 출력값 입니다.
Attention Residual Learning
단순히 Attention module을 쌓으면 오히려 성능이 저하됩니다. soft mask branch에서 생성한 마스크에서 0에 해당하는 값이 trunk branch 출력값을 0으로 만들기 때문입니다. 그래서 residual unit을 활용합니다.
residual unit을 이용하면 M에서 0에 해당하는 부분이 1이 됩니다. 따라서 F(x)를 identity mapping하고, M에서 높은 값에 해당하는 F의 값을 더 키웁니다.
Residual Attention Network Architecture
Residual Attention Network Architecture은 Attention module을 쌓은 것입니다. Attention 모듈은 하나의 특징만 포착하기 때문에 여러 모듈을 쌓아서 사용해야 합니다. 그리고 세 개의 하이퍼파라미터가 존재합니다. p, t, r은 각 파트에서 사용하는 residual unit의 개수를 의미합니다. 논문에서는 1,2,1 을 사용합니다.
Comparisons with state-of-the art
마지막으로 최신 모델과의 성능 비교입니다.
참고자료