오랜만의 포스팅이다...
읽은 모든 논문에 대해 정리를 하려고 시작했는데..
습관이 덜되고 일에 치이다 보니.. 다시 열심히 해봐야지..
누군가 이 리뷰에서 잘못된 부분을 발견한다면 또는 글쓴이가 잘못 이해하고 있는 부분이 있다고 생각한다면...
주저 없이 댓글을 남겨 준다면 많은 도움이 될거같다.
오늘 리뷰할 논문은 AttendNets이라는 논문으로 DarwinAI 와 Waterloo 대학에서
제안한 내용으로 2020년 9월 archive에 올라왔다.
Title: AttendNets: Tiny Deep Image Recognition Neural Networks for the Edge via Visual Attention Condensers
paper link: https://arxiv.org/pdf/2009.14385.pdf
특징 및 Contribution:
1. 단말 기기에서 image recognition을 수행하기 위한 AttendNets이라는 모델을 제안
2. 단말 기기란 스마트 폰과 같은 기기를 말하며 제안된 모델은 서버의 도움없이 on-device에서 동작할 수 있는 모델이다.
-> 이를 위해 모델 개발시 low-pricision(정확히 말하자면 8bit pricision)이라는 제한 사항을 두었다.
3. Visual Attendtion Condenser(VAC)라는 모듈을 사용하는데 이 모듈은 spatial-channel selective attention을 향상시킨 attention condenser이다. (attention condenser라는 개념이 햇갈렸는데 아래에 이해한대로 열심히 정리해놨다.)
4. 이 모델은 machine-driven design 되었는데 내가 이해한 바가 맞다면 AutoML로 모델 개발했다는 말이다.
구조:
이 모델의 특징적 구조는 visual attention condenser라는 모듈인데 self attention machanism을 사용한 모듈이다.
1. VAC
위 그림은 이 논문에서 주로 사용 되는 self- attention을 위한 구조이다.
이전 까지 타 논문에서 제안되고 사용된 self-attention는 주로 network의 accuracy 향상을 위해 channel-wise attention과 local attention을 분리하고 합쳤던데 반해 이 논문에서는 self-attention machanism을 network 의 효율성 향상을 위한 방향으로 탐구했다.
논문의 필자가 주장하는 바에 따르면 제안된 VAC는 낮은 차원수(reduced dimensionality)의 통합된 embedding을 학습하고 생성 할 수 있는데 생성된 embedding은 channel공간과 spatial 공간의 activation관계를 잘 나타내는 특징을 가진 다고 한다.
VAC는 다음과 같은 하위 컴포넌트로 구성되어있다.
1. Down mixing layer : V'=M(V)
역할: channel reduction
구현 method: point wise convolution
2. Condensation layer: Q=C(V')
역할: 공간도메인에서의 차원 축소(featurea의size축소라고 해석해도 될거 같다) 및 강한 activation결과를 가지는 관심영역(ROI)간의 거리 축소를 통해 spatial attention 응집
구현 method: Max pooling
3. Embedding structure: K=E(Q)
역할: spatial-channel activation 관계의 특징을 내포하는 embedding K 생성
->spatial-channel activation relationship을 characterzing했다고 하는 이유는 down-mixing layer에서 channel 간의
activation 관계를 모델링 하고 condensation layer에서 spatial domain의 activation관계를 모델링 했기 때문인거 같다.
구현 method: grouped convolution, point wise convolution
4. Expansion layer: A=X(K)
역할 : V'에서 관심 영역을 boosting 하기 위한 self-attention value 생성을 위한 spatial domain dimensionality 확대
구현 method: unpooling
5. Selective attention mechanism: V''=F(V', A,S), where S is scale factor
역할: selective attention
구현 method: element wise multiplication
6. Upmixing layer: V'''=M'(V'')
역할: VAC 모듈의 output이 input V와 같은 channel dimensionality를 같게 하기 위한 channel dimensionality 확대
구현 method: point wise convolution
이를 종합해 보면 제안된 VAC모듈의 코드 형태는 다음과 같다고 생각해 볼수 있다.
(어디까지나 수도 코드이다)
down_mixing = torch.nn.Conv2d(in_ch, out_ch,kernel_size=(1,1)) # in_ch > out_ch
condensation_layer =torch.nn.MaxPool2d()
embedding_structure = torch.nn.Sequential(torch.nn.Conv2d(out_ch, out_ch2, kernel_size=(k,k), groups=n),\
torch.nn.Conv2d(out_ch2, out_ch3, kernel_size=(1,1))) # where k>1, n>1
expansion_layer = torch.nn.MaxUnpool2d()
upmixing_layer = torch.nn.Conv2d(out_ch3, out_ch4, kernel_size=(1,1)) #where out_ch4> out_ch3
V' = down_mixing(V)
Q = condensation_layer(V')
K = embedding_structure(Q)
A = expansion_layer(K)
V'' =V'*A*S #where S is scale factor
V''' = upmixing_layer(V'')
2. Machine-driven Design
논문의 실험에 사용된 모델 구조는 식을 통해 machine-driven된 구조이다.
간단하게 생각하자면 디자인 하고자 하는 모델의 제한사항을 정의한 하고 그 제한 사항을 만족하는 모델을 iterative solving process같은 방식으로 찾는 것이다.
식에서 G(s)는 모델의 생성자이다. 생성된 모델 중 성능평가 함수 U()를 최대화 하면서 동작조건 $l_r(G)=1$ 을 만족하는 모델이 찾고자 하는 모델이다.
$l_r(G)$은 생성된 모델 G가 아래 두 조건을 만족하는지 판단한다.
1. $imagenet_{50}$에 대해 top-1 validation accuracy 가 71% 크거나 같다.
2. 8-bit weight pricision
본 논문에서는 prototype 모델에 대해 아래와 같은 기본적인 정의만 한 상태에서 구체적인 모델의 디자인은 위 수식을 통해 생성한다.
1. input channel=3
2. output logits은 average pooling, fully connected, softmax를 순서대로 거쳐 생성한다.
이렇게 생성된 모델은 아래와 같은 모습이다.
AttendNet-A와 B에서 공통적으로 보이는 특징은 VAC(visual attention condenser)모듈이 모델의 초반부에 집중적으로 사용되고 PEPE(projection-expansion-projection-expansion)모듈이 모델 후반부에 집중적으로 사용된다는 것이다.
PEPE모듈은 machine-driven exploration을 통해 발견한 구조이다.
VAC모듈이 모델 초반부에 많이 사용되는 것은 visual selective attention이 low-mid level visual feature extraction 단계에서 중요한 역할을 한다고 해석 할 수 있다.
AttendNets-A와 B의 구조적 차이는 효율성과 정확성의 균형을 이루며 특정 테스크를 수행하는데 필요한 모델을 찾기 위한 machine-driven exploration의 결이다.
논문의 필자는 이러한 구조적 차이를 macroarchitecture 와 microarchitecture 의 다양성이라고 표현했는데
macroarchitecture의 다양성이란 VAC, PEPE, spatial convolution, point wise convolution등이 서로 다르게 섞여있는 것이고
microarchitecture의 다양성이란 각 VAC, PEPE 모듈 내부의 layer들이 서로 다른 channel수를 갖도록 configuration된것에서 알 수 있다고 주장한다.
(의문은 microarchitecture에 대한 주장은 이해가 가는데, macroarchitecture의 다양성에 대한 주장은 이해가 가지 않는다.
논문에서는 At macroarchitecture level, there is a heterogeneous mix of visual attention condensers, PEPE modules, spatial and pointwise convolutions, and fully-connected layers.
라고 표현했는데 모델 구조를 나타낸 그림에서 AttendNets-A와 B 에서 macroarchitecture level의 차이는 보이지 않는다. 내가 잘못 이해 하고 있는 걸까? )
결과
위 테이블은 $imageNet_{50}$에 대한 대조군과 제안된 AttendNets 의 실험 결과를 보여준다.
AttendNets은 대조군들에 비해 낮은 8-bits weight pricision과 적은 MACs을 가짐에도 불구하고
대조군들과 유사하거나 높은 Top-1 accuracy를 보여준다.
목표했던 단말에서 on-device로 동작 가능한 model을 제안한다는 주장에 힘을 실어 주는 결과로 보인다.
'Deeplearning > paperReviews' 카테고리의 다른 글
[논문정리] swin transformer (7) | 2022.01.04 |
---|---|
[논문 정리]CoordConv: An intriguing failing of convolution neural networks and the CoordConv solution 리뷰 (0) | 2021.08.10 |
[InstanceSegmentation] SOLO:Segmenting Objects by Locations 논문 정리 (0) | 2021.08.08 |
[ObjectDetection] FCOS(Fully Convolution One-Stage Detection) 논문 리뷰 (0) | 2021.05.30 |
[object detection] CenterNet (Objects as points) 논문 리뷰 (0) | 2021.03.30 |