EfficientDet 논문 정리

ggoggori_._·2021년 12월 23일
0

딥러닝 논문

목록 보기
8/8

EfficientDet을 읽고 내용을 정리하고자 한다.

Abstact

CV에서 모델의 효율성은 점점 더 중요해지고 있다.
해당 논문에서, 효율성을 상승시키기 위한 몇가지 최적화 방법과 network architecture에 대해서 소개한다.
첫번째는 BiFPN, 두번째는 compound scaling이다.
이와 같은 기법을 통해 EfficientDet이라는 모델을 만들었고, 해당 모델은 COCO test-dev 에서 55.1 AP를 기록하며, SOTA를 달성했다.

개요

시간이 지나면서 더 좋은 성능을 가지는 detection 모델들이 많이 나왔다.
하지만, 대부분 매우 많은 파라미터를 가지고 있기 때문에 다양한 device에는 적용이 어려웠음.
자율주행차 등 제약사항이 많은 곳에 사용되는 효율적인 모델들에 대한 필요성이 대두되었지만, 그 요구사항을 충족시키기 위해서 해결해야할 근본적인 문제가 있었다.

높은 정확성과 더 나은 효율을 동시에 달성하는 것이 가능한가?

이전의 SOTA 모델이 효율적인 모델을 만들고 싶지 않아서 그런 것은 아닐 것이다...
더 높은 성능을 달성하려면, 더 크고 무거운 모델이 필요하기 때문이니까...

EfficientDet의 저자들은 근본적인 문제를 해결하기 위해서 성능은 유지하고 효율성을 증대시킬 수 있는 해결책을 둘로 나눠 제시했다.

  1. efficient multi-scale feature fusion

input image의 여러 scale feature들을 fusion하여 성능을 높이는 방법인 FPN이 널리 사용되었지만, 기존 FPN은 scale을 단순 합 계산을 하기 때문에 각각의 scale이 output feature에 다르게 기여하는 것을 반영하지 못함.

연구진들은 다른 input feature들이 가지는 중요도(가중치)를 반영한 FPN인 BiFPN을 제안함으로써, 기존 FPN이 가지고 있던 성능은 유지하고 계산방식을 더 효율적으로 변경했다.

  1. model scaling

efficient net에서 제안하는 Compound scailing을 EfficientDet에 도입한다.
conpound scaling은 depth, width, resolution을 복합적으로 scaling하는 방식으로 각각 하나씩 scaling할 때 보다 좋은 성능을 보여준다.

저자들은 compound scaling을 적용할 때 feature network 뿐만 아니라 box/class prediction network에도 또한 적용해야 더 효율적이라는 것을 발견했고, compound scaling, EfficientNet, BiFPN을 합쳐서 EfficientDet을 만들었다.

BiFPN

FPN

efficient multi-scale feature fusion을 위해 제안한 BiFPN이다.

기존 FPN은 (a)와 같이 구성되며, 자세하게는 아래와 같은 방식으로 구성된다.

FPN에 대한 자세한 설명은 https://herbwood.tistory.com/18를 참조.

Cross-Scale Connections

(a)에서 정보가 단방향(top-down pathway)으로만 전달된다는 점이 한계.
(b)에서는 이와 같은 문제점을 해결하고자 extra pathway를 추가하였다.
(c)에서는 NAS를 사용하여 optimal scale connection을 찾았다.

연구진들은 (b)-PANet이 더 많은 파라미터를 갖고 있긴 하지만 (a)-FPN, (c)NAS-FPN과 비교하여 더 나은 성능을 보인다는 것을 발견했고, PANet을 수정하여 정확도는 유지하고, 효율성을 달성하고자 하였다.

그렇게 제안한 것이 (d)-BiFPN이다.

PANet 대비 수정된 것은 3가지이다. 첫번째는 하나의 edge(화살표)만을 가지는 node를 제거한 것이다.

연구자들은 하나의 edge만을 가지는 node에서는 실질적인 연산이 수행되는 바가 없기 때문에 FPN의 궁극적인 목표인 feature fusion에 기여하는 바가 적을 것이라는 직관이 있었고, 이를 바탕으로 구축한 FPN은 아래와 같다.

P7P_7P3P_3에서 single edge를 가지는 node가 삭제된 것을 확인할 수 있다.

두번째 변경사항은 같은 level에서 original input을 output에 더해주는 extra edge를 추가한 것이다.
최종적으로 PANet을 수정한 BiFPN은 아래와 같다.

보라색 edge가 두번째 변경사항으로써, 이는 연산을 크게 늘리지 않고 feature fusion이 가능하게 만들었다.

마지막 변경사항은 각각 하나씩의 top-down, bottom-up pathway를 가지고 있는 PANet을 여러번 반복한다는 것이다. 이는 고차원의 feature fusion을 가능하게한다. 위 그림에서는 "repeated blocks"라고 표현된 부분이다.

Weighted Feature Fusion

이전의 feature fusion들은 다른 resolution의 feature들을 size에 맞게 resizing하여 더하는 방식으로 수행되었다. 이는 각각 resolution이 output에 차별적으로 기여하는 바를 무시하기 때문에 변경되어야할 필요가 있었다. 따라서 BiFPN에서는 각각의 input feature가 가지는 중요성을 학습하여 반영하기 위한 추가적인 weigth를 더해준다!

  • Unbounded fusion
    O = iwi  IiO\ =\ \sum _i^{ }w_i\ \cdot \ I_i
    WiW_i값이 unbounded이기 때문에 값이 커져서 학습 안정성을 저해할 수 있다는 문제점.

  • Softmax-based fusion
    O = iewijewjIiO\ =\ \sum _i^{ }\frac{e^{w_i}}{\sum _j^{ }e^{w_j}}\cdot I_i
    softmax를 적용함으로써 위에서 제시한 unbounded 문제를 해결할 수 있지만, GPU 연산을 상당히 느리게 만드는 문제점 존재.

  • Fast normalized fusion
    O = iewiϵ +jewjIiO\ =\ \sum _i^{ }\frac{e^{w_i}}{\epsilon \ +\sum _j^{ }e^{w_j}}\cdot I_i
    softmax와 비슷한 역할을 하도록 만들어주어서 GPU 성능 저하를 없앴고, epsilon을 더해주어서 학습 안정성도 보장한다.

exmaple

Cross scale connection과 Fast normalized fusion을 모두 적용한 BiFPN은 level 6에서 아래와 같은 연산이 수행된다.

EfficientDet architecture

전체적인 EfficientDet의 구성은 위와 같다.

위에서 언급한 BiFPN을 통해 합쳐진 feature들이 각각 class/box prediction net의 입력으로 전해져서 최종 output을 출력하게 된다.

Compound scaling

compound scaling은 모델의 성능을 증가시킬 수 있는 3가지 요소인 depth / width / image resolution 들을 "적절하게" 조절하는 방식. 자세한 설명은 EfficientNet 논문을 참조.

compound scaling을 통해 효율성을 달성할 수 있고, 여러가지 요구사항(자율주행, 임베디드 등)을 반영하기 위한 family model을 구성하는 효과도 있다.(자동차로 치면 다양한 수요를 반영하기 위해 family look을 가진 여러 타입의 차량을 출시하는 것과 같을 듯!)

  • backbone network
    -efficientNet에서 사용한 scaling을 동일하게 사용

  • BiFPN network

  • Box/class prediction network

  • input image resolution

위의 scaling factor들을 heuristic하게 정해진 것이기 때문에 최적의 결과는 아니지만, single dimenstion scaling method들 보다는 훨씬 더 좋은 성능을 보인다는 것을 위의 도표를 통해 확인할 수 있다.

compound scaling에 따른 성능비교표!

Experiments

Reference

https://arxiv.org/abs/1911.09070

https://cool24151.tistory.com/80

0개의 댓글