논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

CSPNet: A New Backbone that can Enhance Learning Capability of CNN

Problem

  • 신경망은 그 구조가 깊고 넓어질 수록 강력해지지만, 그만큼 계산량이 많아진다.
  • 대부분의 사람들은 많은 계산량 보다는 짧은 시간내에 실행할 수 있는 가벼운 네트워크를 선호한다.
  • Depth-wise separable convolution 같은 테크닉이 있긴 하지만 이는 IC나 ASIC구조에서는 적절하지 않다.

Essence

  • 기존 ResNet, ResNeXt, DenseNet 에서의 computational burden을 살펴보고, 성능 저하가 없으면서도 CPU와 모바일 GPU에서도 효율적인 component를 개발하고자 하였다.
  • Cross Stage Partial Network (CSPNet)은 계산은 적게 하면서도 richer gradient combination을 가능케하였다.
  • 이는 feature map을 2파트로 나누어 cross-stage 계층을 거친 뒤 다시 합치는 방법을 사용하였다.
  • 이는 그래디언트가 다른 네트워크 경로를 거치면서 large correlation difference를 가지게 된다.
  • 그러면서도 계산량을 줄였으며 속도와 정확도 또한 향상시킬 수 있었다.

Detail

Cross Stage Partial Network

  • Figure 2 (a)에서 볼 수 있듯, DenseNet의 각 스테이지는 dense block과 transition layer를 가지고 있고, 각 dense block은 k개의 dense layer들을 가지고 있다.
  • 각 Dense layer의 입력과 dense layer를 통과한 출력은 concatenation되어 다음 Dense layer의 입력이 되는 구조이다.
  • 동일한 입력 데이터가 계속 concatenation되면서 다음 레이어에 사용되기 때문에, 그래디언트 또한 동일한 그래디언트가 복제되어 학습에 사용된다.
  • Figure 2 (b)는 CSPDenseNet을 나타낸 것이다. 각 dense block과 transition layer는 partial dense block과 partial transition layer로 변경되었다.
  • Partial dense block은 feature map을 2개 파트로 나누어 하나 ​는 기존 dense block과 동일하게 사용하고, 다른 하나 ​는 스테이지의 맨 끝으로 직접 연결시킨다.
  • Partial transition layer는 dense layer들에서 나온 출력을 transition layer로 입력하고, 그 출력 ​를 앞에서 건너뛰어 온 ​와 concatenation한 뒤 또다른 transition layer를 통해서 출력 ​를 생성한다.
  • 때문에 그래디언트 입장에서는 건너뛰어온 ​로 인하여 그래디언트를 서로 분리하고, 중복된 그래디언트 정보도 일부 제거할 수 있었다.

Partial Dense Block

  • Partial dense block은 다음과 같은 목적이 있다.
    • 그래디언트 경로를 증가시켜 feature map이 concatenation 되어 생기는 단점을 상쇄시킨다.
    • 기존 DenseNet에서 급격히 증가하는 채널 수를 반으로 줄여 계산량을 줄일 수 있다.
    • 기존 Dense block 보다 메모리 트래픽 또한 줄일 수 있다.

Partial Transform Layer

  • Partial transform layer의 목적은 그래디언트 조합의 차이를 최대화 하는 것으로 그래디언트 흐름을 쪼갬으로써 각 개별 레이어에서 그래디언트 정보가 중복되는 것을 막고자 하였다.
  • 여기에는 2가지 디자인이 있다.
  • Figure 3 (c)는 Fusion first 디자인으로. 입력을 2개 파트로 나눈 뒤 한 파트에서 feature map을 생성하고, 이다른 파트와 concatenation 한 뒤에 translation을 적용한 것이다. 이것은 많은 양의 그래디언트가 재사용 된다.
  • Firgure 3 9 (d)는 Fusion Last 디자인으로, 입력을 2개 파트로 나눈 뒤, 한 파트에서 feature map을 생성하고 곧바로 translation을 적용한 뒤 다른 파트와 concatenation 한 것이다. 이는 그래디언트가 쪼개져 재사용되지 않는다.
  • 실제 PeleeNet에 두 디자인을 적용하여 분류문제를 풀었을 때, 두 디자인 모두 계산량을 줄어들었으나 Fusion First는 성능 하락이 1.5% 나 있었고, Fusion Last는 0.1%만의 성능 하락이 있었다.
  • 다음은 ResNe(X)t 모델에 CSP를 적용한 디자인이다.

EFM (Exact Fusion Model)

  • One-stage 객체 검출기에서는 각 앵커가 적절한 FoV를 갖도록하여 성능을 끌어 올릴 수 있다.
  • Li [15]는 이미지 레벨 레이블로부터 학습할 경우 정보가 너무 산만해지고 이것이 one-stage 검출기보다 two-stage 검출기가 성능이 더 좋은 이유라고 이야기하였다.
  • 여기에서는 YOLOv3를 기반으로 YOLOv3에서는 각 앵커가 단 하나의 GT와 매칭된다는 점에 착안하여 EFM을 적용하였다.
  • 만약 앵커가 각 그리드 셀의 FoV와 정확히 일치할 경우 스케일 ​의 앵커와 매칭될 박스의 크기는 ​번째 스케일과 ​ 스케일 사이의 크기일 것이다.
  • 따라서 3가지 스케일의 feature 만을 통합하도록 하였다.
  • Feature map의 concatenation은 많은 계산량과 메모리 트래픽을 요구하기 때문에 Maxout technique을 적용하여 feature map을 압축하였다.

Add a Comment Trackback