아이공의 AI 공부 도전기

PR-108 "MobileNetV2: Inverted Residuals and Linear Bottlenecks" Review (2018 CVPR)(Mobile CNN)

 

 

     

 

 

 

1. Citations & Abstract 읽기

Citations : 2021.12.17 기준 7295회

저자

Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, Liang-Chieh Chen - Google Inc.

Abstract

본 논문에서 우리는 새로운 모바일 구조 MobileNetV2를 설명한다. 이는 다양한 모델 사이즈뿐 아니라 다중 작업 및 benchmark 환경 속 모바일 기반 모델들의 최신 성능보다 향상시킨다. 또한 SSDLite라고 우리가 부르는 새로운 framework에서 모바일 모델을 object detection 적용하기 위한 효과적인 방법을 설명한다. 추가적으로 우리는  Mobile DeepLabv3라고 부르는 축소된 형태의 DeepLabv3를 통해 mobile semantic segmentation 모델을 어떻게 구축할지를 보여준다.

 

(2문단 첫 문장 is로 시작,...?) 얇은 bottleneck layer들 간 shortcut connection들이 존재하는 도치된 residual structure을 기반으로 한다. 중간 확장 layer들은 경량 depthwise convolution을 사용하여 비선형성의 source(원천?)으로써의 feature를 필터링한다. 추가적으로 우리는 표현력을 유지하기 위해 좁은 layer들에서 비선형성을 제거하는 것이 중요하다는 것을 발견했다. 우리는 이것이 성능을 향상시키고 이 설계를 이끌도록하는 직관을 제공함을 보인다.

 

invert 뒤집다, (순서를) 도치시키다

 

마지막으로 우리들의 접근은 변환의 표현성으로부터 입출력 도메인들의 decoupling을 하게함으로써 추가 분석에서 편리한 framework를 제공한다. 우리는 ImageNet 분류, COCO object detection, VOC image segmentation에서 우리들의 성과를 측정한다. 우리는 정확도와 곱-덧셈(MAdd)에 의해 측정된 작업 수, 실제 latency 그리고 parameter의 수 사이의 trade-off를 평가한다.

 

 

2. 발표 정리

 

https://youtu.be/mT5Y-Zumbbw

 

공식 논문 링크

https://openaccess.thecvf.com/content_cvpr_2018/papers/Sandler_MobileNetV2_Inverted_Residuals_CVPR_2018_paper.pdf

 

Appendix 추가된 것을 고려하고 싶다면 Arxiv 참조

https://arxiv.org/abs/1801.04381

 

MobileNetV2: Inverted Residuals and Linear Bottlenecks

In this paper we describe a new mobile architecture, MobileNetV2, that improves the state of the art performance of mobile models on multiple tasks and benchmarks as well as across a spectrum of different model sizes. We also describe efficient ways of app

arxiv.org

 

 

Presentation Slide

https://www.slideshare.net/JinwonLee9/pr108-mobilenetv2-inverted-residuals-and-linear-bottlenecks

 

PR-108: MobileNetV2: Inverted Residuals and Linear Bottlenecks

Tensorflow-KR 논문읽기모임 Season2 108번째 발표 영상입니다 Google의 MobileNet 후속논문인 MobileNet V2를 review해 보았습니다 참고영상 : MobileNet v1 - https://youtu.be/7UoOFKcyIvM 발표영상 : https…

www.slideshare.net

 

 

Contents

 

MobileNet - PR-044

ShuffleNet - PR-056

 

CNN은 높은 계산량 요구량을 요구한다. NAS 계열 역시도 네트워크가 복잡.

 

이진원님 공유 슬라이드 4

 

채널별로 Depthwise convolution을 진행한 후 합쳐서 Pointwise convolution(채널 방향만 고려)을 진행. 이는 3x3을 진행한 결과와 같다. 8~9배 가량의 계산량을 줄일 수 있다.

 

With Multiplier : Layer의 채널 수를 0.75, 0.5, 0.25배로 줄이는 것

Resolution Multiplier : 이미지 resolution을 일정 비율로 줄이는 것

 

MobileNetV2 Key Features

1) Depthwise Separable Convolutions

2) Linear Bottlenecks

3) Inverted Residuals

 

Linear Bottlenecks

 

오래 전부터 NN의 layer들이 저차원 부분공간에서 "manifold of interest"를 형상한다고 가정

 

To summarize, we have highlighted two properties that are indicative of the requirement that the manifold of interest should lie in a low-dimensional subspace of the higher-dimensional activation space:

1) If the manifold of interest remains non-zero volume after ReLU transformation, it corresponds to a linear transformation.

양의 값을 가진 값에 대해서는 그대로 나오기 때문에 identity matrix와 곱한 것과 같아서 linear transformation이라 표현

 

2) ReLU is capable of preserving complete information about the input manifold, but only if the input
manifold lies in a low-dimensional subspace of the input space.

 

저차원에서 lineaer bottleneck layer를 만들어 차원을 줄이고 semantic information 유지

bottelneck layer에서 ReLU 사용이 선응이 오히려 떨어짐

 

논문 Fig 3

Residual Block : 채널을 줄이고 다시 늘리는 방향으로 진행

wide -> narrow(bottelneck) -> wide 

Inverted Residual Block : Residual Block과 반대로 작동하며 연산량이 줄어듬

narrwo -> wide -> narrow

 

 

t=6

ReLU6은 양의 값에 대해서 6이 최대값을 가지는 y=x ReLU function을 이야기함.

연산량이 줄어듬

 

 

Trade-off Hyper Parameters

Input Resolution : From 96 to 224

Width Multiplier : From 0.35 to 1.4

 

Memory Efficient

메모리를 효율성을 사용할 수 있음

 

(많은 설명을 해주셨지만 못 적은 부분들이 꽤 존재함. 유의)

(Notation, Detail 부분에서 아쉬움이 있다고 토로하심)

 

 

stride 1일 때만 residual connection이 존재 stride 2일 때는 skip connection이 존재하지 않음

 

3줄 400/600K에서 K는 오타?인 듯

타 모델들 대비 비교적 좋은 성과

Object Detection에 적용해보기 - SSDLite

연산량이 작은 MNet V2

Segmentation에서 작은 연산량

 

ReLU를 썼더니 성능이 줄어든다.

 

참조

GitHub 코드

https://github.com/pytorch/vision/blob/6db1569c89094cf23f3bc41f79275c45e9fcb3f3/torchvision/models/mobilenet.py#L77

 

GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision

Datasets, Transforms and Models specific to Computer Vision - GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision

github.com

 

https://github.com/d-li14/mobilenetv2.pytorch

 

GitHub - d-li14/mobilenetv2.pytorch: 72.8% MobileNetV2 1.0 model on ImageNet and a spectrum of pre-trained MobileNetV2 models

72.8% MobileNetV2 1.0 model on ImageNet and a spectrum of pre-trained MobileNetV2 models - GitHub - d-li14/mobilenetv2.pytorch: 72.8% MobileNetV2 1.0 model on ImageNet and a spectrum of pre-trained...

github.com

블로그 1

https://gaussian37.github.io/dl-concept-mobilenet_v2/

 

MobileNetV2(모바일넷 v2), Inverted Residuals and Linear Bottlenecks

gaussian37's blog

gaussian37.github.io

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading