이전 포스팅에선 SwiGLU와 역전파의 상관관계에 대해서 이야기해봤습니다. 이번 포스팅에선 SwiGLU와 잔차 연결 (Residual Connection)의 상관관계에 대해서 정리해보겠습니다.
우선 들어가기 앞서 SwiGLU는 활성화 함수로서 모델이 학습할 때와 출력할 때 촉진제 역할을 하면서 활성화를 일으키는 함수라고 짚고 넘어갔습니다.
그럼 이런 의문이 들 수 있습니다.
"그냥 SwiGLU만 있으면 잔차 연결이 필요없는거 아니야?"
활성화 함수와 잔차 연결
이 의문의 시작점은 SwiGLU가 SiLU를 이용해서 x<0인 부분을 부드럽게 처리한다는 점에 있습니다.
잔차 연결은 모델이 학습할 때 아무것도 추가되지 않는 부분이 없이 원본 그대로가 지나갈 수 있는 우회로를 만들어줌으로써 모델이 학습할 때 안정성을 높여주는 역할을 하게 됩니다.
즉, 손실함수를 통과한 기울기가 역전파 될 때 0이 되어 앞으로 더 진행하기 힘든 경우를 막는 역할을 하고있죠.
그런데 SiLU의 특징은 x<0인 부분에서 기울기가 0인 부분이 딱 한군데만 존재하고 그럼 역전파 시 기울기가 0인 상황이 얼마 없을 것 이라는 결론이 의문의 시작점입니다.
이런 논리의 흐름은 타당하지만 잔차 연결은 단순히 기울기가 0인 상황에서만 모델의 학습을 방해하는 것이 아닙니다. 잔차 연결은 0에 한없이 가까운 수가 지속적으로 전파되는 상황 자체를 회피하는 우회로입니다.
예를 들어서 0.1 x 0.1 x 0.1 x 0.1 이렇게 0에 가까운 수가 레이어를 거슬러 올라가면 끝에서 0.0000001 이런식으로 0에 한없이 가까워지는 상황이 생깁니다.
이 상황은 "기울기 소실"이라고 부르고 반대는 "기울기 증폭"이라고 부르고 있습니다. 사실 0이 들어오나 0.000001 같은 0에 한없이 가까운 수가 들어오나 모델은 이 feature가 손실을 줄이는데는 쓸모가 없다고 판단하게될 가능성이 생깁니다.
그 상황에서 잔차 연결은 원본의 가중치가 보존되기 때문에 1 + 0.000001 이므로 1.000001이 되어 모델의 뉴런이 죽어버리는 상황을 방지합니다. 이를 "죽은 뉴런을 방지한다"라고 표현합니다.
이 죽은 뉴런은 1980년대에 등장한 제프리 힌턴 교수님의 언급이 있기도 했습니다. 모델이 역전파로 학습할 때 작은 수가 지속적으로 전파되어 뉴런이 죽어버리는 상황을 말이죠.
후대의 연구자들은 모델이 학습할 때 이런 죽은 뉴런을 방지하고자 잔차 연결이라는 우회로를 만든 것이죠.
잔차 연결이 순전파에서 1 + Δ 로 점점 사고가 깊어지는 상황에서만 쓸모를 느꼈었지만 사실 역전파에서 모델이 안정적으로 학습하기 위한 우회경로를 두어 모델이 안정적으로 학습할 수 있게 만들어줍니다.
마치며
이전 포스팅에 개념적인 내용이 등장하고 기본적인 내용이 들어있어서 조금 깊이있는 얘기는 따로 하려고 포스팅을 둘로 쪼개게 되었습니다.
근데 막상 쪼개고보니까 쓸 내용이 마땅치않네요.. 그렇다고 합치기에는 계층이 좀 다른거같아서 일단 따로 빼놓겠습니다.
다음 포스팅은 아마 에세이와 기계론적 해석학 부분에서 쓸 것 같네요. 제가 공부를 시작했던 2025년 12월부터 지금까지 LLM의 블랙박스가 많이 해소된 것 같아서 업데이트겸 포스팅을 작성해볼까합니다.
짧은 글 읽어주셔서 감사합니다. 오늘도 즐거운 하루 되세요!