오늘은 CNN에서 Multi-branch와 skip connection의 장점은 살리면서도 training time과 inference time에서의 모델 구조를 분리하여 연산량을 줄여 빠르고 단순한 구조로 바꾼 RepVGG에 대해서 알아보도록 하자. 이전에 발표를 한 경험이 있기에, 발표자료를 수록하도록 하겠다.

Background
1. VGG-style ConvNet이 주는 장점
VGG 계열은 단순하고(Sequential), 깊고(Deep), 균일한(Uniform) 설계가 직관적이라, 구현/최적화/배포 측면에서 매력적이다.
다만 성능 경쟁이 치열해지면서 Inception/ResNet처럼 분기(branch)가 있는 구조가 표준이 되었고, plain(VGG-style) 네트워크는 상대적으로 불리해지는 환경이 되었다.

1.2 Multi-branch(예: ResNet)의 장점과 트레이드오프
Multi-branch는 여러 경로가 병렬로 특징을 뽑는 구조라서, 앙상블처럼 더 풍부한 표현을 학습하고 gradient 흐름에도 도움이 된다. 반면 추론 시에는 분기마다 메모리 접근/병렬성 제약이 생겨 속도 최적화가 까다로워질 수 있다(구조가 복잡할수록 실제 HW에서 느려질 수 있음). 발표자료가 이 대비를 핵심 동기로 깔아둔다.

Method
RepVGG는 한 문장으로 요약하면:
Training-time: multi-branch topology (학습이 잘 되게)
Inference-time: VGG처럼 3×3 Conv + ReLU만 남기는 single-branch (빠르게)
그리고 둘을 잇는 핵심이 structural re-parameterization
이라고 할 수 있다.

Reparameterization Trick


슬라이드에서 볼 수 있듯이, 3x3 Conv, 1x1 Conv, 그리고 Skip connection branch를 전부 3x3 Conv에 fuse(합치는) 방식인데, 이 때 1x1 Conv, skip connection들을 3x3으로 expand해서 합쳐주는 구조이다. 상세한 계산 과정은 아래와 같다.


Experiment


ResNet 계열보다 빠른 추론 속도를 보이면서, top-1 정확도도 경쟁력이 있다.
예시로, 슬라이드 표에는 RepVGG-A0가 ResNet-18 대비 정확도(top-1)와 처리량(speed) 모두 우세한 수치가 제시된다.
또한 RepVGG-B3가 80%+ top-1에 도달하며, 강한 효율 모델들과의 비교에서도 “정확도-속도” 사이의 balance가 좋다는 것을 보여준다.
abalation study를 보면, 1x1 branch의 중요성을 볼 수 있다.
identity branch 제거 또는 1×1 branch 제거 시 정확도가 눈에 띄게 떨어진다.
즉, 추론 때는 지우더라도(= fuse) 학습 때는 multi-branch로 학습을 돕는 게 중요하다는 근거로 사용된다.
'Efficient Models' 카테고리의 다른 글
| [CVPR 2020] Dynamic Convolution: Attention over Convolution Kernels (0) | 2025.05.12 |
|---|