본문 바로가기
CV(Computer Vision)

MobileNetV2

by namduhus 2026. 6. 8.

[논문 정보]

Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, Liang-Chieh Chen et al.
MobileNetV2: Inverted Residuals and Linear Bottlenecks
arXiv:1801.04381 | 2018년 1월 최초 공개, 2019년 3월 v4


1. 서론

MobileNetV2는 모바일 및 임베디드 환경에서 동작할 수 있는 효율적인 CNN 구조를 제안한 논문이다. 기존 CNN 모델들은 ImageNet과 같은 대규모 이미지 분류 태스크에서 높은 정확도를 달성했지만, 그 대가로 많은 연산량과 메모리를 요구했다. AlexNet, VGGNet, GoogLeNet, ResNet과 같은 모델들은 성능 향상의 흐름을 이끌었지만, 모바일 기기나 엣지 디바이스에서 실시간으로 실행하기에는 부담이 컸다.

 

MobileNetV1은 이러한 문제를 해결하기 위해 Depthwise Separable Convolution을 적극적으로 사용했다. 일반 합성곱을 depthwise convolution과 pointwise convolution으로 분해함으로써 연산량을 크게 줄였다. 그러나 MobileNetV1은 구조적으로 단순하고 효율적이었지만, 더 높은 정확도와 더 낮은 메모리 사용량을 동시에 달성하기에는 한계가 있었다.

 

MobileNetV2의 핵심 문제의식은 단순히 연산량을 줄이는 것에 그치지 않는다. 논문은 “모바일 모델에서 중요한 것은 FLOPs나 MAdds뿐 아니라 실제 추론 시 필요한 메모리 접근량과 중간 activation tensor의 크기”라고 본다. 모바일 하드웨어에서는 계산 자체보다 메모리 접근이 병목이 되는 경우가 많기 때문이다. 따라서 모델 구조는 단순히 파라미터 수나 연산량만 줄이는 방향이 아니라, 중간 feature map을 얼마나 효율적으로 다루는지도 고려해야 한다.

 

이 논문이 제안하는 핵심 모듈은 Inverted Residual with Linear Bottleneck이다. 기존 ResNet 계열의 residual block은 넓은 채널 공간에서 shortcut connection을 연결하고, 내부에서 채널 수를 줄인 뒤 다시 확장하는 bottleneck 구조를 사용했다. 반면 MobileNetV2는 이 흐름을 뒤집는다. 입력과 출력은 좁은 bottleneck 공간에 두고, 내부에서만 채널을 확장한 뒤 depthwise convolution을 수행한다. 그래서 이름이 inverted residual, 즉 "뒤집힌 residual 구조"가 된다.

 

또 하나의 중요한 설계는 linear bottleneck이다. 일반적인 CNN 블록에서는 convolution 뒤에 ReLU 같은 비선형 활성화 함수를 붙인다. 그러나 MobileNetV2는 좁은 bottleneck layer에서는 ReLU를 제거하고 선형 변환만 사용한다. 논문은 저차원 bottleneck 공간에서 ReLU를 적용하면 정보가 손실될 수 있다고 주장한다. 특히 ReLU는 음수 값을 0으로 잘라내기 때문에, 채널 수가 작은 공간에서는 표현 manifold가 붕괴될 가능성이 커진다.

 

MobileNetV2는 이러한 두 가지 설계를 통해 MobileNetV1보다 더 높은 정확도와 더 낮은 latency를 달성한다. ImageNet classification에서는 MobileNetV1보다 적은 연산량과 파라미터로 더 높은 Top-1 accuracy를 보였고, object detection에서는 SSDLite와 결합하여 COCO에서 YOLOv2보다 훨씬 작은 모델 크기와 연산량으로 경쟁력 있는 성능을 달성했다. Semantic segmentation에서도 DeepLabv3를 경량화한 Mobile DeepLabv3 형태로 PASCAL VOC에서 모바일 환경에 적합한 성능을 보였다.

 

이 논문의 의의는 단순히 "가벼운 CNN을 만들었다"는 데 있지 않다. MobileNetV2는 이후 EfficientNet, MobileNetV3, 경량 semantic segmentation 모델, edge AI 모델 설계에 큰 영향을 주었다. 특히 확장 후 depthwise convolution, 선형 projection, bottleneck shortcut이라는 구조는 이후 모바일 CNN 설계의 표준적인 기본 블록 중 하나가 되었다.


2. 문제 정의

MobileNetV2가 다루는 문제는 다음과 같이 정리할 수 있다.

제한된 연산량, 제한된 메모리, 제한된 latency 조건에서 높은 정확도를 유지할 수 있는 CNN 구조를 어떻게 설계할 것인가?

 

기존 고성능 CNN은 대부분 연산량이 많고 중간 activation tensor가 크다. 예를 들어 VGGNet은 단순한 3×3 convolution을 반복하지만 파라미터 수와 연산량이 매우 크다. ResNet은 residual connection을 통해 깊은 네트워크 학습 문제를 해결했지만, 모바일 환경에서 직접 사용하기에는 여전히 무겁다. NASNet처럼 architecture search를 통해 찾은 모델들은 성능이 좋지만 구조가 복잡하고 모바일 환경에서 구현 및 최적화가 어렵다.

 

MobileNetV1은 depthwise separable convolution을 사용하여 표준 convolution의 연산량을 크게 줄였다. 표준 convolution의 연산량은 입력 feature map 크기를 h × w, 입력 채널 수를 d_i, 출력 채널 수를 d_j, kernel 크기를 k × k라고 할 때 다음과 같다.

h · w · d_i · d_j · k · k

 

반면 depthwise separable convolution은 depthwise convolution과 pointwise convolution으로 나뉘며, 연산량은 다음과 같다.

h · w · d_i · (k² + d_j)

 

3×3 convolution 기준으로 보면 일반 convolution 대비 약 8~9배 연산량을 줄일 수 있다. 그러나 MobileNetV1은 channel width를 줄이면 표현력이 함께 감소하는 문제가 있다. 즉, width multiplier를 줄여 모델을 작게 만들수록 feature representation 자체가 빈약해질 수 있다.

 

MobileNetV2는 여기서 더 깊은 문제를 제기한다. 네트워크의 activation tensor는 고차원 공간에 존재하지만, 실제 이미지 데이터가 이루는 의미 있는 표현은 저차원 manifold에 놓여 있을 가능성이 높다. 따라서 계산 효율성을 위해 저차원 bottleneck 표현을 사용하는 것은 자연스럽다. 하지만 이 저차원 공간에 ReLU 같은 비선형 함수를 적용하면 정보가 손실될 수 있다.

 

ReLU는 다음과 같은 함수다.

ReLU(x) = max(0, x)

 

이 함수는 음수 영역의 값을 모두 0으로 보낸다. 고차원 공간에서는 일부 채널이 0이 되어도 다른 채널들이 정보를 보존할 가능성이 있다. 하지만 채널 수가 작은 bottleneck 공간에서는 ReLU가 정보를 파괴할 위험이 커진다. 논문은 이 문제를 "low-dimensional manifold가 ReLU에 의해 collapse될 수 있다"는 관점으로 설명한다.

 

따라서 MobileNetV2의 문제 정의는 단순한 경량화가 아니다. 더 정확히는 다음 세 가지 문제를 동시에 해결하는 것이다.

 

첫째, MobileNetV1처럼 depthwise separable convolution의 효율성을 유지해야 한다.

 

둘째, 좁은 channel representation을 사용하면서도 표현력을 잃지 않아야 한다.

 

셋째, 모바일 추론에서 중간 activation tensor의 메모리 사용량을 줄여야 한다.

 

MobileNetV2는 이 문제를 해결하기 위해 좁은 bottleneck 공간에서는 정보를 보존하고, 넓은 expansion 공간에서 비선형 변환을 수행하는 구조를 제안한다.


[논문 용어 정리]

1. Manifold란 무엇인가?

논문에서 말하는 manifold는 쉽게 말하면 데이터가 실제로 놓여 있는 의미 있는 표현 공간입니다.

 

이미지 feature tensor를 생각해보면, 어떤 layer의 activation은 보통 다음처럼 생겼습니다.

H × W × C

 

예를 들어 어떤 feature map이 14 × 14 × 96이라면, 각 위치마다 96차원 벡터가 있다고 볼 수 있습니다. 이론적으로는 각 벡터가 96차원 전체 공간 어디든 갈 수 있지만, 실제 자연 이미지에서 나오는 feature들은 그 공간 전체를 꽉 채우지 않습니다. 사람, 자동차, 고양이, 배경 같은 실제 이미지 패턴은 훨씬 제한된 구조를 갖기 때문입니다.

 

논문은 이 "실제로 의미 있는 activation들의 집합"을 manifold of interest라고 부릅니다. 즉, 고차원 feature 공간 안에 있지만 실제 데이터는 그 안의 낮은 차원 곡면 또는 부분공간 근처에 놓여 있다고 보는 것입니다. 논문도 각 layer의 activation tensor를 h_i × w_i × d_i 형태로 보고, 각 위치의 d_i차원 activation 값들이 의미 있는 manifold를 형성한다고 설명합니다.  

 

직관적으로 비유하면 이렇습니다.

전체 feature 공간 = 큰 방 전체
manifold = 실제 사람이 걸어 다니는 길

 

방은 매우 크지만 사람이 실제로 움직이는 경로는 일부입니다. CNN의 activation 공간도 마찬가지로 차원은 크지만, 실제 이미지 데이터가 만드는 표현은 그 안의 제한된 구조 위에 놓여 있다고 보는 것입니다.

2. 왜 manifold 이야기가 MobileNetV2에서 중요한가?

MobileNetV2는 모바일 모델이기 때문에 채널 수를 줄여야 합니다. 그런데 채널을 줄인다는 것은 feature 공간의 차원을 낮춘다는 뜻입니다.

 

문제는 여기에 ReLU가 들어갈 때 발생합니다.

 

ReLU는 음수 값을 0으로 만들어버립니다. 고차원 공간에서는 일부 채널이 0이 되어도 다른 채널에 정보가 남아 있을 수 있습니다. 하지만 채널 수가 작은 bottleneck 공간에서는 ReLU가 정보를 크게 잃게 만들 수 있습니다.

 

논문 Figure 1에서는 저차원 manifold를 더 높은 차원으로 embedding한 뒤 ReLU를 적용하는 예시를 보여줍니다. 차원이 2나 3처럼 낮을 때는 서로 다른 점들이 같은 위치로 collapse되어 정보 손실이 생기지만, 차원이 15나 30처럼 충분히 높으면 ReLU가 비선형성을 만들면서도 정보를 더 잘 보존할 수 있음을 시각적으로 보여줍니다.  

 

핵심은 이것입니다.

낮은 차원 + ReLU = 정보 손실 위험 큼
높은 차원 + ReLU = 정보 보존 가능성 높음

 

그래서 MobileNetV2는 좁은 bottleneck에서는 ReLU를 쓰지 않고, 넓게 확장한 expansion space에서만 ReLU를 사용합니다.

 

논문도 "manifold of interest가 저차원 subspace에 놓여 있다고 가정하면, convolution block 안에 linear bottleneck layer를 넣는 것이 좋고, bottleneck에서 linear layer를 사용하는 것이 non-linearity가 정보를 너무 많이 파괴하는 것을 막는다"고 설명합니다.  

3. Projection layer란 무엇인가?

MobileNetV2 block은 크게 세 단계입니다.

입력 bottleneck
          ↓
1×1 Expansion Conv + ReLU6
          ↓
3×3 Depthwise Conv + ReLU6
          ↓
1×1 Projection Conv, Linear
          ↓
출력 bottleneck

 

여기서 projection layer는 마지막의 1×1 Conv입니다.

 

이 layer의 역할은 확장된 채널을 다시 작은 채널 수로 압축하는 것입니다.

 

예를 들어 입력 채널이 64개이고 expansion ratio가 6이면 내부 채널은 384채널까지 커집니다.

그 다음 depthwise convolution을 수행한 뒤, projection layer가 이 384채널을 다시 64개 또는 128개 같은 출력 채널로 줄입니다.

384 channels → projection layer → 128 channels

 

즉, projection layer는 말 그대로 넓은 표현을 좁은 bottleneck 표현으로 투영하는 layer입니다.

 

논문 Table 1에서도 bottleneck block의 마지막 단계가 linear 1×1 conv2d로 표현되어 있습니다. 즉, 마지막 projection은 activation 없이 선형 1×1 convolution만 사용합니다.  


3. 제안 방법론

3.1 핵심 아이디어 

입력과 출력은 저차원 bottleneck으로 유지하되, 내부에서 채널을 확장한 뒤 depthwise convolution과 비선형 변환을 수행하고, 마지막 projection bottleneck에서는 ReLU를 제거하여 정보 손실을 막는다.

 

이 구조는 크게 세 부분으로 구성된다.

1×1 Expansion Conv + ReLU6
                    ↓
3×3 Depthwise Conv + ReLU6
                    ↓
1×1 Linear Projection Conv
                    ↓
Residual Connection, stride=1이고 입력/출력 채널이 같을 때

 

기존 MobileNetV1의 depthwise separable convolution은 다음과 같은 흐름이다.

3×3 Depthwise Conv
               ↓
1×1 Pointwise Conv

 

MobileNetV2는 여기에 expansion layer와 linear bottleneck을 추가한다.

1×1 Conv로 채널 확장
             ↓
3×3 Depthwise Conv
             ↓
1×1 Conv로 채널 축소

 

즉, MobileNetV2 block은 "좁게 들어와서 넓게 계산하고 다시 좁게 나가는" 구조다.


3.2 Depthwise Separable Convolution

MobileNetV2는 MobileNetV1과 마찬가지로 depthwise separable convolution을 기본 연산으로 사용한다. 일반 convolution은 공간 방향과 채널 방향을 동시에 처리한다. 즉, 하나의 convolution kernel이 입력 채널 전체를 보고 출력 채널을 만든다.

 

반면 depthwise separable convolution은 두 단계로 나뉜다.

 

첫 번째는 depthwise convolution이다. 각 입력 채널마다 독립적인 spatial filter를 적용한다. 예를 들어 입력 채널이 32개라면 32개의 3×3 filter가 각각 자신의 채널에만 적용된다. 이 단계는 공간적 패턴을 추출하지만 채널 간 조합은 하지 않는다.

 

두 번째는 pointwise convolution이다. 1×1 convolution을 사용하여 채널 간 정보를 섞는다. 이 단계에서 서로 다른 채널의 정보를 선형 결합하여 새로운 feature를 만든다.

 

이 분해는 연산량을 크게 줄인다. 표준 convolution이 h · w · d_i · d_j · k²의 비용을 갖는다면, depthwise separable convolution은 h · w · d_i · (k² + d_j)의 비용을 갖는다. k=3일 때, 출력 채널 수가 충분히 크면 약 8~9배의 연산 절감 효과가 생긴다.

 

다만 depthwise separable convolution만으로는 충분하지 않다. MobileNetV1은 이 연산을 통해 가벼운 모델을 만들었지만, 더 높은 정확도와 더 나은 메모리 효율을 위해서는 feature transform 구조 자체를 다시 설계할 필요가 있었다.


3.3 Linear Bottleneck

MobileNetV2의 가장 중요한 설계 중 하나는 linear bottleneck이다.

 

일반적으로 CNN에서는 convolution 뒤에 ReLU를 붙인다.

Conv → BatchNorm → ReLU

 

하지만 MobileNetV2는 마지막 projection layer에서는 ReLU를 사용하지 않는다.

1×1 Projection Conv → BatchNorm

 

여기서 projection layer는 확장된 채널을 다시 좁은 bottleneck 채널로 줄이는 역할을 한다. 예를 들어 입력 채널이 32개이고 expansion ratio가 6이라면 내부 채널은 192개가 된다. 이후 마지막 1×1 convolution이 다시 32개 또는 64개 등 지정된 출력 채널로 줄인다.

 

논문은 이 마지막 bottleneck 공간에서 ReLU를 제거해야 한다고 주장한다. 이유는 저차원 공간에서 ReLU를 적용하면 정보 손실이 발생할 수 있기 때문이다.

 

직관적으로 설명하면 다음과 같다.

 

고차원 공간에서는 어떤 정보가 여러 채널에 분산되어 있다. ReLU가 일부 음수 값을 0으로 만들어도 다른 채널에 정보가 남아 있을 가능성이 크다. 그러나 저차원 bottleneck 공간에서는 채널 수가 적기 때문에 하나의 채널이 사라지는 것이 더 큰 손실로 이어질 수 있다.

 

논문은 이를 manifold 관점으로 설명한다. 입력 데이터의 의미 있는 표현은 고차원 공간 전체를 채우는 것이 아니라 저차원 manifold 위에 존재한다고 가정한다. 이 manifold가 충분히 높은 차원의 공간에 embedding되어 있다면 ReLU를 적용해도 정보가 보존될 수 있다. 하지만 bottleneck처럼 차원이 낮은 공간에서는 ReLU가 manifold의 일부를 collapse시킬 수 있다.

 

따라서 MobileNetV2는 다음 원칙을 따른다.

비선형성은 넓은 expansion space에서 적용한다.
좁은 bottleneck space에서는 선형 변환을 유지한다.

 

이것이 linear bottleneck의 핵심이다.


3.4 Inverted Residual

MobileNetV2의 또 다른 핵심은 inverted residual이다.

 

기존 ResNet bottleneck block은 다음과 같은 구조를 갖는다.

   넓은 채널 입력
           ↓
1×1 Conv로 채널 축소
           ↓
     3×3 Conv
           ↓
1×1 Conv로 채널 확장
           ↓
Residual connection

 

즉, shortcut connection은 넓은 채널 표현 사이를 연결한다. 내부에서는 계산량을 줄이기 위해 일시적으로 채널을 줄인다.

MobileNetV2는 이 구조를 반대로 뒤집는다.

좁은 bottleneck 입력
             ↓
1×1 Conv로 채널 확장
             ↓
3×3 Depthwise Conv
             ↓
1×1 Conv로 채널 축소
            ↓
Residual connection

 

즉, shortcut connection은 좁은 bottleneck 표현 사이를 연결한다. 내부에서만 채널을 확장하여 풍부한 비선형 변환을 수행한다.

 

그래서 이 구조를 inverted residual이라고 부른다. 기존 residual block은 "넓게 유지하고 내부에서 좁히는 구조" 라면, MobileNetV2는 "좁게 유지하고 내부에서 넓히는 구조"다.

 

이 설계는 두 가지 장점이 있다.

 

첫째, shortcut이 연결되는 tensor의 채널 수가 작기 때문에 메모리 사용량이 줄어든다.

 

둘째, 내부 expansion layer에서 충분한 표현력을 확보할 수 있다.

 

MobileNetV2는 bottleneck 공간이 정보를 담는 주된 공간이고, expansion 공간은 비선형 변환을 수행하기 위한 임시 계산 공간이라고 본다. 따라서 shortcut은 정보가 보존되는 bottleneck 사이에 연결하는 것이 자연스럽다.


3.5 Bottleneck Residual Block 구조

여기서 t는 expansion factor다. MobileNetV2의 기본 설정에서는 t=6을 사용한다.

 

이렇게 확장된 채널 공간에서 depthwise convolution과 ReLU6가 적용되고, 마지막 1×1 convolution을 통해 다시 출력 채널 수로 줄어든다.

 

ReLU6는 값의 범위를 0에서 6 사이로 제한한다. 논문은 ReLU6가 low-precision computation에서 더 안정적이기 때문에 사용한다고 설명한다. 모바일 환경에서는 float32뿐 아니라 int8 quantization 등 저정밀 연산이 중요하기 때문에 ReLU6는 실용적인 선택이다.


3.6 전체 MobileNetV2 아키텍처

MobileNetV2의 전체 구조는 초기 convolution layer 이후 19개의 residual bottleneck layer로 구성된다. 논문의 기본 구조는 다음과 같다.

이 구조에서 k는 최종 class 수다. ImageNet classification에서는 1000이다.


3.7 Width Multiplier 와 Input Resolution

MobileNetV2는 MobileNetV1처럼 모델 크기를 조절하기 위한 두 가지 주요 hyperparameter를 제공한다.

 

첫째는 width multiplier다. 이는 각 layer의 채널 수를 일정 비율로 줄이거나 늘리는 값이다. 예를 들어 width multiplier가 0.5라면 기본 채널 수의 절반만 사용한다.

 

둘째는 input resolution이다. 기본 입력 크기는 224×224이지만, 모바일 환경에서는 192×192, 160×160, 128×128, 96×96 등으로 줄일 수 있다.

 

논문은 width multiplier를 0.35부터 1.4까지, 입력 해상도를 96부터 224까지 실험했다. 이를 통해 사용자는 정확도, 연산량, latency 사이에서 원하는 지점을 선택할 수 있다.

 

예를 들어 실시간 처리가 중요한 앱에서는 낮은 resolution과 작은 width multiplier를 사용할 수 있다. 반대로 정확도가 더 중요한 환경에서는 width multiplier 1.0 또는 1.4를 선택할 수 있다.

 

MobileNetV2의 장점은 이러한 trade-off curve 전반에서 MobileNetV1, ShuffleNet, NASNet 대비 경쟁력 있는 성능을 보인다는 점이다.


3.8 메모리 효율적 추론

MobileNetV2는 연산량뿐 아니라 메모리 효율성도 중요하게 다룬다.

 

일반적인 CNN 추론에서는 각 layer의 입력 tensor와 출력 tensor, 그리고 중간 tensor가 메모리에 저장된다. 특히 residual connection이 있는 구조에서는 shortcut 경로의 tensor를 나중에 더해야 하므로 일정 기간 메모리에 유지해야 한다.

 

기존 ResNet block에서는 shortcut이 넓은 채널 tensor 사이에 연결된다. 따라서 메모리에 유지해야 하는 activation tensor가 크다.

 

반면 MobileNetV2에서는 shortcut이 bottleneck tensor 사이에 연결된다. bottleneck tensor는 채널 수가 작기 때문에 메모리 사용량이 작다. 내부 expansion tensor는 크지만, 이 tensor는 block 내부에서만 사용되고 바로 버릴 수 있다.

 

논문은 이를 통해 MobileNetV2가 실제 모바일 추론에서 유리하다고 설명한다. 특히 작은 fast cache memory를 가진 embedded hardware에서는 큰 intermediate tensor를 main memory에 쓰고 읽는 작업이 병목이 될 수 있다. MobileNetV2는 큰 tensor를 오래 materialize하지 않아도 되도록 설계되어 있다.

 

이 부분은 MobileNetV2가 단순히 FLOPs를 줄인 모델이 아니라, 실제 deployment 관점까지 고려한 모델이라는 점을 보여준다.


4. 핵심 통찰 및 의의

MobileNetV2의 가장 중요한 통찰은 capacity와 expressiveness를 분리해서 설계할 수 있다는 점이다.

 

기존 convolution block에서는 출력 채널 수가 곧 표현 공간의 크기이자 transformation의 복잡도를 함께 결정했다. 채널 수를 줄이면 모델 capacity도 줄고, 비선형 변환의 표현력도 함께 줄어든다. 즉, 효율성을 위해 채널을 줄이면 정확도가 떨어지는 구조적 한계가 있었다.

 

MobileNetV2는 이 문제를 다음과 같이 분리한다.

bottleneck channel = 정보 저장 공간, capacity
expansion channel = 비선형 변환 공간, expressiveness

 

좁은 bottleneck은 정보 저장과 shortcut 연결을 담당한다. 넓은 expansion layer는 복잡한 비선형 변환을 담당한다. 이 분리는 모바일 모델 설계에서 매우 중요한 아이디어다.

 

두 번째 통찰은 비선형성이 항상 좋은 것은 아니라는 점이다. CNN에서는 보통 convolution 뒤에 activation을 붙이는 것이 당연하게 여겨졌다. 하지만 MobileNetV2는 좁은 공간에서는 ReLU가 정보 손실을 만들 수 있음을 보여준다. 따라서 모든 layer에 무조건 ReLU를 붙이는 것이 아니라, 어느 위치에서 비선형성을 적용해야 하는지가 중요하다.

 

세 번째 통찰은 모바일 모델에서는 FLOPs만 보면 안 된다는 점이다. 논문은 memory-efficient inference를 중요한 설계 기준으로 다룬다. 실제 모바일 디바이스에서는 큰 tensor를 메모리에 쓰고 읽는 비용이 크다. MobileNetV2는 shortcut을 bottleneck에 연결함으로써 메모리에 오래 유지해야 하는 tensor의 크기를 줄인다.

 

네 번째 통찰은 단순한 연산으로 구현 가능한 구조가 실용적으로 강하다는 점이다. MobileNetV2는 복잡한 custom operation을 사용하지 않는다. 1×1 convolution, depthwise convolution, batch normalization, ReLU6 같은 표준 연산만 사용한다. 이는 TensorFlow Lite, ONNX Runtime, Core ML, NNAPI 같은 다양한 deployment 환경에서 구현하기 쉽다는 장점으로 이어진다.

 

다섯 번째 통찰은 classification backbone이 detection과 segmentation에서도 효율적인 feature extractor가 될 수 있다는 점이다. MobileNetV2는 ImageNet classification에서만 좋은 모델이 아니라, SSDLite와 결합해 detection에 사용되고, DeepLabv3와 결합해 semantic segmentation에도 사용된다. 이는 경량 backbone의 범용성을 보여준다.


5. 한계점 및 향후 연구

MobileNetV2는 매우 성공적인 구조지만 몇 가지 한계도 있다.

 

첫째, MobileNetV2는 주로 CNN 기반 vision task에 초점을 맞춘다. 이후 vision transformer나 hybrid architecture가 등장하면서 모바일 모델 설계의 방향도 다양해졌다. MobileNetV2는 여전히 효율적인 CNN backbone으로 가치가 있지만, 장거리 dependency나 global context modeling 측면에서는 transformer 계열 모델보다 제한적일 수 있다.

 

둘째, 논문은 ReLU와 linear bottleneck에 대한 이론적 직관을 제공하지만, 이 분석이 모든 데이터셋과 모든 architecture에 일반적으로 적용되는지는 추가 연구가 필요하다. 실제로 이후 MobileNetV3에서는 NAS와 squeeze-and-excitation, hard-swish 등을 결합하여 더 높은 성능을 달성했다. 이는 MobileNetV2의 수동 설계가 강력하지만 최적은 아닐 수 있음을 보여준다.

 

셋째, MobileNetV2의 성능은 하드웨어와 inference engine에 따라 달라질 수 있다. 논문에서는 Pixel 1 CPU와 TF-Lite 기준 latency를 보고한다. 하지만 실제 deployment 환경에서는 GPU, NPU, DSP, Apple Neural Engine, Qualcomm Hexagon 등 다양한 가속기가 존재한다. Depthwise convolution은 이론적으로는 효율적이지만, 일부 하드웨어에서는 memory access 패턴 때문에 일반 convolution보다 최적화가 어려울 수 있다.

 

넷째, semantic segmentation 실험에서는 MobileNetV2 기반 경량 DeepLabv3가 좋은 trade-off를 보이지만, 고성능 segmentation 모델과 비교하면 여전히 mIOU 차이가 존재한다. 예를 들어 ResNet-101 기반 DeepLabv3는 더 높은 mIOU를 보인다. 따라서 정확도가 최우선인 서버 환경에서는 MobileNetV2가 항상 최선은 아니다.

 

향후 연구 방향으로는 MobileNetV2의 capacity와 expressiveness 분리 관점을 더 확장할 수 있다. 예를 들어 expansion ratio를 layer별로 다르게 설정하거나, attention mechanism을 bottleneck 또는 expansion space에 결합하거나, hardware-aware NAS를 통해 각 디바이스에 최적화된 inverted residual block 구성을 찾는 방향이 가능하다.


6. 결론

MobileNetV2는 모바일 환경을 위한 CNN 모델 설계에서 중요한 전환점을 만든 논문이다. MobileNetV1의 depthwise separable convolution을 계승하면서도, inverted residual과 linear bottleneck이라는 새로운 구조를 통해 더 높은 정확도, 더 낮은 연산량, 더 나은 메모리 효율을 달성했다.

 

이 논문의 핵심은 단순히 모델을 작게 만드는 것이 아니다. MobileNetV2는 정보가 저장되는 bottleneck 공간과 비선형 변환이 수행되는 expansion 공간을 분리한다. 또한 저차원 bottleneck에서 ReLU를 제거함으로써 정보 손실을 줄인다. 이 설계는 실험적으로도 ImageNet classification, COCO object detection, PASCAL VOC semantic segmentation에서 효과를 보였다.

 

특히 MobileNetV2 + SSDLite는 YOLOv2보다 높은 mAP를 보이면서도 약 10배 적은 parameter와 약 20배 적은 연산량을 달성했다. 이는 모바일 object detection에서 MobileNetV2의 실용성을 잘 보여준다. Semantic segmentation에서도 MobileNetV2 기반 DeepLabv3는 작은 모델 크기와 낮은 연산량으로 의미 있는 성능을 달성했다.

 

결론적으로 MobileNetV2는 경량 CNN 설계의 대표적인 기준점이다. 이후 MobileNetV3, EfficientNet, EdgeTPU용 모델, 실시간 segmentation 모델 등 다양한 경량 네트워크가 이 논문의 설계 철학을 계승했다. 모바일, 엣지 AI, 온디바이스 비전 모델을 이해하기 위해 반드시 짚고 넘어가야 할 핵심 논문이다.

References
논문 원문: MobileNetV2: Inverted Residuals and Linear Bottlenecks

https://arxiv.org/abs/1801.04381

'CV(Computer Vision)' 카테고리의 다른 글

ShuffleNet V2  (0) 2026.06.09
ShuffleNet V1  (0) 2026.06.08
MobileNetV1  (0) 2026.06.01
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size  (0) 2026.05.28
DenseNet (Densely Connected Convolutional Networks)  (0) 2026.05.25