Machine learning & Deep learning

[Deep learning] Transformer에 대한 기본 아이디어

ysk1m 2025. 2. 17. 22:45

요즘 Transformer에 대해 공부하고 있어 여러 강의와 책을 듣고 기록해 놓은 내용입니다.

 

기본 아이디어부터 실제로 어떻게 학습하는지 수식적으로 이해해 보는 시간을 가지겠습니다.

 

저는 'Easy! 딥러닝' 책을 참고했고, 이준석 교수님 강의를 참고했습니다. 

https://product.kyobobook.co.kr/detail/S000214848175

 

Easy! 딥러닝 | 혁펜하임 - 교보문고

Easy! 딥러닝 | 『Easy! 딥러닝』은 딥러닝을 처음 접하는 독자들을 위한 필수 가이드로, 인공지능의 기초 개념부터 CNN, RNN 등 딥러닝의 주요 주제를 폭넓게 다루고 있다. KAIST 박사이자 유튜버로 활

product.kyobobook.co.kr

https://arxiv.org/abs/1706.03762

 

Transformer Main Idea


'나' 자신을 어떻게 표현할까?

그것은 아마 나 스스로에 대한 표현과 주변 인물들을 통해 표현할 수 있다.

더보기

Your friends are a mirror that reflects you.

이런 내용과 마찬가지로 Transformer의 기본 아이디어도 벡터 input X_1(자신을)를 벡터 input X_1(자신을)와 주변 벡터 Input X_2,X_3...(주변 친구들)로 표현하는 방법입니다.

 

Transformer은 Self-Attention을 통해 벡터를 표현하는데 그 방법을 자세하게 알아보겠습니다.

 

Self-Attention도 Attention과 동일하게 Query, Key, Value가 필요합니다.



Self-Attention은 Attention mechanism과 다르게 input token으로부터 Linear transformation을 통해 Query, Key, Value를 형성해줍니다.

 

이후 Query, Key, Value를 이용하여 Attention mechanism과 동일하게 Attention value를 구해줍니다.

 

이렇게 Linear transformation 된 Attention Value를 원래 차원으로 되돌린 값이 자기 자신의 transform입니다.

 

이 값은 자기 자신과 가장 유사하지만 다른 벡터들과 similarity를 기반으로 weighted sum 된 것입니다.

이러한 연산 덕분에 한 벡터가 다른 벡터와 어떤 관계가 있는지에 대해서 학습까지 할 수 있습니다.

 

이 식을 보면 softmax를 이용하여 weighted sum 한 것을 확실히 알겠죠?

 

제가 앞서 왜 your friends are a mirror that reflects you.라고 표현한 줄 아시겠죠?

 

그럼 어떤 값을 학습하는 것일까요?

먼저, 당연히 Linear transformation을 하기 위해 사용하는 Weight을 learnable parameter로 지정해 줘야겠죠?

이 Weight는 모든 input에 동일하게 적용됩니다.

 

또한 Linear transformation 된 Attention Value를 원래 차원으로 돌리기 위해 사용하는 Weight 또한 learnable parameter로 설정합니다.

hidden state를 이용하는 Attention Mechanism은 hidden state을 이용하기에 RNN의 장기의존성 문제를 근본적으로 해결하지 못했습니다.

 

Self-Attention은 기존 RNN의 구조를 완전히 탈피함으로써(= Context Vector을 형성할 때 hidden state를 이용하지 않고 자기 자신과 주변 벡터를 이용함) 기존 문제들을 해결할 수 있었습니다.

 

다음 글은 Transformer가 학습이 어떻게 되는지 어떻게 사용할 수 있는지에 대해 설명하고 있습니다.

 

트랜스포머에 대해 더 궁금하신 분들은 읽어 보시면 도움이 될 거 같습니다.