ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Deep Learning]Depthwise Separable Convolution
    Artificial Intelligence/Deep learning 2021. 6. 14. 14:53

    오늘은 Convolution 방법 중 하나인  Depthwise Separable Convolution 내용을 포스팅해보도록 하겠습니다.

    Depthwise Separable Convolution 방법은 Xecption, Mobilenet V1, V2에 사용되고 있는데요 오늘의 포스팅은 CodeEmporium의 동영상을 참고하여 만들었습니다!

    먼저 기본적인 Convolution을 알아보도록 하겠습니다.

     

     

     

    Convolution

    일반적인 Convolution

    • 는 Height와 Width의 크기이고 M은 Channel 크기입니다.  따라서 Input shape은 (DF,DF,M) 입니다.
    • 는 필터에 해당합니다. 필터의 채널은 인풋과 같기 때문에 똑같이 M입니다. 
    • 인풋이 필터를 거쳐 Convolution을 하게 되면 결과물로 매트릭스가 한 개 나오게 됩니다. 
    • 필터의 갯수가 에 해당하는데 필터의 종류(N개) 만큼 Convolution 하기 때문에 총 N개의 매트릭스가 결과물로 나오게 됩니다.
    • 모두 더하면 출력에 (DG,DG,Nshape의 volume이 출력물로 나오게 됩니다.

     

     

    • 곱연산 기준으로 Standard Convolution 연산량을 알아보겠습니다.
    • 먼저 한 개의 필터가 인풋의 한 위치에서 처리할 때 사용되는 곱연산은 ×M이 됩니다.
    • 이 때, 이동할 수 있는 위치의 경우의 수가 DG의 경우가 있기 때문에(는 아웃풋의 height, wdith 크기) 필터 하나가 인풋 하나를 처리하는 데 필요한 연산 수는 M 됩니다.
    • 마지막으로 N개의 필터가 있다면 아웃풋은  크기를 가지고 연산량도  됩니다.
    • 연산량을 줄이는 것이 Depthwise Separable Convolution목표입니다.

     

     

    Depthwise Separable Convolution

    Depthwise Separable Convolution은 2가지의 프로세스로 진행됩니다.

    Depthwise Convolution과 Pointwise Convolution 입니다. 

     

     Depthwise Convolution

     

    • Standard Convolution 에서는 한 개의 필터가 M 채널 전체에 Convolution을 하였습니다.
    • Depthwise Convolution에서는  한 개의 필터가 한 개의 채널에만 연산을 합니다. 인풋의 첫번째 채널에 해당하는 영역을  이라고 한다면 이 1채널 인풋과 유일하게 연산되는 필터  존재합니다.
    • 는 와 대응하기 때문에 이 연산에서는 총 M개의 필터가 존재하게 됩니다.
    • 연산을 마치면 최종적으로  volume이 출력됩니다.

     

     

     

     Pointwise Convolution

    • Pointwise Convolution 핵심은 1 x 1 Convolution을 적용하는 것이 입니다. 에 필터를 Convolution 을 합니다. 
    • 됩니다. 이 연산을 개의  필터를 이용하여 적용하면 총 N개의 매트릭스( 가 N개)가 출력 됩니다.
    • 이 출력물들을 쌓으면 하면 결과적으로  출력물을 만들 수 있습니다.

     

    • 입력과 출력 기준으로 보면 Standard Convolution과 Depthwise Separable Convolution 모두  입력으로 넣어서  출력을 얻는다는 점은 같습니다.
    • 하지만 내부 Convolution 연산 과정에서 Depthwise Separable 기법으로 연산량과 파라미터 수를 줄였다는 것이 핵심입니다.

     

    Depthwise Convolution의 연산량

    • 한 위치에서 필터가 연산되는 곱연산은  이고 한 채널 전체에서 필터가 연산되는 곱연산은 입니다.
    • 마지막으로 개의 채널에 모두 적용되어야 하므로 총 곱연산은 가 됩니다. 

     

     

    Pointwise Convolution의 연산량

    • 한 위치에서 1x1 필터가 연산되는 곱 연산은 M 입니다. 그리고 한 채널 전체에서 연산되는 곱연산은 이 됩니다.
    • 마지막으로 개의 필터가 모두 적용되어야 하므로 총 곱연산은 이 됩니다.

     

     

    Comparison Standard Vs Depthwise

    • Standard Convolution의 연산량은  이고 Depthwise Separable Convolution의 연산량은  됩니다.
    • 위 슬라이드와 같이 비율을 확인해 보면 이 됩니다.
    • 은 아웃풋 채널의 수이고 K는 필터의 사이즈이므로 일반적인 예를 들어 N=1024,K=3이라고 하면  됩니다.
    • 만큼 연산량이 줄어든것을 확인할 수 있습니다.

     

     

Designed by Tistory.