티스토리 뷰

AI

[논문 리뷰] MobileNet V2 간단 리뷰!!

꿈더꿔 2022. 8. 25. 13:13

목차



     

    V1에서 달라진 점과 Architecture 중심으로 이야기를 하려고 한다.

     

    0. Abstract

     

    MobileNet V2는 Bottleneck 간 skip-connection과 Inverted Residual Structure를 바탕으로 설계되었다.

    Block 안 expansion layer는 lightweight depthwise conv를 사용한다.(MobileNet v1과 같다.)

    또한 representational power를 유지하려면 narrow layers에선 non-linearities를 제거하는 것이 중요하며 이를 실험적으로 확인했다. 이러한 아이디어를 바탕으로 실험한 결과 성능향상을 확인할 수 있었다.

     

    1. Intro

    현재 SOTA 모델들은 높은 computational cost(resource)를 필요로 한다. 그래서 많은 mobile 장치 / embedded application의 capabilities를 초과한다. MobileNet v1과 비슷한 방향으로 새로운 network를 제안한 것이 MobileNet v2이다. main 아이디어는 Inverted residual with linear bottleneck이다. input은 low dimension으로 시작해 중간 1x1 Conv를 활용해 high dimension으로 확장시킨 후 lightweight Depthwise Conv를 거쳐나온 feature map을 1x1 Conv로 low dimension으로 다시 낮춰 projection하는 과정이다. 이 architecture는 mobile design에 최적이며 memory cost면에서도 굉장히 효율적이다.

     

    2. Depthwise Separable Convolution

     

    https://ai.dreamkkt.com/51?category=1088027 

     

    [논문 리뷰] MobileNet v1에 대해서 간단하게 알아보기

    이번에는 MobileNet v1 논문에 대해서 간단하게 리뷰해보려고 한다. 1. Intro  AlexNet 이후로 CV분야는 딥러닝 네트워크를 중심으로해서 많은 발전을 이뤄냈다고 언급한다. Network의 연구는 대부분 더

    ai.dreamkkt.com

    다음 게시글을 참고하면 쉽게 이해할 수 있을 것이다. 간단하게는 Depthwise + 1x1 Conv(pixelwise Convolution)으로 parameter수를 줄인 것이 특징이다.

     

     

    3. Linear Bottlenecks

     

    논문에서 제시한 아이디어는 다음과 같다.

    $h_i x w_i x d_i $ tensor를 $d_i$ dimension을 가진 $h_i x w_i $ 크기의 이미지라고 가정한다. 그리고 각 layer activations set이 feature map을 생성하는데 이때 low-dim subspace로 embedded 될 수 있다고 가정한다. 이러한 가정으로 v1에서는 width를 조절하여 최적의 dimension을 찾았다. 즉, subspace를 찾았다고 볼 수 있다. 그러나 ReLU를 갖는 deep Convolution 에서는 단점이 존재한다. (논문에서는 break down이라 표현했는데 여기서는 그냥 단점이라 해석하겠다.)

    ReLU는 양수는 그대로 음수는 0으로 처리하다보니 low dimension subspace에 projection하는 순간 정보손실이 발생할 가능성이 있다. (논문에서는 만약 손실이 없다면 Linear Transformation으로 봐도 된다고 하는데 이는 가역적인 관계이다. 더 쉽게 말해서 low dim에서 high dim으로 역연산을 하더라도 그대로 표현이 된다는 의미이다.) 논문에서는 그래서 다음 그림을 바탕으로 설명하고 있다.

    하지만 이 부분은 나의 자의적 해석이기에 약간의 오류가 있을 수 있으니 잘 알아보고 확인하면 더 좋을 것이다. 분명한 것은 ReLU를 Transformation 관점으로 보면 non-zero영역만 표현하게 되는 것이다. 이로 인하여 불가피하게 특정채널에서는 정보손실이 발생할 수 있다. 그래서 논문에서는 channel이 많아지면 다른 channel에서는 손실이 발생하지 않을 수 있어 이를 보완해줄 수 있다고 언급하고 있다. 결국 input manifold(feature map이라 생각하면 좋다.)를 더 낮은 low-dimension subspace에 임베딩시켜 ReLU transformation이 정보를 보존할 수 있도록 하는 것이 MobileNet v2의 핵심아이디어다.

     

    정리해보면 다음 2가지가 핵심이다.

     

    - The manifold of interest(feature map)이 ReLU 통과후에도 non-zero volume를 계속 유지한다면, 이는 linear transformation과 같다.

     

    - ReLU는 정보를 그대로 유지시켜줄 수 있다는 것은 input space의 low-dim subspace에 input manifold가 완전히 놓여있다는 뜻이다. 즉, 정보손실 없이 저차원의 subspace로 옮길 수 있는 것으로 비유하자면 PCA결과 완벽하게 projection을 해도 error가 0이라는 의미로 볼 수 있다. 그러나 음수에 대해선 0으로 처리하는 만큼 정보손실이 발생할 수 있다.

     

     

    4. Inverted Residual

     

    우리가 ResNet 구조에서 아는 것처럼 Residual Block(Bottleneck 기준)은 1x1으로 dim을 줄인 후 3x3 통과 후 1x1을 통과시켜 다시 dim을 확장시키는 형태이다. 자세한 것은 다음 글을 참고하면 좋을 것이다.

    https://ai.dreamkkt.com/2?category=1088027 

     

    [논문 리뷰] ResNet (Residual Network) 리뷰하기

    1. Intro ResNet 발표 전 존재했던 기존 CNN(AlexNet, VGGNet 등) 모델에서는 깊은 Layer를 쌓을수록 Gradient 소실 및 폭발 문제가 발생했다. ResNet은 이를 해결하기 위해 나온 네트워크..

    ai.dreamkkt.com

     

    그러나 Inverted residual block은 용어 그대로 1x1으로 dim을 확장시킨 후 3x3 Depthwise 통과 후 1x1을 통과시켜 다시 dim을 줄이는 구조이다.

     

    이 구조를 통해서 메인 아이디어였던 Feature map(manifold) 추출에 있어서 channel수를 늘려 Depthwise Conv에서 발생할 수 있는 특정채널에서의 정보손실을 보완해준다.

     

     

    5. Model Architecture

     

    Bottleneck residual block은 다음과 같이 구성된다.

     

    논문에서 구성한 전체 architecture는 다음과 같다.

    Input size = size^2 * channels, t = expansion multiplier, c = output channels, n = repeat number, s = stride

    여기서는 Batch Norm이 적혀있지 않으나 실험에서는 모든 Layer 통과 후 BatchNorm을 적용하기 때문에 구현단계에서는 Activation 통과 전에 BatchNorm을 추가해주는 것이 필요하다.