Boostcamp AI Tech

[Boostcamp Day-41] EfficientDet

ju_young 2021. 10. 2. 19:28
728x90

Model scaling


  • Width Scaling

  • Depth Scaling

EfficinetNet


  • Width Scaling
    • 네트워크의 width를 scaling하는 방법은 작은 모델에서 주로 사용
    • 더 wide한 네트워크는 미세한 특징을 잘 잡아내는 경향이 있고, 학습도 쉬움
    • 극단적으로 넓지만 얕은 모델은 high-level 특징들을 잘 잡지 못하는 경향이 있음
  • Depth Scaling
    • 네트워크의 깊이를 스케일링하는 방법은 많은 ConvNet에서 쓰이는 방법
    • 깊은 ConvNet은 더 풍부하고 복잡한 특징들을 잡아낼 수 있고, 새로운 태스크에도 잘 일반화됨
    • -> 하지만 깊은 네트워크는 gradient vanishing 문제가 발생
  • Resolution Scaling
    • 고화질의 input 이미지를 이용하면 ConvNet은 미세한 패턴을 잘 잡을 수 있음
  • Accuracy & Efficiency
    • $X_i$ : Input tensor
    • $F_i$ : Operator
    • $Y_i$ : Output tensor
  • Compound Scaling Method

EfficientDet


  • Efficient multi-scale feature fusion
  • 기존 neck에서 다음과 같이 단순 합을 진행하였다.
  • Model Scaling
  • 이전까지는 backbone과 image size를 키우는 것에 집중하였다.

1. BiFPN

각각의 input을 위해 학습 가능한 weight를 두는 Weighted Feature Fusion 방법으로 BiFPN(bi-directional feature pyramid network)를 제안하였고 모델의 Efficiency를 향상시키기위해 cross-scale connections 방법을 이용하였다.


  • 하나의 간선을 가진 노드 제거
  • Output 노드에 input 노드 간선 추가
  • 양방향 path 각각을 하나의 feature Layer로 취급하여, repeated blocks 활용

  • EfficinetDet은 여러 resolution의 feature map을 가중 합
  • FPN의 경우 feature map의 resolution 차이를 Resize를 통해 조정 후 합

  • BiFPN의 경우 모든 가중치의 합으로 가중치를 나눔
  • 가중치들은 ReLU를 통과한 값으로 항상 0 이상
  • 분모가 0이 되지 않도록 아주 작은 값 𝜖를 더함

2. Compound Scaling

  • BiFPN network에서 width(channels)와 depth(layers)를 conpound 계수에 따라 증가
  • Box/class prediction network는 width는 고정, depth를 다음과 같은 식에 따라 증가
  • Input image resolution은 다음과 같이 선형적으로 증가

728x90