104. ResNet (Residual Network) - 잔차 연결 구조의 기적

⚠️ 이 문서는 딥러닝을 위대하게 만들려면 층(Layer)을 무식하게 수십, 수백 개씩 깊게(Deep) 쌓아야 하는데, 층을 쌓을수록 뒤로 돌아가며 정답을 고치는 에러 신호(Gradient)가 점점 0으로 깎여나가 앞쪽 뇌세포가 식물인간이 되어버리는 끔찍한 '기울기 소실(Vanishing Gradient)'의 거대한 절망벽을, **층과 층 사이에 단 1줄짜리 '고속도로(Skip Connection)'를 허공에 뻥 뚫어 오차 신호가 빛의 속도로 막힘없이 통과하게 만듦으로써, 인간의 상상을 초월하는 152층의 거대한 네트워크를 학습시켜 AI 오류율을 인류 역사상 최초로 사람 눈(5%)보다 낮춰버린 현대 딥러닝 최고의 건축물 'ResNet'**을 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: 층을 통과하며 깎이고 변형된 데이터($F(x)$)에, 우회로를 타고 아무 상처 없이 날아온 원본 데이터($x$)를 입구 출구에서 그냥 냅다 더해주는($F(x) + x$) 극도로 단순하고도 천재적인 수학적 트릭이다.
  2. 가치: 20층을 넘기면 모델이 바보가 되던 딥러닝의 한계(Degradation)를 다이너마이트로 폭파시켰다. 잔차 연결 덕분에 152층, 1000층을 쌓아도 오차가 중간에 증발하지 않고 끝까지 살아남아 기적의 학습을 완성하게 만들었다.
  3. 기술 체계: 들어온 값 $x$를 다음 층의 출력에 덧붙이는 우회로인 **'잔차 연결(Skip Connection / Shortcut)'**을 핵심 뼈대로 하며, 152층의 파라미터 폭발을 막기 위해 중간에 $1 \times 1$ 필터로 두께를 깎는 '보틀넥(Bottleneck)' 아키텍처를 결합해 용량 다이어트까지 성공시켰다.

Ⅰ. 딥러닝의 절망: 깊어질수록 멍청해지는 역설 (Degradation)

"층을 쌓으면 똑똑해진다며? 왜 50층짜리가 20층짜리보다 시험 점수가 낮아?"

  1. 기울기 소실 (Vanishing Gradient)의 악몽:
    • AI는 마지막 출구에서 "앗, 고양이를 개라고 잘못 맞췄네(Loss 발생)!" 하고 오차를 깨닫는다.
    • 이 오차 신호를 맨 앞단 1번 층까지 거꾸로 쏴주며 가중치를 고쳐라(역전파, Backpropagation)고 채찍질한다.
    • 그런데 층이 50개면, 오차 신호에 $0.1$ 같은 소수점이 50번 연속으로 곱해지면서 신호의 크기가 0.00000000001로 흔적도 없이 쪼그라들어(소실) 증발해 버린다. 맨 앞단 뉴런들은 채찍질(신호)을 받지 못해 학습을 멈추고 뇌사 상태에 빠진다.
  2. 저하 문제 (Degradation Problem):
    • 오버피팅(암기) 문제도 아닌데, 층을 56개 쌓은 모델이 20개 쌓은 모델보다 훈련 점수 자체가 개판으로 나오는 기괴한 현상이 발생했다.
    • 학자들은 절망했다. "아... 인간의 한계는 20층이 끝인가. 더 깊게 쌓을 수 있는 마법은 없는가?"

📢 섹션 요약 비유: 백화점 150층 꼭대기에서 사장님(오차)이 "1층 직원들 똑바로 일하라고 전해라!"라고 지시했습니다. 149층 부장이 148층 과장에게 전하고, 과장이 대리에게 전합니다(역전파). 사람을 거칠 때마다 말이 깎이고 변질되어, 결국 1층 사원에게 도착할 때는 "어... 뭐라고 하셨지?"라며 메시지가 0으로 완전히 소멸(기울기 소실)해 버려 아무도 일을 고치지 않는 최악의 대기업 핑퐁 릴레이의 한계입니다.


Ⅱ. 신의 한 수: 잔차 연결 (Skip Connection / Shortcut)

"릴레이가 문제라면, 1층부터 150층까지 뻥 뚫린 직통 고속 엘리베이터를 뚫어라!"

  1. 잔차 학습 (Residual Learning)의 천재적 아이디어:
    • 마이크로소프트의 카이밍 허(Kaiming He) 연구진은 생각했다. "기존처럼 층(Layer)이 어려운 정답($H(x)$) 전체를 억지로 다 깎아내게(학습) 하지 말자."
    • "들어온 원본 데이터($x$)는 옆으로 뚫은 **직통 우회로(Shortcut)**를 타고 쭉 그냥 흘려보내 보존해라."
    • "대신, 층(Layer)의 뇌세포들은 정답에서 원본을 뺀 아주 미세한 **나머지 찌꺼기 차이값($F(x)$, 잔차)**만 살짝 덧칠하듯이 학습하게 하자!"
    • 출구에서는 두 개를 냅다 더한다. $\text{결과} = \text{우회로 타고 온 원본}(x) + \text{층이 학습한 미세한 잔차}(F(x))$.
  2. 기울기 소실의 완벽한 파괴:
    • 이 수식이 딥러닝의 역사를 바꿨다. 거꾸로 돌아가는 채찍질(역전파) 신호가 올 때, 층(Layer)의 복잡한 수학 수식에 걸려 0으로 깎여나가려 하다가도, **옆에 뻥 뚫려있는 아무런 장애물도 없는 '더하기($+x$)' 우회 고속도로(Shortcut)**를 타고 빛의 속도로 1번 층까지 0.1%의 손실도 없이 풀 파워로 다이렉트로 내리꽂힌다.
    • 152층을 쌓아도, 1000층을 쌓아도 채찍질 신호가 절대 죽지 않고 살아 숨 쉬게 된 것이다.

📢 섹션 요약 비유: 아까 백화점 사장님의 지시(오차 신호)가 1층까지 가다 소멸하는 문제 기억하시죠? **잔차 연결(Shortcut)**은 사장님 방(150층)에서 1층 로비까지 뻥 뚫려있는 '다이렉트 원통 파이프(우회로)'를 건물 허공에 설치한 것입니다. 사장님이 마이크에 대고 소리치면(역전파), 중간 부장, 과장들을 1도 거치지 않고 파이프를 타고 1초 만에 1층 직원 귀에 사장님의 목소리 원본 수압이 100% 쩌렁쩌렁하게 꽂혀버려, 아무리 높은 건물을 지어도 지휘 체계가 살아 숨 쉬는 기적의 배관 공사입니다.


Ⅲ. 보틀넥(Bottleneck) 아키텍처와 인간 시력의 추월

152층을 쌓으니 메모리가 터진다. 1x1 필터로 허리띠를 졸라매라.

  1. 파라미터 폭발의 방어:
    • 잔차 연결로 152층을 쌓을 수 있게 되었지만, VGGNet처럼 무식하게 3x3 필터만 152겹으로 바르고 곱하면 컴퓨터 램(RAM)이 다 타버린다.
    • 그래서 ResNet은 **'보틀넥(Bottleneck)'**이라는 모래시계 모양의 극한 다이어트 구조를 층 사이에 끼워 넣었다.
  2. $1 \times 1$ 필터의 마법 (압축과 팽창):
    • 3x3 필터로 연산하기 직전에, 1x1짜리 마법의 압축 필터(차원 축소)를 먼저 때려버린다.
    • 데이터 두께(채널)를 256장 $\rightarrow$ 64장으로 모래시계의 얇은 목(Bottleneck)처럼 콱 쥐어짜 버린다.
    • 가장 가벼워진 상태에서 3x3 연산을 딱 한 번 빠르고 가볍게 처리한 뒤, 다시 1x1 필터를 빵 터뜨려 64장 $\rightarrow$ 256장 원상태로 팽창시켜 복구한다.
    • 이 짓을 하면 정확도는 152층 그대로 유지되는데, 곱하기 횟수(파라미터 개수)가 무려 10배 이상 줄어들어 평범한 GPU에서도 초거대 딥러닝 모델이 거뜬히 팽팽 돌아가게 된다.
  3. 특이점(Singularity)의 돌파 (2015년):
    • 2015년 ILSVRC(이미지넷 대회)에서 이 ResNet-152 모델은 인간의 한계인 '분류 오류율 5%'의 벽을 박살 내버리고 **오류율 3.57%**를 기록하며 우승했다.
    • 기계의 눈(시각 지능)이 인간의 눈보다 더 정확하게 사물을 알아보기 시작한, AI 역사상 가장 전율이 돋는 순간이자 자율주행차의 눈이 뚫린 기념비적인 아키텍처다.

📢 섹션 요약 비유: 152층짜리 빌딩(ResNet)을 세우려니 기둥(파라미터 연산량)이 너무 뚱뚱해서 건물이 무게를 못 이기고 무너질 위기입니다. 보틀넥(Bottleneck)은 기둥 중간중간을 모래시계처럼 얇은 철골(1x1 필터)로 확 깎아버려서 건물 전체의 무게를 깃털처럼 가볍게 다이어트시킨 초정밀 공학입니다. 깃털처럼 가벼우면서도 잔차 연결이라는 고강도 와이어(우회로)가 꽉 잡고 있어 150층 태풍에도 절대 무너지지 않는, 인간의 시력 한계를 초월해 버린 바벨탑의 완성입니다.