2. 최근 Xception, MobileNtes등에서 사용되는 다양한
convolution 기술 중
일반적인 convolution, Pointwise convolution
(1x1 convolution)과 depthwise convolution의 차이는 ?
목적 : CNN의 계산량 및 매개변수 수를 줄임으로써
Xception은 큰 이미지 인식의 고속화
MobileNets은 정도를 유지하면서 Networks의 경량화
3. Pointwise convolution과 depthwise convolution의 장점을
이해하기 위해, 우선 일반 convolution의 계산량 및 parameter
수에 대해 생각해보면
어떤 CNN에 대한 입력 특징 맵의 크기를 FxF, 입력 채널 수를 N,
커널 크기를 KxK, 출력 채널 수를 M으로 하면,
이 CNN의 계산량은 F2NK2M이 된다.
4. 이것은 입력 특징 맵 1개당 Convolution의 cost가 K2N으로
이를 입력 특징 맵 F2 개에 적용해서 1 채널의 출력 특성 맵이
생성되기 때문에, 출력 특징 맵이 M개 경우에는
위의 계산과 같다.
parameter 수가 K2N의 Convolution이 M종류이기 때문에,
K2NM이 된다.
5. Pointwise convolution
Pointwise convolution은 ResNet등의 skip connection에도 이용되는
1x1 convolution이다.
공간 방향의 convolution은 실시하지 않고, 채널 방향에만 convolution을
한다.
특징 맵의 차원을 늘리거나 줄일 때 이용된다.
Pointwise convolution은 일반 convolution에서 K = 1로 한 것이기 때문에,
계산량은 F2NM, parameter 수는 NM이 된다.
6. Depthwise convolution
Depthwise convolution는 특징맵 채널마다 각각 공간 방향의 convolution
을 수행한다.
채널 방향에 convolution을 수행하지 않기 때문에 일반 convolution 1회의
cost가 K2N에서 K2로 되므로
CNN의 계산량은 F2NK2, parameter 수는 K2N이 된다.
7. 일반적인 convolution이 특징 맵의 공간 방향 및 채널 방향으로 동시에
convolution 을 실 시 하 는 반 면 , 채 널 방 향 의 convolution(pointwise
convolution)과 공간 방향의 convolution (depthwise convolution)을 분리
(factorize)해서 따로 계산한 후 후에 합쳐서 적용하여 공간 방향 및 채널 방
향을 동시에 convolution하는 convolution보다 적은 parameter 및 계산량으
로 근사 할 수있다.
계산량은 F2NK2M에서 F2NM + F2NK2로 감소된다.
비율로 말하면, 1/K2 + 1/M으로 되므로, 통상 M >> K2(e.g. K = 3, M≥32)이므
로, 계산량은 1/9 정도로 감소됨