잔차 연결Residual Connection

층을 건너뛰어 원래 값을 그대로 넘기는 지름길

핵심 정리
  • 잔차 연결은 층 하나를 건너뛰어 원래 값을 그대로 위로 올려 보내는 지름길이에요.
  • 층은 결과를 새로 만들지 않아요. 원래 값에 얼마를 더할지만 만들고, 위에서 둘을 합쳐요.
  • 지름길이 없던 시절에는 깊게 쌓을수록 오히려 성적이 나빠지는 이상한 일이 벌어졌어요.
  • 학습할 때 되짚어 가는 신호도 이 지름길을 타기 때문에 수백 층도 학습이 돼요.
  • 요즘 쓰는 이미지 모델과 언어 모델은 블록마다 이 지름길이 빠짐없이 들어 있어요.
목차

1비유로 이해하기

택배 상자를 들고 아파트 계단을 올라가요. 층마다 작업대가 하나씩 있어서 그 층 담당은 상자를 열어 조금씩 손을 봐요. 층이 몇 개뿐이면 괜찮아요. 그런데 층이 수십 개가 되면 꼭대기에 닿았을 때 원래 무엇이 들어 있었는지 알아볼 수 없게 돼요. 중간 어느 층이 실수라도 하면 그 아래에서 한 일까지 통째로 헛수고가 되고요.

그래서 층마다 작업대 옆에 지름길을 하나씩 냈어요. 원래 상자는 지름길로 손대지 않은 채 위층에 도착해요. 작업대는 상자를 새로 만드는 대신 무엇을 더 붙일지만 만들어요. 위층에서는 지름길로 올라온 상자에 그 덧붙일 것을 얹기만 하면 돼요. 어느 층이 할 일을 못 찾으면 아무것도 더하지 않고 넘기면 그만이에요.

2자세히 알아보기

층은 차이만 배워요

보통의 층은 받은 값을 통째로 새 값으로 바꿔 내놓아요. 이 층에 지름길을 붙이면 역할이 달라져요. 층이 내놓는 것은 완성품이 아니라 원래 값과 목표 사이의 차이예요. 그래서 남을 잔이라는 글자를 써서 잔차 연결이라고 불러요.

차이만 만들면 되니까 층이 할 일이 훨씬 쉬워져요. 지금 값이 이미 충분히 좋다면 아무것도 더하지 않고 0에 가까운 값을 내놓으면 돼요. 이게 생각보다 큰 차이예요. 지름길이 없으면 층은 아무것도 안 하는 상태조차 손잡이를 정확히 맞춰야 겨우 흉내 낼 수 있거든요.

층 백 개를 쌓아 놓고 그중 서른 개만 실제로 일하게 두는 것도 가능해져요. 나머지는 받은 값을 그대로 흘려보내요.

더할 수 있으려면 크기가 같아야 해요

지름길로 온 값과 층이 만든 값을 합치려면 둘의 모양이 같아야 해요. 숫자 묶음의 길이가 다르면 더할 수가 없으니까요. 그래서 지름길로 묶는 구간은 대개 들어오고 나가는 크기가 같도록 설계해요.

크기가 달라지는 자리에서는 지름길 쪽에 아주 가벼운 변환을 하나 끼워 크기를 맞춰 줘요. 이미지 모델에서 그림이 작아지고 채널이 늘어나는 대목이 그런 자리예요. 다만 이 변환은 최소한으로 두는 게 원칙이에요. 지름길이 복잡해지면 지름길이 아니게 되니까요.

지름길이 없으면 깊을수록 나빠졌어요

층을 깊게 쌓으면 표현력이 커지니까 성적도 좋아질 거라고 생각하기 쉬워요. 그런데 실제로는 반대였어요. 층을 스무 개에서 쉰 개로 늘리자 새로 배우는 자료는 물론이고 이미 배운 자료에서도 성적이 떨어졌어요.

외워 버리는 문제와는 종류가 달랐어요. 얕은 모델이 낸 답을 그대로 흉내 내기만 해도 최소한 같은 성적은 나와야 하는데, 깊은 모델은 그것조차 못 했어요. 표현력이 모자란 게 아니라 학습이 제대로 안 되고 있었던 거예요. 지름길이 등장하면서 이 벽이 무너졌고, 백 층이 넘는 모델이 실제로 더 좋은 성적을 내기 시작했어요.

배울 신호도 지름길로 되돌아와요

학습은 답이 얼마나 빗나갔는지를 꼭대기에서 재서 아래층으로 되짚어 보내는 방식으로 이뤄져요. 층을 하나 거스를 때마다 이 신호는 그 층의 계산에 휘말려 조금씩 줄거나 늘어요. 층이 수십 개면 아래층에 닿을 즈음에는 신호가 거의 사라져요.

지름길이 있으면 되짚는 신호도 그 길을 타고 내려와요. 층을 거치지 않는 통로가 하나 있으니 아래층까지 원래 세기에 가깝게 도착해요. 깊은 모델의 첫 층들이 비로소 제대로 배울 수 있게 된 이유예요.

지금 쓰는 모델마다 들어 있어요

지름길은 이미지 인식 모델에서 처음 크게 성공했지만, 지금은 거의 모든 구조에 기본으로 들어가요. 언어 모델 안의 블록 하나를 열어 보면 어텐션 뒤에 한 번, 그 뒤에 오는 층 뒤에 또 한 번, 이렇게 두 번의 지름길이 있어요.

그래서 값이 층을 지나며 완전히 갈아엎어지는 대신, 아래에서 위까지 곧게 이어지는 굵은 줄기 하나가 생겨요. 각 층은 이 줄기에 자기 몫을 조금씩 더하기만 해요. 층 정규화 같은 장치가 늘 짝처럼 함께 붙는 것도, 계속 더하기만 하면 값이 점점 커지기 때문이에요.

3조금 더 정확하게

잔차 연결은 어떤 층 묶음의 출력에 그 묶음의 입력을 그대로 더해 다음으로 넘기는 연결이에요. 층 묶음은 목표와 입력의 차이를 학습하게 되고, 되짚어 가는 기울기에는 층을 거치지 않고 그대로 통과하는 경로가 생겨요. 이 경로 덕분에 기울기 소실이 크게 줄어요.

비유가 어긋나는 지점도 있어요. 계단의 지름길은 짐을 옮기는 길이지만, 잔차 연결은 옮기는 게 아니라 두 값을 더하는 계산이에요. 지름길에는 학습할 손잡이가 하나도 없어서 비용도 거의 들지 않아요. 그리고 상자와 덧붙일 것이 나란히 놓이는 게 아니라 자리마다 숫자가 그대로 합쳐져요.

지름길이 만능은 아니에요. 값을 계속 더하기만 하면 위층으로 갈수록 크기가 불어나기 때문에 정규화를 함께 써야 하고, 더하는 지점을 어디에 둘지에 따라 학습이 잘되기도 하고 흔들리기도 해요.

4직접 해보기

5흔한 오해

  • 지름길이 층을 건너뛰어 계산을 줄여 준다고 생각하기 쉽지만, 실제로는 층 계산은 그대로 하고 그 결과에 원래 값을 더할 뿐이에요.

  • 층을 깊게 쌓기만 하면 좋아진다고 여기기 쉽지만, 실제로는 지름길 같은 장치가 없으면 깊어질수록 학습이 어려워져요.

  • 잔차 연결은 이미지 모델에서만 쓰는 기법이다라고 생각하기 쉽지만, 실제로는 오늘날 언어 모델의 블록마다 두 번씩 들어가 있어요.

7한 줄 요약

그러니까잔차 연결은 층을 건너뛰어 원래 값을 그대로 올려 보내는 지름길이라, 층은 더할 차이만 배우면 되고 깊은 모델도 학습이 돼요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02