developer-ellen
인간 디버거의 로그 찍기
developer-ellen
전체 방문자
오늘
어제
  • 분류 전체보기 (217)
    • 회고록 (0)
    • 취뽀 및 커리어 여정의 Stack (2)
      • SSAFY 7기 (2)
    • 프로그래밍공부 (24)
      • c++ (0)
      • JAVA (3)
      • Spring (5)
      • design pattern (3)
      • BackDB (1)
      • Servlet&JSP (3)
      • Vue (4)
      • JPA (4)
      • Infra (1)
      • Linux (0)
    • AI (3)
      • papers (3)
      • trend (0)
    • 프로젝트진행 (0)
      • 데이터베이스 (0)
      • 서버개발 (0)
      • 인공지능 (0)
      • 하루정리 (0)
    • 포트폴리오 (0)
    • 알고리즘 (158)
      • 알고리즘문풀 (155)
      • 알고리즘공부 (3)
    • 통계공부 (15)
      • 시계열분석 (15)
      • 회귀분석 (0)
    • CS (14)
      • 컴퓨터네트워크 (4)
      • 운영체제 (8)
      • 데이터베이스 (2)
    • 주저리주저리 (0)
      • 필사 (0)
    • 취업관련정보 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 삼성코테구현풀이
  • 통계학
  • 데이터분석
  • 삼성코테준비
  • 시계열분석
  • MA모형
  • 코테파이썬
  • 백준파이썬풀이
  • 통계분석
  • c++디자인패턴
  • SW역량테스트파이썬
  • 삼성코테구현문제추천
  • ARIMA모형
  • 카카오코테java풀이
  • 삼성코테자바꿀팁
  • 삼성코테자바준비
  • 삼성코테파이썬준비
  • Arima
  • 삼성코테기출
  • 삼성코테자바풀이
  • 삼성코테기출자바풀이
  • SW역량테스트파이썬풀이
  • c++ 빌더 패턴
  • BOJ파이썬풀이
  • AR모형
  • 시계열
  • 운영체제인터럽트
  • 삼성코테파이썬
  • 카카오코테
  • 삼성코테파이썬풀이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
developer-ellen

인간 디버거의 로그 찍기

[AI] MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications 논문 리뷰
AI/papers

[AI] MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications 논문 리뷰

2024. 9. 15. 14:30
  • papers(https://arxiv.org/pdf/1704.04861)

 

0. Abstract

  • 해당 paper는 mobile과 embedding vision application에서 적용 가능한 efficient한 모델인 MobileNets을 제안
  • MobileNets은 가벼운 DNN을 만들기 위해 depth-wise seperable convolution을 수행
  • latency와 accuracy 사이의 trade-off를 조절하기 위해 두 개의 hyperparameter를 제시
  • 여러가지 use-case에서 MobileNet의 효과를 봄

 

 

1. Introduction

  • Alexnet 이후 accuracy는 엄청 높이기 위해 모델이 구조가 더 deep하고 복잡해짐
  • 그러나 모델이 정확도가 좋은 것과 별개로, 모델의 size와 speed 측면의 효율성은 떨어짐
    • 그러나, 로보틱스 or AR등의 현실세계인 모바일이나 임베디드의 제한된 computation platform에서 구동될 모델들이 이런 모델로 수행하긴 어려움
  • 해당 paper에서는 hyperparameter 두 개로 모델의 성능(사이즈)을 선택할 수 있는 모델을 제시
    • 즉, 해당 모델은 개발자가 직접 제한된 resouce에 맞는 network size의 모델을 사용할 수 있도록 함

 

 

2. Prior Work

  • 모델을 경량화 연구는 크게 두 가지
    • 큰 사이즈로 Pretrained된 모델의 Network를 압축하는 경우
    • 처음부터 소규모 네트워크를 직접 학습하는 경우
  • 모델 사이즈를 줄이는 이전에 많은 모델들
    • Inception, Xception
  • 모델을 Compression 하는 기법
    • qunatization, pruning, 등등 기법들..
  • 그러나 해당 paper는 이전 연구들고 다르게 제한된 resource에서 latency와 size를 직접 결정할 수 있는 network architecture

 

3. MobileNet Architecture

  • MobileNet은 standard convolution을 depthwise convolution와 1x1 convolution(=point wise conovolution)으로 분리(=factorization)하여 연산을 수행함
    • 따라서 연산량을 엄청 감소시킴
  • 기존 standard conv의 경우 전체 연산량은 다음과 같음
    • Dk는 입력값의 크기(가로, 세로)
    • M은 입력의 채널 수
    • N는 출력 채널의 수
    • Df는 FM의 크기(가로, 세로)

1) Depthwise convolution

  • Depthwise convolution은 각 입력의 채널마다 채널별 1개의 필터를 적용하는 것
  • 각 input channel에 대해 3x3 conv 하나의 필터가 연산을 수행하여 하나의 Feature Map을 생성함
    • 입력 채널 수가 M개면 M개의 FM을 생성
  • 각 채널마다 독립적으로 연산을 수행하여, spatial correlation을 계산
    • 예를 들어, 5개 채널의 입력값에, 5개의 3x3 conv가 각 채널에 대해 연산을 수행하고, 5개의 FM을 생성함
  • 다음은 연산량의 식
    • Dk는 입력값의 크기
    • M은 입력의 채널 수
    • Df는 FM의 크기(가로, 세로)

2) Pointwise convolution

  • depthwise에서 생성한 FM들을 1x1 conv로 output 채널 수를 조정함
    • 1x1 conv는 모든 채널에 대해서 연산을 수행하므로, cross-channel correlation을 계산하는 역할
  • 다음은 연산량의 식
    • M은 입력 채널 수
    • N는 출력 채널 수
    • Df는 FM의 크기 (가로, 세로)

 

3) 전체 연산량

 

  • 3x3 depthwise separable conv를 하면 기존 standard conv보다 연산량이 8~9배 정도 줄어듦

 

4. Network Structure and Training

  • 왼쪽은 Strandard Conv의 구조, 오른쪽은 Depthwise seperable Conv의 구조
궁금증 ?
[ 왜 Depthwise Conv 이후에 BN, ReLU가 있나요? ]
- Depthwise Convolution 후에 BN, ReLU가 있는 이유는 각 채널별 필터링 결과에 안정성과 비선형성을 부여하여 더 복잡한 특징을 추출하기 위함
[ 왜 Pointwise Conv 이후에도 BN, ReLU가 있나요? ]
- 채널 간의 상호작용을 한 후에도, 출력이 안정적이면서도 비선형을 유지하여 더 풍부한 특징을 학습하기 위함

 

 

 

  • MobileNet의 Depthwise 연산으로 충분히 작고 latency를 가지게 되었지만, 특정 task에서 더 빠른 모델이 필요할 수 있음
  • MobileNet은 모델의 latency와 accuracy를 조절하는 두 개의 hyperarameter가 있음

 

1) Width Multiplier : Thinner Models

  • 해당 hyperparameter인 α는 model의 두께를 결정
    • α는 0에서 1사이, 대체적으로 1, 0.75, 0.5, 0.25 사용(1이 base)
    • 여기서 두께란 각 layer에서 filter의 수를 의미함
    • α는 입력 채널에 각각 곱해져 전체적인 채널 수를 줄여 parameter와 computation cost을 감소시킴
  • 더 얇은 모델이 필요할 때, 입력 채널 M과 출력 채널 N에 적용하여 αM, αN이 됨
  • 각 α에 맞춰 진행한 실험 결과는 다음과 같음

 

 

2) Resolution Multiplier: Reduced Representation

  • 해당 hyperparameter인 ρ는 입력 이미지에 곱하여 전체 모델의 연산량을 감소시킴
    • ρ는 입력 이미지에 적용하여, 해상도를 낮춤
    • ρ의 범위는 0~1(1이 base)
  • 연산량은 다음과 같으며, 논문에서 이미지 크기가 224, 192, 169, 128 일때를 비교함

 

 

3) 두 개의 hyperparameter 적용

 

 

5. Experimentals

1) Model Choices 

  • depthwise separable한 경우 일반적인 full conv에 비해 accuracy가 1퍼정도만 줄음

  • 비슷한 연산량과 파라미터를 가진 Shallow MobileNet(depth를 줄임)보다 조절한 0.75 MobileNet(Narrow MobileNet)이 성능 더 나음
    • Shallow MobileNet은 중간에 pooling 없이 연산되는 5개의 층을 제외해 경량화 시킨 것

 

2) Model Shrinking Hyperparameters

  • accuracy와 computation의 trade-off
    • 16 model
      • α = { 1, 0.75, 0.5, 0.25 }
      • ρ = { 224, 192, 160, 128 }
    • log linear함( α = 0.25에서 점프..)

  • 다른 유명 모델들과의 비교

3) Fine Grained Recognition

  • noisy한 web data로 pretrain하고, Strandard Dogs training set으로 model을 fine tune
  • mobilenet model을 거의 좋은 성능을 달성함(computation, model size 고려해도)

4) Large Scale Geolocalization

5) Face Attributes

6) Object Detection 

7) Face Embeddings

 

'AI > papers' 카테고리의 다른 글

[AI] Visualizing and Understanding Convolutional Networks 논문 리뷰  (2) 2024.09.16
[AI] Deep Residual Learning for Image Recognition  (7) 2024.09.16
    'AI/papers' 카테고리의 다른 글
    • [AI] Visualizing and Understanding Convolutional Networks 논문 리뷰
    • [AI] Deep Residual Learning for Image Recognition
    developer-ellen
    developer-ellen

    티스토리툴바