학습부 (f(x,W)): 가중치 W를 통해 데이터의 복잡한 특징을 마음껏 배웁니다. 여기서 데이터는 왜곡되고 변형되며 '지능'이 쌓입니다.
보존부 (+x): 이것이 바로 Skip Connection입니다. 가중치 연산을 거치지 않은 원본 신호 x를 뒤에 그대로 더해줍니다.
이렇게 하면, 학습(변형)은 변환부(f)에서 담당하고, 기울기 1 보존은 지름길(+x)에서 담당하게 됩니다. "공부는 f(x) 네가 해, 나는 신호(x)만 안전하게 배달해줄게"라고 역할을 분담한 천재적인 아키텍처라고 할 수 있습니다.
순전파(Forward): 원본 데이터 x가 지름길로 가고 있는 동안, 옆길(f)에서는 가중치 W가 데이터를 복잡하게 비선형으로 꼬고 변형합니다. 결과적으로 y는 "원본(x) + 학습된 변화량(f)"이 됩니다.
역전파(Backward): 미분을 하면 f가 아무리 복잡해도 뒤에 붙은 +x 덕분에 +1이라는 기울기가 튀어나옵니다.
[ResNet의 Residual Block 구조]
1. 입력 x가 들어옵니다.
2. F(x) 연산: W1 곱하기 → ReLU →W2 곱하기 순으로 통과합니다. (이게 f 내부의 비선형성입니다.)
3. Shortcut Connection: 연산이 끝난 F(x)에 원본 x를 더합니다. (F(x)+x)
4. 최종 활성화: 더해진 결과 전체에 마지막 ReLU를 씌웁니다.수식: y=ReLU(학습된변화량F(x)+원본x)
핵심: 왜 W=1로 두는 것보다 "더하기 x"가 강력할까?
구조적 차이: 단순히 계수를 더하는 것이 아니라, 여러 층의 비선형 변환을 거친 '특징'에 '원본'을 결합하는 방식입니다.
학습의 효율: 처음부터 끝까지 새로 배우는 대신, 입력값에서 부족한 '차이(Residual)'만 보충하면 되기에 학습이 훨씬 쉽고 빠릅니다.
기울기의 무덤 탈출: 역전파 시 미분값에 항상 '1'이 더해지는 구조 덕분에, 아무리 깊은 층에서도 신호가 0이 되지 않고 끝까지 전달됩니다.
1. 구조적 차이 : "그냥 더하기"가 아니라 "비선형을 거친 후 더하기".
일반적인 노드 : y=ReLU(Wx+b)
ResNet의 잔차 블록(Residual Block) : y=ReLU(f(x,W)+x)
여기서 F(x)는 단순한 Wx+b가 아니라, 보통 2~3개의 레이어(Conv나 Linear)와 ReLU를 이미 거친 복잡한 비선형 함수입니다.
비선형적 결합: F(x)는 이미 내부에서 ReLU를 거치며 꺾인 복합 곡선입니다. 여기에 직선인 x를 더하면, 두 신호가 물리적으로 결합된 새로운 고차원 공간이 생성됩니다. 이것은 단순한 계수 더하기(W+1)가 아니라, "변형된 데이터"와 "원본 데이터"를 합치는 연산입니다
비교 항목
y=Wx+b (일반 노드)
y=f(x,W)+x (ResNet)
학습 목표
x를 완전히 새로운 y로 바꾸기
x에서 정답까지 모자란 '차이(잔차)'만 찾기
초기 상태
W가 작으면 출력은 0에 가까움
f가 0에 가까워도 출력은 원본 x 유지
난이도
무(0)에서 유(y)를 창조해야 함
이미 있는 x에 살만 조금 붙이면 됨
비유
일반 노드 (W=1 지향): 백지상태에서 정답과 똑같은 그림을 그리라고 시키는 것입니다. 조금만 삐끗해도 (i.e. W=1) 그림이 완전히 망가집니다.
ResNet (+x 지름길): 정답지가 밑에 깔린 먹지(트레이싱 페이퍼)를 주는 것과 같습니다. 모델은 밑그림(x)이 이미 있으니, 그 위에 필요한 부분만 덧칠(F(x))하면 됩니다. 훨씬 쉽고 안정적이죠.
2. 학습의 효율 향상 (Residual Learning)
가장 핵심적인 차이는 모델이 '무엇을 배워야 하는가'에 있습니다.
일반 모델: 입력 x를 넣어서 정답 y에 딱 맞는 함수 H(x)를 통째로 찾으려고 애씁니다. (H(x)≈y)
ResNet: 입력 x는 이미 지름길로 전달되고 있으니, 모델은 "정답(y)과 입력(x) 사이의 차이(잔차, Residual)"만 배우면 됩니다.
즉, F(x)=H(x)−x를 학습하는 것이죠.
왜 이게 더 쉬울까요? 만약 정답이 입력과 거의 비슷하다면(y≈x), 일반 모델은 W를 1에 가깝게, b를 0에 가깝게 정밀하게 깎아야 합니다. 하지만 ResNet은 그냥 f(x,W)를 0으로 만들어버리면 됩니다. 딥러닝에서 가중치를 0으로 수렴시키는 것은 1로 맞추는 것보다 훨씬 빠르고 안정적입니다.
3. 역전파(Gradient)의 Highway
일반 노드는 미분할 때 가중치 W가 계속 곱해집니다. W가 0.1이라면 10층만 지나도 0.110이 되어 사라지죠.
반면, ResNet은 미분하면 다음과 같습니다.
∂x∂(F(x)+x)=∂x∂F+1
여기서 '+1'이 핵심입니다.
아무리 앞쪽 층의 f(x)가 복잡해서 미분값이 0에 가까워져도, 지름길을 통해 넘어온 '1'이라는 기울기가 항상 살아남습니다.
이 '1' 덕분에 오차 신호가 어떠한 변질이나 소멸 없이 입력층까지 '하이패스'로 통과할 수 있습니다. 이것은 단순히 W값을 조절하는 것과는 차원이 다른 구조적 보장입니다.
수학적으로 W=1,b=0인 항등 함수(Identity Function)와 ResNet의 Skip Connection이 가진 결정적인 차이는 '고정된 값'이냐 '학습의 베이스라인'이냐의 차이입니다. ResNet은 "기울기 1(W=1)"이라는 고속도로를 깔아두되, 그 위에서 가중치(W)들이 마음껏 데이터를 변형할 수 있는 '자유'를 준 모델입니다.
Skip Connection
Skip과 Connection의 의미수학적 식 y=F(x)+x에서 각 단어가 갖는 의미는 다음과 같습니다.
Skip (수학적 의미: Identity 연산)의미
입력값 x에 아무런 가중치를 곱하지 않고(1×x) 그대로 통과시킨다는 뜻입니다.
수학적 역할: 복잡한 비선형 함수 F(x)를 거치지 않고, 입력 데이터의 원본 정보(Identity)를 다음 층으로 보존하여 전달합니다.
핵심: 만약 특정 레이어가 학습에 도움이 안 된다면, 모델은 F(x)의 가중치를 0으로 수렴시켜 x만 'Skip'해서 보낼 수 있는 선택권을 갖게 됩니다.
Connection (수학적 의미: Element-wise Addition)의미:
'Skip'해서 넘어온 x와 F(x)를 단순히 더하는(+) 연산을 의미합니다.
수학적 역할: 이 '더하기'가 미분(Backpropagation) 시 '기울기 고속도로' 역할을 합니다.dxdy=dxdF+1
핵심: 앞의 미분값(dxdF)이 아무리 작아져서 0에 수렴하더라도, 뒤의 '+1' 덕분에 에러 신호가 죽지 않고 맨 앞 층까지 최소 1의 크기로 전달됩니다. 이것이 층을 잇는(Connection) 진정한 수학적 힘입니다.
ResNet의 '깊이'
ResNet의 목표: "최소한 깊은 모델이 얕은 모델만큼의 성능은 내게 만들자!"
모델이 깊어질 때 마주하는 3가지 장벽
문제점
현상
ResNet의 해결 방식
1. Overfitting (과적합)
훈련 데이터는 100점인데, 테스트 데이터는 0점인 상황
해결 대상 아님. (이건 Dropout이나 규제화로 해결해야 함)
2. Gradient Vanishing (기울기 소실)
미분값이 0이 되어 앞쪽 레이어 학습이 멈춤
해결 (고속도로 효과). 미분식에 '+1'이 살아있어 신호를 끝까지 전달함.
3. Optimization Failure (최적화 실패)
성능 저하 - 훈련 데이터조차 얕은 모델보다 못 맞춤 (Degradation)
해결 (기본 점수 효과). '아무것도 안 하기(x)'를 쉽게 만들어 성능 하한선을 보장함.
일반적인 상식으로는 층이 깊어지면 파라미터가 많아지니, 최소한 훈련 데이터(Training Data)에 대해서는 에러가 더 낮거나 같아야 합니다. 하지만 실제로는 층이 깊어질수록 학습이 더 안 되는 역설적인 상황이 발생했습니다.
당시 연구자들은 "층이 깊어져서 학습이 안 되는 건 다 기울기 소실(2번) 때문이야!"라고 생각했습니다. 그래서 Batch Normalization 같은 기술을 넣어 미분값이 잘 흐르게 만들었죠.
그런데 이상한 일이 벌어집니다. 미분값이 잘 흐르는데도(즉, 학습은 되는데도), 56층 모델이 20층 모델보다 훈련 에러가 높게 나온 것입니다. 모델은 나름대로 수렴(Convergence)은 했습니다. 이는 과적합(Overfitting) 때문이 아니라, 모델이 너무 복잡해져서 최적화(Optimization) 자체가 어려워졌기 때문입니다. 학습 신호는 가고 있지만, 층이 너무 많으니 정답(최적점)으로 가는 길이 너무 복잡해서 모델이 길을 잃고 엉뚱한 곳에 멈춰버린 것입니다.
분석: "어? 미분값은 잘 가는데 왜 성적이 안 나오지? 아, 이건 단순히 신호가 안 가는 문제가 아니라, 모델이 너무 복잡해져서 '정답(최적점)'을 찾는 길 자체를 못 찾고 있구나!(3번)"
ResNet의 통찰: "그러면 아예 '아무것도 안 해도 본전(x)은 찾는 구조'를 깔아주자. 그러면 최소한 20층만큼은 할 테고, 거기서 조금만 더 학습하면 무조건 20층보다는 잘하겠지!"
ResNet은 Gradient Vanishing + Optimization 동시에 해결
y=F(x)+x
3번(최적화) 해결: F(x)를 0으로 만드는 것은 매우 쉽습니다. 따라서 모델은 '입력을 그대로 출력하는(Identity)' 상태를 아주 쉽게 학습합니다. 즉, 깊은 모델이 얕은 모델의 성능을 그대로 가져가는 게 쉬워집니다.
Identity Mapping: "못해도 본전은 찾자"
ResNet은 Skip Connection을 통해 깊은 모델이 얕은 모델을 포함(Emulate)할 수 있게 설계되었습니다.만약 20층 이후의 추가적인 층들이 학습에 방해된다면, 모델은 그 층들의 가중치를 0으로 만들어버립니다 (F(x)≈0).결과적으로 H(x)=0+x가 되어, 21층부터는 앞의 정보를 그대로 복사해서 뒤로 보냅니다.
의미: 이렇게 되면 아무리 깊게 쌓아도 최소한 20층 모델만큼의 성능(x)은 보장받게 됩니다. 즉, 깊은 모델이 얕은 모델보다 나빠질 이유가 수학적으로 사라진 것입니다.
2번(기울기 소실) 해결:
역전파 시 더하기(+) 연산은 미분값을 그대로 통과시킵니다. ∂x∂(F(x)+x)=F′(x)+1 이 되므로, F′(x)가 아무리 작아져도 뒤의 1이 신호를 끝까지 밀어줍니다.