AI/컴퓨터비전(CV)

[CV 논문] Squeeze-and-Excitation Networks

CSE 2026. 1. 3. 09:00

 

 

아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다.

읽은 논문들 정리

 

읽은 논문들 정리

[목차]1. Computer Vision 분야 논문2. Natural Language Processing 분야 논문3. 유명한 딥러닝 논문들 지속적으로 업데이트 중1. Computer Vision1. AlexNet [2012년]대규모 CNN을 GPU로 학습해 ImageNet 성능을 크게 끌어올

april2901.tistory.com

 


이번 논문은 SENet에 대한 논문이다.

논문은 여기에서 볼 수 있다.

 

기존의 inception, ResNet같은 모델은 깊이나 넓이를 늘리는데 초점을 두었다.

 

우리가 사용했던 convolution연산은 공간정보와 채널정보를 융합한다.

예를 들어 3x3필터라면, 3x3x채널수 의 연산이 한번에 적용되므로 어떤 채널이 더 중요한지 등을 반영할 수 없다.

글로벌 정보를 사용하여 유익한 특징 채널은 강조하고, 덜 유용한 채널은 억제하는 메커니즘을 사용해 이를 해결했다.


1. Introduction

방금 얘기한 것처럼 inception, ResNet은 공간적 상관관계를 모델링하는데 치중해있었다.

이 논문에서는 채널 간 관계에 주목했다.

 

이를 위해 SE(Squeeze-and-Excitation)블록 구조를 제안했다.

informative한 특징은 강조하고, 그렇지 않은 특징은 억제하는 feature recalibration를 하는 역할이다.

 

먼저 squeeze단계에서는 전역공간 정보를 압축해 각 채널의 전역적인 통계량을 생성한다.

Excitation단계에서는 채널 간의 상호 의존성을 학습하는 self-gating 메커니즘을 통해 각 채널의 가중치를 결정한다.

 

모델 복잡도와 비용은 아주 조금 증가하지만 성능은 크게 증가되었다.

ILSVRC 2017년 대회에서 1등을 할 수 있었다.


3. Squeeze-and-Excitation Blocks

2. Related Work는 이 글에서 다뤘던 논문들의 모델들에 대한 설명이 주를 이루기 때문에 생략하고 바로 핵심인 Squeeze-and-Excitation Blocks로 넘어가보자.

 


3.1. Squeeze: Global Information Embedding

컨볼루션의 필터는 3x3처럼 국소적인 범위에서만 작동한다.

논문에서는 이를 local receptive field라고 한다.

이 경우 본인의 필터 범위가 아닌 곳의 값에 대한 정보는 얻을 수 없다.

그래서 각 채널의 모든 값($H\times W$)을 받아 하나의 스칼라 값을 계산한다. 결과적으로 총 채널 수 만큼의 스칼라가 생길 것이다.

계산하는 방법은 매우 간단한 Golbal Average Pooling(GAP)를 사용한다.

식은 아래와 같다.

$$z_c = F_{sq}(u_c) = \frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} u_c(i, j)$$

여기서 $u_c$는 c번째 채널을 얘기한다.

$z_c$는 결과 벡터 $z$의 $c$번째 원소를 얘기한다.

결국 해당 채널의 모든 원소를 더해 그 개수로 나누는 일반적인 평균을 구하는 것이다.


3.2. Excitation: Adaptive Recalibration

3.1과정에서 얻은 각 채널의 대표 스칼라로 어떤 채널을 강조하고 억제할지 정하는 과정이다.

이 과정에서는 아래 두 가지 조건을 충족시켜야 한다.

 

1. Flexibility : 채널 간 복잡한 비선형 관계도 학습이 되어야한다.

2. Non-mutually-exclusive : 한 채널만 선택하는게 아니고 여러 채널을 동시에 강조할 수 있어야 한다.

 

논문 저자들은 이를 sigmoid 활성화 함수를 사용한 gating 매커니즘을 사용했다.

$$s = F_{ex}(z, W) = \sigma(g(z, W)) = \sigma(W_2 \delta(W_1 z))$$

 

$z$는 squeeze 단계에서 나온 결과 벡터이다.

이 $z$에 $W_1$을 곱한다. 즉 FC 층이다.

$z$는 $C \times 1$차원을 가지고, $W_1$은 $C/r \times C$차원을 가지고 있으므로 결과는 $C/r \times 1$차원이 된다.

이 결과에 ReLU, ($\delta$)를 적용한다.

비선형성이 추가되어 채널간 복잡한 상호작용도 학습 가능해진다.

이후 $W_2$ ($C \times C/r$)를 적용해 다시 원래 차원C$으로 되돌린다.

마지막으로 sigmoid($\sigma$)를 적용해 값을 0~1사이 값으로 만들어 주고, 이게 각 채널의 가중치가 된다.

최종적으로 각 채널에 여기서 계산한 가중치를 곱해준다.

 

여기서 sigmoid를 쓴 이유는 위의 2번 조건을 만족시키기 위해서이다.

softmax를 사용하면 확률의 합이 1로 일정하므로 한 채널이 중요도가 높아지면 다른 채널의 중요도는 낮아져야하는데,

여러 채널이 같이 모두 중요한 경우도 있을 수 있기 때문이다.

 


3.3. Exemplars: SE-Inception and SE-ResNet

기존 모델들에 실제 적용할 때 어떻게 하는지를 설명한다.

 

먼저 저번에 알아봤던 Inception에 SE를 적용한 SE-Inception이다.

inception 모듈의 결과가 나온 직후에 SE블록을 배치한다.

 

ResNet에는 덧셈 연산 바로 전에 적용한다.

 

아래 그림은 원래 구조에 SE를 추가한 모습을 각각 나타낸 것이다.

 

 


4. Model and Computational Complexity

이 부분은 SE를 실제로 적용했을 때 늘어나는 비용과 성능 등을 따져보는 파트이다.

SE블록은 추가 연산량 증가에 비해 성능향상이 좋다.

기존의 ResNet-50은 224x224이미지 하나에 3.86 GFLOPs가 필요하다.

SE-ResNet-50은 3.87 GFLOPs로 0.26%정도로 아주 조금 늘어난다.

 

파라미터 수는 10%가까이 늘어난다.

SE한번에 $C/r \times C$만큼의 행렬이 총 두 번 필요하므로 모델 전체로 따져보면,

$$\frac{2}{r}\sum_{s=1}^{S}N_{s}\cdot{C_{s}}^{2}$$라고 계산할 수 있다.

여기서 s는 stage를, $N_s$는 해당 스테이지의 블록 수 이다.

 

네트워크의 구조상 마지막 stage로 갈수록 채널 수는 늘어난다.

따라서 요구되는 계산량이 점점 많아진다.

따라서 마지막 stage의 SE를 제거하면 10%에서 4%정도로 파라미터 증가율을 줄일 수 있다.

이 방법을 사용해도 성능은 거의 나빠지지 않는다.

이유는 네트워크 끝에서는 특성들이 충분히 추상화되어서 SE의 효과가 적기 때문이다.

 


5. Implementation

이전 논문들과 비슷하게 224x224 이미지 입력에 랜덤 크롭을 사용한다.

또 좌우반전도 사용하고, 미니배치를 뽑을 때 클래스 별로 골고루 뽑히도록 조절했다.

 

학습시에도 이전과 비슷하게 Momentum 0.9를 사용한 SGD를 사용했다.

배치사이즈는 1024, Learning rate는 0.6으로 설정하고 30epoch마다 10배씩 감소한다.

 


6. Experiments


6.1. ImageNet Classification

ImageNet2012데이터 셋에서 실험했다.

ResNet과 SE-ResNet을 비교했을 때, 모든 레벨에서 SE를 사용한 모델이 더 성능이 좋았다.

SE-ResNet-50의 성능이 거의 ResNet-101와 비슷했고 심지어 계산량은 반으로 줄었다.

SE-ResNet-101은 ResNet-152보다 성능이 좋았다.

 

아래 그림은 ResNet-50과 SE-ResNet-50의 학습곡선을 나타낸 것이다.

 

inception또는 VGG등 다른 모델들과 SE를 결합해도 일관되게 성능향상이 이루어지는 것을 확인할 수 있었다.

 

SENet은 앙상블까지 활용하여 ILSVRC 2017 분류 대회에서 1등을 했다.


6.2. Scene Classification

일반 이미지 분류보다 조금 더 어려운 장면 분류에 적용해보았다.

사용한 데이터 셋의 이름은 Places365-Challenge이다.

아래 표에서처럼 기존 152모델에 비해 더 좋은 성능을 나타냈다.


6.3. Object Detection on COCO

GoogLeNet에서도 잠깐 언급했던 detection문제에 대한 성능을 알아보자.

물체의 위치를 찾고 경계를 네모로 찾는 문제이다.

COCO라는 데이터셋을 사용했다.


6.4. Analysis and Interpretation

위에서 $r$에 대해 얘기했었다.

여기서는 이 $r$값을 변화시키며 관찰했다.

너무 작은 $r$은 채널간 의존성을 과적합 시킬 수도 있다. 

 

금붕어, 퍼그, 비행기, 절벽에 대해 SE블록의 활성화 정도를 비교한 그래프이다.

SE_2_3에서 2는 stage 번호, 3은 블럭 번호를 의미한다. 즉 숫자가 커질 수록 모델에서 뒷부분에 있는 블럭이다.

 

SE_2_3에서는 카테고리에 상관없이 모두 활성화가 같이 높은 것을 볼 수 있다.

이는 당장 개별 분류보다 카테고리에 상관없이 특징을 잡기 위해 필요한 부분(엣지, 색, 선 등)이 활성화된 것이라고 생각할 수 있다.

SE_4_6, SE_5_1에서는 각 카테고리에 맞는 특성들이 더 활성화 되기 때문에 선마다 모양이 달라지는 것을 볼 수 있다.

5_2에서는 아예 필요없는 정보만 제거하는 것을 볼 수 있다.

5_3에서도 클래스에 상관없이 정도만 다르기 때문에 이미 충분히 특징이 구분되었다는 것을 알 수 있다.

따라서 위에서 얘기한 마지막 stage의 SE를 제거해 파라미터 수를 줄이는 방법이 큰 성능하락을 보이지 않는 것이다.


<요약>

기존 CNN이 간과했던 채널 간의 관계를 Squeeze와 Excitation이라는 방법을 사용해서,

최소한의 비용으로 모델의 성능을 극대화하며 2017년 이미지 인식 대회를 1등한 구조에 대한 논문


<핵심 포인트>

1. 기존의 문제

현상: 기존의 CNN은 컨볼루션 연산을 통해 공간(Spatial) 정보와 채널(Channel) 정보를 동시에 융합하여 특징을 추출한다.

한계: 하지만 필터가 채널 간의 상호 의존성을 명칙적으로 모델링하지 못하며, 모든 특징 채널을 동일한 비중으로 처리하는 경향이 있다.

정보 국부성: 특히 낮은 층에서는 Receptive field 크기가 작아 이미지의 Global context을 파악하지 못한 채 특징을 추출한다.

 

2. 해결 아이디어 : Feature Recalibration

개념: 네트워크가 각 채널의 중요도를 스스로 판단하여 유익한 특징은 강조하고, 덜 유용한 특징은 억제하도록 만드는 메커니즘을 제안.

전역 정보 활용: 이미지 전체의 공간 정보를 하나로 압축하여 채널별 통계량을 생성하고, 이를 바탕으로 현재 데이터 상황에 맞는 '채널별 가중치'를 동적으로 계산.

 

3. 해결 구조 : SE Block

Squeeze : Global Average Pooling을 통해 $H \times W \times C$ 크기의 특징 맵을 $1 \times 1 \times C$ 벡터로 요약하여 전역 정보를 임베딩.

Excitation : 두 개의 FC 레이어를 활용한 자기 게이팅(Self-gating) 메커니즘을 통해 채널 간의 비선형 관계를 학습하고 0~1 사이의 가중치를 생성.

Scale : 계산된 가중치를 원래 특징 맵에 채널별로 곱해 최종적으로 재교정된 특징 맵을 출력.

 

4. 효율적 구조

파라미터 효율 : Excitation 단계에서 감소율(Reduction ratio) $r$을 도입한 병목 구조를 사용하여 파라미터 증가를 억제하면서 비선형 상호작용을 효과적으로 학습.

연동 : 독립적인 유닛으로 설계되어 ResNet, Inception 등 기존의 아키텍처에 연산량 부담이 거의 없이 즉시 삽입이 가능.

 

5. 성능

대회 우승: ILSVRC 2017 분류 대회에서 우승을 차지하며 Top-5 에러를 2.251%까지 낮춤.

일반화 능력: 이미지 분류를 넘어 장면 분류(Places365), 객체 탐지(COCO) 등 다양한 테스트에서도 성능 향상을 입증.