[논문 리뷰] YOLOv9: Learning What You Want to LearnUsing Programmable Gradient Information
이 리뷰는 오직 학습과 참고 목적으로 작성되었으며, 해당 논문을 통해 얻은 통찰력과 지식을 공유하고자 하는 의도에서 작성된 것입니다. 본 리뷰를 통해 수익을 창출하는 것이 아니라, 제 학습과 연구를 위한 공부의 일환으로 작성되었음을 미리 알려드립니다.
이 논문은 YOLOv9의 개선 사항, 다양한 환경에서의 적용 가능성, 그리고 다른 버전 및 모델들과 비교한 성능 지표를 분석한 논문으로 YOLOv9의 주요 개선 사항을 체크해보기 위하여 리뷰하였다.
C.-Y. Wang, I.-H. Yeh, and H.-Y. M. Liao, "YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information," arXiv preprint arXiv:2402.13616, 2024. [Online]. Available: https://arxiv.org/abs/2402.13616.
Abstract
오늘날의 딥 러닝 방법은 모델의 예측 결과가 실제 값에 가장 근접하도록 가장 적절한 목표 함수(객관 함수)를 설계하는 데 중점을 둡니다. 동시에 예측을 위한 충분한 정보를 획득할 수 있는 적절한 아키텍처를 설계해야 합니다. 기존 방법들은 입력 데이터가 계층별 특성 추출과 공간 변환을 거칠 때 많은 정보가 손실된다는 사실을 간과합니다. 본 논문에서는 데이터가 딥 네트워크를 통해 전송될 때 발생하는 정보 손실, 즉 정보 병목 현상과 가역적 함수에 관한 중요한 문제를 다룹니다. 우리는 딥 네트워크에서 여러 목표를 달성하기 위해 요구되는 다양한 변화를 처리할 수 있도록 하는 프로그래머블 그래디언트 정보(PGI)라는 개념을 제안했습니다. PGI는 목표 작업의 객체 함수 계산을 위해 완전한 입력 정보를 제공할 수 있어, 신뢰할 수 있는 그래디언트 정보를 얻어 네트워크 가중치를 업데이트할 수 있습니다. 또한, 그래디언트 경로 계획을 기반으로 한 새로운 경량 네트워크 아키텍처인 일반화된 효율적 계층 집합 네트워크(GELAN)를 설계했습니다.
GELAN의 아키텍처는 PGI가 경량 모델에서 우수한 결과를 얻을 수 있음을 확인시켜줍니다. 우리는 MS COCO 데이터셋을 기반으로 객체 탐지에서 제안된 GELAN과 PGI를 검증했습니다. 그 결과 GELAN은 깊이별 합성곱(depth-wise convolution)을 기반으로 개발된 최신 방법들보다 더 나은 파라미터 활용도를 달성하기 위해 기존의 합성곱 연산만을 사용한다고 나타났습니다. PGI는 경량 모델부터 대형 모델까지 다양한 모델에서 사용할 수 있으며, 완전한 정보를 얻기 위해 사용될 수 있어, 대형 데이터셋으로 사전 학습된 최신 모델보다 더 나은 성과를 얻을 수 있습니다. 비교 결과는 그림 1에 나타나 있습니다.
Introduction
딥 러닝 기반 모델은 컴퓨터 비전, 언어 처리, 음성 인식 등 다양한 분야에서 과거의 인공지능 시스템보다 훨씬 더 우수한 성능을 보여주었습니다. 그러나 대부분의 과거 접근 방식은 입력 데이터가 피드포워드 과정에서 정보 손실이 발생할 수 있다는 점을 간과해왔습니다. 이 정보 손실은 편향된 그래디언트 흐름을 초래할 수 있으며, 이 흐름은 이후 모델을 업데이트하는 데 사용됩니다. 이러한 문제들은 딥 네트워크가 입력과 목표 간의 잘못된 연관을 형성하게 만들어, 훈련된 모델이 잘못된 예측을 하게 만들 수 있습니다.
다양한 네트워크 아키텍처에 대한 랜덤 초기 가중치 출력 특징 맵 시각화 결과: (a) 입력 이미지, (b) PlainNet, (c) ResNet, (d) CSPNet, (e) 제안된 GELAN. 이 그림에서 볼 수 있듯이, 서로 다른 아키텍처에서는 손실을 계산하기 위한 객체 함수에 제공되는 정보가 다양한 정도로 손실되며, 우리의 아키텍처는 가장 완전한 정보를 유지하고, 객체 함수를 계산하기 위한 가장 신뢰할 수 있는 그래디언트 정보를 제공합니다.
딥 네트워크에서 입력 데이터가 피드포워드 과정에서 정보를 잃는 현상은 정보 병목 현상(information bottleneck)으로 알려져 있으며, 이를 완화하기 위한 주요 방법은 다음과 같습니다: (1) 가역적 아키텍처 사용: 입력 데이터를 반복적으로 사용하여 정보를 명시적으로 유지; (2) 마스크 모델링 사용: 재구성 손실을 사용하여 입력 정보를 유지; (3) 깊은 감독 개념 도입: 중요한 정보를 얕은 특성에서 더 깊은 층으로 전달. 그러나 이 방법들은 훈련과 추론에서 단점이 있습니다. 예를 들어, 가역적 아키텍처는 추가적인 층을 필요로 하여 추론 비용을 증가시키고, 마스크 모델링은 목표 손실과 충돌할 수 있으며, 깊은 감독 메커니즘은 오류 누적 문제를 일으킬 수 있습니다.
이 문제를 해결하기 위해, 우리는 프로그래머블 그래디언트 정보(PGI)라는 새로운 개념을 제안합니다. PGI는 보조 가역적 브랜치를 통해 신뢰할 수 있는 그래디언트를 생성하여, 중요한 특성을 유지하고 최상의 훈련 결과를 달성합니다. PGI는 다양한 크기의 신경망에 적용할 수 있으며, 마스크 모델링에서 발생하는 문제도 극복할 수 있습니다.
또한, ELAN을 기반으로 한 GELAN을 설계하여, 파라미터 수, 계산 복잡도, 정확도, 추론 속도를 동시에 고려했습니다. PGI와 GELAN을 결합한 YOLOv9 객체 탐지 시스템은 MS COCO 데이터셋에서 기존의 실시간 객체 탐지기들보다 우수한 성능을 보였습니다.
- 딥 신경망 아키텍처를 가역적 함수 관점에서 분석하고, PGI와 보조 가역적 브랜치를 설계하여 뛰어난 결과를 얻음.
- PGI는 깊은 감독의 한계를 해결하고, 경량 아키텍처의 실제 적용 가능성을 높임.
- GELAN은 깊이별 합성곱 설계보다 더 높은 파라미터 활용도를 달성하며, 경량화, 속도, 정확성에서 장점이 있음.
- PGI와 GELAN을 결합한 YOLOv9은 MS COCO 데이터셋에서 기존 방법들을 초과하는 성능을 기록.
Problem Statement
3.1. 정보 병목
딥 뉴럴 네트워크에서 입력 데이터는 여러 층을 거치면서 정보가 손실될 수 있습니다. 네트워크가 깊어질수록 데이터의 정보가 더 많이 손실되며, 이는 훈련 시 신뢰할 수 없는 그래디언트를 발생시키고, 모델의 수렴 성능을 떨어뜨립니다. 이를 해결하려면 모델의 크기를 키우거나, 더 깊은 네트워크에서 발생하는 불안정한 그래디언트 문제를 해결해야 합니다.
3.2. 가역적 함수
가역적 함수는 데이터가 변환된 후에도 정보를 손실하지 않도록 합니다. 가역적 함수가 적용된 네트워크는 더 신뢰할 수 있는 그래디언트를 생성하여 모델을 업데이트할 수 있습니다. 예를 들어, PreAct ResNet은 데이터가 후속 층으로 반복 전달되므로 매우 깊은 네트워크에서도 잘 수렴하지만, 단순한 매핑 함수가 필요한 경우 성능이 떨어질 수 있습니다.
또한, 마스크 모델링이나 변분 오토인코더와 같은 방법을 사용하여 변환된 특성을 통해 정보를 최대화할 수 있지만, 경량 모델에서는 파라미터 부족 문제로 정보 손실이 발생할 수 있습니다. 이는 정보 병목 현상에서 발생하는 문제를 더욱 악화시킵니다.
경량 모델에서는 중요한 정보가 손실되지 않도록 정확하게 필터링하는 것이 중요한 과제입니다. 이를 해결하기 위한 새로운 딥 뉴럴 네트워크 훈련 방법을 제안하며, 신뢰할 수 있는 그래디언트를 생성하고, 얕고 경량화된 신경망에도 적합한 훈련 방안을 제공하고자 합니다.
PGI와 관련된 네트워크 아키텍처 및 방법. (a) 경로 집합 네트워크(Path Aggregation Network, PAN), (b) 가역적 열(Reversible Columns, RevCol), (c) 전통적인 깊은 감독, (d) 우리가 제안하는 프로그래머블 그래디언트 정보(Programmable Gradient Information, PGI). PGI는 주로 세 가지 구성 요소로 이루어져 있습니다: (1) 주 브랜치: 추론에 사용되는 아키텍처, (2) 보조 가역적 브랜치: 신뢰할 수 있는 그래디언트를 생성하여 주 브랜치에 역방향 전파를 공급, (3) 다중 수준 보조 정보: 주 브랜치 학습을 위한 다중 수준 의미 정보 제어
Methodology
4.1. Programmable Gradient Information (PGI)
앞서 언급된 문제들을 해결하기 위해, 우리는 새로운 보조 감독 프레임워크인 프로그래머블 그래디언트 정보(Programmable Gradient Information, PGI)를 제안합니다. PGI는 주로 세 가지 구성 요소로 이루어져 있습니다: (1) 주 브랜치, (2) 보조 가역적 브랜치, (3) 다중 수준 보조 정보. 그림 3(d)에서 알 수 있듯이 PGI의 추론 과정은 주 브랜치만 사용하므로 추가적인 추론 비용이 들지 않습니다. 나머지 두 구성 요소는 딥러닝 방법에서 발생하는 여러 중요한 문제들을 해결하거나 지연시키는 데 사용됩니다. 그 중 보조 가역적 브랜치는 신경망이 깊어짐에 따라 발생하는 문제들을 처리하는 데 설계되었으며, 다중 수준 보조 정보는 깊은 감독으로 인한 오류 누적 문제를 해결하는 데 도움을 줍니다. 특히, 다중 예측 브랜치를 사용하는 아키텍처와 경량 모델에서 중요한 역할을 합니다. 이제 이 두 가지 구성 요소에 대해 단계별로 설명하겠습니다.
4.1.1 Auxiliary Reversible Branch
PGI에서 우리는 신뢰할 수 있는 그래디언트를 생성하고 네트워크 파라미터를 업데이트하기 위해 보조 가역적 브랜치를 제안합니다. 이 브랜치는 데이터에서 타겟으로 매핑되는 정보를 제공하여, 손실 함수가 정확한 지도 신호를 제공하고, 불완전한 피드포워드 특징에서 발생할 수 있는 잘못된 연관을 방지할 수 있도록 합니다. 우리는 가역적 아키텍처를 도입하여 완전한 정보를 유지하려고 하지만, 주 브랜치에 가역적 아키텍처를 추가하면 추론 비용이 많이 듭니다.
그림 3(b)의 아키텍처를 분석한 결과, 깊은 층에서 얕은 층으로 추가적인 연결을 추가하면 추론 시간이 20% 증가한다는 것을 알았습니다. 입력 데이터를 네트워크의 고해상도 계산 층(노란색 상자)에 반복적으로 추가하면 추론 시간이 두 배 이상 증가하는 경우도 발생합니다.
우리는 가역적 아키텍처를 통해 신뢰할 수 있는 그래디언트를 얻는 것을 목표로 하고 있지만, 추론 단계에서 “가역성”이 반드시 필요한 조건은 아닙니다. 이를 고려하여 우리는 보조 가역적 브랜치를 깊은 감독 브랜치의 확장으로 간주하고 설계하였습니다. 보조 가역적 브랜치가 제공하는 신뢰할 수 있는 그래디언트 정보는 정보 병목 현상으로 인해 중요한 정보를 잃은 주 브랜치의 깊은 특징들을 업데이트하여, 올바르고 중요한 정보를 추출하는 데 도움을 줍니다. 이러한 과정을 통해 주 브랜치는 목표 작업에 더 효과적인 특징을 얻을 수 있습니다. 또한, 가역적 아키텍처는 얕은 네트워크에서 일반 네트워크보다 성능이 떨어지는데, 우리의 방법은 주 브랜치가 원본 정보를 완전하게 유지하지 않고도 유용한 그래디언트를 생성하여 업데이트할 수 있도록 합니다. 이 디자인의 장점은 제안된 방법이 얕은 네트워크에도 적용 가능하다는 점입니다.
4.1.2 다중 수준 보조 정보
이 섹션에서는 다중 수준 보조 정보의 작동 방식에 대해 설명합니다. 깊은 감독 아키텍처는 여러 예측 브랜치를 포함하고 있으며, 이는 다양한 크기의 객체를 탐지하는 데 사용할 수 있는 피처 피라미드를 사용하여 객체를 탐지할 수 있습니다. 예를 들어, 작은 객체 탐지에 필요한 피처는 얕은 피라미드에서 학습될 수 있지만, 이로 인해 깊은 피라미드가 타겟 객체 예측에 필요한 많은 정보를 잃게 됩니다. 이 문제를 해결하기 위해, 각 피라미드는 모든 타겟 객체에 대한 정보를 받아야 하며, 이후 주 브랜치는 다양한 타겟에 대한 예측을 학습할 수 있도록 완전한 정보를 유지해야 합니다.
다중 수준 보조 정보의 개념은 보조 감독의 피처 피라미드 계층과 주 브랜치 사이에 통합 네트워크를 삽입하여, 서로 다른 예측 헤드에서 반환된 그래디언트를 결합하는 것입니다. 이를 통해 타겟 객체에 대한 모든 정보가 포함된 그래디언트가 주 브랜치로 전달되어 파라미터가 업데이트됩니다. 이 방식은 깊은 감독에서 발생할 수 있는 정보 파괴 문제를 완화하며, 다양한 크기의 네트워크 아키텍처를 학습할 수 있도록 필요한 의미 수준을 계획할 수 있습니다.
4.2 일반화된 ELAN (GELAN)
이 섹션에서는 제안된 새로운 네트워크 아키텍처인 GELAN에 대해 설명합니다. GELAN은 경량화, 추론 속도 및 정확도를 고려하여 설계된 새로운 네트워크 아키텍처로, CSPNet과 ELAN을 결합하여 기울기 경로 계획을 사용한 네트워크입니다. GELAN은 ELAN이 원래 합성곱 층을 쌓는 방식만을 사용했던 것에서 확장되어, 다양한 계산 블록을 사용할 수 있는 아키텍처로 일반화되었습니다.
Experiments
5.1 실험 설정
본 연구에서는 제안된 방법을 MS COCO 데이터셋을 사용하여 검증하였습니다. 모든 실험 설정은 YOLOv7 AF을 따르며, 데이터셋은 MS COCO 2017 분할을 사용합니다. 언급된 모든 모델은 "train-from-scratch" 전략을 사용하여 훈련되었으며, 총 훈련 횟수는 500 에폭입니다. 학습률 설정에 있어 처음 3 에폭 동안은 선형 워밍업을 사용하고, 이후 에폭에서는 모델의 규모에 맞게 해당하는 감쇠 방식으로 설정합니다. 마지막 15 에폭에서는 모자이크 데이터 증강을 끕니다.
5.2 구현 세부사항
우리는 YOLOv7과 Dynamic YOLOv7을 기반으로 YOLOv9의 일반 및 확장 버전을 구축했습니다. 네트워크 아키텍처 설계에서, 우리는 ELAN을 GELAN으로 교체하고, CSPNet 블록과 계획된 RepConv를 계산 블록으로 사용했습니다. 또한 다운샘플링 모듈을 단순화하고, 앵커프리 예측 헤드를 최적화했습니다. PGI의 보조 손실 부분은 YOLOv7의 보조 헤드 설정을 완전히 따랐습니다.
Conclusions
본 논문에서는 정보 병목 문제와 깊은 감독 메커니즘이 경량 신경망에 적합하지 않은 문제를 해결하기 위해 PGI를 사용할 것을 제안하였습니다. 우리는 매우 효율적이고 경량화된 신경망인 GELAN을 설계하였습니다. 객체 탐지 측면에서 GELAN은 다양한 계산 블록과 깊이 설정에서 강력하고 안정적인 성능을 보입니다. GELAN은 다양한 추론 장치에 적합한 모델로 확장할 수 있는 가능성을 가지고 있습니다. PGI의 도입은 경량 모델과 깊은 모델 모두에서 정확도의 상당한 향상을 이끌어냈습니다. PGI와 GELAN을 결합하여 설계한 YOLOv9은 강력한 경쟁력을 보여주었습니다. YOLOv9은 YOLOv8에 비해 파라미터 수를 49%, 계산량을 43% 줄였음에도 불구하고 MS COCO 데이터셋에서 0.6% AP 개선을 달성했습니다.
이전 버전들의 모델을 기반으로 정보 병목 문제를 해결하기 위해 Programmable Gradient Information (PGI) 개념을 도입하여 심층 네트워크 계층에서 필수 데이터를 보존할 수 있도록 하였고, Generalized Efficient Layer Aggregation Network (GELAN)를 통해 레이어 정보 흐름을 강화하여 다양한 계산 블록을 유연하게 통합할 수 있도록 개선했다
출처
C.-Y. Wang, I.-H. Yeh, and H.-Y. M. Liao, "YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information," arXiv preprint arXiv:2402.13616, 2024. [Online]. Available: https://arxiv.org/abs/2402.13616.