IQ Lab
← all posts
AI 2026.04.28 · 11 min read Advanced

Skip Connection은 왜 깊은 네트워크를 살렸는가

Residual block의 identity shortcut부터 DenseNet의 dense connection, Highway의 learnable gate, Stochastic Depth의 implicit ensemble까지, 깊이의 저주를 구조적으로 해결한 설계 철학을 추적한다.


2015년 ImageNet에서 152층짜리 네트워크가 우승했다. 그 전까지 50층을 넘으면 오히려 성능이 떨어졌다. 무엇이 바뀌었는가? 답은 단 하나의 수식이다 — y=F(x;W)+xy = F(x; W) + x. 왜 이 항등원 하나가 깊이의 저주를 풀었는지, 그리고 이후 아키텍처들이 그 철학을 어떻게 다르게 해석했는지 추적한다.

깊이가 저주가 되는 이유

길이 LL인 plain network의 역전파:

Lx0=LxLl=0L1Jl\frac{\partial L}{\partial x_0} = \frac{\partial L}{\partial x_L} \prod_{l=0}^{L-1} J_l

Jlspectralγ<1\|J_l\|_{\text{spectral}} \leq \gamma < 1이면 product는 γL\gamma^L에 비례한다. L=50L = 50, γ=0.9\gamma = 0.9이면:

γ50=0.9500.005\gamma^{50} = 0.9^{50} \approx 0.005

초기 층의 gradient는 99.5% 소멸한다. 학습률 0.01에서 파라미터 업데이트는 10510^{-5} 수준 — 사실상 학습이 멈춘다. 이것이 plain-56이 plain-20보다 나쁜 성능을 보인 이유다.

깊이의 역설

더 많은 파라미터를 가진 깊은 plain network가 얕은 network보다 성능이 나쁘다. 이는 과적합이 아니라 optimization 실패다 — 훈련 오차 자체가 더 높다.

Identity Shortcut: 항등원을 고속도로로

Residual block:

y=F(x;W)+xy = F(x; W) + x

역전파를 전개하면:

Lxl=Lyl(I+Flxl)\frac{\partial L}{\partial x_l} = \frac{\partial L}{\partial y_l} \left(I + \frac{\partial F_l}{\partial x_l}\right)

LL개 block을 거치면:

Lx0=LyLl=0L1(I+Flxl)\frac{\partial L}{\partial x_0} = \frac{\partial L}{\partial y_L} \prod_{l=0}^{L-1} \left(I + \frac{\partial F_l}{\partial x_l}\right)

Taylor 전개하면 이 product에는 반드시 항등원 II가 남는다. Fl/xl\partial F_l / \partial x_l이 아무리 작아도 gradient는 최소 L/yL\|\partial L / \partial y_L\| 크기를 유지한다.

명제 1 · Residual block의 gradient 안정성

Pre-activation residual block에서, Fl/xlspectralμ<1\|\partial F_l / \partial x_l\|_{\text{spectral}} \leq \mu < 1이면:

I+Flxlspectral[1μ,1+μ]\left\|I + \frac{\partial F_l}{\partial x_l}\right\|_{\text{spectral}} \in [1 - \mu, 1 + \mu]

따라서 역전파 시 gradient norm은 최악의 경우에도 (1μ)L(1-\mu)^L까지만 감소한다.

▷ 증명

Spectral norm의 삼각 부등식에서 직접 따른다. I+ΔI + \Delta의 eigenvalue 범위는 [1Δ,1+Δ][1 - \|\Delta\|, 1 + \|\Delta\|]이고, Δμ<1\|\Delta\| \leq \mu < 1이면 모든 eigenvalue가 양수이므로 gradient가 역전되거나 소멸하지 않는다. \square

직관적으로는 gradient highway 메타포가 명확하다. Plain network에서 gradient는 매 층의 신호등(ReLU mask, weight norm)에서 감쇠된다. Residual network에서는 identity II 경로가 고속도로 차선을 열어둔다 — 학습된 변형 F/x\partial F / \partial x가 작아도 gradient는 직통으로 흐른다.

He initialization(N(0,2/n)\mathcal{N}(0, 2/n))과 BN 초기화(γ=1,β=0\gamma=1, \beta=0)를 조합하면, 훈련 초기에 F(x;W)0F(x; W) \approx 0이므로 각 block은 identity에 가까운 상태에서 시작한다. 이것이 Identity Approximation Theorem의 핵심이다: 깊은 residual network는 항상 “추가 block이 모두 F0F \approx 0을 학습한 얕은 network”를 최소 성능으로 보장한다. 깊이가 optimization의 적이 아니라 중립이 된다.

DenseNet: Concatenation으로 모든 층을 연결

ResNet이 덧셈으로 shortcut을 연결했다면, DenseNet(Huang et al., 2017)은 concatenation으로 모든 이전 층을 연결한다:

xl=Hl([x0,x1,,xl1])x_l = H_l([x_0, x_1, \ldots, x_{l-1}])

Growth rate kk(보통 12–32)만큼 각 층의 출력 채널이 증가하며, Bottleneck(1×13×31 \times 1 \to 3 \times 3) 구조로 파라미터를 제어한다. 결과는 극적이다 — DenseNet-121은 ResNet-50과 유사한 ImageNet 정확도를 1/3 파라미터로 달성한다.

Dense Block (c₀=24, k=12, L=6):
Layer 0: 24 channels input
Layer 1: 36 channels input   (24 + 12)
Layer 2: 48 channels input   (24 + 12 + 12)
...
Layer 5: 84 channels input   (24 + 5×12)
Block output: 96 channels    (24 + 6×12)
→ Transition (×0.5): 48 channels

Gradient 경로 수가 ResNet의 1개에서 LL개로 늘어나므로, gradient vanishing은 더욱 어려워진다. 대신 모든 intermediate feature를 메모리에 유지해야 하므로 VRAM bandwidth 병목이 생긴다 — 파라미터 수와 실제 메모리 사용량이 다를 수 있다.

Highway의 Learnable Gate, 그리고 실패의 교훈

Highway Network(Srivastava et al., 2015)는 ResNet과 거의 동시에 발표된 대안이다:

y=T(x)F(x)+(1T(x))x,T(x)=σ(WTx+bT)y = T(x) \odot F(x) + (1 - T(x)) \odot x, \quad T(x) = \sigma(W_T x + b_T)

Gate T(x)[0,1]T(x) \in [0,1]이 얼마나 많은 정보를 변환(transform)하고 얼마나 많은 정보를 통과(carry)시킬지를 동적으로 결정한다. LSTM의 forget gate와 구조적으로 동일하다. ResNet은 T1T \equiv 1로 고정한 Highway의 특수 케이스로 해석할 수 있다.

트레이드오프: Highway vs ResNet

Highway는 이론적으로 더 일반적(general)이다. 그러나 Greff et al.(2016)의 분석은 훈련이 진행될수록 T(x)1T(x) \to 1에 수렴한다는 것을 발견했다 — gate가 결국 identity를 버리고 완전한 변환을 선택한다. 학습 가능한 gate가 고정 identity보다 열등한 결과를 보였다. ResNet의 단순함이 이기는 희귀한 사례다.

Stochastic Depth: Layer-wise Dropout과 Implicit Ensemble

Stochastic Depth(Huang et al., 2016)는 전혀 다른 방향을 탐색한다. 훈련 중 전체 residual block을 확률적으로 drop한다:

yl=xl+b~lFl(xl),b~lBernoulli(1pl)y_l = x_l + \tilde{b}_l \cdot F_l(x_l), \quad \tilde{b}_l \sim \text{Bernoulli}(1 - p_l)

Drop되면 해당 block의 gradient는 identity path만 통과한다 — 가장 직접적인 gradient flow다. Drop probability는 linear decay schedule을 따른다:

pl=lLpmaxp_l = \frac{l}{L} \cdot p_{\max}

초기 층(low-level feature, redundant)은 자주 drop되고, 후기 층(high-level feature, 중요)은 거의 유지된다.

LL개 block이 독립적으로 drop/keep되면 가능한 sub-network 수는 2L2^L이다. ResNet-1001에서 이 수는 21001103012^{1001} \approx 10^{301} — 이 모든 네트워크를 implicit하게 훈련하는 효과가 강력한 regularization을 만든다. 실제로 이 기법 없이는 훈련 불가능했던 ResNet-1001이 이를 통해 수렴에 성공했다. 이후 Vision Transformer의 DropPath로 직접 이어진다.

정리

  • y=F(x;W)+xy = F(x; W) + x의 항등원 항은 gradient highway를 열고, 깊이를 optimization 비용에서 해방시켰다.
  • DenseNet은 concatenation으로 모든 이전 층을 연결해 파라미터 효율을 극대화했지만, 메모리 bandwidth 비용이 따른다.
  • Highway는 learnable gate가 고정 identity보다 열등함을 반증한 사례다 — 복잡성이 항상 이기지는 않는다.
  • Stochastic Depth는 layer-wise dropout으로 2L2^L implicit ensemble을 만들어 1000층 이상의 네트워크를 가능하게 했다.

이 네 가지 설계는 모두 같은 질문의 다른 답이다 — “gradient를 어떻게 초기 층까지 살아서 보낼 것인가”.

REF
REF
Huang et al. · 2017 · Densely Connected Convolutional Networks · CVPR