(Inception-v1) Going deeper with convolutions

#google 에서 ‘Inception’ 이라는 이름으로 부르는 네트워크 구조를 처음으로 밝힌 논문입니다. 22개의 네트워크를 쌓아서 2014년 ILSVRC에서 우수한 성적을 보고했습니다.

  • 알렉스넷에 비해 12배나 적은 파라미터 수, 훨씬 정확한 성능
  • 더욱 효율적임
  • 단일 Convolutional Operation을 쌓아서 네트워크를 구성하던 기존의 방식과는 다르게 Layer하나가 더욱 많은 계산을 하도록 설계. Network in Network과 유사.
  • Network in Network에서는 MLP로 Convolutional Filter를 대체했다면, 이 논문에서는 Inception Module로 해당 기능을 대체.

Inception Module

p.4: finding out how an optimal local sparse structure in a convolutional vision network can be approximated and covered by readily available dense components.

논문에서 위와 같이 밝혔듯, Network in Network에서처럼 Local Sparse Structure - Convolutional Filter를 최적화할 수 없을까?하는 고민에서 시작됩니다.

Convolution Filter는 Local construction을 하는 여러 Filter를 가지고 Spatially(공간적으로) 필터를 적용해 output을 반복해서 생성합니다. 즉 Network in Network에서는 Sparse Structure인 Convolution Filter를 MLP로 Dense하고 깊게 만든 시도였다면, 이 논문에서는 Inception Module을 통해 Conv와 MLPConv 사이 중간 쯤의 Dense한 녀석을 제안하려고 하는 것입니다.

image

  • 1x1, 3x3, 5x5 convolution을 parallel하게 진행 한 후 concate하는 아이디어
  • 다양한 사이즈의 receptive field를 넣겠다는 의도
  • 기본적인 Convolution Filter(eg. 3x3 conv)에 비해 더욱 dense한 형태
  • 3x3, 5x5와 같은 비용이 높은 Conv를 효율적으로 만들기 위해 Channel Reduction을 함. 1x1 Conv를 3x3과 5x5 이전에 추가하여 Reduction을 진행함.
  • 계산상으로 많이 증가하지 않는데에 비해 더욱 복잡한 연산을 할 수 있도록 설계된 것.
  • Visual information이 다양한 스케일로 들어올 수 있다는 직관에도 일치하는 부분이 있음.
  • 특히, 1x1 Conv를 통해 연산양을 조절할 수 있으므로 속도-정확도 Trade-off를 결정하는 데 사용할 수 있음. 2-3배 빠른 모델도 가능하다고 함.

image

따라서 위와 같이 각 레이어가 Inception Module인 형태로 네트워크를 구성했고, 중간 중간 Auxiliary classifier를 추가, 즉 Softmax 레이어를 추가해 Merge하는 형태로 디자인하였습니다. 중간 쯤의 Feature map에서도 충분히 discriminative한 경우가 있기 때문이라고 설명했습니다.

image

이렇게 디자인된 네트워크를 학습시킨 결과는 위와 같고, 역시 성능이 좋은 것을 볼 수 있습니다. Detection Task에 대해서는 R-CNN의 Pipeline을 충실히 따랐지만, Selective Search를 통한 Object Proposal 대신에 Multi-box를 추가해 사용했습니다.