DL/CNN

3. ResNet과 Residual Learning - 깊어질수록 왜 학습이 더 어려워질까?

rem1004 2026. 9. 1. 02:54

네트워크가 깊어지면 표현력이 커질 것 같지만, 실제로는 어느 지점부터 더 깊은 모델의 Training Error가 오히려 높아지는 Degradation Problem이 나타났다. 이는 단순한 Overfitting이 아니다. 학습 데이터조차 더 잘 맞히지 못하기 때문이다. ResNet은 Layer가 새 표현 전체를 만드는 대신 입력에 더할 잔차만 학습하게 해 이 문제를 돌파했다.

 Residual Branch와 Identity Shortcut이 결합되는 Residual Learning

1. Residual Learning의 핵심 수식

일반 Block이 원하는 함수 H(x)를 직접 학습한다면 Residual Block은 다음을 학습한다.

F(x) = H(x) - x
H(x) = F(x) + x

입력 x를 Block 출력에 그대로 더하는 경로가 Skip Connection, Shortcut Connection, 또는 Identity Mapping이다. 최적의 변환이 입력을 유지하는 것에 가깝다면, 여러 Layer가 Identity Function 전체를 새로 만드는 대신 F(x) ≈ 0만 학습하면 된다.

Residual이라는 이름은 Block이 최종 함수 전체가 아니라 입력에서 얼마나 변해야 하는지, 즉 잔차를 학습한다는 뜻이다. Skip Path 자체에는 보통 Weight가 없으므로 표현력이 줄어드는 것도 아니다. Residual Branch가 필요한 변환 F(x)를 학습하고 Identity Path가 안정적인 기준점을 제공한다.

2. Skip Connection이 Gradient를 돕는 이유

출력이 y = F(x) + x이면 미분에는 Residual Branch뿐 아니라 Identity Path가 남는다.

∂y/∂x = ∂F/∂x + 1

Gradient가 여러 Weight Layer를 반드시 거치지 않고도 앞쪽으로 전달될 길이 생긴다. 이 덕분에 아주 깊은 네트워크를 안정적으로 최적화할 수 있다.

단, 입력과 출력의 공간 크기나 Channel 수가 다르면 그대로 더할 수 없다. 이때 1×1 Convolution으로 차원을 맞추는 Projection Shortcut을 사용한다. 크기가 같으면 파라미터 없는 Identity Shortcut을 쓴다.

Projection Shortcut은 Shape을 맞추지만 Weight와 연산량이 생긴다. 그래서 모든 Block에 쓰기보다 Stage 전환처럼 해상도나 Channel이 바뀌는 곳에 제한적으로 사용한다. Main Branch와 Shortcut을 더하려면 Height, Width, Channel이 모두 같아야 한다.

3. Residual Block과 Bottleneck Block

얕은 ResNet은 3×3 → 3×3Basic Block을 사용한다. ResNet-50 이상에서는 계산 효율을 위해 Bottleneck Block을 사용한다.

1×1: Channel 축소
3×3: 공간 특징 추출
1×1: Channel 복원

예를 들어 256 → 64 → 64 → 256처럼 가운데 연산의 Channel을 줄인다. Inception의 Bottleneck과 마찬가지로 비싼 3×3 연산량을 낮추는 전략이다.

Bottleneck의 마지막 1×1은 Channel을 크게 확장하므로 Expansion Factor가 있다. 대표 구현은 Factor 4를 사용한다. planes=64인 Block의 최종 Output Channel이 256인 이유다.

4. ResNet의 전체 흐름

초기 Convolution과 Max Pooling 뒤에 Residual Stage를 여러 번 쌓는다. Stage가 바뀔 때는 보통 Stride 2로 해상도를 절반으로 줄이고 Channel 수를 늘린다. 마지막에는 GAP와 FC Layer로 분류한다.

ResNet 논문은 18, 34, 50, 101, 152 Layer 모델을 비교했다. 핵심 성과는 “깊이가 무조건 좋다”가 아니라, Skip Connection을 통해 깊은 모델을 실제로 최적화할 수 있게 만들었다는 점이다.

Layer 수를 셀 때는 Convolution과 마지막 FC를 포함하는 논문 관례가 사용되고 Skip Path 자체는 세지 않는다. 서로 다른 논문의 “50 Layer”를 비교할 때 Layer Counting 규칙이 같은지 확인해야 한다.

5. Loss Landscape 관점

Skip Connection이 없는 깊은 네트워크는 Loss 표면이 복잡하고 날카로워 최적화가 어려울 수 있다. Residual 구조는 더 매끄러운 Loss Landscape를 형성하는 경향을 보인다. 이는 ResNet의 이점이 단순히 Vanishing Gradient 하나만 해결한 것이 아니라 Optimization Geometry 자체를 개선했음을 시사한다.

6. ResNet은 Ensemble인가?

ResNet을 펼쳐 보면 Skip Path와 Residual Path의 조합으로 매우 많은 경로가 생긴다. 일부 연구는 이를 서로 다른 길이의 네트워크가 모인 Implicit Ensemble로 해석한다. 특정 Block을 삭제해도 성능이 즉시 붕괴하지 않는 현상, 짧은 경로가 Gradient에 크게 기여한다는 관찰이 이 관점을 뒷받침한다.

다만 이는 유용한 해석이지, ResNet을 독립 모델들의 전통적 Ensemble과 완전히 같다고 보는 것은 과도하다.

Post-activation과 Full Pre-activation의 구조 및 Optimization 비교

7. Pre-activation ResNet

기존 Block은 대략 Conv → BN → ReLU 뒤에 Addition과 ReLU를 둔다. Full Pre-activationBN → ReLU → Conv 순서로 바꾸고 Addition 뒤 Activation을 제거한다.

이렇게 하면 Identity Path가 Activation에 가로막히지 않고 앞에서 뒤까지 더 깨끗하게 연결된다. 매우 깊은 ResNet에서 Gradient 전달과 일반화 성능이 개선됐다.

Original Block에서는 Addition 뒤 ReLU 때문에 음수 정보가 사라지고 Identity 경로도 완전한 선형 통로가 아니다. Pre-activation은 Addition 뒤에 Activation을 두지 않아 여러 Block을 지날 때도 Identity Mapping이 직접 이어진다.

8. Inception-ResNet으로의 결합

Inception V4는 Inception Module을 더 정교하게 쌓았고, Inception-ResNet V1/V2는 Inception Branch의 출력을 Residual 형태로 입력에 더했다. Multi-scale 처리와 Skip Connection을 결합한 셈이다. Residual 값을 일정 비율로 줄이는 Residual Scaling이 안정적인 학습에 도움을 주기도 했다.

9. 구현에서 확인할 순서

  1. Stage 첫 Block에서 Stride가 어디에 들어가는지 확인한다.
  2. Main Branch와 Shortcut의 Spatial/Channel Shape을 맞춘다.
  3. Basic Block인지 Bottleneck인지에 따라 Expansion을 계산한다.
  4. BN과 ReLU가 Conv 전인지 후인지 확인한다.
  5. Addition은 Concatenation이 아니므로 Channel 수가 합쳐지지 않는다.
  6. 마지막 GAP 후 Classifier로 들어가는 Feature 차원을 확인한다.

10. ResNet이 이후 모델에 준 공통 언어

Skip Connection은 WideResNet, ResNeXt, SE-ResNet, Inception-ResNet, Transformer에까지 이어졌다. 세부 연산은 달라도 “복잡한 변환을 학습하는 Branch와 정보를 보존하는 Identity Path를 분리한다”는 설계 원리가 공통이다.

개념 흐름

깊은 Plain Network의 Degradation
 → H(x) 전체 대신 F(x)=H(x)-x 학습
 → Identity Shortcut으로 정보·Gradient 통로 확보
 → Bottleneck으로 깊이와 계산 효율 양립
 → Pre-activation으로 Identity Mapping 정제
 → 다양한 CNN과 Transformer의 기본 설계로 확산

Key Terms

Degradation Problem · Residual Learning · Skip Connection · Identity Mapping · Projection Shortcut · Basic Block · Bottleneck Block · Loss Landscape · Implicit Ensemble · Full Pre-activation

Self Check

  1. Degradation Problem과 Overfitting의 차이는 무엇인가?
  2. 입력과 출력의 Channel 수가 다를 때 Shortcut에는 무엇이 필요한가?
  3. Full Pre-activation이 Identity Path에 유리한 이유는 무엇인가?