본문 바로가기
논문리뷰

[논문리뷰] MoblieNet 논문 리뷰

by 단깅수 2025. 1. 12.
728x90

SPPNet 논문 리뷰입니다.

본 논문은 2017년도에 등장한 논문입니다.

 

 

논문 : MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

저자 : Andrew G. Howard Menglong Zhu Bo Chen Dmitry Kalenichenko Weijun Wang Tobias Weyand Marco Andreetto Hartwig Adam

 

 

MobileNet

 

합성곱 신경망 모델은 AlexNet 이후로 CV 분야에서 널리 사용되고 있습니다.

 

그리고 더 높은 정확도를 달성하기 위해 깊고 복잡한 네트워크를 설계하는 것이 일반적인 추세입니다.

 

그러나, 이러한 정확도 향상은 네트워크를 크기와 속도 측면에서 항상 효율적으로 만드는 것은 아닙니다.

 

특히 로봇공학, 자율주행 자동차, 증강현실 등 많은 실제 응용 분야에서는 제한된 자원 내에서 신속하게 작업이 수행되어야 합니다.

 

따라서 MobileNet은 모바일 및 임베디드 비전 애플리케이션 설계 요구사항에 쉽게 맞출 수 있도록 모델을 경량화하고 두 가지 새로운 하이퍼파라미터를 제시합니다.

 

이러한 MobileNet을 자세히 알아보기 위해 선행 연구 및 등장 배경을 알아보고, 핵심 개념 및 아키텍쳐를 알아본 다음 실험, 결론 부분까지 보도록 하겠습니다.

 

[1] Background

Prior Work

 

본 논문의 2번 섹터인 Prior Work 에서 선행 연구로서 SqueezeNet, Xception, Factorized Networks 등 여러 논문을 소개하고 있지만 그 중에서 주로 영감을 받았다고 하는 Xception 논문 개념 간략하게만 좀 알아보고 가겠습니다.

 

1) Inception v2/v3

Xception 모델은 eXtreme Inception으로 기존 Inception 모델에서 성능을 더 높인 모델이기 때문에 Inception 모델 간단 리뷰부터 가겠습니다.

 

 

Inception은 (1) 1x1 convolution을 통해 cross-channel correlation을 학습하고, 이후 (2) 3x3, 5x5 convolution을 통해서 spatial correlation을 학습합니다.

 

(1) 1x1 convolution 으로 cross-channel correlation 학습

1x1 convolution

 

1x1 conv 연산을 이해하기 위해 예시를 들어보겠습니다.

 

위 그림에서 (64x64x192) 블럭이 입력됩니다. 여기서 64x64는 input 이미지의 size이고 192는 채널 수(RGB는 3) 입니다.

 

여기서 1x1 합성곱 연산하면 (= 1x1 필터를 통과시키면) 채널 간 가중합을 하면서 채널 간 상관관계를 학습합니다.

 

그래서 1x1 convolution으로 cross-channel correlation 학습이 이루어지는 것이고 결과적으로는 64 x 64 x Filter 개수의 Feature Map이 생성됩니다.

 

이러한 1x1 conv 연산을 하는 이유는 위처럼 채널을 줄일 수 있고 (차원감소), conv 연산 후 ReLU 함수를 취하면서 비선형성을 추가해줄 수 있으며 채널별 특징을 잘 조합시킬 수 있다는 장점이 있어 수행합니다.

 

(2) Spatial Correlation 학습

Spatial Correlation

 

그리고 필터 크기를 7x7 → 5x5 / 3x3 등 줄여가면서 계산량을 감소시키고 3x3 마저도 3x1 / 1x3 등 줄여가면서 계산량을 감소시킬 수 있었습니다.

 

Inception v2/v3 내용이 더 궁금하시다면 아래 포스팅을 참고해주세요.

 

[논문리뷰] Inception v2, v3 논문 리뷰

오랜만에 돌아온 논문 리뷰 시간입니다.본 논문은 2015년에 등장한 논문입니다.    Rethinking the Inception Architecture for Computer Vision 저자 : Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, Zbign

dangingsu.tistory.com

 

 

 

Xception 저자들은 이렇게 얘기합니다.

 

"기존의 Conv Layer는 하나의 Filter로 Height, Width, Channel을 모두 학습하려고 하는데, 인셉션에서는 1x1 conv 연산 / Spatial Factorization으로 이를 분리해서 학습해 효율적으로 학습할 수 있었던 것이다."

 

따라서 Xception에서는 Cross-channel Correlation과 Spatial Correlation의 매핑을 완전히 분리시킬 수 있다는 가설을 세우면서 연구를 진행합니다. (Extreme Inception → 더 강력한 인셉션)

 

2) Xception

A Simplified Inception Module

 

Xception은 먼저 Inception v3 모듈을 매우 간소화시키고 시작합니다.

 

Extreme Version of Inception Module

 

위처럼 간소화시킨 인셉션 모듈의 1x1 conv 연산들을 모두 합쳐 대규모 1x1 Convolution으로 재구성하고 Output Channel이 겹치지 않는 부분에 대해 Spatial Convolution을 진행하는 형태로 재구성합니다.

 

output channel 당 3x3 convolution을 해줌으로써 channel wise, spatial 의 mapping을 완전히 분리합니다.

 

이제 여기까지 Channel과 공간 학습을 분리해서 해준다는 개념을 Inception, Xception을 통해 알아보았으니 본격적으로 MobileNet Architecture를 보겠습니다.

 


 

[2] MobileNet Architecture

Standard Convolution Filters

 

기본 합성곱 연산은 위 그림처럼 이루어집니다.

 

Dk : Filter Size (ex. 3x3 / 5x5 etc..)

M : Filter의 Channel 수 (RGB는 3)

N : Filter의 개수 (Output Channel의 수)

Df : Input 이미지의 Size (ex. 64x64 / 224x224 etc..)

 

연산량은 Dk x Dk x M x N x Df x Df 가 되어 파라미터 수가 매우 많기 때문에

MobileNet은 이를 줄이고자 표준 합성곱을 depthwise convolution과 pointwise convolution (1×1 convolution)으로 나누는 factorized convolution을 기반으로 합니다.

아래 그림처럼 말이죠.

하나씩 자세히 살펴보겠습니다.

 

1) Depthwise Convolution

Depthwise Convolution

 

Depthwise Convolution = "Convolution 연산을 채널별로 독립적으로 수행한다"

 

Depthwise Convolution 예시

 

위 그림처럼 RGB, 3채널의 이미지가 있다고 가정할 때 각 채널마다 독립적인 필터로 합성곱을 진행해 새로운 Feature Map을 만들어냅니다.

 

입력 채널별로 하나의 필터가 적용되며, 채널 간 결합은 수행되지 않습니다.

 

이 때 Feature Map의 크기는 Stride나 Padding을 조정함으로써 바뀔 수 있으며(Stride를 1 또는 2로 설정) 수식은 아래와 같습니다.

 

FeatureMap 생성 수식

 

= Output Feature Map

  • 설명 : Depthwise convolution을 통해 생성된 출력 feature map의 값
  • : 출력 feature map의 공간적 좌표 (가로 , 세로 )
  • m : 출력 feature map의 특정 채널(또는 깊이)

 

 

 

= Depthwise Convolution Filter

  • 설명 : Depthwise convolution에 사용되는 필터(kernel)의 가중치 값
  • : 필터의 공간적 좌표(가로 , 세로 )
  • m : 특정 입력 채널에 해당하는 필터

 

= Input Feature Map

  • 설명 : 입력 feature map에서 필터가 적용되는 영역의 값
  • : 필터가 적용될 입력 feature map의 공간적 좌표
    • : 필터의 위치를 기준으로 입력 영역의 상대적 위치
    • k, : 출력 feature map의 좌표
  • m : 입력 feature map의 특정 채널

 

그리고 Depthwise Convolution 연산을 활용하면 계산량 수식이 아래와 같이 성립됩니다.

Depthwise Conv 연산량

 

 

필터의 공간 크기 (Dk x Dk), 입력 채널 수 M, 출력 FeatureMap 크기 (Df x Df)에 따라 연산량이 결정됩니다.

 

2) Pointwise Convolution (1x1 convolution)

Pointwise Convolution

 

Pointwise Convolution = "1x1 Convolution"

 

Pointwise convolution은 Depthwise convolution이 생성한 피쳐맵들을 대상으로 1x1 Conv로 채널 수를 조정하는 작업을 말합니다.

 

이 때 1x1 Conv 는 모든 채널에 대하여 연산하므로, Cross-channel Correlation을 계산하게 되는 것이죠.

 

연산량은 다음과 같습니다.

Pointwise Conv 연산량

 

입력 채널 수 M, 출력 채널 수 N, FeatureMap 크기 (Df x Df)에 따라 연산량이 결정됩니다.

 

 

3) Depthwise Separable Convolution

Depthwise Separable Convolution

 

Depthwise Conv와 Pointwise Conv를 수행하면 Depthwise Separable Conv 연산이 됩니다.

 

 

그래서 결국 연산량을 얼마나 줄일 수 있는지 계산을 해보면

 

N은 Channel을 의미하기에 64 / 128 / 256 등 입력되어 1/N은 매우 작은 수가 됩니다.

 

Dk는 Filter Size로 보통의 경우 3x3을 주로 쓰기 때문에 1/9가 됩니다.

 

그래서 원래 연산량의 8~9배 정도 연산량을 감소시킬 수 있다고 논문에서 이야기합니다.

 

4) Network Structure

다음은 실제 네트워크 구조 부분입니다.

기존과 다른 구조의 Conv 연산

 

위 사진은 기존 Convolution 연산과 Depthwise Separable Convolution과의 차이점을 설명한 사진입니다.

 

기존 Conv 연산과 다르게 3x3 Depthwise Conv를 각 채널별로 독립적으로 수행해 공간적(local) 정보를 학습하고, BN과 ReLU를 거쳐 1x1 Conv 연산으로 채널 간 상호작용과 특징 결합을 학습하는 구조로 되어 있습니다.

 

실제 MobileNet Architecture

 

MobileNet은 첫 번째 Conv 레이어로 시작하며, 이는 초기 입력 이미지의 모든 채널 정보를 통합하고, 차원을 확장하거나 축소하면서 초기 특징(feature)을 효과적으로 추출하기 위해 사용됩니다.

 

이후 구조는 depthwise separable convolution을 반복적으로 적용하여 연산량을 줄이면서도 효율적으로 공간적(local) 정보와 채널 간 상호작용을 학습하도록 합니다.

 

총 28개의 레이어로 구성되며, 최종적으로 Average PoolingFully Connected Layer를 통해 1×1 크기의 출력으로 축소된 특징을 소프트맥스 분류기로 전달합니다.

 

위 사진에서 마지막 분류기가 1000개의 차원인 이유는 ILSVRC 대회의 클래스, 라벨 개수가 1000개여서 그렇다고 합니다.

 

5) Width Multiplier & Resolution Multiplier

 

  • Width Multiplier (더 얇은 모델이 필요할 때 사용)
    • 입력, 출력 채널을 알파 만큼 축소
    • 출력 채널이 원래 64, 알파가 0.5라면 출력 채널 수는 32개

 

  • Resolution Multiplier (신경망 계산비용을 더 낮출 때 사용)
    • 입력 영상 및 중간 레이어들의 해상도를 p배만큼 축소
    • 입력 영상의 해상도가 224x224, p가 0.571이라면 축소된 해상도는 128x128

 

따라서 필터의 크기를 3x3, Channel과 Filter 수를 512, 입력 이미지 크기를 14x14 라고 가정할 때

위 예시에서처럼 연산량 및 파라미터가 줄어드는 결과를 보입니다.

 


[3] Experiments

1) Depthwise Conv의 유무

 

첫 번째 실험은 기본적인 Conv 연산을 수행한 MobileNet과 Depthwise Separable Conv 연산을 수행한 MobileNet의 정확도 및 연산량, 파라미터 비교 실험입니다.

 

결과적으로, 정확도는 1.1% 정도 떨어졌지만 연산량과 파라미터 부분에서 약 9배정도 감소하면서 매우 효율적이라고 얘기할 수 있겠습니다.

 

2) Width Multiplier & Resolution Multiplier의 영향

 

다음은 위에서 설명한 알파 값과 p값을 조정하면서 성능, 연산량, 파라미터를 비교한 분석 결과입니다.

 

알파값을 감소시키면 연산량과 파라미터가, p값을 감소시키면 연산량이 줄어들어 효율적인 모델이 되지만 정확도는 다소 떨어짐을 알 수 있습니다.

 

아래 사진은 각 인자값을 줄여가면서 실험한 결과, 연산량과 성능은 선형관계에 있음을 나타냅니다.

 

3) 타 모델과의 성능 비교

 

다음은 타 모델들과의 성능 비교입니다.

 

구글넷보다는 효율적이면서 좋은 성능의 모델, VGG16보다는 성능은 약간 떨어지지만 혁신적으로 가볍고 효율적인 모델임을 입증하였습니다.

 

SqueezeNet, AlexNet 과 비교했을 때에도 더 가벼우면서 성능이 좋은 모델임을 이야기하고 있습니다.

 


 

[4] Conclusion

  • MobileNet은 컴퓨터 비전에서 자율주행, 로봇공학, 모바일 애플리케이션 등 리소스가 제한된 환경에서 빠르고 효율적인 신경망이 필요하다는 문제를 해결하기 위해 등장함
  • Depthwise separable convolution을 기반으로 표준 합성곱 연산을 Depthwise와 Pointwise로 나누어 연산량 및 파라미터 수를 대폭 줄였음
    • Depthwise convolution은 입력 채널별로 독립적인 필터를 적용해 공간적(local) 정보를 학습
    • Pointwise convolution은 1×1 필터로 채널 간의 상호작용을 학습
  • MobileNet은 ImageNet에서 약간의 정확도 손실을 감수하면서도 기존 모델 대비 8~9배 적은 연산량으로 높은 효율성을 보였음

 


 

[5] Reference

1x1 convolution : https://geunuk.tistory.com/435

Xception : https://sotudy.tistory.com/14

MobileNet : https://www.youtube.com/watch?v=JuEeRdRG_2E

 

 

[논문리뷰] SPPNet 논문 리뷰

SPPNet 논문 리뷰입니다.본 논문은 2014년도에 등장한 논문입니다.    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 저자 : Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun  [1] Introduction이번

dangingsu.tistory.com

728x90
반응형