EfficientNet은 Google Brain 팀이 개발한 CNN 기반 딥러닝 모델입니다. EfficientNet은 기존 모델들의 문제점을 해결하고자 하여, 네트워크 규모를 조정하면서 최적화된 네트워크 구조를 찾아내는 방식으로 설계되었습니다. Convolutional Neural Network (CNN)의 아키텍처를 최적화하여, 적은 파라미터와 계산 비용으로 높은 정확도를 보입니다.
EfficientNet은 기존의 모델들 (예: ResNet, Inception)보다 더 효율적으로 이미지 분류, 객체 감지, 세그멘테이션 등의 작업을 수행할 수 있습니다. 이는 모바일 기기나 임베디드 시스템에서도 빠르게 실행될 수 있어, 다양한 응용 분야에서 사용될 수 있습니다.
EfficientNet은 네트워크의 깊이, 폭, 해상도를 조절하여 여러 크기의 모델을 만들 수 있습니다. 이를 위해 네트워크 규모를 조정하는 계수인 compound scaling을 도입했습니다. 또한 EfficientNet은 기존 모델들에서 사용되던 연산을 최적화하여 높은 정확도와 작은 모델 사이즈를 동시에 달성합니다. 이를 위해 Swish activation function, MobileNetV2의 Inverted Residual Block, Squeeze-and-Excitation(SE) block 등의 기술을 활용합니다.
EfficientNet은 다양한 이미지 분류, 검출, 세그멘테이션 문제에서 SOTA(state-of-the-art) 성능을 보이며, 작은 모델부터 대형 모델까지 다양한 크기의 모델을 제공하여 다양한 플랫폼에서 적용이 가능합니다.
Inverted Residual Block은 모바일 기기에서 객체 감지나 이미지 분류 같은 컴퓨터 비전 태스크를 수행하기 위한 네트워크 구조입니다. 이 구조는 Residual Block의 형태와 매우 유사하지만, 모바일 기기에서 처리량과 메모리 사용량을 줄이기 위해 일부 요소를 역전시킵니다.
Inverted Residual Block은 입력 특징 맵의 차원을 줄이고 확장하는 두 가지 작업으로 구성됩니다. 이를 위해 먼저 1x1 컨볼루션을 사용하여 입력 특징 맵의 차원을 줄입니다. 그런 다음, 작은 필터 크기와 다양한 채널 수를 사용하여 이전에 줄인 차원을 다시 확장합니다. 마지막으로, 출력 특징 맵과 입력 특징 맵을 합칩니다.
Inverted Residual Block은 경량화 모델에서 매우 효과적으로 작동합니다. 이 구조는 모바일 기기에서 처리량과 메모리 사용량을 줄이면서도 높은 정확도를 유지할 수 있습니다. 따라서 Inverted Residual Block은 모바일 기기에서 컴퓨터 비전 태스크를 수행하는 데 광범위하게 사용됩니다.
Squeeze-and-Excitation (SE) 블록은 Convolutional Neural Network (CNN)의 모델 성능을 향상시키기 위한 방법 중 하나입니다. 이 방법은 특징 맵의 중요한 부분을 강조하고 덜 중요한 부분은 감소시키는 방식으로 동작합니다.low-level에서 SE Block은 클래스 상관없이 중요한 특징을 추출하고, High-level에서는 클래스와 관련있는 특징들을 추출한다네요.
SE 블록은 특징 맵을 입력으로 받아 squeeze 연산과 excitation 연산을 수행합니다. squeeze 연산은 특징 맵의 공간 차원을 제거하여 길이가 1인 채널 벡터를 생성합니다. excitation 연산은 squeeze 연산으로 생성된 벡터에 fully-connected 레이어를 추가하여 각 채널의 가중치를 결정하고, 이 가중치를 이용하여 입력 특징 맵의 채널별 정보를 재조정합니다.
SE 블록은 기존 CNN 모델과 함께 사용되어 성능을 향상시키는 데 적용됩니다. SE 블록은 ResNet, Inception, MobileNet 등의 모델에 적용될 수 있으며, 매우 간단한 구조를 가지므로 다른 모델과의 결합도 높은 확장성을 가집니다.
Compound scaling은 모델의 규모를 조정하고 최적화하는 기술입니다. 스케일링을 진행함에 있어서 depth, width, resolution을 특정한 스케일링 정도를 넘어가면 포화가 되기 때문에 균형있게 스케일링을 진행해야한다. EfficientNet에서 도입된 이 기술은 네트워크의 규모, 깊이 및 너비(피쳐맵의 너비)를 함께 확장하여 성능을 극대화합니다. 모델의 규모를 키워 성능을 향상시키는 데는 한계가 있기 때문에, compound scaling은 여러 가지 크기의 모델을 탐색하면서 최적의 모델 크기를 결정하는 데 도움이 됩니다. 이를 통해 최적의 모델 크기를 찾아 높은 정확도와 작은 모델 크기를 모두 달성할 수 있습니다.