About me
home
Portfolio
home
📱

MobileNet 정리

MobileNetV2논문발표_김영준.pptx
1573.1KB
MobileNet V1에서의 핵심 아이디어인 Depthwise Separable Convolution을 그대로 사용하되 Inverted Residual 구조를 제시하였다.

등장배경

자동차,드론,스마트폰과 같은 환경에서는 CPU를 하나 정도 가지고 있거나, GPU가 없을 수도 있으며, 메모리도 부족하다.
핸드폰이나 임베디드 시스템 같이 저용량 메모리환경에 딥러닝을 적용하기 위해서는 모델 경량화가 필요하다.
MobileNet은 컴퓨터 성능이 제한되거나 배터리 퍼포먼스가 중요한 곳에서 사용될 목적으로 설계된 CNN 구조이다.
엣지 컴퓨팅: 클라우드에서 모든 연산을 처리하는 것이 아니라, 모바일 디바이스들이 직접 연산을 하거나 edge들에서 데이터 연산을 하여 Cloud에 데이터를 뿌려주는 것이다.( MobileNet을 사용하려는 환경)

작은 신경망을 만들기 위한 기술들중 MobileNet에서 사용된 3가지 기술

Channel Reduction
Distillation & Compression
Depthwise Separable Convolutions ( Depthwise Convolution + Pointwise Convolution)
일반적으로 컨벌루션 연산은 공간(spatial) 연산과 채널(channel)별 연산을 한번에 진행하지만 DSC에서는 공간 연산 후에 채널별 연산을 순차적으로 진행하여 연산량을 줄였다.
(1) Depthwise Convolution: 각 입력 채널에 대하여 3x3 conv 하나의 필터가 연산을 수행하여 하나의 피쳐맵을 생성한다. 입력 채널 수가 M개이면 M개의 피쳐맵을 생성한다.
(2) Pointwise Convolution: Depthwise Convolution이 생성한 피쳐맵들을 1x1 conv로 채널 수를 조정한다.
(입력 채널 M, 출력 채널 N)
위와 같이 둘의 연산량을 더한 Depthwise Separable Convolution의 연산량은 기존 conv 연산량(아래 수식)보다 8~9배 더 적다.
<Depthwise Convolution 그림>
Separable Convlution 까지 한 전체과정(아래 사진)
두 식을 정리하면, 최종적으로 곱셈이 덧셈으로 바뀌게 됩니다.
보통 Kernel Size보다 Output Channel이 훨씬 크기 때문에 계산해보면 약 Kernel size 제곱만큼의 차이가 발생합.

하이퍼파라미터

MobileNet은 모델의 latency와 accuracy를 조절하는 두 개의 하이퍼파리미터가 있다.

(1) Width Multiplier(α): Thinner Models

α는 MobileNet의 두께를 결정한다. 즉 각 레이어에서 필터수를 의미한다.
α는 더 얇은 모델이 필요할 때 사용한다.
α의 범위는 0~1이다. 기본 MobileNet은 1을 사용
α를 낮추면 모델의 파라미터 수가 감소한다.

(2) Resolution Multiplier (ρ) : Reduced Representation

ρ는 입력 이미지에 적용하여 해상도를 낮춘다.
ρ는 모델의 연산량을 감소시키기 위해 사용한다.
ρ의 범위는 0~1이다. 기본 MobileNet은 1을 사용

#ReLU6 활성화 함수

Inverted Residuals and Linear Bottlenecks

Google AI Blog에서 작성한 글