본문 바로가기

Machine Learning Models/Covolutions

MobileNet (2)

반응형

이전 포스트

[Machine Learning/Architecture] - MobileNet (1)


Model architecture

MobileNet V2의 전체 구조는 Table 와 같습니다. 첫 번째 layer 에서는 32 사이즈 필터의 convolution 을 수행하고 19개의 residual bottlenect 구조로 이루어집니다. 또한, 계산속도를 바르게 하기 위해 연산에 소요되는 bit 수를 줄인 low-precision 을 위해 ReLU6을 사용했고 expansion factor $t$는 6을 사용했다고 합니다.

ShuffleNet, MobileNet V1 등의 다른 경량화 모델과의 비교는 Figure 4와 같습니다. ShuffleNet 은 point-wise group convolution 과 channel shuffling 을 사용하지만 일반적인 residual block 과 마찬가지로 block 의 가운데가 바깥보다 더 얇은 구조를 취합니다.

Memory efficient inference

Inverted residual bottlenect layer 를 사용함에 따라 메모리 효율적인 구현이 가능합니다. Tensorflow, Caffe 등의 deep learning framework 는 입력부터 중간 텐서, 출력을 잇는 그래프 $G$를 구성하고 메모리에 저장되어야 할 텐서의 수가 최소가 되도록 연산을 수행합니다. Residual connection 과 같은 병렬 구조가 있을 때는 Equation 1과 같이 메모리 소요량이 모든 연산에 걸친 입력과 출력의 전체 사이즈가 되버립니다.

Equation 1

하지만 inverted residual block $F(x) = [A\circ N\circ B]x$ 에서 $A: R^{s\times s\times k}\rightarrow R^{s\times s\times n}$인 선형변환, $N=ReLU6\circ dwise\circ ReLU6$은 채널 단위의 비선형병환, $B: R^{s'\times s'\times n}\rightarrow R^{s'\times s'\times k'}$인 선형변환이라 했을 때, 소요되는 메모리량은 $|s^2 k|+|{s'}^2 k'|+O(max(s^2, {s'}^2))$만큼 소요됩니다. 이유는 Equation 2와 같이 bottleneck layer 의 안쪽 텐서 $I$는 $n/t$ 사이즈의 $t$개의 텐서의 연결로 볼 수 있기 때문입니다.

Equation 2

Equation 2에 따라 메모리에는 항상 중간 텐서의 $n/t$ 부분만 가지고 있어도 되며, $n=t$일 경우 단일 채널만 메모리에 지니고 있을 수 있습니다. 이게 가능한 이유는 $I$에 동작하는 변환이 채널 별로 동작하기 때문에 채널 별로 독립인 연산이고, 이후의 non-per-channel 변환은 출력 채널의 크기가 입력에 비해 매우 작기 때문입니다. 일반적인 convolution 에는 이러한 트릭을 적용할 수 없겠죠. 하지만 실제 구현상에서는 하나의 행렬곱연산을 작은 연산으로 쪼개는 것은 캐쉬의 효율성으로 최적화와 속도 측면에서 어느정도 불리함을 가지고 있습니다. 따라서 $t$를 2에서 5사이의 작은 값을 사용하여 메모리 사용량을 줄이면서 속도와의 tradeoff 를 조절합니다.

Experiments

ImageNet classification

ImageNet classification 결과는 Table 4, Figure 5와 같습니다. Table 4의 마지막 행의 MobileNet V2 (1.4) 부분은 기본 MobileNet V2에서 채널의 수를 1.4배만큼 늘린다는 표기입니다.

Object detection

Object detection 에 사용되는 SSD 모델에서의 convolution 을 depth-wise separable convolution 을 치환한 SSDLite 에 MobileNet V1, 2를 각각 적용한 결과는 Table 5,6과 같으며 MobileNet V2 SSDLite 가 가장 정확하면서 파라미터 수, 연산량이 제일 적어 속도가 제일 빠른 것을 볼 수 있습니다.

Ablation study

Figure 6(a) 는 linear bottleneck layer 에 ReLU 비선형함수를 적용/비적용했을 때의 성능 추이로 선형변환 자체는 비선형 변환에 비해 deep neural networks 표현력에 작은 부분을 미치지만 저차원에서 ReLU 를 적용했을 때에는 정보손실이 발생한다는 것을 볼 수 있습니다. Figure 6(b) 는 residual connection 의 적용 결과로 linear bottleneck layer 에 residual connection 을 적용한 것이 성능이 제일 좋은 것을 알 수 있습니다.

 

참조

반응형