YOLOR 논문 Review

2021. 10. 8. 14:40논문 리뷰

1. YOLOR이란?
  YOLOv3 ->> YOLOv4 -> Scaled TOLOV4 -> YOLOR  같은 저자가 연구 한 모델임
 

 
Multi-task 수행 방법의 새로운 고안을 위한 모델
 
기존의 Multi-task 같은 경우 

a)와 같이 하나의 인풋에 대해서 여러개의 모델을 만들어 여러개의 아웃풋으로 수행하거나 b)와 같이 하나의 backbone을 공유하고 서로다른 헤드를 붙여 수행하는 식이였다. YOLOR의 핵심은 여러개의 신경망을 쓰는게 아닌 하나의 통합된 신경망을 사용함으로써 Muti-tak가 가능하도록 하는것이다. 이를 위해 implicit Knowledge(암시적 지식) 을 사용하는것을 얘기 한다. 여기서 Explicit Knowledge란 우리가 일반적으로 아는 신경망의 결과 즉 개랑 고양이를 구분할때 class가 개인지 고양인지에 대한 결과이고 Implicit Knowledge는 그 고양이 와 개의 귀, 코, 눈 등의 detail한 정보 즉 Detail Feature 추출의 결과물이라고 말할 수 있을것 같다. 
 
2. 사람의 학습 방법?
1)사람이 고양이를 학습할때 

색깔은 이렇고, 귀는 쫑긋하게 생겼고, 논은 이렇게 생겼고 , 코는 이렇게 생겼고, 발은 이렇게 생겼네 하는것들은 무의식 중의 학습이다. 그리고 이렇게 생겼으니 따라서 얘는 고양이야 라고 정의 할 수 있는 판단이 의식적인 학습이 된다. 따라사람은 Implict Knowledge랑 Explict Knowledge를 한번에 학습하여 훈련을 하는데 이러한 판단의 흐름을 적용을 하려고 하는것이 YOLOR 모델 방식의 핵심 고안이다. 
 
3) Implict Knwledge가 어떻게 동작하는가?
 이 연구의 핵심은 결국 Implict Knwledge를 효과적으로 훈련시킬 수 있는 Unified된 network를 수행하려는 것이다.
 Implict Knwledge는 Observatiom과 연관이 없기 때문에 Implict Representation z를 Constant tensor로 생각할 수 있다.
저자는 이를 통해서 Manifold Spce Reduction 이 가능하다고 얘기한다. 이는 고차원의 Manifold를 Projection을 통해 저차원의 Manifold로 projection을 한것을 의미 하는데 이러한 과정을 통해서 Hyper-plane을 보다 더 잘 찾을 수 있게 딥뉴럴 네트워크가 진행한다. 즉 Good Representation은 데이터를 잘 나누는 Hyper-plane이 존재하는것이고 projection 벡터와 implict Knowledge의 inner product를 통해서 차원 감소가 가능하다고 얘기합니다. 즉 implict Knowledge가 Constant 벡터로 여길 수 있으니 다른 테스크를 적용할때 단순한 Constant 벡터와 연산을 통해서 다른 태스크에 적용할 수 있다고 말할 수 있다. 
 

 
 implict Knowledge가 Kernel Space Alignment에도 도움을 줄수 있다. 

 
그림 a)와 같이 alignment가 없을때 멀티 헤드를 이용하는 경우에 feautre들이 정렬 되지 않은 것을 볼 수 있다. 이때 간단한 Rotation이나 Translation과 같은 Transfomation을 사용해주면 그림 b)와 같이 feautre들이 유사하게 정렬을 시킬 수 있다. 이를 통해 결국 implict Knowledge가 앵커 refinement를 통해 box refinement를 하는데 도움을 줄 수도 있고 feature selection에도 적용이 될 수 있음을 저자들은 얘기하고 있다. 
 
 
3. implict Knowledge가  실제로 어떻게 네트워크에 적용되는가? 

Unified Network는 ConvNet 결과에 Explicit Knowledge error 와 implicit knowledge error 를 더해주는 방향으로 학습을 한다.

모델 구조는 기존의 yolov4 csp 모델에다가 feature alignment 와  predicition refinement 멀티 테스크를 위해서 implicit knowledge를 각 위치에 더해주는 행위를 진행하여 모델 아키텍쳐를 만들었다