← Back to list

Squeeze-and-Excitation Networks 논문 리뷰

안녕하세요, 박희준입니다. 오늘은 지도 교수님께서 추천해주신 “Squeeze-and-Excitation Networks”라는 논문 리뷰를 진행하겠습니다. 이 논문은 2018년에 CVPR에서 발표된 논문입니다. 제목을 보면…

Heejun Park · 2024-02-15 01:37 · 6 claps · 17.6 min read
#senet #se-block #squeeze-and-excitation #computer-vision
Open on Medium ↗

Squeeze-and-Excitation Networks 논문 리뷰

그림 1. 썸네일

그림 1. 썸네일

안녕하세요, 박희준입니다. 오늘은 지도 교수님께서 추천해주신 “Squeeze-and-Excitation Networks”라는 논문 리뷰를 진행하겠습니다. 이 논문은 2018년에 CVPR에서 발표된 논문입니다. 제목을 보면, “Squeeze-and-Excitation” 라는 말이 나옵니다. 이것은 “압축과 강조” 라는 뜻입니다. 즉, 어떤 Feature를 압축하고, 그걸 활용해서 기존의 Feature를 강조하는 데 사용한다는 뜻입니다.

목차

논문 리뷰의 구성은 아래와 같습니다.

0 Abstract 1 Introduction 2 Methodology 3 Model and Computational Complexity 4 Experiments 5 Ablation Study 6 논문을 읽으며 느낀 점

0 Abstract

아래와 같이 요약문을 정리해보았습니다.

연구 배경: CNN의 Convolution 작업이란, 하나의 Local Receptive Field안에서 Spatial과 Channel-wise 정보들을 함축하는 연산입니다. 이전에 많은 연구들은 Convolution 연산의 Spatial 인코딩의 능력을 향상시키는 데 집중했습니다. 연구 목적: 본 연구에서는 CNN의 Channel-wise 인코딩 능력을 향상하는 데 초점을 둡니다. 개발 방법: Channel 간의 상호의존성을(Interdependencies) 계산하고, Channel-wise 정보를 재측정하는(Recalibrate) 새로운 기법을 제안합니다. 이 방식이 바로 Squeeze-and-Excitation입니다. 실험 결과: 계산 비용이 조금 더 들어가지만, CNN의 성능을 많이 향상시킵니다. 코드: https://github.com/hujie- frank/SENet

요약문을 다 읽고, Keyword 부분에서 익숙한 개념이 등장했습니다. 바로 “Attention”입니다. 어떻게 보면, 본 연구에서 제안하는 방식이 Attention의 일종이라고 할 수 있을 것 같습니다. 본 연구의 핵심 아이디어를 간파하면 왜 Attention과 유사한지 알 수 있을 것입니다!

그림 2. 키워드

그림 2. 키워드

1 Introduction

CNN은 아래와 같은 다양한 작업을 수행할 때 활용됩니다.

  • Image Classification
  • Human Pose Estimation
  • Semantic Segmentation
  • Object Detection

지금까지 많은 연구들은 Convolution 연산이 Spatial 정보를 더 잘 인코딩할 수 있도록 돕는 연구를 수행하는 데 집중했습니다. 본 연구에서 제안하는 Sqeeze-and-Excitatation 기법은, Feature Map의 채널 간의 관계를 파악하고, 그걸 활용해서 선택적으로 Feature의 채널을 강조하는 방법입니다.

Squeeze-and-Excitation 작업을 수행하는 가장 기본적인 단위를 SE Block이라고 명칭합니다. SE Block의 구조는 아래 그림 3과 같습니다. 입력 X가 Convolution 연산을 통해 U가 됩니다. 이때, U는 Squeeze 연산을 거쳐서 (1, 1, C) 크기의 Embedding이 됩니다. 그리고 Excitation 연산을 통해 채널에 곱할 수 있는 Weight가 생성됩니다. 이 Weight들은 U에 곱해져서 SE Block의 출력 결과를 생성하게 됩니다. SE Block에 대한 더 제세한 설명은 본 논문 리뷰의 섹션 2에서 소개하겠습니다.

그림 3. SE Net의 전반적인 아이디어

그림 3. SE Net의 전반적인 아이디어

하나의 Network안에 여러 개의 SE Block이 사용될 수 있습니다. 이걸 SENet이라고(SE Network) 부릅니다. 이때, SE Block의 삽입 위치에 따라 SE Block이 수행하는 역할이 달라집니다. Network의 앞 부분에 사용된 SE Block은 클래스와 무관한(Class-agnostic) 정보를 강조합니다. 즉, 기본적인 표현에(Low-level Representation) 대한 신호를 강조하게 됩니다. 그리고 Network의 후반부로 갈 수록, SE Block들은 클래스에 특화된(Class-specific) 정보를 더 강조하는 역할을 수행합니다.

SE Block은 매우 간단한 구조를 갖고, 이미 존재하는 Network에 직접 삽입할 수 있습니다. SE Blcok을 사용하면, 모델의 복잡도와 Computation 비용이 살짝 증가하지만, 성능은 많이 향상됩니다. SENet의 효과를 검증하기 위해 ImageNet 등 다양한 데이터셋을 사용합니다. 추가적으로 SENet은 ILSVRC 2017에서 1등을 달성했다고 합니다.

2 Methodology

그림 4.

그림 4.

SE Block은 위에 있는 그림 4와 같이 CNN의 Convolution 층 뒤에 추가할 수 있습니다. SE Block에 대한 소개를 하기 전에 우선 Convolution 연산에 대해 살펴보겠습니다.

2.1 Convolution Operation and its Limitation

그림 4에서 Ftr 함수는 Convolution 연산을 의미합니다. 이때 입력 X는 (H’, W’, C’) 크기를 갖습니다. 그리고 출력 U의 크기는 (H, W, C)입니다. 이때 U = [u1, u2, …., uC]라고 할 수 있습니다. 그리고 Convolution 연산에 사용된 커널을 V라고 정의하겠습니다. 이때 V = [v1, v2, …., vC]라고 볼 수 있으며, vc는 커널 V에 속한 각각의 필터를 의미합니다.

기본적인 Convolution 연산을 사용하면 한계가 있습니다. 커널의 크기를 Receptive Field라고 볼 수 있는데, 한 번의 Convolution 연산을 수행하게 되면, 해당 Receptive Field 안에서만 Feature 추출 작업이 이루어집니다. 즉, 이 연산은 Local Feature 추출이지, Global Feature를 추출하는 작업이 아닙니다. 이에 대한 쉬운 이해를 위해 아래 그림 5를 그려보았습니다. 커널의 크기가 (2, 2)이고 stride가 (2, 2)인 상황입니다. 입력 Feature Map은 (4, 4)이고, 출력 Feature Map은 (2, 2)입니다. 입력 Feature Map에서 1번 영역 안에서 Convolution 연산이 이루어진 게 출력 Feature Map의 1번이 됩니다. 마찬가지로, 입력 Feature Map의 2번 영역에서 이루어진 Convolution 연산이 출력 Feature Map의 2번이 됩니다. 요기서 보면, 1번과 2번은 각각의 Local 연산이지, Global 연산이 아닙니다. 즉, 1번과 2번 사이에서 이루어진 Feature 추출이 없습니다.

그림 5.

그림 5.

2.2 Squeeze: Global Information Embedding

그림 6.

그림 6.

이제 논문에서 제안한 SE Block에 (Squeeze-and-Excitation Block) 대해 살펴보겠습니다. SE Block의 작동 원리인 SE는 Convolution 연산의 출력 결과인 Feature Map에 수행하는 작업입니다. SE 작업은 두 가지 연산으로 나뉩니다. Squeeze 연산과 Excitation 연산입니다.

Squeeze 연산은 매우 간단합니다. 이는 그림 6에서 볼 수 있습니다. 출력 Feature Map이 C개의 채널을 갖고 있을 때, 각 채널에서 Global Average Pooling을 수행하면 됩니다. 이렇게 되면, 각 채널의 함축적인 정보를 담을 수 있게 됩니다. 출력 Feature Map에 채널 축으로 Global Average Pooling을 수행한 결과를 z라고 합니다. z는 [z1, z2, …., zC]로 표현할 수 있는데, zc를 구하는 수식은 아래와 같습니다.

식 1

식 1

논문에서 주장하길, Global Average Pooling말고도 다른 Pooling 전략을 사용해도 괜찮다고 얘기합니다.

2.3 Excitation: Adaptive Recalibration

Excitation 연산은 채널 간에 상호연관성을(Interdependency) 포착하는 데 사용됩니다. 이걸 수행하기 위해 Excitation 연산은 두 가지 조건을 만족해야 합니다.

  1. 채널 간의 Non-linearity를 포착할 수 있어야 합니다.
  2. Non-mutually-exclusive한 관계를 갖어야 합니다. 즉, 여러 개의 채널이 강조될 수 있도록 해야한다는 뜻으로, One-hot Activation이 되지 않도록 해야 한다는 의미입니다.

두 가지 조건을 만족하는 Excitation 연산을 아래 보이는 것과 같이 정의했습니다.

식 2

식 2

δ: ReLU 함수 (Non-linearity) W1: (C/r, C) 크기의 행렬 (채널 간의 Non-linear한 특성 파악 + Channel Reduction for Computational 효율) W2: (C, C/r) 크기의 행렬 (채널 수를 복구하기 위한 Expansion) σ: Sigmoid 함수 (Gating Mechanism, 모든 값을 0~1 사이의 값으로 출력)

위에서 W1과 W2의 크기를 나타내는 데 사용된 r은 하나의 hyperprameter입니다. 그리고 식 2를 그림으로 시각화하면 아래와 같습니다. 아래 예시에서는 C=4, r=2로 설정해보았습니다.

그림 7.

그림 7.

위 식의 출력 결과인 s는 [s1, s2, …., sC]입니다. 그러면 이제, s가 어떻게 U를 rescaling하는지 살펴보겠습니다. Rescaling을 수행하기 위해 아래 그림 8에서 보이는 Fscale이라는 함수가 사용됩니다.

그림 8.

그림 8.

Fscale 함수는 아래와 같이 정의됩니다.

식 3.

식 3.

Fscale은 채널 별 곱셈을(Channel-wise Multiplication) 의미합니다. 그러면 아래와 같은 결과가 나옵니다.

식 4

식 4

지금까지 Squeeze-and-Excitation에 대해 알아보았습니다. SE Block을 사용하면, 채널 간의 관계를 포착할 수 있어서 기본적인 Convolution 연산보다 더 Global한 정보를 포착하는 데 도움이 될 수 있습니다! 논문에서는 이런 걸 Self-attention과 유사한 효과를 갖는다고 얘기합니다.

2.4 예시화

SE Block은 간단한 Image Classifier인 VGGNet, 복잡한 InceptionNet과 ResNet에도 적용이 가능합니다. InceptionNet과 ResNet에 적용한 구조는 아래 그림 9에서 볼 수 있습니다.

그림 9.

그림 9.

ResNet의 경우, Identity Branch와 더해지기 전에 SE Block을 추가하면 됩니다. 위 그림에서 나온 방식 말고도 다른 방식으로도 SE Block을 추가할 수 있는데, 이에 대한 상세한 설명은 논문의 섹션 6.5에서 제공합니다.

3 Model and Computational Complexity

SE Block이 실용적이려면, 성능과 모델 복잡도 사이에 좋은 Trade-off 관계가 있어야 합니다. 성능과 모델 복잡도에 대한 내용을 아래 표 1에 정리했습니다.

표 1.

표 1.

입력 이미지의 크기가 (224, 224)일 때, ResNet-50과 SE-ResNet-50을 비교해보겠습니다. SE Block의 Excitation에 필요한 hyperparameter r은 16으로 설정했습니다. SE-ResNet-50을 사용하면, Error rate가 감소한 걸 볼 수 있습니다. 이때 Computation은 3.87 GFLOPs로, 기존의 모델에 비해 0.26%만 증가했습니다.

나머지 내용은, 실행 속도와 Parameter 개수에 대한 내용입니다. 따로 정리는 하지 않겠습니다. 궁금하면 읽어보시는 걸 추천드립니다.

4 Experiments

SE Block의 효과를 살펴보기 다양한 데이터셋과, 작업(Computer Vision Task), 그리고 모델 구조를 활용해서 실험을 진행합니다.

4.1 Image Classification

첫 번째 실험에서는 ImageNet 2012 데이터셋을 사용했습니다. ImageNet은 1.28M개의 Training 데이터와, 50K개의 Validation 데이터가 있습니다. 그리고 총 1,000개의 클래스르 갖습니다. 지표로는 Top-1과 Top-5 Error Rate를 사용했습니다.

Network Depth

우선 Network의 깊이 차이에 대한 실험 결과입니다. 표 1를 참고해주세요.

  • ResNet 계열의 경우, 모든 경우에서 SENet의 성능이 더 좋았습니다.
  • SE-ResNet-50를 ResNet-101과 비교했을 때 Error Rate는 비슷한데 SE-ResNet-50의 GFLOPs은 ResNet-101에 절반정도입니다.
  • SE-ResNet-101과 ResNet-152도 비슷한 양상을 보입니다.

물론, SE Block을 추가하는 것이 Network의 층을 늘리는 것과 유사합니다. 하지만, SE Block을 사용하므로 얻는 득이 더 큽니다.

Integration with Modern Architectures

ResNet에 비해 최근에 나온 ResNeXt와 Inception-ResNet-v2도 사용해서 실험을 진행했습니다. 이 부분도 ResNet에서 나온 것과 비슷한 양상의 실험 결과가 나왔습니다. 확인해보는 걸 추천드립니다.

그 밖에 VGGNet에서도 비슷한 양상이 보였습니다. 그리고 SE Block이 사용되었을 때 최적화가 어떻게 진행되었는지 살펴보기 위해 Training Curve 그림이 아래 제공됩니다.

그림 10.

그림 10.

Mobile Setting

마지막으로, 모바일 환경에서 사용되는 MobileNet과 ShuffleNet으로 진행한 실험에 대해 살펴보겠습니다. 이때도 비슷한 양상을 보입니다!

Additional Datasets

ImageNet 말고, CIFAR-10과 CIFAR-100으로도 실험을 진행했습니다. 실험 결과는 아래 표 2와 3과 같습니다. SENet이 Original 모델들보다 다 좋은 성능이 나왔습니다. 학습에 대한 상세 내용은 논문을 따로 읽어보는 걸 추천드립니다.

표 2.

표 2.

표 3.

표 3.

4.2 Scene Classification

그림 11. 출처: https://paperswithcode.com/dataset/places365

그림 11. 출처: https://paperswithcode.com/dataset/places365

Scene Classifation를 수행하기 위해 Places365-Standard 데이터셋을 사용했습니다. 아래 보이는 것과 같이 SE-ResNet-152의 Error Rate가 ResNet-152보다 낮습니다.

표 4.

표 4.

4.3 Object Detection on COCO

Object Detection을 수행하기 위해 COCO 데이터셋을 사용했습니다. 이때, Faster R-CNN을 사용했습니다. 아래 그림은 Object Detection 결과를 정리한 표입니다. SENet의 성능이 더 좋은 걸 확인할 수 있습니다!

표 5.

표 5.

4.4 ILSVRC 2017 Classification Competition

이 부분은 제가 설명하지 않겠습니다. 따로 읽어보시는 걸 추천드립니다.

5 Ablation Study

Ablation Study에서는 가장 기본적인 모델과 데이터셋이라고 할 수 있는, ResNet-50과 ImageNet 데이터셋을 사용했습니다. 학습 관련 상세 내용은 논문을 참고하세요.

5.1 Reduction Ratio

Reduction Ratio r은 식 2에서 W행렬의 크기를 줄이는 Hyperparameter입니다. 아래 표는 r 값을 다르게 했을 때 Error Rate과 필요한 Prameter 개수를 보여줍니다. Parameter의 수가 많다고 꼭 성능이 좋은 것은 아닙니다. 즉, Monotonic하지(단조롭다) 않습니다. r = 16일 때 성능과 비용 사이에 괜찮은 Trade-off 관계가 보이는 것으로 관찰됩니다.

표 6.

표 6.

추가적으로, ResNet-50의 모든 SE Block에 동일한 r값을 사용하는 것은 최적의 성능을 보여주지 않는다고 저자는 얘기합니다. 이것에 대한 이유가 흥미롭습니다. ResNet-50 내의 각 Layer에서 수행하는 역할이 다르기 때문이라고 합니다.

5.2 Squeeze Operator

Squeeze 연산을 할 때 Global Max Pooling이 아닌 Global Average Pooling을 선택한 이유에 대해 설명하는데, 제가 따로 설명하진 않겠습니다.

5.3 Excitation Operator

Excitation 연산에서 사용되는 Sigmoid 활성화 함수를 다른 함수들로 대체했을 때의 성능 변화에 대한 실험을 진행하였습니다. 제가 따로 설명하진 않겠습니다.

5.4 Different Stages

요기서는, ResNet-50의 각각의 Stage에 SE Block을 추가했을 때 성능 변화를 보고합니다. 이때 SE Block이 삽입된 Stage들은 2, 3, 4였습니다. 이 부분 역시 제가 따로 설명하지 않겠습니다.

5.5 Integration Strategy

요기서는 SE Block이 Residual Architecture에 적용되는 다른 디자인에 대한 Ablation 실험을 진행합니다. 크게 두 가지 실험을 진행합니다. 첫 번째 실험에서는 SE Block의 위치에 대한 실험을 진행합니다. 그리고 두 번째 실험에서는, SE Block을 Residual Block 안에 위치시켰을 때의 성능 변화에 대한 실험 결과를 제공합니다. 흥미로운 내용이므로, 논문을 꼭 읽어보는 걸 추천드립니다.

6 논문을 읽으며 느낀 점

6.1 3D 컴퓨버 비전에 SE Block 적용

논문을 읽으면서 SE Block을 2D 컴퓨터 비전 뿐만 아니라, 3D 컴퓨터 비전 작업에도 사용하면 좋겠다는 생각을 했습니다. 제가 가장 최근에 읽은 3D Object Detection 논문인 BEVFormer는 ResNet-101-DCN을 Backbone으로 사용합니다. 요기에 SE-ResNet-101-DCN을 적용해보면 어떻게 될지 많이 궁금합니다.

그림 12. BEVFormer의 Backone Network

그림 12. BEVFormer의 Backone Network

6.2 “Experiment Result” 섹션이 갖는 의미에 대한 생각

연구를 수행할 때 실험 결과는 “증명”과 같다는 생각을 했습니다. 그러므로, 최대한 다양한 실험을 수행하는 것이 제 주장를 증명하는 데 도움이 될 수 있을 거라고 생각이 듭니다.

6.3 “Experiment Results”와 “Ablation Study와의 차이에 대한 생각

실험 결과 섹션에서는 ImageNet과 같은 유명한 벤치마크로 모델의 일반화를 검증하는 게 중요하다면, Ablation Study에서는 논문에서 제안하는 아이디어를 내부적으로 검증하는 실험이 필요하다고 느꼈습니다.

예를 들어서 논문에서 제안하는 아이디어가 A+B+C 모듈을 사용한다고 하겠습니다. 그러면 A, B, C 하나하나를 넣었다 뺏다 하거나, 모듈의 핵심이 되는 연산을 다른 연산으로 바꿨을 때와 성능 비교를 하는 게 좋은 Ablation Study인 것 같다는 생각을 했습니다.

6. 4수식의 중요성

논문에서 수식을 많이 사용합니다. 수식을 통해서 저자들이 제안하는 아이디어를 명확하게 전달이 가능하다고 생각이 들었습니다.

6.5 CNN 또는 ViT에서 서로 다른 Layer에 있는 Block들이 학습하는 Representation에 대한 궁금증

논문의 섹션 6.1에서 Reduction Rate를 매 Layer마다 같게 하는 것은 SE Net을 사용하는 최적의 방법이 아니라고 얘기합니다. 이에 대한 이유로, 인경 신공망의 각각의 층에서 학습하는 표현이(Representation) 다르기 때문이라고 합니다. 과연 각 층에서 학습하는 게 뭐가 다를지 궁금해졌습니다. 이에 대한 인사이트를 얻기 위해 다른 학부 연구생 분이 추천해주신 “Do Vision Transformers See Like Convolutional Neural Networks?” 논문을 읽어볼 예정입니다.


메타데이터
post_id
213bf3ec71cd
slug
squeeze-and-excitation-networks-논문-리뷰-213bf3ec71cd
url
https://medium.com/@parkie0517/squeeze-and-excitation-networks-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-213bf3ec71cd
canonical_url
https://medium.com/@parkie0517/squeeze-and-excitation-networks-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-213bf3ec71cd
author_url
https://medium.com/@parkie0517
status
ok
fetched_at
2026-07-24 10:18:17