심층 학습/MobileNet

1. 소개



이번에는, 스마트폰 등의 용량이 적은 소형 단말기에 CNN을 싣기 위해서 개발된 MobileNet에 대해 정리합니다.

2.MobileNet.V1





통상의 Convolution의 모식도입니다. $(h,w,C_i)\to(h,w,C_o)$가 되는 stride1의 k×k Convolution을 생각하면, 파라미터수는 $hw*C_i*k^2*C_o$가 필요합니다.



Depthhwise Separable Convolution의 모식도입니다. 통상의 Convolution은 공간 방향과 채널 방향의 컨벌루션을 동시에 실시합니다만, 이 모델은 공간 방향의 컨벌루션(Depthwise Conv)을 행하고 나서, 채널 방향의 컨벌루션(Pointwise Conv)을 실시하는 것과 같이 2단계로 실시합니다 합니다. 이를 통해 매개 변수 수를 $\frac{k^2+C_o}{k^2*C_o}=\frac{1}{k^2}+\frac{1}{C_o}$로 줄일 수 있습니다. 합니다.

3.MobileNet.V2



MobileNet.V2는 Inverted Residual이라는 ResNet에서 사용되는 Residual Block을 응용한 블록을 가지고 있는 것이 특징입니다. Residual Block은 입력에서 채널 방향으로 주목하면 넓은 -> 좁은 -> 넓다는 구조(Bottleneck 구조)가 되어 있지만, Inverted Residual에서는 좁은 -> 넓음 -> 좁다고 합니다.



3×3Depthwise Conv.를 1x1Conv.(Pointwise Conv.)로 끼우는 구조입니다. 이 구성을 통해 파라미터를 증가시키는 최대 요인인 출력 채널 수를 대폭 줄일 수 있습니다.

출력 채널 수를 대폭 줄이는 것은 그만큼 정보량을 충분히 추출할 수 없어 정밀도가 나오지 않게 됩니다만, Inverted Residual Block 안에서 채널 수를 일단 늘려 컨벌루션을 실시해 채널수를 되돌리는 것 에서 해결하고 있습니다.

4. MobileNet V1과 V2 비교




V2 쪽이 V1보다 압도적으로 적은 채널수로 성립하고 있는 것을 알 수 있습니다.

 

좋은 웹페이지 즐겨찾기