본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
Computer Vision

[2024 - 2] 김동규 - MobileNet: Efficient Convolutional Neural Networks for Mobile Vision Application

by dongdaejin_coding 2024. 12. 8.

Abstract

 MobileNet은 성능 저하를 최소화하고 딥러닝 모델의 크기를 줄이는 것을 목표로 했습니다. 핸드폰이나 임베디드 시스템과 같이 저용량 메모리 환경에서 딥러닝 모델을 적용하기 위해서 파라미터를 감소 시켰고 감소시킨 파라미터만큼 층을 쌓아 성능을 높이는데 집중했습니다.

 MobilneNet의 경량화를 이해하기 위해서는 Depthwise separable convolution에 대한 개념이 필요합니다.

1. Depthwise Separable Convolution

Depthwise Separable Convolution은 Deptwise convolution 이후에 Pointwise Convolution을 결합한 형태입니다.

(1) Depthwise Convolution

 Depthwise Convolution은 각 입력 채널에 대하여 3x3 합성곱 필터가 연산을 수행하며 하나의 피처 맵을 생성합니다.

 입력 채널 수가 M개이면 M개의 피처맵을 생성하는 것입니다. 각 채널마다 독립적으로 연산을 수행하여 spatial correlation을 계산 하는 역학을 합니다. 

 Depthwise Convolution의 연산량은 다음과 같습니다.

D_K는 입력값 크기, M은 입력의 채널수, D_F는 피처맵의 크기 입니다.

 

(2) Pointwise Convolution

 Pointwise Convolution은 Depthwise Convolution이 생성한 피쳐맵들을 1x1합성곱 필터로 채널 수 조정해 줍니다. 1x1 conv는 모든 채널에 대하여 연산하므로 cross-channel correlation을 계산하는 역할을 합니다.

 Pointwise Convolution의 연산량을 다음과 같습니다.

M은 입력 채널 수, N은 출력 채널 수, D_F는 피처맵 크기입니다.

(3) Depthwise Separable Convolution

 Depthwise Separable Convolution은 Depthwise Convolution 이후에 Pointwise Convolution을 적용한 것입니다. 아래 그림은 MobilneNet에서 사용하는 Depthwise Separable Convolution 구조입니다. 

전체 연산량은 Depthwise Convolution과 Pointwise Convolution을 더해준 것이 됩니다. 

 

해당 연산량은 기존 합성곱 연산량보다 8~9배 더 적습니다. 전체 연산량을 기존의 합성곱 연산량으로 나눌경우 다음과 같은 식이 나오며 일반적으로 3x3 필터를 사용하기에 약 9배 더 적은 파라미터로 연산량을 가집니다.