내가 하고싶은 건 다 하는 공간
혼자 만들면서 공부하는 딥러닝 3-2 EfficientNet | 고급 CNN 모델과 전이 학습으로 이미지 분류하기 본문
서론
3-1장의 모델에서 더 진화된 모델을 3-2에서 살펴보고자 합니다. 그 모델의 이름은 EfficientNet인데 이름만 들어도 효율적인 모델이겠거니..하는 생각이 드네요. MobileNet이 깊이별 분리 합성곱 블록을 사용했듯이, EfficientNet에서는 역잔차 블록을 사용합니다.
역 잔차 블록
역 잔차 블록. 이름에서 볼 수 있듯이 잔차 블록의 역방향으로 진행됩니다. ResNet 모델에서 살펴보았듯이 잔차 블록 Residual Block은 아래와 같은 순서로 진행됩니다. 참고로 여기서는 잔차 블록 병목 구조를 활용합니다. 병목 구조는 기본 잔차 블록과 다르게 합성곱층을 3단계를 나누어 처리하고 있습니다.
- 1 x 1 합성곱 (차원 축소, 연산량 감소)
- 3 x 3 합성곱 (공간적 특징 추출)
- 1 x 1 합성곱 (차원 복구, 원하는 크기로 복원)
즉, 잔차 블록은 압축 -> 팽창의 순서를 거쳤습니다. 역 잔차 블록은 역방향으로 팽창 -> 압축의 순서를 거치게 됩니다.

위의 사진은 MobileNetV2에서 사용된 역 잔차 블록입니다. 총 3개의 합성곱층을 자세히 살펴보면 아래와 같습니다.
- 1 x 1 합성곱: 필터의 개수 = 채널의 개수 * 6, 채널을 6배로 늘린다.
- 깊이별 분리 합성곱층
- 1 x 1 합성곱층: 신경망의 깊이가 깊어질수록 필터의 개수가 16 ~ 320개로 늘어난다. 마지막에 렐루 대신 선형 병목 Linear Bottleneck 적용