Part 7 · Transformer Architecture - Keeping Information Alive

원래 정보를 끝까지 유지하는 방법

모델이 깊어질수록 새로운 계산은 계속 추가되지만, 처음 입력된 정보는 점차 희미해질 수 있습니다. Residual Connection은 새롭게 계산한 결과에 원래 입력을 다시 더하여 중요한 정보가 여러 층을 지나도 유지되도록 돕습니다. 덕분에 Transformer는 훨씬 깊은 구조에서도 안정적으로 학습할 수 있습니다.

A Revision Story

문장을 고치다가 원래 뜻을 잃어버릴 수 있다

보고서를 여러 사람이 차례대로 수정한다고 생각해 봅시다.

원본 문장 핵심 내용이 분명함
첫 번째 수정 설명을 조금 추가
두 번째 수정 표현을 다시 변경
여러 번 수정 후 원래 뜻이 흐려질 수 있음
수정본만 계속 전달

앞사람이 만든 수정본만 다음 사람에게 넘기면, 처음 문장의 중요한 내용이 조금씩 빠질 수 있습니다.

원본도 함께 전달

수정본과 원본을 함께 넘기면, 새로운 설명을 추가하면서도 처음의 핵심 내용을 확인할 수 있습니다.

Transformer도 마찬가지입니다. 새 계산 결과만 넘기지 않고, 계산 전의 원래 입력도 다음 단계에 함께 전달합니다.
The Problem in Deep Layers

층이 깊어질수록 원래 정보가 약해질 수 있다

Transformer의 한 층은 입력 벡터를 받아 새로운 벡터로 바꿉니다. 이런 변환을 여러 번 반복하면 문맥은 풍부해지지만, 처음 입력된 기본 정보가 지나치게 변할 수도 있습니다.

입력 정보
1층 통과
2층 통과
3층 통과
실제 모델의 정보가 막대처럼 단순하게 줄어든다는 뜻은 아닙니다. 이 그림은 여러 변환을 거치며 원래 특징이 약해질 수 있다는 점을 설명하기 위한 비유입니다.
The Core Idea

새 결과에 원래 입력을 다시 더하자

Residual Connection의 아이디어는 매우 단순합니다.

원래 입력

Tom의 기본 정보
현재 문맥 정보
+

새 계산 결과

Self-Attention이 찾은 관계
원래 입력을 다시 더함
다음 층으로 전달
쉽게 표현하면 다음 출력 = 새로 계산한 결과 + 원래 입력
이렇게 계산 단계를 건너뛰어 원래 입력을 바로 전달하는 길을 Skip Connection이라고도 부릅니다.
Why “Residual”?

왜 Residual이라는 이름을 사용할까?

모델이 처음부터 완전히 새로운 표현을 다시 만드는 대신, 원래 입력에 추가로 필요한 변화만 학습한다고 생각할 수 있습니다.

완전히 새로 만들기

원래 정보를 모두 다시 계산해야 하므로 학습 부담이 큽니다.

필요한 차이만 더하기

원래 정보는 그대로 두고, Self-Attention이 찾은 새로운 문맥만 추가합니다.

원래 입력에 추가되는 변화분을 Residual이라고 이해하면 쉽습니다.
A Sentence Example

Tom의 기본 의미를 유지하면서 문맥을 추가한다

원래 Tom 사람 이름
Self-Attention lives와 New York 참고
새 문맥 New York에 사는 사람
Residual 연결 기본 의미 + 새 문맥
Residual Connection 덕분에 Tom이라는 원래 단어의 기본 정보는 유지되고, 여기에 문장에서 새로 얻은 관계 정보가 추가됩니다.
Why Training Becomes Easier

학습 신호도 더 쉽게 지나갈 수 있다

딥러닝 모델은 출력에서 계산한 오차를 앞쪽 층으로 전달하며 Weight를 수정합니다. 층이 깊어지면 이 학습 신호가 앞쪽까지 도달하기 어려울 수 있습니다.

일반 경로만 있는 경우

학습 신호가 모든 계산 단계를 차례대로 통과해야 합니다.

Skip 경로가 있는 경우

학습 신호가 원래 입력으로 이어지는 짧은 길을 통해 더 쉽게 전달될 수 있습니다.

Residual Connection은 정보만 보존하는 것이 아니라, 깊은 모델을 더 안정적으로 학습하는 데도 도움을 줍니다.
Where It Appears

Transformer 한 층에서 어디에 사용될까?

입력 x
Self-Attention F(x)
원래 입력 더하기 F(x) + x
Layer Normalization 값을 안정적으로 정리

Feed Forward Network 뒤에도 같은 방식의 Residual Connection이 사용됩니다.

실제 Transformer 구현은 Pre-LN과 Post-LN처럼 Layer Normalization의 위치가 다를 수 있습니다. 이 페이지에서는 원래 입력을 우회 경로로 다시 더한다는 핵심만 이해하면 충분합니다.
Interactive Comparison

Residual Connection의 유무를 비교해 보자

아래 버튼을 눌러 여러 층을 지날 때 원래 정보가 어떻게 전달되는지 확인해 보세요.

정보 전달

원래 정보가 계속 변환됨

각 층의 계산 결과만 다음 층으로 전달되므로, 처음 입력의 특징이 약해질 수 있습니다.

입력 → 계산 → 계산 → 계산
Residual Connection이 없으면 원래 입력으로 직접 이어지는 길이 없습니다.
Common Misunderstandings

자주 생기는 오해

원래 입력을 그대로 복사하므로 새 계산이 필요 없다?

아닙니다. Self-Attention과 Feed Forward 계산은 그대로 수행합니다. 그 결과에 원래 입력을 추가하는 것입니다.

Residual은 이전 층을 건너뛰는가?

계산을 생략하는 것이 아니라, 계산 경로 옆에 원래 입력이 지나가는 추가 통로를 만드는 것입니다.

What Comes Next?

원래 정보를 더했다고 끝일까?

원래 입력과 새 계산 결과를 더하면 정보는 잘 보존됩니다. 하지만 값의 크기가 서로 다르면 다음 층의 계산이 불안정해질 수 있습니다.

다음 페이지에서는 더해진 벡터의 값을 안정적으로 정리하는 Layer Normalization을 살펴봅니다.
Summary

핵심 정리

  • Transformer는 여러 층을 쌓기 때문에 원래 입력 정보가 약해질 수 있습니다.
  • Residual Connection은 새 계산 결과에 원래 입력을 다시 더합니다.
  • 계산 단계를 우회해 원래 입력이 지나가는 길을 Skip Connection이라고도 합니다.
  • 모델은 완전히 새로운 표현보다 원래 입력에 필요한 변화분을 추가하도록 학습할 수 있습니다.
  • Residual Connection은 원래 정보를 보존하는 데 도움을 줍니다.
  • 학습 신호가 깊은 층을 더 쉽게 지나가도록 돕습니다.
  • Transformer에서는 Self-Attention과 Feed Forward 블록 주변에 사용됩니다.
  • Residual 결과는 Layer Normalization을 거쳐 다음 단계로 전달됩니다.