RNN이 문장을 읽을 수 있게 되었는데, 왜 또 문제가 생겼을까?
다음 문장을 읽는다고 생각해 보겠습니다.
마지막의 “데려갔다”를 제대로 이해하려면, 앞에서 나온 “강아지”가 무엇을 가리키는지 기억해야 합니다.
첫 번째 생각: 모든 정보를 기억하지 말고, 중요한 것만 남기자
사람도 하루 동안 본 모든 장면을 똑같이 기억하지 않습니다. 약속 시간이나 중요한 이름은 남기고, 필요 없는 세부 사항은 잊습니다.
LSTM의 게이트는 기억을 관리하는 문과 같다
Cell State
중요한 정보를 비교적 오래 전달하기 위한 별도의 기억 통로입니다. 모든 것을 그대로 저장하는 창고가 아니라, 게이트가 선택한 정보가 지나가는 통로입니다.
Hidden State
현재 시점에서 실제 계산과 출력에 사용할 문맥 표현입니다. Cell State의 내용 중 지금 필요한 부분이 반영됩니다.
두 번째 생각: 같은 목표를 더 단순하게 만들자
LSTM은 효과적이지만 구조가 복잡합니다. 그래서 비슷한 기억 관리 기능을 더 적은 구성 요소로 구현한 GRU가 제안되었습니다.
LSTM
여러 게이트와 별도의 Cell State를 사용합니다.
장점: 기억을 세밀하게 제어
특징: 구조와 계산이 비교적 복잡
GRU
이전 정보와 새 정보를 더 단순한 게이트 구조로 조합합니다.
장점: 구조가 단순하고 계산량이 줄 수 있음
목표: 중요한 기억을 오래 유지
기억만의 문제가 아니었다: 학습이 폭주할 수도 있었다
RNN을 역전파할 때 Gradient가 지나치게 커지면, Weight가 한 번에 너무 크게 바뀌어 학습이 불안정해질 수 있습니다.
Gradient가 너무 큰 경우
18.7
Weight가 갑자기 크게 바뀌어 Loss가 흔들릴 수 있습니다.
Gradient Clipping
최대 5.0으로 제한
수정 폭이 지나치게 커지지 않도록 막습니다.
기억을 잘하게 만들었는데도 문제가 끝나지 않았다
LSTM과 GRU는 단순 RNN보다 오래된 정보를 더 잘 유지할 수 있었습니다. 하지만 문장을 읽는 기본 방식은 그대로였습니다.
순서대로 기다려야 한다
100번째 토큰을 계산하려면 99번째 상태가 먼저 필요합니다. 앞 계산이 끝나지 않으면 뒤 계산을 시작하기 어렵습니다.
정보가 긴 경로를 지나야 한다
첫 번째 토큰의 정보가 마지막 토큰에 영향을 주려면 여러 Hidden State를 차례로 통과해야 합니다.
생각을 바꾸다: 기억을 전달하는 대신 필요한 곳을 직접 보자
Attention은 RNN의 기억을 조금 더 개선한 구조가 아닙니다. 문제를 바라보는 방식을 바꾸었습니다.
RNN 계열의 생각
앞의 정보를 Hidden State에 담아 다음 단계로 계속 전달합니다.
Attention의 생각
현재 단어가 입력의 여러 위치를 다시 살펴보고 관련된 정보를 골라 참고합니다.
그렇다면 문장 안의 단어들이 서로를 직접 보면 어떨까?
초기 Attention은 주로 Decoder가 Encoder의 여러 상태를 참고하는 방식으로 사용되었습니다. 이후 이 생각을 같은 문장 내부로 확장했습니다.
일반 Attention
출력 문장을 만드는 쪽이 입력 문장의 여러 위치를 참고합니다.
Self-Attention
문장 안의 각 토큰이 같은 문장 안의 다른 모든 토큰을 참고합니다.
문제와 해결 방법을 연결해 보기
연결되는 해결 시도
남아 있는 문제:
자주 생기는 의문
LSTM과 GRU의 게이트를 모두 외워야 하는가?
Attention이 등장하면서 RNN은 바로 사라졌는가?
Attention은 기억하지 않는가?
학습 내용 정리
- 단순 RNN은 문장이 길어질수록 앞부분의 중요한 정보를 잃기 쉬웠습니다.
- LSTM은 기억할 정보와 버릴 정보를 선택적으로 관리하도록 설계되었습니다.
- GRU는 비슷한 목표를 더 단순한 구조로 구현했습니다.
- Gradient Clipping은 기억 구조가 아니라 Gradient 폭주를 줄이는 학습 안정화 기법입니다.
- LSTM과 GRU도 여전히 토큰을 순서대로 처리해야 했습니다.
- Attention은 기억을 끝까지 전달하는 대신 필요한 입력 위치를 직접 참고하는 방식으로 문제를 바꾸었습니다.
- Self-Attention은 같은 문장 안의 모든 토큰이 서로를 참고하도록 확장한 방식입니다.
- 이 흐름이 Transformer로 이어집니다.