딥러닝

Transformer (2) | 패스트캠퍼스챌린지 41일차

이젤 2022. 3. 5. 21:59

Transformer는 훌륭한 모델이지만, 완벽한 모델은 아니다. Transformer를 더욱 향상시키기 위해 attention 모듈 레벨의 해결책은 sparse attention, linearized attention, query prototype & memory compression, low-rank attention, prior knowledge 활용, multi-head mechanism 개선 등의 방법이 있다. Sparse attentiond은 마치 dropout과 같은 원리로 불필요하다고 필요하는 부분에 attention을 주지 않도록 하는 방법이다. Linearized attention은 kernel method를 통해 보틀넥이었던 행렬연산 및 소프트맥스를 linear 연산으로 해결하는 방법이다. Query prototype & memory compression는 query 및 memory (key-value) 페어의 크기를 줄여 복잡도를 낮추는 방법이다. Low-rank attention은 선형대수학적 원리를 활용하여 복합도를 낮추는 방법이고, prior knowledge 활용은 locality를 반영하거나 RNN/CNN 등을 활용하여 성능을 높이는 것이다. Multi-head mechanism은 Vaswani 외의 논문에서는 상호작용하지 않고 독립적으로 작동하지만, 이를 상호작용게 하여 성능을 개선하는 방법이다. 

어텐션 모듈 말고 positional encoding 부분을 바꾸는 방법도 있다. 오리지널 페이퍼에서는 sin함수 및 cos 함수를 사용하여 위치 정보를 전달하지만, 이를 삼각함수 이외의 함수를 사용하는 방법도 있고, 전후 input 관계를 상대적으로 전달하는 방법도 있다. 또한, 조건 로직, 싵경망 등을 통해 간접적인 encoding을 이룰 수도 있다. 

트랜스포머를 유지하되 아키텍쳐를 바꾸어서 성능을 높히는 방법도 있다. RNN처럼 트랜스포머를 recurrent하게 만드는 방법도 있고, 계층적으로 트랜스포머를 쌓아서 성능을 높이는 방법이다. 이러한 Transformer는 기계번역을 위한 seq2seq 모델에서 시작한 만큼 자연어처리에서 높은 성능을 보였지만, 곧 이미지 및 동영상 처리에서도 높은 성능을 보였다. 


본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. https://bit.ly/37BpXiC