๐[๋
ผ๋ฌธ ๋ณด๋ฌ๊ฐ๊ธฐ](https://arxiv.org/abs/1709.01507)
๐[์ฝ๋ ๋ณด๋ฌ๊ฐ๊ธฐ](https://github.com/hujie-frank/SENet)
# Abstract
- CNN์ ๊ธฐ๋ณธ์ **convolution ์ฐ์ฐ**์ด๋ค.
- ์ด ์ฐ์ฐ์ **๊ณต๊ฐ(spatial) ์ ๋ณด**์ **์ฑ๋(channel-wise) ์ ๋ณด**๋ฅผ ์ง**์ญ์ ์ธ receptive field(kernel ํฌ๊ธฐ)** ์์์ ์ตํฉํ์ฌ ์ ์ฉํ ํน์ง์ ์ถ์ถํ๋ค.
- ์ต๊ทผ ์ฐ๊ตฌ๋ค์ **๊ณต๊ฐ์ ํํ(spatial encondig)์** ๊ฐ์ ํ์ฌ ๋คํธ์ํฌ ํํ๋ ฅ์ ํฅ์์์ผฐ๋ค.
- ํ์ง๋ง ์ด ๋
ผ๋ฌธ์ **์ฑ๋ ๊ฐ์ ๊ด๊ณ(channel relationship)์** ์ง์คํ๋ค.
- ์ด๋ฅผ ์ํด ์๋ก์ด ๊ตฌ์กฐ์ ๋จ์์ธ **Squeeze-and-Excitation (SE) block**์ ์ ์ํ๋ค.
- SE block์ **์ฑ๋ ๋ณ ์ค์๋**๋ฅผ ํ์ตํด์ ๊ฐ ์ฑ๋์ ์ฌ์กฐ์ ํ๋ค.
- SE block์ ์ฌ๋ฌ ์ธต์ ์์ผ๋ฉด **SENet ์ํคํ
์ฒ**๊ฐ ๋๊ณ ์ด ์ํคํ
์ฒ๋ ์ฌ๋ฌ ๋ฐ์ดํฐ์
์์ ์ผ๋ฐํ๋ ์ฑ๋ฅ ํฅ์์ ๊ฐ์ ธ์๋ค.
- ๋ํ SE block์ ๊ธฐ์กด์ CNN์ ์ถ๊ฐํ๋ฉด **๊ณ์ฐ๋์ ๊ฑฐ์ ๋์ง ์๋๋ฐ ์ฑ๋ฅ์ ํฌ๊ฒ ์์น**ํ๋ค.
- ์ด๋ฅผ ํตํด SENet์ด **ILSVRC 2017 ImageNet ๋ํ**์์ 1์๋ฅผ ์ฐจ์งํ๋ค.
# 1. Introduction
![[Squeeze-and-Excitation block.png]]
- CNN์ ๊ฐ convolution Layer๋ ์
๋ ฅ ์ฑ๋๋ณ๋ก **์ง์ญ์ ์ฐ๊ฒฐ(local spatial connectivity) ํจํด**์ ํ์ตํ๋ค.
- ์ฆ, ํํฐ(Filter)๋ **๊ณต๊ฐ์ ๊ตฌ์กฐ + ์ฑ๋ ๊ฒฐํฉ ์ ๋ณด**๋ฅผ ์ด์ฉํด ํน์ง์ ๋ง๋ ๋ค.
- **Inception** ๊ณ์ด(GoogLeNet)์ ์ฐ๊ตฌ์์๋ **์ฌ๋ฌ ํฌ๊ธฐ์ ์ปค๋(1x1, 3x3, 5x5)์ ๋ณ๋ ฌ**๋ก ์ฌ์ฉํด์ ๋ค์ค ์ค์ผ์ผ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ํฌ์ฐฉํ๋ค.
- **Spatial Attention** ์ฐ๊ตฌ๋ค์๋ ๋ชจ๋ธ์ด ๊ณต๊ฐ์ ์ผ๋ก **'์ด๋๋ฅผ ๋ณผ์ง'๋ฅผ** ํ์ตํ๋๋ก ๋ง๋ ๋ค.
- ์ด ๋
ผ๋ฌธ์ ๊ณต๊ฐ(spatial)์ด ์๋๋ผ **์ฑ๋ ๊ฐ ๊ด๊ณ(channel interdependency)์** ์ด์ ์ ๋๋ค.
- ์ด๋ฅผ ์ํด **Squeeze-and-Excitation (SE) Block**์ ์ ์ํ๊ณ ์ฑ๋ ๊ฐ์ ์ํธ์์ฉ์ ๋ช
์์ ์ผ๋ก ๋ชจ๋ธ๋งํ์ฌ **๋คํธ์ํฌ์ ํํ๋ ฅ(representational power)๋ฅผ** ๊ฐํํ๋ค.
- ํต์ฌ์ ์ผ๋ก **์ ์ญ ์ ๋ณด(global context)๋ฅผ** ์ด์ฉํด์ **์ ์ฉํ ์ฑ๋์ ๊ฐ์กฐ(emphasise)**, **๋ ์ ์ฉํ ์ฑ๋์ ์ต์ (suppress)ํ๋ค.** โ ์ด๊ฑธ **feature recalibration** (ํน์ง ์ฌ๋ณด์ )์ด๋ผ๊ณ ํ๋ค.
- ๊ธฐ์กด CNN๋ F<sub>tr</sub> : X โ U ๊ณผ์ ์ด ๋์ด์์ผ๋, SE Block์ U ์ดํ ์ถ๋ ฅ์ **Squeeze โ Excitation โ Scale** ์ธ ๋จ๊ณ๋ก ์ฒ๋ฆฌํ๋ค.
- Squeeze : ๊ณต๊ฐ ์ฐจ์์ **average pooling์ผ๋ก ์์ถ**ํด, ๊ฐ ์ฑ๋์ ์ ์ญ์ ํ์ฑ๊ฐ์ ์ป๋๋ค.
- Excitation : ๊ทธ ๋ฒกํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก **์ฑ๋๋ณ ์ค์๋**๋ฅผ ํ์ตํ๋ค.
- Scale : ์๋ feature map์ ์ฑ๋๋ณ ๊ฒ์ดํธ๋ฅผ ๊ณฑํด์ **๊ฐ์กฐ/์ต์ **ํ๋ค.
- SE Block์ ๋จ์ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์ํคํ
์ฒ์ ๋ฐ๋ก **๋ผ์ธ ์ ์๊ณ (drop in module),** **๊ณ์ฐ๋๋ ๊ฑฐ์ ๋์ง ์๋๋ค(lightwight).**
# 2. Related Work
## Deep Architectures
- VGGNet : ๋จ์ํ์ง๋ง **๊น๊ฒ ์์ 3x3 conv ๊ตฌ์กฐ**๋ก ๊น์ ๋คํธ์ํฌ์ ํจ์ฉ์ ์
์ฆ
- Inception : ์ฌ๋ฌ ํฌ๊ธฐ์ ์ปค๋์ ๋ณ๋ ฌ๋ก ์ฌ์ฉํด **multi-scale spatial feature** ํ์ต
- Batch Normalization(BN) : ์
๋ ฅ ๋ถํฌ๋ฅผ ์ ๊ทํํด ์์ ํ
- [[Deep Residual Learning for Image Recognition|Resnet]] : skip connection์ผ๋ก gradient ํ๋ฆ ๋ฌธ์ ํด๊ฒฐ
- Highway Networks : ๊ฒ์ดํธ(gate)๋ก shortcut์ ์ ์ดํ๋ ์ด์ฐฝ๊ธฐ ์์ด๋์ด
- DenseNet, Dual Path Networks : layer ๊ฐ ์ฐ๊ฒฐ ๋ฐฉ์์ ๋ค์ ์ค๊ณํด์ **feature ์ฌํ์ฉ + ํํ ๋ค์์ฑ** ๊ฐํ
- Grouped convolution (ResNeXt) : ์ฑ๋์ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด ์ฐ์ฐ ํจ์จ์ฑ์ ๋์
- Multi-branch ๊ตฌ์กฐ(Inception ๊ณ์ด) : ์ฌ๋ฌ ๋ณํ์ ๋ณ๋ ฌ ์กฐํฉํด์ ๋ค์ํ ํน์ง ์กฐํฉ
- ํ์ง๋ง ์ด๋ฌํ ๋ชจ๋ธ๋ค์ **์ฑ๋ ๊ฐ ๊ด๊ณ๋ฅผ ๋ช
์์ ์ผ๋ก ๋ชจ๋ธ๋งํ์ง ์์๋ค.**
## Attention and gating mechanisms
- Attention : ์ ๊ฒฝ๋ง์ด ์
๋ ฅ ์ ์ฒด๋ฅผ ๋๊ฐ์ด ์ฒ๋ฆฌํ์ง ์๊ณ , **์ค์ํ ๋ถ๋ถ๋ง ๋ ์ง์ค**ํ๋๋ก ํ๋ ๋ฐฉ๋ฒ
- Image Captioning : ์ด๋ฏธ์ง์ '์ด๋'๋ฅผ ๋ณผ์ง ์์น์ (spatial) attention ํ์ต
- Lip Reading, Visual Localization :์์ ์ ๋ณด์ ์๊ฐ์ /๊ณต๊ฐ์ ์ ๋ณด์ ์ง์ค
- Residual Attention Network : ResNet ์์ **turnk + mask ๊ตฌ์กฐ**๋ก **attention map**์ ์์ฑ
- SENet์ attetion์ ๊ฐ๋
์ **์ฑ๋ ์ฐจ์(channel dimension)์** ์ ์ฉํ๋ค.
# 3. Squeeze-and-Excitation Blocks
- CNN์ Convolution์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์งํ๋๋ค.
- ![[Transformation Formula.png]]
- v<sub>c</sub> : c๋ฒ์งธ convolution ํํฐ
- x<sup>s</sup> : ์
๋ ฅ์ s๋ฒ์งธ ์ฑ๋
- v<sub>c</sub> * x<sup>s</sup> : ๊ฐ ์ฑ๋์ convolution ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ ๋ ํจ์ผ๋ก์จ u<sub>c</sub> ํ์ฑ
- ๊ธฐ์กด์ convolution์ ์ฑ๋ ๊ฐ ๊ด๊ณ๋ฅผ **์๋ฌต์ **์ผ๋ก ํฌํจํ์ง๋ง ๊ณต๊ฐ์ ์๊ด๊ด๊ณ์ ์ฝํ ์์ด์ **๋ช
์์ **์ผ๋ก ๊ตฌ๋ถ๋์ด ์์ง ์๋ค.
- ๊ทธ๋์ CNN์ด ์ฑ๋ ๊ฐ ๊ด๊ณ๋ฅผ ๋ช
์์ ์ผ๋ก ๋ชจ๋ธ๋ง ํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ผ๋ก *squeeze*์ *excitation* steps์ ์ถ๊ฐํด์ผ ํ๋ค.
## 3.1 Squeeze : Global Information Embedding
- convolution ํํฐ๋ **local(์ง์ญ์ ) receptive field** ์์ ์ ๋ณด๋ง ๋ค๋ฃฌ๋ค.
- ๋๋ฌธ์ ๋ฎ์ layer์ผ์๋ก ์ ์ญ ๋งฅ๋ฝ(global context)์ ๊ณ ๋ คํ๊ธฐ ์ด๋ ต๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด **Squeeze ์ฐ์ฐ**์ ์ฌ์ฉํ๋ค.
- ![[Squeeze Formula.png]]
- ๊ฐ ์ฑ๋์ feature map u<sub>c</sub>์ ๊ณต๊ฐ ์ฐจ์ ์ ์ฒด(HxW)๋ก ํ๊ท ๋ด์ด **๋จ์ผ ์ค์นผ๋ผ** z<sub>c</sub>๋ก ๋ง๋ ๋ค.
- ์ด๋ ๊ฒ ์์ฑ๋ z = [z<sub>1</sub>, z<sub>2</sub>, ... , z<sub>c</sub>]๋ ๊ฐ ์ฑ๋์ **์ ์ญ ํ์ฑํ ํต๊ณ(global descriptive statistic)๋ฅผ** ๋ํ๋ธ๋ค.
## 3.2 Excitation : Adaptive Recalibration
### Excitation
- Squeeze๋ก ์์ฝํ ์ ๋ณด z๋ฅผ ์ด์ฉํด ๊ฐ ์ฑ๋ ๊ฐ **์ํธ์์กด์ฑ(interdependency)๋ฅผ** ํ์ตํ๋ค.
- ![[Excitation Formula.png]]
- ฮด : ReLU ํจ์
- ฯ : sigmoid ํจ์
- W<sub>1</sub>โR<sup>C/rรC</sup> : ์ฐจ์ ์ถ์ (reduction)
- W<sub>2</sub>โR<sup>CรC/r</sup> : ์ฐจ์ ๋ณต์ (expansion)
- r : reduction ratio (์ผ๋ฐ์ ์ผ๋ก 16)
- W<sub>1</sub>z๋ฅผ ํตํด ์ฐจ์์ ์ถ์ํ์ฌ ์ฑ๋ ๊ฐ์ ์ํธ์์ฉ์ ๋ ํจ์จ์ ์ผ๋ก ํ์ตํ๋ค.
- W<sub>2</sub>๋ก ์ถ์ํ๋ ์ฐจ์์ ๋ณต์ํ๋ค.
- Sigmoid๋ฅผ ์ฌ์ฉํ์ฌ [0,1] ๋ฒ์์ ๊ฒ์ดํธ ๋ฒกํฐ *s*๋ฅผ ์์ฑํ๋ค.
- ์ต์ข
์ ์ผ๋ก ๋์ค๋ s = [s<sub>1</sub>, s<sub>2</sub>, ... , s<sub>c</sub>]๋ ๊ฐ **์ฑ๋์ ์ค์๋(weight)๋ฅผ** ์๋ฏธํ๋ค.
### Scale
- ์ต์ข
์ ์ผ๋ก Excitation์์ ์ป์ ๊ฐ์ค์น *s*๋ฅผ ๊ฐ ์ฑ๋์ feature map์ ๊ณฑํด์ค๋ค.
- ![[Scale Formula.png]]
- ์ด ๊ณผ์ ์์ ์ค์๋๊ฐ ๋์ ์ฑ๋์ ๊ฐ์กฐ๋๊ณ , ๋ฎ์ ์ฑ๋์ ์ต์ ๋๋ค.
- SE Block์ ์
๋ ฅ๋ง๋ค ๋ค๋ฅด๊ฒ ๋์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋คํธ์ํฌ๋ผ๋ **์
๋ ฅ ์ด๋ฏธ์ง๊ฐ ๋ฌ๋ผ์ง์๋ง ์ฑ๋๋ณ ๊ฐ์กฐ ํจํด๋ ๋ฌ๋ผ์ง๋ค.**
## 3.3 Exemplars : SE-Inception and SE-ResNet
### SE-Inception
- Inception ๊ตฌ์กฐ๋ ์ฌ๋ฌ ๋ณ๋ ฌ branch(1x1, 3x3, 5x5 conv ๋ฑ)๋ฅผ ๊ฐ๋๋ค.
- ์ด๋ฌํ branch์ ์ถ๋ ฅ์ ์ด์ฌ๋ถ์ฌ ์ต์ข
feature map U๋ฅผ ๋ง๋ ๋ค. ์ด ๊ณผ์ ์ F<sub>tr</sub>์ด๋ผ๊ณ ํ๋ค.
- ![[SE-Inception Module.png]]
- Global pooling : Squeeze ๋์
- FC โ ReLU โ FE โ Sigmoid : Excitation ๋์
- Scale
### SE-ResNet
- [[Deep Residual Learning for Image Recognition|ResNet]]์ skip-connection์ ์ฌ์ฉํ์ฌ y = F<sub>tr</sub>(x, W) + x ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
- ์ฌ๊ธฐ์ F<sub>tr</sub>(x, W)๋ฅผ residual branch๋ผ๊ณ ํ๋ค.
- **SE-ResNet**์์๋ ์ด residual branch ๋ ๋ถ๋ถ์ **SE block**์ ์ฝ์
ํ๋ค.
- ![[SE-ResNet Module.png]]
- Global pooling : Squeeze ๋์
- FC โ ReLU โ FE โ Sigmoid : Excitation ๋์
- Scale
# 4. Model and Computational Complexity
- ๊ธฐ์กด Model์ SE Block์ ์ถ๊ฐํ์์ ๋ **์ฐ์ฐ๋(FLOPs)๊ณผ** **Complexity(๋ณต์ก๋)๋** ์ผ๋ง๋ ์ฆ๊ฐ ํ ๊น?
## ์ฐ์ฐ๋(FLOPs)์ ํ์ต์๊ฐ
- ResNet-50๊ณผ SE-ResNet50์ผ๋ก ์ฐ์ฐ๋์ ๋น๊ตํ์ ๋ ๊ธฐ๋ณธ ResNet-50์ด ~3.86 GFLOPs์ด๊ณ SE-ResNet-50์ด ~3.87 GFLIOPs๋ก ์๋์ ์ผ๋ก 0.26% ์ฆ๊ฐํ๋ค.
- Squeeze๋ ๋จ์ํ Global Average Pooling์ผ๋ก ์ฐ์ฐ๋์ด ๋งค์ฐ ์๋ค.
- Excitation์ ์์ ๋ ๊ฐ์ FC๋ก **์ฑ๋ ์**๋ง ๋ค๋ฃจ๋ ์ฐ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ณต๊ฐ ์ฐจ์์ด ์์ด ์ด ๋ํ ์ฐ์ฐ์ด ํฌ์ง ์๋ค.
- Scale์ ์ฑ๋ ๋ณ ๊ณฑ์
ํ ๋ฒ์์ผ๋ก ์ฐ์ฐ๋์ด ๋งค์ฐ ์๋ค.
- ์ฆ, spatial conv(3x3 ๋ฑ)์ ๋นํ๋ฉด SE๋ ์ถ๊ฐํ๋ ๊ฑด **๋งค์ฐ ์ธ๋ค.**
- 8ร NVIDIA Titan X GPU ์๋ฒ, ๋ฐฐ์น์ฌ์ด์ฆ 256์ผ ๋์ ์ค์ ํ์ต ์๊ฐ์ ๋น๊ตํด๋ ResNet-50์ด 190 ms, SE-ResNet-50์ด 209ms๋ก(forward+backward ํ step ๊ธฐ์ค) ์ฝ **19ms ์ ๋๋ง ์ฆ๊ฐํ๋ค.**
## ํ๋ผ๋ฏธํฐ ์ ์ฆ๊ฐ๋
- SE ๋ธ๋ก์ ์ฌ์ค์ Excitation ๋จ๊ณ์ 2-layer FC๋ฟ์ด๋ค.
- ๋ฐ๋ผ์ ์ถ๊ฐ ํ๋ผ๋ฏธํฐ ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณต์์ ๋ฐ๋ผ๊ฐ๋ค.
- ![[SE Additional Parameter Formula.png]]
- r : reduction ratio
- S : stage ์
- N<sub>s</sub> : stage s ์์์ ๋์ผํ ๋ธ๋ก์ด ๋ช ๋ฒ ๋ฐ๋ณต๋๋์ง (block ๋ฐ๋ณต ํ์)
- C<sub>s</sub> : ๊ทธ stage์ ์ถ๋ ฅ ์ฑ๋ ์
- Excitation MLP๋ FC(C<sub>s</sub> x C<sub>s</sub> / r)๊ณผ FC( C<sub>s</sub> / r x C<sub>s</sub>)๋ก ์ด ๋์ ๋ํ๋ฉด (2/r x C<sub>s</sub><sup>2</sup>)๊ฐ ๋์จ๋ค.
- ๊ทธ ๋ธ๋ก์ ๊ฐ์ stage ์์์ N<sub>s</sub>๋ฒ ๋ฐ๋ณต๋จ์ผ๋ก ์์ ์ต์ข
๊ณต์์ด ๋์จ๋ค.
- ResNet-50๊ณผ SE-ResNet-50์ ํ๋ผ๋ฏธํฐ ์๋ฅผ ๋น๊ตํด๋ณด๋ฉด ResNet-50: ์ฝ **25M parameters**, SE-ResNet-50: ์ฝ **27.5M parameters**์ผ๋ก ๋๋ต 10% ์ ๋ ์ฆ๊ฐํ๋ค.
- ํ๋ผ๋ฏธํฐ๊ฐ ์ด๋ ๊ฒ ๋ง์ด ์ฆ๊ฐํ๋ ์ด์ ๊ฐ ๋ฐ๋ก **๋ง์ง๋ง stage์ ์ฑ๋ ์๊ฐ ๋งค์ฐ ํฐ๋ฐ** ๊ทธ๋ฌ๋ฉด C<sub>s</sub><sup>2</sup>์ด ์ปค์ง๊ธฐ ๋๋ฌธ์ ๊ฑฐ๊ธฐ์ ํ๋ผ๋ฏธํฐ๊ฐ ๋งค์ฐ ์ฆ๊ฐํ๊ฒ ๋๋ค.
- **๋ง์ง๋ง stage ์ชฝ SE ๋ธ๋ก์ ๋นผ๋** ์ ํ๋ ์์ค์ top-1 ๊ธฐ์ค < 0.1%๋ก ๋งค์ฐ ์๊ณ ํ๋ผ๋ฏธํฐ ์ฆ๊ฐ๋ 10% โ 4% ์์ค๊น์ง ๋จ์ด์ง๋ค.
# 5. Implementation
- ResNet-50๊ณผ SE-ResNet-50์ ์์ ํ ๊ฐ์ ํ์ต ๋ฐฉ์์ผ๋ก ํ๋ จํ๋ค.
## ํ์ต ๋ฐ์ดํฐ ๋ฐ ์ฆ๊ฐ
1. Random-size cropping : 299x299 ์ด๋ฏธ์ง๋ฅผ ๋ฌด์์๋ก ์๋ผ 224x244๋ก ๋ง๋ฆ (ํ๊ฐ๋ center crop)
2. Random horizontal flipping ์ฌ์ฉ
3. Input normalization : ํ๊ท ์ฑ๋๊ฐ์ ๋นผ์ ์ ๊ทํ
4. Bananced sampling strategy : mini-batch๋ฅผ ๊ตฌ์ฑํ ๋ ํด๋์ค ๋ถ๊ท ํ์ ์ด๋ ์ ๋ ์กฐ์ ํ๋ ์ ๋ตโ ํด๋์ค ๋ค์์ฑ์ ๋ณด์ฅํด์ค๋ค.
## ํ์ต ์ธํ๋ผ
- ์์ฒด ๋ถ์ฐ ํ์ต ์์คํ
์ **ROCS** ์ฌ์ฉ
- ์ด๋ฅผ ํตํด ๋๊ท๋ชจ ๋คํธ์ํฌ๋ฅผ ๋ณ๋ ฌ๋ก ํจ์จ์ ์ผ๋ก ํ์ตํ ์ ์๋ค.
## ์ต์ ํ ์ค์
- Optimizer : SGD ์ฌ์ฉ, Momentum 0.9
- Mini-batch size : 1024
- ์ด๊ธฐ ํ์ต๋ฅ : 0.6
- Learning rate schedule : 30 epochs๋ง๋ค 0.1
# 6. Experiments
## ImageNet Classification
![[SE ImageNet performance.png]]
- **SE**๊ฐ ์ ์ฉ๋ ๋ชจ๋ Model์์ ์ฑ๋ฅ์ด ํฅ์๋๋ค.
- ํนํ ResNet-50๊ณผ SE-ResNet-50, ResNet-101์ ๋น๊ตํด๋ณด๋ฉด Top-5 err๊ฐ ResNet-50๋ณด๋ค SE-ResNet-50์ด *0.86%* ๋ ์ข์๊ณ ResNet-101๊ณผ ๋น๊ตํด๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์์๋ค.
- ์ฐ์ฐ๋์ ๋น๊ตํด๋ด๋ **๊ธฐ์กด Model๊ฐ ํฌ๊ฒ ๋ค๋ฅด์ง ์๊ณ ** ์ฑ๋ฅ์ด ๋น์ทํ ResNet-101๋ณด๋ค SE Block์ ์ ์ฉํ SE-ResNet-50์ด ์ฐ์ฐ๋์ด ์ ์๋ฏธํ๊ฒ ๋ฎ์๋ค.
- ๋ฟ๋ง ์๋๋ผ, VGG-16, BN-Inception, MobileNet ๋ฑ **๋ค์ํ Model์๋ ์ ์ฉ ๊ฐ๋ฅ**ํ๊ณ ์ ์๋ฏธํ ์ฑ๋ฅ ํฅ์์ ์ด๋ฃจ์ด๋๋ค.
## Scene Classification
![[SE Scene Classification performance.png]]
- Places365-Challenge๋ฅผ ํตํด ์ฅ๋ฉด ์ธ์ ๋ฌธ์ ์ ๋ํ ์ฑ๋ฅ์ ํ๊ฐํ๋ค.
- 800๋ง ์ฅ์ Test ์ด๋ฏธ์ง
- 36,500์ฅ์ Validation ์ด๋ฏธ์ง
- 365๊ฐ์ scene ์นดํ
๊ณ ๋ฆฌ
- SE Block์ด ๋จ์ํ ImageNet๋ฟ ์๋๋ผ scene classification์๋ **์ผ๋ฐํ๋ ์ฑ๋ฅ ํฅ์**์ ๋ณด์๋ค.
## Object Detection
![[SE Object detection performance.png]]
- COCO ๋ฐ์ดํฐ ์
์ฌ์ฉํด ๋ฌผ์ฒด ํ์ง ์ฑ๋ฅ์ ํ๊ฐํ๋ค.
- 80k Train ๋ฐ์ดํฐ
- 40k Validation ๋ฐ์ดํฐ
- 80๊ฐ์ ๊ฐ์ฒด ํด๋์ค
- AP@loU : loU(intersection over Union)๊ฐ **0.5 ์ด์์ผ ๋**์ Average Precision
- $IoU$ = $Area(pred โฉ gt)/Area(predโช gt)$ : ์์ธก ๋ฐ์ค์ ์ ๋ต ๋ฐ์ค์ **๊ฒน์น๋ ๋น์จ**
- '๊ฐ์ฒด๋ฅผ 50% ์ด์ ๊ฒน์น๊ฒ ๋ง์ท์ ๋ ์ผ๋ง๋ ์ ํ์งํ๋๊ฐ'๋ฅผ ์ธก์
- AP (COCO metric) : COCO๊ฐ ์ ์ํ **์๊ฒฉํ ํ๊ท AP**
- IoU threshold๋ฅผ **0.5๋ถํฐ 0.95๊น์ง 0.05 ๊ฐ๊ฒฉ์ผ๋ก** ๋ฐ๊ฟ๊ฐ๋ฉฐ 10๊ฐ ๊ฐ์ ํ๊ท ๋ธ ๊ฒ.
- 0.5์์๋ง ๋ณด๋ ๊ฒ ์๋๋ผ, **์ ํํ ๋ง์ท๋๊ฐ (0.75~0.95)** ๊น์ง ํ๊ฐ.
- SE Block์ Classification ๋ฟ๋ง ์๋๋ผ **detection task**์์๋ ์ฑ๋ฅ ํฅ์์ ๋ณด์๋ค.
## Analysis and Interpretation
### Reduction ratio r
![[SE Reduction ratio performance.png]]
- r์ ๊ฐ์ Excitation ๋จ๊ณ์์ **์ฑ๋ ์์ถ๋น**๋ฅผ ๋ํ๋ธ๋ค.
- r์ด ์์ ์๋ก ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์์ ธ ์ฑ๋ฅ์ ์ข์์ง์ง๋ง, ๊ณผ์ ํฉ ์ํ๋ ์ปค์ง๋ค.
- ์คํ์ ๊ฒฐ๊ณผ๋ก ๋ดค์ ๋ r =16์ผ ๋ ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ด ๋์๋ค.
### The role of Excitation
![[SE block Activation by Excitation.png]]
- ๋ค ๊ฐ์ ํด๋์ค (glodfish, pug, plane, cliff)๋ฅผ ์ ํํด ๊ฐ stage ๋ง์ง๋ง SE ๋ธ๋ก์ 50๊ฐ ์ฑ๋์ ๋ํด ํ๊ท ํ์ฑํ ๋ถํฌ๋ฅผ ๊ณ์ฐํด Excitation์ ์ญํ ์ ๋ํด ์ฐ๊ตฌํ๋ค.
- **์ด๊ธฐ ๋จ๊ณ Stage 2~3** : ํด๋์ค ๊ฐ ํ์ฑํ ๋ถํฌ๊ฐ ๊ฑฐ์ ๋์ผํ๋ค โ ํด๋น Excitation์์๋ **์ผ๋ฐ์ ํน์ง(general features)๋ฅผ** ๊ณต์ ํ๋ค.
- **๊น์ ๋จ๊ณ Stage 4~5** : ํด๋์ค ๋ณใน๋ก ์ฑ๋ ํ์ฑํ ํจํด์ด ๋ฌ๋ผ์ง๋ค โ ํด๋น Excitation์์๋ **ํด๋์ค ํน์ด์ ํน์ง(class-specific features)๋ฅผ** ๊ฐ์กฐํ๋ค.
- **๋ง์ง๋ง ๋จ๊ณ Stage 5_2, 5_3** : ์ผ๋ถ ์ฑ๋์ด ํฌํ ์ํ์ ๊ฐ๊น๋ค โ ์ผ๋ฐ์ ์ธ **residual block**๊ณผ ์ ์ฌํ๊ฒ ์๋ํ๋ค. ์ฆ, Stage SE block์ ์ ๊ฑฐํด๋ ์ฑ๋ฅ ์์ค์ด ๊ฑฐ์ ์๋ค.
- ์ด๋ฅผ ํตํด์ **ํ๋ผ๋ฏธํฐ ํฌ๊ธฐ๊ฐ ๋ง์ ๋ง์ง๋ง SE Block์ ์ ๊ฑฐ**ํ์ฌ Model์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๊ฒ ๋ง๋ ๋ค.
# 7.Conclusion
- ์ด ๋
ผ๋ฌธ์์๋ **Squeeze-and-Excitation (SE) Block**์ด๋ผ๋ ์๋ก์ด ๊ตฌ์กฐ์ ๋จ์๋ฅผ ์ ์ํ๋ค.
- **SE Block**์ ์ด์ฉํด ๋คํธ์ํฌ๊ฐ **๋์ ์ผ๋ก ์ฑ๋๋ณ ์ค์๋๋ฅผ ์กฐ์ **ํ ์ ์๊ฒ ๋ง๋ค์ด ํํ๋ ฅ์ ๋์๋ค.
- SENet์ ๋จ์ํ ์ฑ๋ฅ๋ง ์ฌ๋ฆฐ ๊ฒ ์๋๋ผ, ๊ธฐ์กด CNN ๊ตฌ์กฐ๊ฐ ์ ์ฑ๋ ๊ฐ ๊ด๊ณ๋ฅผ ์ ๋ชจ๋ธ๋ง ํ์ง ๋ชปํ๋ ์ง์ ๋ํ ํต์ฐฐ๋ ์ ๊ณตํ๋ค.
- SE Block์ด ํ์ตํ๋ ์ฑ๋ ์ค์๋ ์ ๋ณด๋ **๋ชจ๋ธ ์์ถ(compression)**, **pruning(๋ถํ์ํ ์ฑ๋ ์ ๊ฑฐ)** ๊ฐ์ ์ฐ๊ตฌ์๋ ํ์ฉ๋ ์ ์์ ๊ฒ์ด๋ค.
# Code review
๐[์ฝ๋ ๋ณด๋ฌ๊ฐ๊ธฐ](https://github.com/kuangliu/pytorch-cifar/blob/master/models/resnet.py)
- ์ง์ SE-ResNet-50๊ณผ ResNet-50 Model์ ๊ตฌํํด๋ณด๊ณ ์ฑ๋ฅ์ ๋น๊ตํด๋ณด์๋ค.
- DateSet์ **CIFAR10**์ ์ฌ์ฉํ๋ค.
## ํ์ต ๋ฐ์ดํฐ ๋ฐ ์ฆ๊ฐ
1. Random-size cropping : padding์ 4๋ก ํ์ฌ ํฌ๊ธฐ๋ฅผ ํค์ฐ๊ณ ๋๋ค์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์๋๋ค.
2. Random horizontal flipping ์ฌ์ฉ
3. Input normalization : ํ๊ท ์ฑ๋๊ฐ์ ๋นผ์ ์ ๊ทํ
4. Train Data๋ฅผ 8:2๋ก ๋๋ ์ ํ์ตํ ๋๋ Train set์ ์ฌ์ฉํ๊ณ ํ์ต ์ค๊ฐ์ค๊ฐ Valldation set์ ์ฌ์ฉํ์ฌ top-1 error๋ฅผ ์ธก์ ํ์๋ค.
## ํ์ต ์ธํ๋ผ
- ๊ทธ๋ํฝ ์นด๋ : 4080 Super
- Mixed Percision ์ฌ์ฉ
## ์ต์ ํ ์ค์
- Optimizer : SGD ์ฌ์ฉ, Momentum 0.9
- Batch size : 512
- ํฌ๋ก์ค ์ํธ๋กํผ ์์ค ํจ์ ์ฌ์ฉ
- ์ด๊ธฐ ํ์ต๋ฅ : 0.001
- Learning rate schedule : 5 epochs๋ง๋ค ์ฑ๋ฅ ํฅ์์ด ์์ผ๋ฉด x0.2, ์ต์ 1e-6
## SE-ResNet-50
- ๊ธฐ์กด ResNet์ SE-Block ํจ์๋ฅผ ๋ถ์ด๋ ํ์์ผ๋ก SE-ResNet-50 Model์ ๊ตฌํํ์๋ค.
- ๋
ผ๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ค์ด๊ธฐ ์ํด ๋ง์ง๋ง Block์์ SE Block์ ์ฌ์ฉํ์ง ์์๋ค.
- SE-Block์ r = 16์ผ๋ก ๋๊ณ ์คํ์ ์งํํ๋ค.
## ๊ฒฐ๊ณผ
![[SE-ResNet-50 VS ResNet-50 Loss, Error Comparsion.png]]
| | Loss | Error | ์ด ํ์ต ์๊ฐ |
| ------------ | ------ | ------ | ---------- |
| ResNet-50 | 0.3488 | 20.20% | 108m 57.1s |
| SE-ResNet-50 | 0.2512 | 17.53% | 128m 38.5s |
- SE-ResNet-50๊ณผ ResNet์ Test Error ์ฐจ์ด๋ ์ฝ 2.67% ์ ๋ ๋ฌ๊ณ ์ด ํ์ต ์๊ฐ์ ์ฝ 20m, ์ฝ 18% ์ ๋ ์ฐจ์ด๊ฐ ๋ฌ๋ค.
![[SE-ResNet-50 VS ResNet-50 Top Error Comparsion.png]]
- ์ค์ ์ต์ข
Top Error์์๋ Top-1, Top-5 ๋ชจ๋ SE-ResNet์ด ๋์ ์ฑ๋ฅ์ ๊ฐ์ ธ์๋ค.