Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, Liang-Chieh Chen - Google Inc.
본 논문에서 우리는 새로운 모바일 구조 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를 평가한다.
Appendix 추가된 것을 고려하고 싶다면 Arxiv 참조
https://arxiv.org/abs/1801.04381
https://www.slideshare.net/JinwonLee9/pr108-mobilenetv2-inverted-residuals-and-linear-bottlenecks
MobileNet - PR-044
ShuffleNet - PR-056
CNN은 높은 계산량 요구량을 요구한다. NAS 계열 역시도 네트워크가 복잡.
채널별로 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 사용이 선응이 오히려 떨어짐
Residual Block : 채널을 줄이고 다시 늘리는 방향으로 진행
wide -> narrow(bottelneck) -> wide
Inverted Residual Block : Residual Block과 반대로 작동하며 연산량이 줄어듬
narrwo -> wide -> narrow
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이 존재하지 않음
타 모델들 대비 비교적 좋은 성과
Object Detection에 적용해보기 - SSDLite
연산량이 작은 MNet V2
Segmentation에서 작은 연산량
ReLU를 썼더니 성능이 줄어든다.
https://github.com/d-li14/mobilenetv2.pytorch
https://gaussian37.github.io/dl-concept-mobilenet_v2/