Transformer 모델에서 사용되는 positional encoding은 시퀀스 내 단어의 상대적인 위치 정보를 주입하는 데 사용됩니다. 이것은 모델이 단어의 순서를 이해하고 효과적으로 처리할 수 있도록 돕습니다.
Transformer에서 주로 사용되는 positional encoding 방법 중 하나는 다음과 같은 싸인과 코사인 함수를 사용한 것입니다.
- PE는 positional encoding matrix의 요소입니다.
- pos는 시퀀스에서 단어의 위치를 나타냅니다.
- i는 encoding 차원(d_model) 내의 인덱스를 나타냅니다.
- d_model은 모델의 임베딩 차원입니다.
positional encoding에서 사용되는 sin과 cos 함수 안에 대입되는 공식은 주기적인 패턴을 생성하기 위해 선택된 것입니다. 이 공식은 주기적인 값을 생성하면서도 서로 다른 위치에 대해 고유한 값을 생성하는 데 목적이 있습니다. 이러한 값들은 단어의 상대적인 위치를 임베딩 공간에 반영하여 Transformer 모델이 문장의 순서를 인식하도록 도와줍니다.
1. 주기적인 패턴 생성: sin과 cos 함수는 주기적인 패턴을 생성하므로, 위치 인코딩 값들이 서로 다른 주기를 가지게 됩니다. 이것은 각 차원이 서로 다른 위치 정보를 인코딩하는 데 도움이 됩니다.
2. 스케일링:
는 위치 pos에 대한 스케일링 역할을 하며, 다양한 위치의 값을 생성합니다.
3. 홀수/짝수 차원 구분: sin 함수는 짝수 차원을, cos 함수는 홀수 차원을 처리하여 차원 간 다양성을 확보합니다. 이렇게 함으로써 각 차원이 서로 다른 정보를 담당하게 되며, 모델이 단어의 상대적인 위치를 효과적으로 학습할 수 있도록 합니다.
위의 설명은 이러한 공식이 주로 경험적으로 발견된 것들이며, 왜 이러한 형태로 선택되었는지에 대한 엄밀한 이론적 설명은 아직까지 명확하게 밝혀진 것은 없는 상태입니다. Transformer의 positional encoding에 대한 연구는 계속 진행 중이며, 더 나은 위치 정보를 인코딩하는 방법에 대한 연구가 진행되고 있습니다.
'AI > Fundamental' 카테고리의 다른 글
[NLP] 자연어처리 딥러닝 모델 변천과정 (RNN, LSTM, Seq2Seq, Attention, Transformer) (2) | 2024.04.16 |
---|---|
Tensorflow 기초 : 모듈, 레이어, 모델 클래스 구조 알아보기 (1) | 2024.03.27 |
딥러닝에서 Multi Granularity Feature (다중 세분화 기능) 이란? (0) | 2023.12.15 |
분류모델 성능평가 지표 (2) : PR curve, mAP (mean Average Precision) (0) | 2023.11.02 |
회귀분석 평가지표 정리해보기 (Metrics ; MAE, MAPE, MPE / MSE, RMSE, MSLE / R2 score) (2) | 2023.11.02 |