본문 바로가기
AI/Transformer

Transformer_8(기초부터 심화까지)

by 전주혁 2023. 6. 28.

안녕하세요

이번 시간엔

Transformer의

Residual Connection

에 대해서 알아 봅시다!

 

먼저

Residual Connection이란?

 

 

 

Transformer에서 Residual Connection은 정보의 흐름을 개선하고, 

신경망의 깊이에 대한 효과적인 훈련을 가능하게 하는 중요한 구성 요소입니다.

 

 

 


Residual Connection은 

아래와 같은 특징을 가집니다:

 


1. 정보의 흐름 개선: Residual Connection은 각 Transformer 레이어의 입력과 출력 사이에 직접적인 연결을 만듭니다. 

이렇게 하면 정보가 더 쉽게 흐르고, 네트워크의 깊이가 더 깊어질 때도 성능 저하를 최소화할 수 있습니다. 

그 결과, 깊은 네트워크에서도 효과적으로 학습이 가능합니다.

 


2. 그래디언트 소실 문제 완화: 신경망을 깊게 학습할 때, 그래디언트 소실 문제가 발생할 수 있습니다.

그래디언트 소실은 역전파 과정에서 그래디언트가 점차 줄어들어 가중치 업데이트에 영향을 미치지 못하는 현상입니다. Residual Connection은 이 문제를 완화시키며,

깊은 네트워크에서도 안정적인 학습을 가능하게 합니다.

 


3. 쉬운 학습: Residual Connection은 레이어의 입력을 직접 더하기 때문에,

이 연결을 통해 학습된 가중치가 주변 값과 가까운 경우 효과적인 학습이 가능해집니다.

즉, 레이어가 학습해야 하는 것이 입력과 비슷한 경우,

레이어가 단순한 항등 함수를 학습하여 정보를 보존할 수 있습니다.

 

 

 


Transformer 모델에서 Residual Connection은 Self-Attention 레이어와 Feed-Forward 레이어에서 사용됩니다. 

각 레이어에서 입력을 처리하고 출력을 생성한 후, 

원래의 입력과 출력을 더합니다. 

이렇게 합쳐진 텐서는 Layer Normalization 과정을 거쳐 다음 레이어로 전달됩니다. 

이 구조는 Transformer 모델의 안정적이고 효과적인 학습을 가능하게 합니다.

 

 

 

 

이해가 되셨나요?

 

 

 

그렇다면

Residual Connection의 장점과 단점을 알아 보아요!

 

 

 

장점


그래디언트 소실 문제 감소: Residual Connection(잔여 연결)은 그래디언트가 네트워크를 통해 직접 흐를 수 있게 하여 

역전파 과정에서 그래디언트 소실 문제를 완화합니다. 이는 특히 깊은 네트워크에서 중요한 장점입니다.

학습 용이성 향상: Residual Connection은 학습 과정을 용이하게 만듭니다.

 즉, 잔차 학습은 최적화 문제를 더 쉽게 만들어 모델이 더 빨리 수렴하게 합니다.

복잡한 패턴 학습 가능: Residual Connection은 네트워크가 입력과 출력 사이의 함수 또는 패턴을 학습하는 데 도움이 됨,

이는 학습해야 하는 함수를 입력과 출력의 차이(즉, 잔차)로 보는 관점에서 오는 이점입니다.

 

 


단점


모델 복잡성 증가: Residual Connection은 모델의 복잡성을 높일 수 있습니다. 

즉, 모델에 추가적인 파라미터와 연산이 필요하므로, 계산적 비용이 증가하고 모델의 크기가 커질 수 있습니다.

과적합 위험 증가: Residual Connection은 모델이 학습 데이터에 너무 잘 맞추는 과적합 문제를 악화시킬 수 있습니다. 

이는 복잡한 모델이 훈련 데이터의 노이즈까지 학습할 가능성이 있기 때문입니다.

해석력 감소: Residual Connection은 모델의 해석력을 감소시킬 수 있습니다. 

이는 잔차 연결이 모델의 내부 작동 방식을 더욱 복잡하게 만들어, 

모델의 결정을 이해하거나 설명하는 것이 더 어렵게 만들기 때문입니다.

 

 

 

 

이러한 장점과 단점이 있군요

 

 

 

저와 같은 생각을 하신 분들이 계실지는 모르겠지만,

학습이 쉽지만 모델의 복잡성이 증가한다?

처음에 저 둘은 Trade Off 관계가 아닌가 하며 이해가 안돼서 공부를 더 해보았습니다.

 

 

 Residual Connection은 딥러닝 모델의 학습을 용이하게 하지만, 동시에 모델의 복잡성을 증가시킵니다. 

이것은 네트워크의 각 레이어에서 입력을 직접 출력에 더하는 추가적인 연산이 필요하기 때문입니다.

하지만 이렇게 모델의 복잡성이 증가한다고 해도, 

Residual Connection이 제공하는 이점이 크기 때문에 많은 딥 러닝 아키텍처에서 사용되고 있습니다. 

이는 레이어가 학습해야 하는 함수가 입력과 가까울 경우, 

즉 레이어가 단순히 항등 함수를 학습하면 되는 경우에 특히 유리합니다.

 


따라서, Residual Connection은 

모델의 복잡성을 증가시키는 대신 학습을 쉽게 만드는 효과적인 방법으로 널리 사용되고 있습니다. 

레이어가 복잡한 함수 대신 항등 함수를 학습하게 하여 출력이 입력에 가까워지도록 하는 것이 핵심 아이디어입니다.

이로 인해, 심층 신경망이 더욱 효과적으로 학습될 수 있습니다.

 

 

 

 

하지만 저는 쉬운 학습과 모델의 복잡성은 Trade off 관계가 아닌가?

하는 의문이 해소되지 않았습니다.

 


"쉬운 학습"과 "모델의 복잡성" 사이에는 종종 trade-off 관계가 있습니다. 

이는 보통 모델이 더 복잡해질수록, 

즉 더 많은 매개변수나 레이어를 가질수록 모델이 데이터에 더 잘 적합되어 학습이 쉬워지는 경향이 있기 때문입니다. 

하지만 이는 과적합(overfitting)으로 이어질 수 있으며, 

이는 모델이 학습 데이터에 지나치게 최적화되어 새로운 데이터에 대한 예측 성능이 떨어지는 현상을 말합니다.

반면에, Residual Connection 같은 기법들은 이런 trade-off를 완화하는 방법을 제공합니다. 

Residual Connection은 모델의 복잡성을 증가시키는 반면, 

그 복잡성이 모델의 학습 능력을 향상시키는데 도움이 되므로 "쉬운 학습"을 촉진합니다. 

또한, Residual Connection은 심층 네트워크에서 발생할 수 있는 그래디언트 소실 문제를 완화하여, 

심층 네트워크의 학습을 더욱 용이하게 합니다.

따라서, "쉬운 학습"과 "모델의 복잡성" 사이의 trade-off는 

Residual Connection과 같은 기법들을 통해 일정 부분 완화될 수 있습니다.

 

 

 

 

이해가 되셨나요?

 

혹시라도 이해가 안되신 분들을 위해 한번 더 정리를 해보겠습니다. 

 

이를 정확히 이해하려면 "쉬운 학습"과 "모델의 복잡성"이 어떤 의미를 갖는지 정확히 파악해야 합니다.

"쉬운 학습"이라는 맥락에서는 모델이 학습 데이터를 잘 학습하고, 

그로 인해 학습 과정에서의 오류를 줄일 수 있는 능력을 의미합니다. 

 

"모델의 복잡성"은 모델의 구조가 복잡하다는 것을 의미하며, 

이는 더 많은 레이어나 매개변수를 갖는 모델을 가리킵니다.

일반적으로 모델의 복잡성이 증가하면, 모델이 학습 데이터를 더 잘 학습하고, 학습 오류를 줄일 수 있게 됩니다. 

하지만, 이는 과적합의 위험을 증가시키며, 이는 새로운 데이터에 대한 모델의 성능을 떨어뜨릴 수 있습니다.

 


Residual Connection은 이러한 trade-off를 완화합니다. 

Residual Connection은 모델의 복잡성을 증가시키지만, 

이 복잡성이 실제로는 모델이 학습 데이터를 더 잘 학습하는데 도움이 됩니다. 

이는 Residual Connection이 모델의 각 레이어에 입력을 직접 전달함으로써, 

각 레이어가 학습해야 하는 작업을 간소화하기 때문입니다.

 


따라서, Residual Connection은 "쉬운 학습"과 "모델의 복잡성" 사이의 trade-off를 관리하는 한 가지 방법입니다. 

이 기법은 모델의 복잡성을 증가시키지만, 그 복잡성이 모델의 학습 능력을 향상시키는데 도움을 주기 때문에, 

결국에는 "쉬운 학습"을 촉진하게 됩니다.

 

 

 

 

저는 처음에는 모델이 복잡해진다는 의미가

학습이 어렵다와 유의어로 생각하고 있었는데

그게 아니었다는 말을 공부를 하면서 깨달았습니다!



혹시 저처럼 생각하신분이 있으신가요?

그렇다면 이번 기회에

제대로 이해하고 가셨겠네요!


 

Residual Connection

에 대해서 이해가 잘 되셨나요?

궁금한 부분이 있다면

언제든지 댓글로 질문 부탁드립니다!