MobileNet과 network decoupling

1. overview

 

MobileNetV1은 depthwise separable convolution을 사용해 계산량을 줄이고

 

MobileNetV2는 inverted Residual block을 통해 계산량을 줄이고

 

MobileNetV3는 MobileNetV2에 Squeeze and excite를 사용해 계산량을 줄였다고함

 

 

2. MobileNetV2

 

ReLU6는 min(max(x,0),6)으로 ReLU에서 상한선을 6으로 고정한 함수

 

MobileNet 시리즈는 ReLU함수로 ReLU6를 사용

 

 

 

MobileNetV1과 MobileNetV2(stride=1, stride=2 version)의 기본 구조 비교

 

MobileNetV1은 depthwise convolution을 수행하고 pointwise convolution을 수행하여 계산량을 일반적인 convolution에 비해 상당히 줄임

 

MobileNetV2는 inverted residual block을 사용

 

MobileNetV1이 depthwise convolution을 수행하고 pointwise convolution을 수행했다면

 

MobileNetV2는 pointwise convolution을 수행하고 depthwise convolution을 수행하고 pointwise convolution을 수행하여 순서를 뒤집었더니 계산량을 획기적으로 줄였다

 

inverted residual block(왼쪽)그림과 network 계산량 비교

 

 

MobileNetV2의 경우 마지막 layer에 ReLU를 쓰지 않고 있는데 안쓰는게 성능이 좋았다고 한다

 

마지막 layer에서 ReLU를 안쓴것과 ReLU를 쓴것의 성능비교

 

 

3. network decoupling abstract

 

depthwise separable convolution이 network design에서 상당히 효율적이었지만 full training setting을 할때 training에서 시간을 많이 소모한다?

 

이 논문에서는 regular convolution과 depthwise separable convolution의 수학적인 관계를 최초로 분석하였다

 

참고로 이전까지 나온 mobilenet 등에서 사용한 depthwise separable convolution은 그런 관계 분석 없이 경험적으로 좋다고 생각하고 그냥 해본것

 

우리는 depthwise separable convolution이 regular convolution의 principal component임을 보일것이다.

 

그러면서 network decoupling이라는, pretrained CNN을 mobilenet같은 depthwise separable convolution architecture에 transfer하여 가속화시키는 training-free method를 제안하겠다.

 

이 방법은 accuracy 손해를 감수할정도로 속도를 상당히 상승시켜줄 것이다.

 

 

4. 구체적인 network decoupling

 

depthwise convolution, pointwise convolution의 여러가지 합의 조합을 original network의 regular convolution에 approximation하는 것을 보임

 

network decoupling의 예시?

 

 

 

위 그림을 보면 {PW,DW}가 pointwise 다음 depthwise이냐 depthwise 다음 pointwise냐 둘중 하나인데

 

이것의 임의의 조합을 임의의 N번해서 regular convolution에 approximation했다는 거

 

수학적으로 computing complexity를 올리지 않고 몇개의 depthwise separable convolution의 합으로 원래의 regular convolution을 equivalent하게 나타낼 수 있다.

 

 

 

regular convolution은 depthwise separable convolution의 합으로 equivalent하게 나타낼 수 있다.

 

따름정리로 주요 top-T개의 principal component depthwise separable convolution의 합으로 원래의 regular convolution을 approximation할 수 있다

 

 

 

몇개의 depthwise separable convolution의 합으로 원래의 regular convolution을 approximation할 수 있다.

 

실제로 실험해보면 우리의 결과가 다른 channel decomposition이나 spatial decomposition보다 계산량을 더욱 줄이면서 더 정확하게 근사시킨다

 

논문의 실험결과 표

 

 

neural network에서 어느 순간 depthwise separable convolution이 경험적으로 좋다고 쓰이기 시작했는데

 

원래부터 있었던 CP decomposition이나 Tucker decomposition이랑 비슷해보인거임

 

그래서 이들이랑 연관시켜 합쳐서 나온게 network decoupling이라고? 비슷한것 같기도하고 아닌것 같기도하고…

 

 

5. MobileNet is special case of CP decomposition

 

실제로 2020년에 mobilenet block은 CP decomposition의 special case임을 증명함

 

network는 이제 layer 사이에 batch normalization이나 relu같은 non linearity를 넣는데

 

그런거 빼고 filter decomposition만 보면 CP decomposition이랑 다를게 없다는 거

 

 

 

mobilenetv1과 mobilenetv2 block을 CP decomposition으로 나타낼 수 있다

 

강의 들을때는 몰랐는데 다시 보니까 신기하네… network에서 경험적으로 좋다고 쓰던게 알고보니

 

수학적으로 알려진 CP decomposition이랑 tucker decomposition으로 결과적으로 연결된다는거

 

 

 

 

TAGS.

Comments