본문 바로가기

논문 리뷰/etc.

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

[Github]

[arXiv](2024/02/29 version v2)

 

 

Abstract

Programmable Gradient Information(PGI), Generalized ELAN(GELAN)을 통해 information bottleneck 현상을 완화하고 성능 향상

 

[YOLO v1 ~ v7 변천사]

[YOLO v7]

 

Problem Statement

Information Bottleneck Principle

레이어가 깊을수록 원래 데이터가 더 많이 손상된다.

모델의 깊이 대신 너비를 확장하여 이를 완화할 수 있다.

 

Reversible Functions

다음과 같은 가역 함수가 있다고 하자.

네트워크가 가역 함수로 구성되면 정보의 손실 없이 데이터를 변환하고 역전파할 수 있다.

 

 

 

Methodology

Programmable Gradient Information

PGI (d)는 추론 시 main branch (파란색)만 사용하므로 추가 추론 비용이 발생하지 않는다. 

 

Auxiliary Reversible Branch

보조 가역 분기를 추가하여 bottleneck을 줄인다.

하지만 (b)와 같이 모든 보조 분기를 추가하면 계산 비용이 매우 증가한다.

 

따라서 가역성을 일부 희생하여 보조 분기를 하나만 사용하고 정보가 손실될 수 있는 깊은 feature에서 보조 분기로부터 신뢰할 수 있는 gradient를 얻는다.

 

Multi-level Auxiliary Information

Multiple prediction head를 포함하는 YOLO는 object dectection 시 다양한 해상도의 feature pyramid를 사용하여 서로 다른 크기의 물체를 감지한다.

 

이를 위해 deep supervision branch에 연결하여 각 크기의 물체 감지에 필요한 feature를 학습하며, 이때 다른 크기의 물체는 배경으로 간주하여 많은 정보를 잃는다. (c)

 

이를 해결하기 위해 통합 네트워크를 삽입하고 다양한 prediction head에서 반환된 gradient를 집계하여 main branch로 전달한 다음 피라미터를 업데이트한다.

 

Generalized ELAN

CSPNet과 ELAN(efficient layer aggregation network)의 구조를 결합하여 ELAN의 conv layer 대신 모든 블록을 사용할 수 있도록 일반화하였다.

 

YOLOv7에서 ELAN Block의 위치: 확대해서 보려면 YOLOv7 참고

 

 

 

Experiments

YOLOv7 기반. GELAN의 연산 블록도 YOLOv7에서 제안한 RepConvN을 채택하였다.