yolov9_title

개요

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information 의 얕은 리뷰 포스팅.YOLOv1 부터 가장 최근에 올린 YOLOv5-8 이후 지금의 YOLOv9 포스팅을 하면 메인 버전을 달고 있는 논문들은 한번 쯤 읽어보게 되는 것이라 본다. 물론 YOLOX, YOLOR, YOLO-NAS 등 더 봐야 할 것들이 많다. 추후 계속 기록할 것이다.

해당 논문은 아카이브에 2024년도 2월에 올라왔다. 기존의 모델 아키텍쳐 설계가 피드 포워드 과정에서 정보의 손실들이 있다는 점을 지적하며 programmable gradient information (PGI)이라는 개념을 제안한다. 해당 개념은 보조 가역 브랜치(reversible branch)를 통해 정보 손실을 최대한 막으려는 의도를 담고 있다. 그리고 Efficient Layer Aggregation Network(ELAN)을 기반으로 한 GELAN 아키텍쳐를 제안한다. GELAN은 PGI와 결합되어 YOLOv9이 된다.

문제

해당 논문에서는 정보 병목 현상을 문제로 정의하고 해당 현상을 해결할 수 있는 방법에 대해 논의한다. 정보 병목 현상이란 학습 과정에서의 backprop, 추론 과정에서의 feed forward 하면서 레이어를 지나 깊어질 수록 초기의 데이터를 잃어버리는 것을 말한다. 예전엔 ‘그라디언트 배니싱’ 등으로 학습과정에서의 문제로 많이 지적 받았었지만 해당 문제는 다양한 정규화 및 활성화 함수를 통해 해결했다고 한다. 런타임에서 일어나는 해당 문제를 해결하는 방법에 대해 논의한다. 해결 방법 중 하나는 네트워크 모델의 크기를 직접 키우는 것이나 해당 방법은 근본적인 해결책은 아니다.

Reversible Functions

  • 깊은 레이어로 연산이 진행되면서 어떤 함수 $r$의 역함수 $ν$를 가질 수 있으면 $r$은 가역함수 라고 부른다.
  • 즉 레이어들의 연산을 가역함수로 설계 함으로써 그라디언트가 전파될 때에 정보를 최대한 손실 시키지 않는다는 점에서 접근한다.
  • 데이터 X를 목표 Y에 매핑 시킬 때 $I(X,Y)$ 는 $I(X, X)$ 에 비해 아주 작은 부분만 상호 연관이 되어 있을지라도 이를 학습에 포함시키는 것 자체가 학습 효과를 크게 끌어올린다.

Programmable Gradient Information(PGI)

  • PGI는 메인 브랜치, Auxiliary Reversible Branch, Multi-level Auxiliary Information의 3가지 요소로 구성된다.
  • Auxiliary Reversible Branch는 신경망이 깊어짐으로써 일어나는 정보 병목 현상을 완화한다.
  • Multi-level Auxiliary Information는 신경망이 깊어짐으로써 나타나는 오류 누적 문제를 처리하도록 설계된다.

GELAN

  • GELAN 구조는 기존의 CSPNet과 ELAN을 결합하여 설계하였다.
  • 해당 구조는 경량화, 추론 속도, 정확도의 효율성 증대에 중점을 맞춘다.

실험 세팅

  • MS COCO 데이터 셋 기준 500 epochs 학습
  • ELAN을 GELAN으로 교체
  • 소형 및 경량 모델 비교: YOLOv9 $\gt$ YOLO MS / 중형 모델 비교: YOLOv9-C $\gt$ YOLOv7 AF / 대형 모델 비교: YOLOv9-E $\gt$ YOLOv8-X
  • GELAN 및 PGI 에 대한 소거 연구 비교

결론

  • 해당 YOLOv9 논문은 딥러닝 모델 학습 및 피드포워드 과정에서 발생하는 정보 손실 문제를 해결하기 위해 GELAN이라는 네트워크 구조와 PGI 개념을 제안한다.
  • GELAN 구조는 ELAN 구조를 기반으로 한 네트워크로 다양한 계산 블록 및 깊이를 설정할 수 있으며 레이어의 개수가 늘어나 심층으로 깊어져도 정보손실에 강력함을 보인다.
  • PGI는 유의미한 그라디언트를 생성하여 학습과정에서 더욱 정확한 매개변수 업데이트를 가능하게 한다. Auxiliary Reversible Branch 및 Multi-level Auxiliary Information을 포함하여 메인 브랜치까지로 구성된다.
  • YOLOv9은 크게 이러한 PGI와 GELAN 개념을 포함하여 구성되었으며 계산 복잡성 및 정확도 성능으로 기존의 YOLO 시리즈보다 좋은 성능을 보이며 의도대로 정보의 손실을 최소화하는 데에 좋은 결과를 보인다.
번역

Abstract

오늘날의 딥러닝 방법들은 모델의 예측 결과가 실제 값에 가장 가깝도록 적절한 목적 함수를 설계하는 데 중점을 둡니다. 한편, 예측을 위해 충분한 정보를 수집할 수 있는 적절한 아키텍처를 설계해야 합니다. 기존 방법들은 입력 데이터가 계층별로 특징 추출과 공간 변환을 거치면 많은 정보가 손실된다는 사실을 간과하고 있습니다. 이 논문은 데이터가 딥 네트워크를 통해 전송될 때 발생하는 데이터 손실, 즉 정보 병목 현상과 가역 함수의 중요한 문제를 다룰 것입니다. 우리는 다중 목표를 달성하기 위해 딥 네트워크가 요구하는 다양한 변화에 대응하기 위해 프로그래머블 그라디언트 정보(PGI)라는 개념을 제안했습니다. PGI는 목표 작업의 목적 함수를 계산하기 위한 완전한 입력 정보를 제공하여 신뢰할 수 있는 그라디언트 정보를 얻어 네트워크 가중치를 업데이트할 수 있습니다. 추가로, 그라디언트 경로 계획을 기반으로 하는 새로운 경량 네트워크 아키텍처인 Generalized Efficient Layer Aggregation Network(GELAN)을 설계했습니다. GELAN의 아키텍처는 PGI가 경량 모델에서 우수한 결과를 얻었음을 확인합니다. 우리는 제안된 GELAN과 PGI를 MS COCO 데이터셋 기반의 객체 검출에서 검증했습니다. 결과는 GELAN이 기존의 컨볼루션 연산자만 사용하여 깊이별 컨볼루션 기반으로 개발된 최신 방법들보다 더 나은 파라미터 활용을 달성했음을 보여줍니다. PGI는 경량부터 대형 모델까지 다양한 모델에 사용할 수 있습니다. PGI는 완전한 정보를 얻는 데 사용될 수 있어, 처음부터 학습된 모델들이 대형 데이터셋을 사용하여 사전 학습된 최신 모델들보다 더 나은 결과를 얻을 수 있습니다. 비교 결과는 그림 1에 표시되어 있습니다. 소스 코드는 https://github.com/WongKinYiu/yolov9에 있습니다.

MS COCO 데이터셋에서 실시간 객체 검출기의 비교. GELAN과 PGI 기반 객체 검출 방법은 객체 검출 성능 면에서 이전의 모든 초기 학습 방법들을 능가했습니다. 정확도 면에서, 새로운 방법은 대형 데이터셋으로 사전 학습된 RT DETR을 능가하며, 파라미터 활용 측면에서도 깊이별 컨볼루션 기반으로 설계된 YOLO MS를 능가합니다.

1. Introduction

딥러닝 기반 모델들은 컴퓨터 비전, 언어 처리, 음성 인식 등 다양한 분야에서 과거 인공지능 시스템보다 훨씬 더 나은 성능을 입증해 왔습니다. 최근 몇 년간, 딥러닝 분야의 연구자들은 주로 CNNs, Transformers, Perceivers, Mambas와 같은 더 강력한 시스템 아키텍처와 학습 방법을 개발하는 데 중점을 두었습니다. 또한, 일부 연구자들은 손실 함수, 라벨 할당, 보조 감독과 같은 더 일반적인 목적 함수를 개발하려고 시도해 왔습니다. 위의 연구들은 모두 입력과 목표 작업 간의 정확한 매핑을 찾으려고 합니다. 그러나 대부분의 과거 접근법들은 피드포워드 과정에서 입력 데이터가 무시할 수 없는 양의 정보 손실을 가질 수 있다는 점을 무시해 왔습니다. 이 정보 손실은 편향된 그라디언트 흐름을 초래할 수 있으며, 이는 이후 모델 업데이트에 사용됩니다. 위의 문제들은 딥 네트워크가 목표와 입력 간의 잘못된 연관성을 형성하게 만들어, 훈련된 모델이 잘못된 예측을 하도록 할 수 있습니다.

다양한 네트워크 아키텍처에 대한 무작위 초기 가중치 출력 피처 맵의 시각화 결과: (a) 입력 이미지, (b) PlainNet, (c) ResNet, (d) CSPNet, (e) 제안된 GELAN. 그림에서 볼 수 있듯이 다양한 아키텍처에서 손실을 계산하기 위해 목적 함수에 제공된 정보가 다양한 정도로 손실되고, 우리 아키텍처는 가장 완전한 정보를 유지하고 목적 함수를 계산하기 위한 가장 신뢰할 수 있는 그래디언트 정보를 제공할 수 있습니다.

딥 네트워크에서는 입력 데이터가 피드포워드 과정에서 정보를 잃는 현상을 일반적으로 정보 병목 현상이라고 합니다. 현재, 이 현상을 완화할 수 있는 주요 방법들은 다음과 같습니다. (1) 가역 아키텍처의 사용: 이 방법은 주로 반복된 입력 데이터를 사용하고 입력 데이터의 정보를 명시적으로 유지합니다. (2) 마스킹 모델링의 사용: 주로 재구성 손실을 사용하고, 추출된 특징을 최대화하고 입력 정보를 유지하기 위해 암묵적인 방법을 채택합니다. (3) 심층 감독 개념의 도입: 이 방법은 중요한 정보를 많이 잃지 않은 얕은 특징들을 사용하여 피처에서 타겟으로의 매핑을 미리 설정하여 중요한 정보가 더 깊은 레이어로 전송될 수 있도록 합니다. 그러나, 위의 방법들은 훈련 과정과 추론 과정에서 각각의 단점이 있습니다. 가역 아키텍처는 반복적으로 제공되는 입력 데이터를 결합하기 위해 추가적인 레이어를 필요로 하며, 이는 추론 비용을 크게 증가시킬 것입니다. 마스킹 모델링의 경우, 재구성 손실이 때때로 타겟 손실과 충돌할 수 있습니다. 심층 감독 메커니즘은 오류 누적을 초래할 수 있으며, 훈련 과정에서 얕은 감독이 정보를 잃으면 후속 레이어는 필요한 정보를 복구할 수 없습니다. 위 현상은 어려운 작업과 작은 모델에서 더 두드러지게 나타날 것입니다.
위에서 언급한 문제들을 해결하기 위해, 우리는 프로그래머블 그라디언트 정보(PGI)라는 새로운 개념을 제안합니다. 이 개념은 Auxiliary Reversible Branch를 통해 신뢰할 수 있는 그라디언트를 생성하여 심층 특징이 여전히 목표 작업을 수행하기 위한 주요 특성을 유지할 수 있도록 하는 것입니다. Auxiliary Reversible Branch의 설계는 전통적인 심층 감독 과정에서 발생할 수 있는 의미 손실을 방지할 수 있습니다. 즉, 우리는 서로 다른 의미 수준에서 그라디언트 정보 전파를 프로그래밍하고 있으며, 이를 통해 최상의 훈련 결과를 달성하고 있습니다. PGI의 가역 아키텍처는 보조 브랜치 위에 구축되어 있어 추가 비용이 들지 않습니다. PGI는 목표 작업에 적합한 손실 함수를 자유롭게 선택할 수 있으므로, 마스크 모델링에서 직면한 문제들도 극복할 수 있습니다. 제안된 PGI 메커니즘은 다양한 크기의 딥 뉴럴 네트워크에 적용될 수 있으며, 매우 깊은 뉴럴 네트워크에만 적합한 심층 감독 메커니즘보다 더 일반적입니다.
이 논문에서는 ELAN을 기반으로 한 일반화된 ELAN(GELAN)을 설계하였으며, GELAN의 설계는 파라미터 수, 계산 복잡성, 정확도 및 추론 속도를 동시에 고려합니다. 이 설계는 사용자가 다양한 추론 장치에 적합한 계산 블록을 임의로 선택할 수 있게 합니다. 우리는 제안된 PGI와 GELAN을 결합하여 새로운 세대의 YOLO 시리즈 객체 검출 시스템을 설계하였으며, 이를 YOLOv9라고 부릅니다. 우리는 MS COCO 데이터셋을 사용하여 실험을 수행하였으며, 실험 결과 제안된 YOLOv9이 모든 비교에서 최고의 성능을 달성했음을 확인했습니다.
이 논문의 기여도를 다음과 같이 요약합니다:

  1. 우리는 기존의 딥 뉴럴 네트워크 아키텍처를 가역 함수의 관점에서 이론적으로 분석하였으며, 이 과정을 통해 과거에 설명하기 어려웠던 많은 현상을 성공적으로 설명했습니다. 또한, 이 분석을 바탕으로 PGI와 Auxiliary Reversible Branch를 설계하여 우수한 결과를 얻었습니다.
  2. 우리가 설계한 PGI는 심층 감독이 극도로 깊은 뉴럴 네트워크 아키텍처에만 사용될 수 있는 문제를 해결하며, 따라서 새로운 경량 아키텍처가 실제로 일상 생활에 적용될 수 있게 합니다.
  3. 우리가 설계한 GELAN은 기존의 컨볼루션만을 사용하여 최신 기술에 기반한 깊이별 컨볼루션 설계보다 더 높은 파라미터 사용을 달성하며, 가벼우면서도 빠르고 정확한 큰 장점을 보여줍니다.
  4. 제안된 PGI와 GELAN을 결합함으로써, MS COCO 데이터셋에서 YOLOv9의 객체 검출 성능은 모든 측면에서 기존 실시간 객체 검출기를 크게 능가합니다.

2.1. Real-time Object Detectors

현재 주류 실시간 객체 검출기는 YOLO 시리즈이며, 대부분의 모델이 CSPNet 또는 ELAN과 그 변형을 주요 계산 단위로 사용합니다. 특징 통합 측면에서 개선된 PAN 또는 FPN이 도구로 자주 사용되며, 이후 개선된 YOLOv3 헤드 또는 FCOS 헤드가 예측 헤드로 사용됩니다. 최근에는 DETR을 기반으로 하는 RT DETR과 같은 몇 가지 실시간 객체 검출기도 제안되었습니다. 그러나 DETR 시리즈 객체 검출기를 해당 도메인에 사전 학습된 모델 없이 새로운 도메인에 적용하기는 매우 어렵기 때문에, 현재 가장 널리 사용되는 실시간 객체 검출기는 여전히 YOLO 시리즈입니다. 이 논문은 다양한 컴퓨터 비전 작업과 여러 시나리오에서 효과가 입증된 YOLOv7을 기반으로 하여 제안된 방법을 개발했습니다. 우리는 제안된 PGI를 사용하여 아키텍처와 훈련 과정을 개선하기 위해 GELAN을 사용합니다. 위의 새로운 접근 방식은 제안된 YOLOv9을 새로운 세대의 최고 실시간 객체 검출기로 만듭니다.

2.2. Reversible Architectures

가역 아키텍처의 운영 단위는 가역 변환의 특성을 유지해야 하므로, 각 레이어의 출력 특징 맵이 원본 정보를 완전히 유지할 수 있도록 보장될 수 있습니다. RevCol는 기존의 가역적 단위를 여러 수준으로 일반화하고, 그렇게 함으로써 다양한 계층 단위로 표현되는 의미적 수준을 확장할 수 있습니다. 다양한 신경망 아키텍처에 대한 문헌 검토를 통해, 우리는 가역 속성이 다양한 고성능 아키텍처가 많다는 것을 발견했습니다. 예를 들어, Res2Net 모듈은 서로 다른 입력 파티션을 계층적으로 결합하고, 이를 뒤로 전달하기 전에 모든 변환된 파티션을 연결합니다. CBNet는 복합 백본을 통해 원본 입력 데이터를 다시 도입하여 완전한 원본 정보를 얻고, 다양한 구성 방법을 통해 여러 레벨의 다중 레벨 가역 정보를 얻습니다. 이러한 네트워크 아키텍처는 일반적으로 우수한 파라미터 활용을 제공하지만, 추가적인 복합 레이어로 인해 추론 속도가 느려집니다. DynamicDet는 CBNet과 고효율 실시간 객체 검출기 YOLOv7을 결합하여 속도, 파라미터 수, 정확도 간의 매우 좋은 균형을 달성합니다. 이 논문은 가역 브랜치를 설계하기 위한 기초로 DynamicDet 아키텍처를 소개합니다. 추가로, 가역 정보가 제안된 PGI에 도입되었습니다. 제안된 새로운 아키텍처는 추론 과정에서 추가적인 연결이 필요하지 않으므로, 속도, 파라미터 양, 정확도의 장점을 완전히 유지할 수 있습니다.

2.3. Auxiliary Supervision

심층 감독은 가장 일반적인 보조 감독 방법으로, 중간 레이어에 추가적인 예측 레이어를 삽입하여 훈련을 수행합니다. 특히 트랜스포머 기반 방법에 도입된 다층 디코더의 적용이 가장 흔한 예입니다. 또 다른 일반적인 보조 감독 방법은 관련 메타 정보를 활용하여 중간 레이어에서 생성된 특징 맵을 안내하고, 이들이 목표 작업에서 요구되는 속성을 가지도록 하는 것입니다. 이 유형의 예로는 객체 검출기의 정확도를 높이기 위해 분할 손실 또는 깊이 손실을 사용하는 것이 포함됩니다. 최근에는 모델의 수렴 속도를 높이고 동시에 강인성을 향상시키기 위해 서로 다른 레이블 할당 방법을 사용하여 다양한 보조 감독 메커니즘을 생성하는 문헌 보고서가 많이 있습니다. 그러나 보조 감독 메커니즘은 일반적으로 대형 모델에만 적용 가능하므로, 경량 모델에 적용될 경우 과소 파라미터화 현상이 발생하기 쉬워 성능이 저하될 수 있습니다. 우리가 제안한 PGI는 다중 레벨 의미 정보를 다시 프로그래밍할 수 있는 방법을 설계했으며, 이 설계는 경량 모델도 보조 감독 메커니즘의 혜택을 받을 수 있도록 합니다.

3. Problem Statement

보통 사람들은 딥 뉴럴 네트워크 수렴 문제의 어려움을 그라디언트 소실 또는 그라디언트 포화와 같은 요인으로 돌리며, 이러한 현상들은 전통적인 딥 뉴럴 네트워크에서 실제로 존재합니다. 그러나 현대의 딥 뉴럴 네트워크는 다양한 정규화 및 활성화 함수를 설계함으로써 위의 문제를 근본적으로 해결했습니다. 그럼에도 불구하고 딥 뉴럴 네트워크는 여전히 수렴 속도가 느리거나 수렴 결과가 좋지 않은 문제를 가지고 있습니다.
이 논문에서는 위 문제의 본질을 더 깊이 탐구합니다. 정보 병목 현상에 대한 심층 분석을 통해, 이 문제의 근본 원인은 매우 깊은 네트워크에서 유래한 초기 그라디언트가 전송된 직후 목표를 달성하는 데 필요한 많은 정보를 잃어버렸기 때문이라고 추론했습니다. 이 추론을 확인하기 위해, 우리는 초기 가중치를 사용하여 서로 다른 아키텍처의 딥 네트워크를 피드포워드하고, 이를 시각화하여 그림 2에 설명합니다. 분명히, PlainNet은 깊은 레이어에서 객체 검출에 필요한 많은 중요한 정보를 잃어버렸습니다. ResNet, CSPNet, 그리고 GELAN이 유지할 수 있는 중요한 정보의 비율은 실제로 훈련 후 얻을 수 있는 정확도와 양의 상관 관계가 있습니다. 우리는 위 문제의 원인을 해결하기 위해 가역 네트워크 기반 방법을 추가로 설계했습니다. 이 절에서 우리는 정보 병목 원리와 가역 함수에 대한 우리의 분석을 자세히 설명할 것입니다.

3.1. Information Bottleneck Principle

정보 병목 원리에 따르면, 데이터 $X$ 는 변환을 거치는 동안 정보 손실을 일으킬 수 있음을 우리는 알고 있으며, 이는 아래의 식 1에 나타나 있습니다:

\[\begin{equation} I(X, X) \geq I(X, f_{\theta}(X)) \geq I(X, g_{\theta}(f_\theta(X))), \end{equation}\]

여기서 $I$ 는 상호 정보를 나타내며, $f$ 와 $g$ 는 변환 함수이고, $θ$ 와 $ϕ$ 는 각각 $f$ 와 $g$ 의 파라미터입니다.
딥 뉴럴 네트워크에서 $f_\theta(⋅)$ 와 $g_ϕ(⋅)$ 는 각각 딥 뉴럴 네트워크에서 연속적인 두 개의 레이어의 연산을 나타냅니다. 식 1에서 우리는 네트워크 레이어의 수가 깊어질수록 원본 데이터가 손실될 가능성이 더 높아진다는 것을 예측할 수 있습니다. 그러나 딥 뉴럴 네트워크의 파라미터는 네트워크의 출력과 주어진 목표를 기반으로 하며, 손실 함수를 계산하여 새로운 그라디언트를 생성한 후 네트워크를 업데이트합니다. 예상할 수 있듯이, 더 깊은 뉴럴 네트워크의 출력은 예측 목표에 대한 완전한 정보를 유지하는 데 덜 능합니다. 이로 인해 네트워크 훈련 중 불완전한 정보를 사용하게 되어 신뢰할 수 없는 그라디언트와 낮은 수렴을 초래할 수 있습니다.
위 문제를 해결하는 한 가지 방법은 모델의 크기를 직접적으로 증가시키는 것입니다. 많은 수의 파라미터를 사용하여 모델을 구성할 때, 데이터의 보다 완전한 변환을 수행할 수 있습니다. 위의 접근 방식은 데이터 피드포워드 과정에서 정보가 손실되더라도 여전히 목표로의 매핑을 수행할 수 있을 만큼 충분한 정보를 유지할 수 있는 기회를 제공합니다. 위 현상은 대부분의 현대 모델에서 너비가 깊이보다 더 중요한 이유를 설명합니다. 그러나 위 결론은 매우 깊은 뉴럴 네트워크에서 신뢰할 수 없는 그라디언트 문제를 근본적으로 해결할 수 없습니다. 아래에서는 문제를 해결하고 상대적인 분석을 수행하기 위해 가역 함수를 사용하는 방법을 소개하겠습니다.

3.2. Reversible Functions

함수 $r$ 이 역변환 함수 $ν$ 를 가질 때, 우리는 이 함수를 가역 함수라고 부르며, 이는 식 2에 나타나 있습니다.

\[\begin{equation} X = ν_\zeta(r_\psi(X)), \end{equation}\]

여기서 $ψ$ 와 $ζ$는 각각 $r$과 $ν$의 파라미터입니다. 데이터 $X$는 정보 손실 없이 가역 함수에 의해 변환되며, 이는 식 3에 나타나 있습니다.

\[\begin{equation} I(X, X) = I(X, r_{\psi}(X)) = I(X, ν_{\zeta}(r_\psi(X))), \end{equation}\]

네트워크의 변환 함수가 가역 함수로 구성될 때, 모델을 업데이트하기 위한 더 신뢰할 수 있는 그라디언트를 얻을 수 있습니다. 오늘날의 인기 있는 딥러닝 방법들은 대부분 식 4와 같은 가역 속성에 부합하는 아키텍처입니다.

\[\begin{equation} X^{l+1} = X^l + f_{\theta}^{l+1}(X^l), \end{equation}\]

여기서 $l$은 PreAct ResNet의 $l$번째 레이어를 나타내며, $f$는 $l$ 번째 레이어의 변환 함수입니다. PreAct ResNet은 원본 데이터 $X$를 명시적으로 후속 레이어로 반복적으로 전달합니다. 이러한 설계는 천 개 이상의 레이어를 가진 딥 뉴럴 네트워크가 매우 잘 수렴할 수 있게 하지만, 우리가 딥 뉴럴 네트워크가 필요한 중요한 이유를 파괴합니다. 즉, 어려운 문제의 경우, 데이터에서 타겟으로 매핑하는 단순한 매핑 함수를 직접 찾기 어렵습니다. 이것은 또한 레이어 수가 적을 때 PreAct ResNet이 ResNet보다 성능이 낮은 이유를 설명합니다.
또한 우리는 트랜스포머 모델을 따르는 마스킹 모델링을 사용하여 중요한 돌파구를 달성하려고 했습니다. 우리는 식 5와 같은 근사 방법을 사용하여 $r$의 역변환 $ν$를 찾으려고 하여, 변환된 특징이 희소한 특징을 사용하여 충분한 정보를 유지할 수 있도록 합니다.

\[\begin{equation} X = ν_\zeta(r_\psi(X) \cdot M), \end{equation}\]

여기서 $M$ 은 동적 이진 마스크입니다. 위 작업을 수행하는 데 일반적으로 사용되는 다른 방법은 확산 모델과 변이형 오토인코더이며, 이들 모두 역함수를 찾는 기능을 가지고 있습니다. 그러나 위 접근 방식을 경량 모델에 적용할 때, 경량 모델이 대량의 원시 데이터에 대해 과소 파라미터화되어 있기 때문에 결함이 발생할 수 있습니다. 위 이유로 인해, 데이터 $X$를 목표 $Y$에 매핑하는 중요한 정보 $I(Y,X)$ 도 동일한 문제에 직면하게 됩니다. 이 문제에 대해, 우리는 정보 병목의 개념을 사용하여 이를 탐구할 것입니다. 정보 병목을 위한 공식은 다음과 같습니다.

\[\begin{equation} I(Y,X) \geq I(Y, \hat{X}) \geq I(Y,f_θ(X)) \geq ... \geq I(Y, \hat{Y}). \end{equation}\]

일반적으로 $I(Y,X)$ 는 $I(X,X)$ 의 매우 작은 부분만 차지합니다. 그러나 이는 목표 작업에 매우 중요합니다. 따라서 피드포워드 단계에서 손실되는 정보의 양이 크지 않더라도, $I(Y,X)$ 가 포함되기만 하면 훈련 효과에 큰 영향을 미칠 것입니다. 경량 모델 자체가 과소 파라미터화 상태에 있기 때문에 피드포워드 단계에서 많은 중요한 정보를 잃기 쉽습니다. 따라서 경량 모델에 대한 우리의 목표는 $I(X,X)$ 에서 $I(Y,X)$를 어떻게 정확하게 필터링할 것인가입니다. $X$ 의 정보를 완전히 보존하는 것은 달성하기 어렵습니다. 위 분석을 바탕으로, 우리는 신뢰할 수 있는 그라디언트를 생성하여 모델을 업데이트할 수 있을 뿐만 아니라 얕고 경량의 뉴럴 네트워크에도 적합한 새로운 딥 뉴럴 네트워크 훈련 방법을 제안하고자 합니다.

PGI와 관련있는 네트워크 구조와 방법들. (a) PAN(경로 집합 네트워크): 정보 병목 현상으로 인해 정보 손실이 발생합니다, (b) RevCol(Reversible Columns, 가역 열): 정보가 지속적으로 전다로디면서 중복된 정보로 인해 많은 비용이 소모됩니다, (c): Deep Supervision(전통적인 심층 감독): 여러 레벨의 보조 정보가 포함되어 있지만, 정보가 손실되거나 올바르게 전달되지 않을 수 있습니다, (d): Programmable Gradient Information(PGI): 메인 브랜치, Auxiliary Reversible Branch, Multi-level Auxiliary Information로 구성되어 있으며, 각 요소는 정보 손실을 최소화하고 신뢰할 수 있는 그라디언트를 생성하여 모델을 업데이트 합니다.

4. Methodology

4.1. Programmable Gradient Information

앞서 언급한 문제를 해결하기 위해, 우리는 그림 3(d)에 표시된 프로그래머블 그라디언트 정보(PGI)라는 새로운 보조 감독 프레임워크를 제안합니다. PGI는 주로 세 가지 구성 요소로 구성되며, (1) 메인 브랜치, (2) Auxiliary Reversible Branch, (3) Multi-level Auxiliary Information를 포함합니다. 그림 3(d)에서 볼 수 있듯이, PGI의 추론 과정은 메인 브랜치만 사용하므로 추가적인 추론 비용이 필요하지 않습니다. 다른 두 구성 요소는 딥러닝 방법에서 중요한 문제를 해결하거나 완화하는 데 사용됩니다. 그 중 Auxiliary Reversible Branch는 신경망 심화로 인해 발생하는 문제를 처리하기 위해 설계되었습니다. 신경망의 심화는 정보 병목 현상을 초래하여 손실 함수가 신뢰할 수 있는 그라디언트를 생성하지 못하게 합니다. Multi-level Auxiliary Information는 심층 감독으로 인해 발생하는 오류 누적 문제를 처리하도록 설계되었으며, 특히 여러 예측 브랜치를 가진 아키텍처 및 경량 모델에 적합합니다. 다음으로, 우리는 이 두 구성 요소를 단계별로 소개할 것입니다.

4.1.1 Auxiliary Reversible Branch

PGI에서는 신뢰할 수 있는 그라디언트를 생성하고 네트워크 파라미터를 업데이트하기 위해 Auxiliary Reversible Branch를 제안합니다. 데이터에서 타겟으로 매핑되는 정보를 제공함으로써, 손실 함수는 가이드를 제공하고 타겟과 덜 관련된 불완전한 피드포워드 특징에서 잘못된 상관관계를 찾는 가능성을 피할 수 있습니다. 우리는 가역 아키텍처를 도입하여 완전한 정보를 유지하는 것을 제안하지만, 가역 아키텍처에 메인 브랜치를 추가하면 많은 추론 비용이 소모됩니다. 우리는 그림 3(b)의 아키텍처를 분석한 결과, 깊은 레이어에서 얕은 레이어로 추가적인 연결이 추가되면 추론 시간이 20% 증가한다는 것을 발견했습니다. 우리가 입력 데이터를 네트워크의 고해상도 계산 레이어(노란색 상자)에 반복적으로 추가할 때, 추론 시간은 두 배를 초과하기도 합니다.
우리의 목표는 가역 아키텍처를 사용하여 신뢰할 수 있는 그라디언트를 얻는 것이기 때문에, “가역성”은 추론 단계에서 필요한 유일한 조건이 아닙니다. 이 점을 고려하여, 우리는 가역 브랜치를 심층 감독 브랜치의 확장으로 보고, 그림 3(d)에 표시된 대로 Auxiliary Reversible Branch를 설계합니다. 정보 병목 현상으로 인해 중요한 정보를 잃어버렸을 메인 브랜치의 심층 특징은 Auxiliary Reversible Branch에서 신뢰할 수 있는 그라디언트 정보를 받을 수 있게 됩니다. 이러한 그라디언트 정보는 파라미터 학습을 추진하여 올바르고 중요한 정보를 추출하는 데 도움을 주며, 위의 행동들은 메인 브랜치가 목표 작업에 더 효과적인 특징을 얻을 수 있도록 할 수 있습니다. 게다가, 가역 아키텍처는 복잡한 작업이 더 깊은 네트워크에서의 변환을 필요로 하기 때문에, 일반적인 네트워크보다 얕은 네트워크에서 성능이 더 낮습니다. 우리가 제안한 방법은 메인 브랜치가 완전한 원본 정보를 유지하도록 강요하지 않으며, 보조 감독 메커니즘을 통해 유용한 그라디언트를 생성하여 이를 업데이트합니다. 이 설계의 장점은 제안된 방법이 얕은 네트워크에도 적용될 수 있다는 것입니다.
마지막으로, 추론 단계에서 Auxiliary Reversible Branch를 제거할 수 있으므로, 원래 네트워크의 추론 능력을 유지할 수 있습니다. 우리는 또한 PGI에서 Auxiliary Reversible Branch의 역할을 할 수 있는 모든 가역 아키텍처를 선택할 수 있습니다.

4.1.2 Multi-level Auxiliary Information

이 절에서는 Multi-level Auxiliary Information가 어떻게 작동하는지 논의할 것입니다. 여러 예측 브랜치를 포함한 심층 감독 아키텍처는 그림 3(c)에 나와 있습니다. 객체 탐지를 위해, 서로 다른 특징 피라미드를 사용하여 서로 다른 작업을 수행할 수 있으며, 예를 들어 함께 다양한 크기의 객체를 탐지할 수 있습니다. 따라서 심층 감독 브랜치와 연결된 후 얕은 특징은 작은 객체 탐지를 위해 필요한 특징을 학습하도록 안내되며, 이때 시스템은 다른 크기의 객체 위치를 배경으로 간주할 것입니다. 그러나 위와 같은 행위는 심층 특징 피라미드가 목표 객체를 예측하는 데 필요한 많은 정보를 잃게 할 것입니다. 이 문제와 관련하여, 우리는 각 특징 피라미드가 모든 목표 객체에 대한 정보를 받아야 하며, 이를 통해 후속 메인 브랜치가 다양한 목표에 대한 예측을 학습하기 위해 완전한 정보를 유지할 수 있다고 믿습니다.
Multi-level Auxiliary Information의 개념은 보조 감독의 특징 피라미드 계층과 메인 브랜치 사이에 통합 네트워크를 삽입하고, 이를 사용하여 그림 3(d)에 나와 있듯이 다양한 예측 헤드에서 반환된 그라디언트를 결합하는 것입니다. Multi-level Auxiliary Information는 그런 다음 모든 목표 객체를 포함하는 그라디언트 정보를 집계하여 이를 메인 브랜치에 전달하고 파라미터를 업데이트합니다. 이때 메인 브랜치의 특징 피라미드 계층의 특성은 특정 객체의 정보에 의해 지배되지 않을 것입니다. 결과적으로, 우리의 방법은 심층 감독에서의 정보 손실 문제를 완화할 수 있습니다. 또한, 통합된 네트워크는 Multi-level Auxiliary Information에서 사용할 수 있습니다. 따라서 우리는 다양한 크기의 네트워크 아키텍처 학습을 안내하기 위해 필요한 의미적 수준을 계획할 수 있습니다.

(a)CPSNet: 각 계산 블록에 대한 분할을 통해 모듈과 파티션이 연결. (b)ELAN: 다중계산 블록을 위한 다양한 컨볼루션 레이어를 통합하여 파티션을 연결. (c)GELAN: CPSNet과 ELAN 구조를 확장하여, 모든 계산 블록을 지원할 수 있는 유연한 구조로 설계

4.2. Generalized ELAN

이 절에서는 제안된 새로운 네트워크 아키텍처인 GELAN을 설명합니다. 그라디언트 경로 계획으로 설계된 두 가지 신경망 아키텍처인 CSPNet과 ELAN을 결합하여 경량화, 추론 속도, 정확도를 고려한 일반화된 효율적 레이어 집합 네트워크(GELAN)를 설계했습니다. 그 전체 아키텍처는 그림 4에 나와 있습니다. 우리는 원래 ELAN이 컨볼루션 레이어의 스태킹만을 사용했던 능력을 일반화하여, 모든 계산 블록을 사용할 수 있는 새로운 아키텍처로 확장했습니다.

5. Experiments

5.1. Experimental Setup

우리는 제안된 방법을 MS COCO 데이터셋으로 검증합니다. 모든 실험 설정은 YOLOv7 AF를 따르며, 데이터셋은 MS COCO 2017의 분할입니다. 언급한 모든 모델은 처음부터 학습하는 전략을 사용하여 훈련되었으며, 총 훈련 횟수는 500 에포크입니다. 학습률 설정에서는 처음 3 에포크에서 선형 워밍업을 사용하고, 이후 에포크에서는 모델 규모에 따라 해당 감소 방식을 설정합니다. 마지막 15 에포크에서는 모자이크 데이터 증강을 끄며, 더 많은 설정은 부록을 참조하십시오.

5.2. Implimentation Details

우리는 각각 YOLOv7과 Dynamic YOLOv7을 기반으로 YOLOv9의 일반 및 확장 버전을 구축했습니다. 네트워크 아키텍처 설계에서, 우리는 계산 블록으로 계획된 RepConv와 함께 CSPNet 블록을 사용하여 ELAN을 GELAN으로 교체했습니다. 우리는 또한 다운샘플링 모듈을 단순화하고 앵커 없는 예측 헤드를 최적화했습니다. PGI의 보조 손실 부분에 대해서는, 우리는 YOLOv7의 보조 헤드 설정을 완전히 따랐습니다. 자세한 내용은 부록을 참조하십시오.

SOTA 실시간 객체 감지기 비교

5.3. Comparison with state-of-the-arts

표 1은 제안된 YOLOv9을 다른 처음부터 학습하는 실시간 객체 검출기와 비교한 목록을 나열합니다. 전반적으로, 기존 방법 중에서 가장 성능이 좋은 방법은 경량 모델의 YOLO MS-S, 중형 모델의 YOLO MS, 일반 모델의 YOLOv7 AF, 대형 모델의 YOLOv8-X입니다. 경량 및 중형 모델 YOLO MS와 비교했을 때, YOLOv9는 약 10% 적은 파라미터와 5~15% 적은 계산을 가지지만, 여전히 AP에서 0.4~0.6%의 향상을 보입니다. YOLOv7 AF와 비교했을 때, YOLOv9-C는 42% 적은 파라미터와 22% 적은 계산을 가지지만, 동일한 AP(53%)를 달성합니다. YOLOv8-X와 비교했을 때, YOLOv9-E는 16% 적은 파라미터, 27% 적은 계산을 가지며, AP에서 1.7%의 유의미한 향상을 보입니다. 위 비교 결과는 제안된 YOLOv9이 기존 방법과 비교하여 모든 면에서 크게 향상되었음을 보여줍니다.

실시간 객체 감지기 SOTA 모델 비교. ImageNet 데이터로 사전 학습된 웨이트들. YOLOv9은 스크래치 학습부터 했지만 다른 방법의 성능을 능가합니다.

다른 한편으로, 우리는 비교에 ImageNet 사전 학습 모델도 포함했으며, 결과는 그림 5에 나와 있습니다. 우리는 파라미터와 계산량을 기준으로 각각 비교합니다. 파라미터 수 측면에서, 가장 성능이 좋은 대형 모델은 RT DETR입니다. 그림 5에서 볼 수 있듯이, 일반 컨볼루션을 사용하는 YOLOv9는 깊이별 컨볼루션을 사용하는 YOLO MS보다 파라미터 활용 측면에서 더 우수합니다. 대형 모델의 파라미터 활용 측면에서, 이것은 ImageNet 사전 학습 모델을 사용하는 RT DETR을 크게 능가합니다. 더 나아가, 깊은 모델에서 YOLOv9는 PGI를 사용하는 것의 큰 장점을 보여줍니다. 데이터를 타겟에 매핑하는 데 필요한 정보를 정확하게 유지하고 추출함으로써, 우리의 방법은 RT DETR-X와 동일한 정확도를 유지하면서도 파라미터의 66%만을 필요로 합니다.
계산량 측면에서, 가장 작은 모델에서 큰 모델 순으로 최고의 기존 모델은 YOLO MS, PP YOLOE, 그리고 RT DETR입니다. 그림 5에서 볼 수 있듯이, YOLOv9는 계산 복잡성 측면에서 처음부터 학습하는 방법보다 훨씬 우수합니다. 또한, 깊이별 컨볼루션과 ImageNet 기반 사전 학습 모델을 기반으로 한 방법과 비교했을 때, YOLOv9 역시 매우 경쟁력 있습니다.

5.4. Ablation Studies

5.4.1 Generalized ELAN

GELAN에 대해서는 먼저 계산 블록에 대한 소거 실험을 수행합니다. 우리는 각각 Res 블록, Dark 블록, CSP 블록을 사용하여 실험을 수행했습니다. 표 2는 ELAN의 컨볼루션 레이어를 다양한 계산 블록으로 교체한 후에도 시스템이 좋은 성능을 유지할 수 있음을 보여줍니다. 사용자들은 실제로 계산 블록을 자유롭게 교체하고 이를 각각의 추론 장치에서 사용할 수 있습니다. 다양한 계산 블록 교체 중에서, CSP 블록이 특히 좋은 성능을 발휘합니다. 이들은 파라미터와 계산량을 줄이는 것뿐만 아니라 AP를 0.7% 향상시킵니다. 따라서 우리는 YOLOv9에서 GELAN의 구성 요소로 CSP-ELAN을 선택했습니다.

다양한 계산 블록에 대한 소거 연구

다음으로, 우리는 다른 크기의 GELAN에서 ELAN 블록 깊이와 CSP 블록 깊이에 대한 실험을 수행하고, 그 결과를 표 3에 표시합니다. ELAN의 깊이가 1에서 2로 증가하면 정확도가 크게 향상됩니다. 그러나 깊이가 2 이상일 때, ELAN 깊이든 CSP 깊이든 증가시키더라도 파라미터 수, 계산량, 정확도는 항상 선형 관계를 보여줍니다. 이는 GELAN이 깊이에 민감하지 않음을 의미합니다. 즉, 사용자는 GELAN의 구성 요소를 자유롭게 조합하여 네트워크 아키텍처를 설계할 수 있으며, 특별한 설계 없이도 안정적인 성능을 가진 모델을 가질 수 있습니다. 표 3에서, YOLOv9-S,M,C 모델은 ELAN과 CSP의 깊이를 각각 {{2,3}, {2,1}, {2,1}}$로 짝지어 설정했습니다.

ELAN과 CSP 깊이에 대한 소거 연구

5.4.2 Programmable Gradient Information

PGI와 관련하여, 우리는 백본과 넥에 대해 Auxiliary Reversible Branch와 Multi-level Auxiliary Information에 대한 소거 실험을 수행했습니다. 우리는 다중 레벨 가역 정보를 얻기 위해 DHLC 링크를 사용하는 ICN Auxiliary Reversible Branch를 설계했습니다. Multi-level Auxiliary Information의 경우, FPN과 PAN을 사용하여 소거 실험을 수행했고, PFH의 역할은 전통적인 심층 감독과 동등합니다. 모든 실험의 결과는 표 4에 나열되어 있습니다. 표 4에서 볼 수 있듯이 PFH는 심층 모델에서만 효과적이며, 제안된 PGI는 다양한 조합에서 정확도를 향상시킬 수 있습니다. 특히 ICN을 사용할 때, 우리는 안정적이고 더 나은 결과를 얻었습니다. 우리는 또한 YOLOv7에서 제안된 리드-헤드 가이드 할당을 PGI의 보조 감독에 적용해보았고, 훨씬 더 나은 성능을 달성했습니다.

백본과 넥의 PGI에 대한 소거 연구

우리는 다양한 크기의 모델에 PGI와 심층 감독의 개념을 추가로 구현하고 그 결과를 비교해 본 결과는 표 5와 같습니다. 초반 분석에서 설명한 것처럼, 심층 감독의 도입은 얕은 모델에서 정확도 손실을 초래할 수 있습니다. 일반 모델의 경우, 심층 감독을 도입하면 성능이 불안정해질 수 있으며, 심층 감독의 설계 개념은 극도로 깊은 모델에서만 이점을 가져올 수 있습니다. 제안된 PGI는 정보 병목 현상 및 정보 손실 문제를 효과적으로 처리할 수 있으며, 다양한 크기의 모델의 정확도를 종합적으로 향상시킬 수 있습니다. PGI의 개념은 두 가지 중요한 기여를 합니다. 첫째, 얕은 모델에도 적용 가능한 보조 감독 방법을 제공합니다. 둘째, 심층 모델 훈련 과정에서 더 신뢰할 수 있는 그라디언트를 얻을 수 있게 해줍니다. 이러한 그래디언트를 통해 심층 모델은 보다 정확한 정보를 사용하여 데이터와 대상 간의 올바른 상관 관계를 설정할 수 있습니다.

PGI에 대한 소거 연구

마지막으로, 표 6은 베이스라인 YOLOv7에서 점진적으로 구성 요소를 추가하여 YOLOv9-E로 개선된 결과를 보여줍니다. 제안된 GELAN과 PGI는 모델에 전방위적인 향상을 가져왔습니다.

GELAN 및 PGI에 대한 소거 연구

5.5. Visualization

PlainNet, ResNet, CSPNet의 랜덤 웨이트 초기화에서 피쳐맵(시각화 결과) 출력의 다른 깊이 표현. 100 레이어가 넘어가면 ResNet은 객체 정보를 충분히 읽기 힘듭니다. 우리의 제안된 GELAN은 150 레이어에서도 정보를 잘 유지하며, 200번째 레이어에서도 충분히 구분됩니다.

이 섹션에서는 정보 병목 문제를 탐구하고 이를 시각화할 것입니다. 또한 제안된 PGI가 신뢰할 수 있는 그라디언트를 사용하여 데이터와 목표 간의 올바른 상관관계를 찾는 방법을 시각화할 것입니다. 그림 6에서는 서로 다른 아키텍처에서 피드포워드로 랜덤 초기 가중치를 사용하여 얻은 피처 맵의 시각화 결과를 보여줍니다. 레이어 수가 증가함에 따라 모든 아키텍처의 원래 정보가 점진적으로 감소하는 것을 볼 수 있습니다. 예를 들어, PlainNet의 50번째 레이어에서는 객체의 위치를 확인하기 어렵고, 100번째 레이어에서는 모든 구별 가능한 특징이 사라집니다. ResNet의 경우, 50번째 레이어에서는 여전히 객체의 위치를 볼 수 있지만, 경계 정보는 사라졌습니다. 깊이가 100번째 레이어에 도달하면 전체 이미지가 흐릿해집니다. CSPNet과 제안된 GELAN 모두 매우 우수하게 작동하며, 200번째 레이어까지도 객체의 명확한 식별을 지원하는 특징을 유지할 수 있습니다. 비교한 결과 중, GELAN이 더 안정적인 결과와 명확한 경계 정보를 가지고 있습니다.

그림 7은 PGI가 훈련 과정에서 더 신뢰할 수 있는 그라디언트를 제공할 수 있는지 여부를 보여주기 위해 사용됩니다. 이를 통해 업데이트에 사용되는 파라미터가 입력 데이터와 목표 객체 간의 관계를 효과적으로 캡처할 수 있도록 합니다. 그림 7은 PAN 바이어스 워밍업에서 GELAN과 YOLOv9 (GELAN + PGI)의 피처 맵 시각화 결과를 보여줍니다. 그림 7(b)와 (c)를 비교하면 PGI가 객체를 포함하는 영역을 정확하고 간결하게 캡처하는 것을 명확하게 볼 수 있습니다. PGI를 사용하지 않는 GELAN의 경우, 객체 경계를 탐지할 때 발산이 발생했고, 일부 배경 영역에서 예상치 못한 반응이 발생했습니다.

6. Conclusions

이 논문에서 우리는 정보 병목 문제와 심층 감독 메커니즘이 경량 신경망에 적합하지 않은 문제를 해결하기 위해 PGI를 사용할 것을 제안합니다. 우리는 고효율 경량 신경망인 GELAN을 설계했습니다. 객체 검출 측면에서, GELAN은 다양한 계산 블록과 깊이 설정에서 강력하고 안정적인 성능을 보여줍니다. 이는 다양한 추론 장치에 적합한 모델로 널리 확장될 수 있습니다. 위의 두 가지 문제에 대해 PGI의 도입은 경량 모델과 심층 모델 모두에서 정확도의 중요한 향상을 가능하게 합니다. PGI와 GELAN을 결합하여 설계된 YOLOv9는 강력한 경쟁력을 보여주었습니다. 이 뛰어난 설계 덕분에 이 심층 모델은 YOLOv8에 비해 파라미터 수를 49%, 계산량을 43% 줄이면서도 MS COCO 데이터셋에서 AP를 0.6% 향상시켰습니다.

7. Acknowledgements

저자들은 계산 및 저장 자원을 제공한 National Center for High-performance Computing (NCHC)에 감사의 뜻을 전합니다.

Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

Leave a comment