Image processing/Deep-learning

Depth-wise Separable Convolution

유니디니 2020. 8. 2. 17:10
728x90
반응형

기존 컨볼루션 연산은 두가지 분리 가능한 컨볼루션으로 나눌수 있다. 이러한 Separable 연산은 MobileNet이나 Xception 등에서 사용된다.


Spatial Separable Convolution, Depth-wise Separable Convolution


Spatial Separable Convolution(Depthwise) : 하나의 컨볼루션 연산을 공간적으로 나눈 방법이다. 


예를 들어 3x3 컨볼루션 연산은 9 곱셈으로 한번의 컨볼루션 연산을 수행하는 대신, 동일한 효과를 얻기 위해 3x1, 1x3 곱셉으로 두번의 컨볼루션을 수행합니다. 곱셈이 적을수록 계산 복잡성이 줄어들고 수행 속도가 더 빠르다.



연산량의 비교

 

필터의 크기 : K, 입력의 채널 수  : C, 결과 채널 수 : M


기존 컨볼루션 연산 : K2CM


Spatial 컨볼루션 : K2C


Depth-wise Separable Convolution (Spatial + Pointwise)


Depth-wise Separable 컨볼루션은 Spatial 차원 뿐만아니라 깊이 차원 (채널)도 다루고 있다. RGB를 예로 들면 R연산, G연산, B연산 따로 적용하게 되며 각 채널을 해당 이미지의 특정 해석으로 이미지화 할 수 있다. Spatial 연산과 유사하며, 깊이 분리형 컨볼루션은 Spatial 분리형 컨볼루션과 Point 컨볼루션이라는 두개의 컨볼루션을 결합하였다.



필터의 크기 : K, 입력의 채널 수  : C, 결과 채널 수 : M


기존 컨볼루션 연산 : K2CM


두 연산을 더해주면 되므로, Spatial(Depthwise) + Pointwise => K2C + CM = C(K2 + M)


https://towardsdatascience.com/a-basic-introduction-to-separable-convolutions-b99ec3102728


https://hichoe95.tistory.com/48

반응형