이미지 인식을 위한 ResNet 방식 (Deep Residual Learning for Image Recognition)
유형: 논문 · 저자: Kaiming He, Xiangyu Zhang, Shaoqing Ren · 출처: Microsoft Research · 별점: ⭐️⭐️⭐️⭐️
핵심 결론
- 딥러닝 모델이 깊어질수록 학습이 어려워지는 구조적 문제를 residual connection로 해결
- 기존 딥러닝 문제
- 딥러닝은 여러 단계를 거쳐 점점 복잡한 판단을 만든다 → 단계가 많아질수록 더 똑똑해질 것이라는 기대가 있었다
- 실제로는 단계를 많이 쌓으면 성능이 더 좋아지지 않고 오히려 학습이 잘 안 되거나 결과가 나빠졌다
- 기존 모델은 매 단계마다 이전 결과를 덮어쓰는 방식 ⇒ 이미 계산한 좋은 결과를 계속 망가뜨리는 구조
- 이후 거의 모든 딥 모델의 기본 문법이 됨
왜 모델이 깊어질수록 문제가 생길까
관찰된 결과
- 네트워크를 깊게 하면 표현력은 늘어나야 함 → 그런데 실제로는 20층보다 56층 네트워크의 훈련 오차가 더 큼
- 이는 데이터 부족이나 overfitting 문제가 아님 → 최적화가 실패한 것
plain CNN 구조 : 합성곱 → ReLU → BatchNorm” 단계를 계속 쌓은 구조
- 문제 1 정보 훼손
- 앞에서 만든 결과를 뒤에서 계속 다시 바꾼다 → 조금씩 틀어지는 게 누적된다
- 문제 2 안 바꿔도 되는 단계가 없다
- 사실 어떤 단계는 “이 상태면 충분하다”일 수 있다 → 하지만 기존 구조에서는 무조건 뭔가를 바꿔야 한다
- 문제 3 gradient가 약해진다
- 학습 신호가 맨 앞까지 가는 동안 점점 희미해진다 → 층을 더 쌓았는데 훈련 데이터조차 잘 못 맞춘다
- 문제 1 정보 훼손
⇒ 즉 identity mapping을 학습하는 것 자체가 난이도가 높다
해결 아이디어 → Residual Learning
- 기존 방식
- 각 블록이 직접 H(x)를 학습
- 블록 수가 늘어날수록 각 블록은 이미 여러 번 가공된 결과를 입력으로 받음 → 그 상태에서 또 “완성된 결과”를 만들어야 하므로 작은 오차가 계속 누적
- H(x)를 정확히 맞추는 부담이 커짐
- ResNet 방식
- 블록은 변화량 F(x)만 학습
- ResNet은 블록에게 “전체 답을 만들어라”라고 요구하는 대신 “지금 결과에서 무엇을 얼마나 바꿔야 하는지”만 학습하게 함 →“바꿀 부분”이 F(x)다
- 출력은 y = x + F(x)
- 의미는 “입력을 그대로 두고, 바꿀 것만 조금 수정”
- 블록은 변화량 F(x)만 학습
- 왜 이게 잘 작동하는가
- 최소 성능 보장
- F(x)=0이면 출력은 그대로 x
- 깊은 모델이 최소한 얕은 모델과 동일한 성능을 낼 수 있음
- gradient 흐름 개선
- skip connection을 통해 gradient가 직접 전달
- 기존 구조에서는 이 신호가 여러 블록을 거치며 약해진다
- 딥러닝은 출력을 만들 때 거친 모든 계산을 거꾸로 되짚으며 학습하기 때문에 층이 많아질수록 gradient는 그만큼 많은 계산을 하나씩 통과할 수밖에 없다
- ResNet에서는 입력 x가 계산 블록을 거치지 않고도 바로 뒤로 연결된다
- 기존 구조에서는 이 신호가 여러 블록을 거치며 약해진다
- 깊이에 따른 학습 신호 소실 완화
- skip connection을 통해 gradient가 직접 전달
- 학습 난이도 감소
- 네트워크가 완전한 표현이 아니라 차이만 학습
- 최적화 공간이 단순해짐
- 최소 성능 보장
실험 결과
- ImageNet
- ResNet-50, 101, 152로 갈수록 성능이 꾸준히 개선
- VGG보다 훨씬 깊지만 훈련 오차와 테스트 오차 모두 낮음
- CIFAR-10
- 100층 이상에서도 안정적 수렴
- plain network는 깊어질수록 성능 붕괴
적용 가능 영역
- 이미지 분류, 객체 탐지, 세그멘테이션
- 비전 트랜스포머의 residual + normalization 구조
- 시계열, 음성, 추천 모델의 deep stack 구조
현실적 한계
- residual은 학습 안정성을 높일 뿐 표현력 자체를 늘리지는 않음
- 계산량과 메모리 사용은 여전히 depth에 비례
- 무작정 깊게 쌓는 것은 ROI가 낮아질 수 있음