Notice
Recent Posts
Recent Comments
Link
02-01 14:33
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

AI 전문가가 되고싶은 사람

Transformer 본문

논문

Transformer

Kimseungwoo0407 2024. 12. 4. 14:07

https://www.youtube.com/watch?v=p216tTVxues

 

 

Transformer란?

2017년 구글 브레인 팀이 발표한 논문으로, 단순히 딥러닝 기술을 넘어 인공지능의 발전에 있어 중요한 이정표로 자리 잡았다. Transformer는 NLP는 물론, 컴퓨터 비전, 음성 인식, 다중 모달 학습, 강화 학습 등 딥러닝의 다양한 영역에 걸쳐 영향을 미쳤다. 그렇기에, 딥러닝 공부를 하는데 필수적인 모델이라고 할 수 있다.

 


Transformer 아키텍처

https://machinelearningmastery.com/the-transformer-model/

Transformer 모델은 크게 Encoder와 Decoder로 나뉘며, 각 부분은 여러 층의 블록으로 구성되어 있다. 각 블록들은 다음과 같은 핵심 컴포넌트를 포함한다.

1. 입력 임베딩

2. 위치 인코딩(Position Encoding)

3. 멀티헤드 셀프 어텐션(Multi-Head Self-Attention)

4. 피드포워드 레이어(Feed-Forward Layer)

5. 합(Skip Connection)과 정규화(Normalization)


 

Transformer encoder 작동 원리

 

1. 입력 임베딩과 위치 인코딩

빨간색 : 짝수, 파란색 : 홀수

Transformer은 입력 문장을 각 단어의 고유 숫자(ID)로 변환하고, 이를 임베딩 벡터로 바꾼다. 동시에 위치 인코딩을 통해 문장 내 단어의 위치 정보를 추가하여 문장의 의미를 더 정확히 전달한다.

 

2. 멀티헤드 셀프 어텐션

이전에 Seq2Seq 모델에서는 입력 시퀀스와 출력 시퀀스 간의 주목해야할 단어를 찾는 어텐션이였지만, Transformer의 어텐션은 입력 문장 안에서의 단어 간의 관계성을 파악한다. 이렇듯, 입력 시퀀스 내에서 자체 단어들간의 관계성을 주목한다고 하여 Self-attention이라 부르기도 한다.

Q,K,V는 입력 임베딩에 랜덤 가중치를 곱한 행

Self-attention은 입력 문장 내 각 단어가 다른 단어와 얼마나 관련 있는지를 계산하고, 이로써 단어 간 관계를 모델이 학습할 수 있다. 또한 멀티헤드 어텐션은 이를 여러 관점에서 병렬적으로 계산하여 더 풍부한 정보를 제공한다.

- Q, K, V 계산

입력 임베딩 X와 위치 인코딩을 더하여 입력 행렬을 생성한다. 이후 이 입력 행렬에 각각의 가중치 행렬을 곱하여 Q,K,V를 계산한다. Q와 K의 전치 행렬을 곱하여 Attention Score를 계산하고 계산된 점수를 안정화하기 위해 Q와 K의 차원수의 제곱근을 나눈다. 이후 Softmax를 적용하여 확률 분포로 변환하고 이 값을 V와 곱하여 최종 Self-Attention Output을 생성한다.

 

3. 피드포워드 레이어와 합

합 add는 다중헤드 아웃풋 행렬과 처음 생성한 입력 + 위치 임베딩을 더하는 과정이다. ResNet에서 도입되었던 skip-connection으로 학습과정에서 기울기 소실 문제 완화시키는 효과와 기존의 정보를 어느정도 보존하면서 새로운 정보를 가미하는 효과도 있어 학습에 효율적이다. 이후 표준 정규화를 해주게 된다. 

피드포워드 레어어는 2개의 층으로 이루어진 ReLU()를 활성화 함수로 사용하는 단순한 신경망 구조이다. 입력*가중치+편향을 통해 계산을 2번 해주면 피드포워드 레이어의 아웃풋을 계산할 수 있다.

* 왜 피드포워드 레이어를 넣는것일까? -> 비선형성을 증가시켜 네트워크 자체가 데이터를 처리하고 분별할 수 있는 능력을 증가시키는 데 있다.


 

Transformer Decoder 작동 원리

Encoder와 작동 과정이 비슷하기에 같은 설명은 하지 않고, Decoder에서 사용하는 Masked Self-attention에 대해서만 작성하겠다.

Transformer Decoder의 목표는 주어진 입력 문장에 대한 출력 문장을 한 단어씩 순차적으로 생성하는 것이다.

Decoder에는 Masked Self-attention을 사용한다. 이는 디코더가 출력 시퀀스를 생성할 때 미래의 단어(아직 출력되지 않은 단어) 정보를 참조하지 못하도록 한다. 현재 시점의 단어까지만 Self-Attention에 반영되도록, 미래의 단어를 가리는 마스크를 적용한다. 

위에서 설명한 부분이 빨간색으로 표시한 Masked Multi-Head Attention에서 하는 역할이다. 이후 Encoder와 같이 처리해주고, 파란색으로 표시한 Multi-Head Attention에서의 입력은 인코더의 최종 출력으로 K와 V를 생성하고 Q는 디코더의 출력에서 생성하여 입력한다. 이후 계산은 같기에 생략하였다.


 

마무리

Transformer는 병렬 처리가 가능하여 연산 속도가 빠르고, 긴 문장에서도 모든 단어의 관계를 효율적으로 학습한다. 이는 오늘날의 대규모 언어 모델을 가능케 한 핵심 기술이다. 또한, 단순히 언어 처리 모델에 국한되지 않고, 이미지 처리, 음성 인식, 멀티모달 모델, 강화 학습 등 다양한 분야로 확장되어 현대 인공지능 기술의 기초를 다지는 중요한 역할을 하고 있다. 이러한 점에서 Transformer 구조의 원리와 작동 방식을 깊이 이해하는 것이 인공지능을 공부하는데 있어 필수적이라고 한다.

'논문' 카테고리의 다른 글

Attention Is All You Need  (0) 2024.12.10
RNN 구현  (1) 2024.12.06
Seq2seq+Attention  (0) 2024.11.25
Seq2seq  (0) 2024.11.25
Word2vec  (1) 2024.11.20