🎻

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

Tags
Model Architecture
Created
2021/01/31 11:24
Publication
ICML'19
Rate
3
Summary
(상세 페이지 참고)
CNN의 parameter 수를 늘리면 거의 항상 그 성능은 개선되기 마련이다. CNN의 parameter 수를 늘리는 방법은 모델의 깊이를 깊게 하는 것(즉 layer를 추가하는 것), 모델의 너비를 넓게 하는 것(즉 채널의 수를 늘리는 것) 그리고 입력 이미지의 해상도를 높이는 것이 있다.
하지만 EfficientNet 이전의 대부분의 CNN architecture에 대한 연구들은 이 세 가지 방법 중 하나의 방법만을 시도함으로써 모델의 성능을 개선해 왔다. 하지만 논문에서는 이러한 접근 방식이 - 무릇 하나의 요소가 깊어지면 다른 요소도 따라서 깊어져야 최선의 결과를 낼 수 있기 때문에 - 비효율적이라 주장한다. 이에 따라 논문에서는 세 가지 요소(layer, channel, resolution)를 proportional 하게 조정함으로써 모델을 효율적으로 확장/축소할 수 있음을 보인다. 즉 세 요소를 비율적으로 조정함으로써 동일한 computation resource 하에서 보다 효과적인 모델을 찾는 방법론을 제시한다.
간단히 말하자면, 다음과 같은 식을 통해 모델을 형성한다.
depth: d=αϕwidth: w=βϕresolution: r=γϕs.t. αβ2γ22 and α,β,γ1\text{depth: } d = \alpha^{\phi} \\ \text{width: } w = \beta^{\phi} \\ \text{resolution: } r = \gamma^{\phi} \\ \text{s.t. } \alpha \cdot \beta^2 \cdot \gamma^2 \approx 2 \text{ and } \alpha, \beta, \gamma \geq 1
페이퍼에서는 일단 ϕ=1\phi = 1로 고정한 후 α,β,γ\alpha, \beta, \gamma의 최적값을 탐색한다. 그 후 고정된 α,β,γ\alpha, \beta, \gamma를 가지고 ϕ\phi를 변형해가며 네트워크 사이즈를 조정한다. 모델에서 찾아낸 최적값은 α=1.2,β=1.1,γ=1.15\alpha = 1.2, \beta = 1.1, \gamma = 1.15이다.
또한 페이퍼에서는 ImageNet에 대한 accuracy와 FLOPS를 타겟으로 한 NAS(Neural Architecture Search)를 통해 얻어낸 EfficientNet이라는 backbone network를 제안한다. 이러한 EfficientNet을 다양한 ϕ\phi 값으로 조정한 네트워크들이 바로 진리의 EfficientNet-B0~7이다.
E.O.D.