데이터 전처리: 기술/아키텍처 – MobileNet
ㅁ 기술/아키텍처
1. MobileNet
ㅇ 정의:
모바일 및 임베디드 기기에서 경량화된 딥러닝 모델을 구현하기 위해 개발된 CNN(합성곱 신경망) 아키텍처로, 연산 효율성을 높이기 위해 Depthwise Separable Convolution을 활용함.
ㅇ 특징:
– 모델 크기와 연산량을 줄여 저전력 환경에서도 실시간 추론 가능
– 하이퍼파라미터 α(Width Multiplier), ρ(Resolution Multiplier)를 통해 모델 크기와 속도를 조절 가능
– ImageNet 등 대규모 데이터셋에서 사전 학습된 가중치를 활용 가능
– 모바일 CPU, GPU, NPU 등 다양한 온디바이스 하드웨어에 최적화
ㅇ 적합한 경우:
– 스마트폰, IoT 디바이스에서 이미지 분류, 객체 탐지 등 실시간 처리 필요 시
– 네트워크 연결이 제한되거나 클라우드 연산이 불가능한 환경
– 배터리 소모를 최소화하면서 AI 기능을 제공해야 하는 경우
ㅇ 시험 함정:
– MobileNet은 경량화를 위해 Fully Connected Layer를 제거한 것이 아님 (FC Layer 존재 가능)
– Depthwise Convolution과 Pointwise Convolution의 순서를 혼동할 수 있음
– MobileNet과 SqueezeNet, ShuffleNet 등의 차이를 묻는 문제에서 파라미터 축소 방식이 다름
ㅇ 시험 대비 “패턴 보기” 예시:
O: “MobileNet은 Depthwise Separable Convolution을 사용하여 연산량을 줄인다.”
X: “MobileNet은 모든 합성곱 연산을 제거하여 연산량을 줄인다.”
ㅁ 추가 학습 내용
MobileNet 버전별 특징 정리
– MobileNetV1: Depthwise Separable Convolution을 사용하여 연산량과 파라미터 수를 크게 줄임.
– MobileNetV2: Inverted Residuals와 Linear Bottleneck 구조를 도입하여 정확도와 효율성을 개선.
– MobileNetV3: NAS(Neural Architecture Search)를 통해 구조를 최적화하고, Hard-Swish 활성화 함수를 적용하여 성능과 효율성을 동시에 향상.
Depthwise Separable Convolution 연산량 계산
– 일반 Convolution: 커널 크기(K x K), 입력 채널(M), 출력 채널(N), 출력 feature map 크기(F x F)일 때 연산량은 K x K x M x N x F x F.
– Depthwise Separable Convolution: Depthwise 단계(K x K x M x F x F) + Pointwise 단계(1 x 1 x M x N x F x F)로 연산량이 크게 감소.
– FLOPs 감소 비율: 약 1/N + 1/K² 만큼으로, 예를 들어 K=3, N이 큰 경우 약 8~9배 연산량 절감 가능.
온디바이스 환경 배포 및 최적화
– 배포 프레임워크: TensorFlow Lite, Core ML, NNAPI 등을 활용하여 모바일 및 임베디드 환경에 모델을 적용.
– 최적화 기법:
– 양자화(Quantization): 모델 파라미터를 32비트에서 8비트 등으로 줄여 메모리 사용량과 연산 속도 개선.
– 프루닝(Pruning): 중요도가 낮은 가중치를 제거하여 모델 크기 축소.
– 지연 로딩(Lazy Loading): 필요한 시점에만 모델이나 가중치를 로드하여 초기 로딩 시간과 메모리 사용량 절감.