멘토링에서 두번째로 Transformer를 리뷰했는데
논문을 리뷰하며 많은 의견을 나눴는데 개인적으로 어떤식으로 생각했는지 정리해보려 한다.
Scaled Dot Product Attention
논문 리뷰글 에도 적어 놓았지만 Transfomer가 이전 RNN 계열 모델과 가장 큰 차이점 중 하나는 Self-Attention 구조이다.
기존에도 Attention mechanism은 자연어 처리 계열에서 디코더에 시간 정보를 넣어주기 위해 종종 사용되었다.
이전에는 디코더에서 인코더의 모든 타임스텝에 대한 attention score를 구하였지만 Transformer는 이를 matrix간의 연산으로 단 한번에 문장간의 유사성을 파악하게 하였다는 점에서 큰 차이점이 있다.
디코더가 시간 정보를 얻기 위하여 n회의 계산이 필요했는데 Transfomer에서 이를 1번의 행렬연산으로 대체한것이다. 이로인해 이전의 Attention구조를 사용하는 모델들보다 자원 효율성 그리고 시간적으로 큰 이점을 가지게 된다.
Positional encoding
트랜스포머에서는 인코딩벡터에 시간정보를 추가해주기 위하여 positional encoding을 추가하였다.
주기적으로 변하는 sin, cos 함수를 이용하였는데 크게 두가지 의미로 이를 사용했다고 이해했다
- sin, cos함수는 값이 일정하게 변하는 주기함수이며 거리비에 따라 값의 차이가 커지므로 문장간 거리 정보를 추가할 수 있다.
- 지수를 이용하여 temperature scailing을 적용하는데 위와 같은 상대적 거리가 아닌 문장내에서 어느 부분에 위치하는지에 절대적인 위치에 대한 정보를 추가할 수 있다.
멘토님께 가장 많은 애기를 들은 부분인데 이 두가지가 가장 기억에 남았다.
Multi Head Attention
트랜스포머를 리뷰할때 질문이 나오기 가장 좋은 부분이라고 들었는데 리뷰하고 나니 어째서 그런지 알 수 있을것 같았다.
어째서 MHA가 좋은지에 대한 의견에 대해서 팀원들과 많은 얘기를 나눴는데 논문속에 저자가 의도를 어느정도 밝혀 놓았다고 생각한다. 위 단락에서 논문의 저자는 한번의 어텐션 연산만으로는 정보 압축이 너무 심하다고 저술했다.
하이라이트한 reduced effective resolution을 직역하면 "줄어든 해상도 효율"정도로 보면 되는데 그냥 딥러닝 연산을 위한 데이터 압축과정에서 사라지는 정보를 의미한다고 보면 된다.
어쨋든 저자는 이러한 reduced effective resolution문제를 MHA로 해결할 수 있다고 저술하였다. reduced effective resolution의 대표적인 예로 CNN의 Max pooling이 있다. Max pooling을 거치면 정보가 압축되지만 그만큼의 정보 손실이 일어난다. 그리고 CNN구조 모델은 이러한 문제를 채널수를 늘림으로서 완화했다.
즉 CNN의 Max pooling을 통해 정보가 압축됐을때 채널 수를 증가시킨것 처럼 저자의 Attention구조에서도 이를 head를 줄이는 것이 아닌 병렬적으로 사용하여 reduced effective resolution에 대처하였다고 생각한다.
Transformer는 딥러닝계의 한획을 그은 모델이라 생각하는데 세부적으로 리뷰해보면서 저자가 정말 많은 실험끝에 만들어낸 논문이라는 생각이 확들었다.
기존에 읽었던 논문들은 이 기법을 통해 이러한 문제를 해결 따라서 성능이 향상됨 이런 느낌이었는데 Transformer는 NLP의 task적 한계를 벗어나기 위한 시도를 한 논문이고 어느 한 부분에 집중되기보다는 많은 시도 끝에 전체적으로 짜임새있는 구조를 만들었기에 지금와서도 각광받는 구조가 될 수 있던게 아닐까 생각한다.
'Boostcamp' 카테고리의 다른 글
[부스트캠프] object detection competition 회고 (0) | 2023.05.24 |
---|---|
[부스트캠프] object detection overview (0) | 2023.05.03 |
[부스트캠프] Semantic Segmentation 정리 (0) | 2023.04.09 |
[부스트캠프] ResNet 정리 (0) | 2023.04.06 |
[부스트캠프]Pandas 정리 (0) | 2023.03.18 |