YOLOv9
YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
Chien-Yao Wang, I-Hau Yeh and Hong-Yuan Mark Liao
GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Inform
Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information - WongKinYiu/yolov9
github.com
나중에 다시 보기 위해 작성한 글입니다.
혹시라도 잘못된 내용이 있다면 댓글 남겨주시면 감사하겠습니다 : )
논문의 출처는 다음과 같습니다.
YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
Today's deep learning methods focus on how to design the most appropriate objective functions so that the prediction results of the model can be closest to the ground truth. Meanwhile, an appropriate architecture that can facilitate acquisition of enough i
arxiv.org
Abstract
이 논문에서는 기존의 방법들에서 많은 정보 손실이 일어난다는 점을 다룬다.
데이터 손실의 중요한 문제인 다음과 같은 문제들 대해 탐구한다.
- information bottleneck
- reversible functions
저자는 PGI(Programmable gradient information) 개념을 제안한다.
이는 목적 함수를 계산하기 위해 완전한 input information을 제공하여 신뢰 가능한 gradient 정보를 얻는다.
신뢰 가능한 gradient 정보는 network 가중치를 업데이트한다.
또한 gradient path planning을 기반으로 하는 새로운 경량 네트워크 아키텍처인 GELAN(Generalized Efficient Layer Aggregation Network)를 설계했다.
저자는 제안한 GELAN과 PGI를 COCO 데이터셋 기반으로 검증했다.

1. Introduction
과거의 방법은 layer층을 거치는 순방향 프로세스 중에 많은 양의 정보 손실을 가져온다는 사실을 무시했다.
정보 손실이 편향된 gradient 흐름을 유발할 수 있다.
이런 흐름이 가중치를 업데이트하는 데 사용된다면 훈련된 모델이 잘못된 예측을 내놓을 수 있다.
이렇게 순방향 프로세스 중에 정보를 잃는 현상을 information bottleneck이라고 한다.
이걸 어떻게 완화할 수 있을까?
저자는 이렇게 제시한다.
- reversible architectures 사용 : 반복된 입력 데이터를 사용하고 입력 데이터의 정보를 명시적으로 유지하는 방식
- masked modeling 사용 : reconstruction loss를 사용하고 추출된 특징을 최대화하고 입력 정보를 보존하는 암시적 방식
- deep supervision 개념 도입 : 중요한 정보를 거의 잃지 않은 얕은 특징을 사용. 특징에서 목표로의 매핑을 사전에 설정하여 중요한 정보가 깊은 층으로 전달될 수 있도록 함.
그러나 위 방법들은 훈련과 추론 과정에서 각각의 단점을 가지고 있다.
단점은 순서대로 다음과 같다.
- 반복적으로 공급된 입력데이터를 결합하기 위해서 추가적인 레이어가 필요하고 이는 추론 비용을 증가시킴.
입력 데이터 레이어에서 출력 레이어까지 너무 깊은 경로를 가질 수 없기 때문에, training 과정에서 고차원 semantic 정보를 모델링할 수 없다. - reconstruction loss가 때로 목표 손실과 충돌할 수 있다. 또한 대부분의 mask 메커니즘의 경우에 오류 누적을 유발한다.
- 오류 누적을 유발하며, shallow(얕은) supervision이 training 과정에서 정보를 잃으면 후속 레이어는 필요한 정보를 검색할 수 없게 된다.
이러한 현상은 어려운 작업이나 작은 모델에서 중요해진다.
위 문제를 해결하기 위해서 PGI라는 새로운 개념 제안을 한다.
PGI는 auxiliary reversible branch를 통해 신뢰할만한 gradient를 생성하여 깊은 특징이 목표 작업을 수행하는데 필요한 주요 특성을 유지할 수 있도록 해준다.
또한 ELAN을 기반으로 한 일반화된 ELAN(GELAN)을 설계했다.
이렇게 제안한 PGI와 GELAN을 결합하여 YOLO의 새로운 시리즈 YOLOv9를 설계했다.
3. Problem Statement
보통 일반적으로 심층 신경망 수렴 문제의 어려움을 gradient 소실이나 포화 같은 요인으로 설명한다.
이 논문에서는 위 문제의 본질을 더 깊이 탐구한다.
information bottleneck현상을 심층 분석하여 위에서 언급한 정보 상실이라는 문제가 원인이라고 추론했다.
추론을 확인하기 위해 초기 가중치로 다양한 아키텍처의 심층 신경망을 feedforward(순방향 전달)했다.
그리고 이를 figure 2에서 시각화하고 설명한다.

PlainNet은 중요 정보가 많이 손실됐다.
ResNet, CSPNet 및 GELAN이 유지할 수 있는 중요 정보의 비율은 training 후 얻을 수 있는 정확도와 실제 관련이 있다.
이러한 문제를 해결하기 위해 reversible network-based 방법을 설계했다.
이 섹션에서는 information bottleneck과 reversible functions에 대해서 자세히 설명한다.
3.1. Information Bottleneck Principle
information bottleneck 원리에 따르면, 아래 식에서 보는 것처럼 데이터 X가 변환 과정을 거치면 정보 손실이 발생할 수 있다.
심층 신경망에서,
식 1에서 볼 수 있듯이 네트워크 층이 깊어질수록 원본 데이터가 상실될 가능성이 더욱 높아진다.
그러나 심층 신경망의 매개변수는 네트워크의 출력 및 주어진 목표를 기반으로 하고, 손실 함수를 계산하여 새로운 gredient를 생성한 후 네트워크를 업데이트한다.
따라서 같은 신경망의 출력은 예측 대상에 대한 완전한 정보를 덜 보유할 수 있다.
이는 네트워크 훈련 중에 불완전한 정보를 사용하여 신뢰할 수 없는 기울기와 부족한 수렴을 초래할 수 있다.
위 문제를 해결하는 한 가지 방법은 모델의 크기를 직접 증가시키는 것이다.
많은 수의 매개변수를 사용하여 모델을 구성하면 데이터의 더 완전한 변환을 수행할 수 있다.
위 방법을 통해 데이터 전방 전달 과정 중 정보가 손실되더라도 목표로의 매핑을 수행할 충분한 정보를 보유할 수 있는 기회가 있다.
이러한 현상은 왜 대부분의 현대 모델에서 너비가 깊이보다 중요한지 설명한다.
그러나 위 결론은 매우 깊은 신경망에서 신뢰할 수 없는 기울기 문제를 근본적으로 해결할 수 없다.
아래에서는 문제를 해결하고 상대적 분석을 수행하기 위해 reversible functions를 사용하는 방법을 소개한다.
3.2. Reversible Functions
함수
여기서 ψ와 ζ는 각각 r과 v의 매개변수이다.
데이터
이는 식 (3)과 같이 나타낼 수 있다.
네트워크의 변환 함수가 역함수 함수로 구성되면, 더 신뢰할 수 있는 기울기를 얻어 모델을 업데이트할 수 있다.
현재 대부분의 인기 있는 딥러닝 방법들은 식 (4)와 같이 역함수 특성을 따르는 아키텍처다.
여기서 l은 PreAct ResNet의 l번째 레이어를 나타내며, f는 l번째 레이어의 변환 함수다.
PreAct ResNet은 원본 데이터
이러한 설계는 천 개 이상의 레이어를 가진 딥 뉴럴 네트워크가 매우 잘 수렴하게 만들 수 있지만, 우리가 딥 뉴럴 네트워크가 필요한 중요한 이유를 파괴한다.
즉, 어려운 문제의 경우 데이터를 목표로 매핑하는 간단한 함수를 직접 찾기 어렵다.
이것이 바로 PreAct ResNet이 레이어 수가 적을 때 ResNet보다 성능이 떨어지는 이유를 설명한다.
또한, 트랜스포머 모델이 중요한 발전을 이룰 수 있도록 마스크 모델링을 사용했다.
식 (5)와 같은 근사 방법을 사용하여
여기서
위 작업을 수행하는 데 일반적으로 사용되는 다른 방법은 확산 모델과 변이 오토인코더이며, 두 방법 모두 역함수를 찾는 기능을 갖고 있다.
그러나 위 방법을 가벼운 모델에 적용할 때 결함이 발생할 수 있다.
가벼운 모델은 많은 양의 원시 데이터에 대해 파라미터가 부족하게 되기 때문이다.
이러한 이유로 데이터
이 문제에 대해 information bottleneck concept를 사용하여 탐구한다.
information bottleneck concept은 다음과 같다.
일반적으로,
그러나 이것은 목표 임무에 중요하다.
따라서 feedforward 단계에서 손실되는 정보의 양이 크지 않더라도
가벼운 모델 자체가 파라미터가 부족한 상태이므로 feedforward 단계에서 많은 중요한 정보를 잃기 쉽다.
따라서 가벼운 모델에 대한 우리의 목표는
위 분석을 바탕으로, 모델을 업데이트하기 위해 신뢰할 수 있는 gradient를 생성할 뿐만 아니라 얕고 가벼운 신경망에 적합한 새로운 딥 뉴럴 네트워크 training 방법을 제안한다.
4. Methodology
3장에서 얘기한 문제를 바탕으로 저자가 어떻게 풀어나갔는지 알아보자.
4.1 Programmable Gradient Information
위에서 말한 문제를 해결하기 위해 저자는 Programmable Gradient Information(PGI)를 제안한다.

figure 3에서 볼 수 있듯이 PGI는 크게 세 가지 구성요소를 가진다.
- main branch
- auxiliary reversible branch
- multi-level auxiliary information
PGI는 오직 main branch를 이용하여 추론하기 때문에 추가적인 추론비용이 필요하지 않다.
Multi-level auxiliary information은 deep supervision에 의해 발생하는 오류 누적 문제를 다루기 위해 설계되었다.
4.1.1 Auxiliary Reversible Branch
Auxiliary reversible branch는 신경망이 깊어짐에 따라 발생하는 문제를 다루기 위해 설계되었다.
그 문제는 앞에서 다뤘듯이 신경망이 깊어지면서 정보 병목현상이 발행하기 때문이다.
정보를 유지하기 위해 reversible 아키텍처를 도입하지만 여기에 main branch를 추가하면 많은 추론 비용이 발생한다.
저자의 목표는 신뢰할만한 gradients를 얻는 것이므로 reversible은 추론 단계에서 필수가 아니다.
따라서 reversible branch를 deep supervision branch의 확장으로 간주하고 figure 3. (d)에 있는 auxiliary reversible branch를 설계한다.
이렇게 하면서 정보 병목으로 중요 정보를 잃어버린 main branch의 deep feature는 신뢰할 수 있는 gradient 정보를 받을 수 있게 된다.
또한, reversible 아키텍처는 복잡한 작업을 처리하기 위해 더 깊은 네트워크에서 변환을 필요로 한다.
따라서 얕은 네트워크에서 일반적인 네트워크보다 성능이 낮다.
저자는 이 문제에 대해서 main branch가 완벽한 원본 정보를 유지하도록 강제하진 않지만 auxiliary supervision mechanism을 통해 유용한 gradient를 생성하면서 그것을 업데이트한다.
이 설계의 장점은 더 얕은 네트워크에서도 잘 적용 가능 하다는 것이다.
4.1.2 Multi-level Auxiliary Information
이 섹션에서는 multi-level Auxiliary Information이 어떻게 작동하는지 얘기한다.
이미 figure 3(c)에서 여러 개의 prediction branch를 포함하는 deep supervision 아키텍처가 나왔었다.
Object detection을 위해서 다른 feature pyramids를 사용해서 다른 작업을 수행할 수 있다.
예를 들어 함께 사용하면 다른 크기의 객체를 감지할 수 있다.
그러나 위와 같은 구조는 deep feature pyramids가 대상을 예측하는데 필요한 많은 정보를 잃게 된다.
이 문제에 대해서 각 특징 피라미드가 모든 대상 객체에 대한 정보를 받아야 한다고 말한다.
이렇게 하면 후속 main branch가 다양한 대상에 대한 예측을 학습하기 위해 완전한 정보를 유지할 수 있다고 한다.
Multi-level auxiliary information의 개념은 auxiliary supervision의 feature pyramid 계층과 main branch 사이에 통해 네트워크를 삽입한다.
그리고 Figure 3 (d)에 나와있는 것처럼 다른 예측 헤드로부터 반환된 gradient를 결합하는 데 사용하는 것이다.
그다음 Multi-level auxiliary information은 모든 대상 객체를 포함하는 gradient정보를 집계하고 main branch에 전달한 다음 매개변수를 업데이트한다.
이때 main branch의 feature pyramid 계층의 특성은 특정 객체의 정보에 지배되지 않는다.
결과적으로, 제안한 방법은 deep supervision에서 발생하는 정보 손실 문제를 완화할 수 있다.
4.2 Generalized ELAN
저자가 제안한 새로운 네트워크 아키텍처 GELAN을 설명한다.
GELAN은 gradient 경로 계획을 고려하여 설계된 CSPNet과 ELAN이라는 두 신경망 아키텍처를 결합한다.
이렇게 하면서 경량화, 추론 속도, 정확도를 고려한 레이어 집합 네트워크를 디자인했다.
전체 아키텍처는 아래 figure 4에 나와있다.

5. Experiments
실험에 대한 자세한 내용은 논문을 참고 바랍니다.
state-of-the-art 아키텍처와 비교, ablation studies, feature visualization 비교 등등 관련된 실험이 수록되어 있습니다.
'연구 > 논문 리뷰' 카테고리의 다른 글
Semantic Loop: Loop Closure With 3D Semantic Graph Matching 논문 리뷰 (0) | 2024.05.26 |
---|---|
Don't Hit Me! Glass Detection in Real-world Scenes 논문 리뷰 (1) | 2024.04.16 |
Khronos: A Unified Approach for Spatio-TemporalMetric-Semantic SLAM in Dynamic Environments 논문 리뷰 (1) | 2024.04.04 |
SP-SLAM 논문 리뷰 (1) | 2024.04.03 |
GVINS 논문 요약 (0) | 2024.01.17 |