논문 리뷰

[논문 리뷰] YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information, Chien-Yao Wang, et al., 2024

토오오끼 2024. 9. 5. 21:05
728x90

 

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information, Chien-Yao Wang, et al., 2024 을 읽고 요약, 정리한 글입니다.

 github : https://github.com/WongKinYiu/yolov9


 

◼️ Contribution

- 현존하는 심층 신경망 구조를 reversible fuction의 과점에서 이론적으로 분석하고 이러한 프로세스를 통해 이전에는 설명하기 어려웠던 많은 현상들에 대해 설명함.

- 이러한 분석을 기반으로 PGI와 auxiliary reversible branch를 설계하고 좋은 결과를 얻음.

- PGI는 deep supervision이 아주 깊은 신경망 구조에서만 사용할 수 있던 문제를 해결하고 경량 모델에서도 적용될 수 있도록 함.

- GELAN은 전통적인 convolution만 사용하여 depth-wise convolution보다 더 높은 파라미터 사용률을 기록하며 가볍고 빠르고 정확함을 입증함.

- PGI와 GELAN을 결합한 yolov9은 현존하는 real-time object detector의 COCO dataset에서의 성능을 크게 능가함.

 

◼️ Introduction

input data가 feed forward network 과정에서 많은 양의 정보 손실이 있으며 이는 곧 편향된 gradient를 유도하게 된다. 이를 information bottleneck이라고 한다.

이러한 문제를 해결하기 위해 reversed architecture를 사용했으며 masked modeling을 사용하기도 했으며 deep supervision concept를 사용했다.

하지만 학습과 추론 과정에서 서로 다른 결점이 존재하는 문제가 있었으며 ResNet과 마찬가지로 네트워크가 깊어지면서 어느 순간 vanishing/exploding gradient로 성능이 나빠졌다.

이를 해결하기 위해 본 논문은 PGI(programmable gradient information)을 제안한다.

 

◼️ PGI (Programmable Gradient Information)

deep features가 target task를 수행하면서 주요한 특성들을 유지하기 위해 auxillary reversible branch로 reliable한 gradient를 만들어 기존의 deep model에서 발생하는 semantic loss를 줄일 수 있게 된다.

target task에 적합한 loss fucntion을 자유롭게 선택할 수 있어 mask modeling으로부터 생기는 문제도 극복할 수 있다.

 

PGI는 main branch, auxillary reversible branch, multi-level auxillary information로 구성되어 있다.

 

main branch는 추론 시에만 사용되어 추론 시 추가 cost가 필요하지 않다.

 

auxillary reversible branch는 network deeping으로 인한 문제를 해결하기 위해 설계되었다.

data와 target을 매핑하는 정보를 제공함으로써 loss 함수는 guidance를 제공하고 불완전한 feed forward로부터 잘못된 상관관계를 찾을 가능성을 피하게 된다.

 

본 논문의 목표는 reversible architecture를 사용해 reliable gradients를 얻는 것이기디 때문에 inference stage에서 reversible 요소만 중요한 것이 아니기 때문에 reversible branch를 deep supervision branch의 확장으로 간주해 auxilliary reversible branch를 설계하였다.

이를 통해 gradient information은 파라미터 learning이 정확하고 중요한 정보를 추출하도록 도우며 main branch는 target task에 더 효율적인 특성을 얻을 수 있다.

 

복잡한 task에서는 더 깊은 네트워크의 conversion을 필요로 하기 때문에 reversible architecture는 일반적인 네트워크보다 shallow network에서 더 좋지 않은 성능을 보인다.

 

본 논문에서는 main branch가 완전한 원본 정보를 유지하도록 강제하지 않고 auxilairy supervion 매커니즘을 통해 유용한 gradient를 생성해 정보를 업데이트 하기 때문에 shallow network에서도 잘 작동한다.

inference phase에서 auxiliary reversible branch를 제거할 수 있어 원래 네트워크의 추론 능력이 유지될 수 있다.

 

PGI를 사용함으로써 얕은 모델에서도 정확도가 높았고 information bottleneck이나 broken information 같은 문제들을 효과적으로 다뤄서 다양한 크기의 모델에 대한 정확도를 향상 시켰다.

 

 

multi-level auxilary information은 deep supervision에서 오차 누적 문제를 다루기 위해 설계되었다. 이는 multiple prediction branch의 구조와 경량 모델을 위한 설계이다.

위 그림에서 3-c는 multiple prediction branch를 포함한 deep supervision 구조를 보여주고 있다.

deep supervision branch에 연결한 후 shallow feature는 작은 객체 탐지에 필요한 특성을 학습하도록 유도된다.

multi-level auxillary information은 auxiliary supervision의 feature pyramid hierachy layer와 main branch 사이에 통합 네트워크 삽입하고 이를 사용해 그림 3-d에서와 같이 다양한 prediction head에서 반환된 gradient를 결합하는 것이다.

 

multi-level auxiliary information은 모든 target 객체를 포함하는 gradient 정보를 결합하고 main branch에 보내 파라미터를 업데이트 한다. 이때 main branch의 feature pyramid hiearchy의 feature는 특정한 객체 정보에 의해 지배되지 않는다.

 

해당 방법은 deep supervision에서 발생하는 정보 단절 문제를 완화할 수 있다.

 

 

 

◼️ Generalized ELAN

architecture와 training process를 개선 시키기 위해 GELAN을 사용한다.

gradient path planning으로 설계 된 CSPNet과 ELAN 2개의 네트워크 구조를 결합하여 경량화, 추론 속도, 정확도를 고려한 일반화된 효율적 레이어 결합 네트워크를 설계한다.

원래 convolution layer를 쌓는데 사용되었던 ELAN의 capacity를 모든 연산 블록에 사용할 수 있도록 일반화 하였으며 depth에 민감하지 않고 사용자가 임의로 구성 요소를 결합할 수 있다.

 

 

◼️ Conclusion

본 논문에서는 PGI를 사용하여 information bottleneck 문제와 deep supervision 매커니즘이 경량 신경망에 적합하지 않은 문제를 해결할 것을 제안한다.

본 논문은 매우 효율적이고 경량 신경망인 GELAN을 설계했다. 객체 탐지 측면에서 GELAN은 서로 다른 계산 블록과 깊이 설정에서 강력하고 안정적인 성능을 보이며 다양한 추론 장치에 적합한 모델로 확장될 수 있다.

 

PGI의 도입은 경량 모델과 심층 모델 모두 정확도에서 상당한 향상을 이룰 수 있게 하며 PGI와 GELAN을 결합하여 설계된 YoloV9은 강력한 경쟁력을 보여주었다.

이 뛰어난 설계 덕분에 심층 모델은 YoloV8과 비교하여 파라미터 수를 49%, 계산량을 43% 줄이면서도 COCO dataset에서 AP를 0.6% 개선하였다.

 


논문을 읽은 후 정리하고 요약한 글입니다. 때문에 해당 포스팅에 대한 의견 제시 및 오타 정정은 언제나 환영입니다.

늦더라도 댓글 남겨주시면 확인하겠습니다.

728x90