etc/구글 머신러닝 부트캠프

[DSL] Sequence Models Week4 : Transformer Network

uyt8989 2022. 7. 23. 21:13

드디어 대망의 DSL 마지막 강의다. NLP에서 지대한 영향력을 가지고 있는 transformer에 대해서 배운다. 머신러닝 무식자인 나도 "Attention is all you need."라는 말을 들어봤을 정도로 유명한 모델이다.

 

1. Tranformer

트랜스포머는 이전 주차에 배웠던 attentio 개념에 CNN을 섞은 모델이라고 한다. 강의에서는 트랜스포머의 핵심을 두 가지로 나눈다. 하나는 self attention이고 나머지 하나는 multi-head attention이다. 우선 첫 번째로 self attention은 이전의 attention과 상당히 유사한 방식으로 구한다. 핵심은 query, key, value로 불리는 세 가지 벡터인 것 같다. Query와 key 내적을 통해 누가, 왜, 언제 등의 정보를 만들어낼 수 있다. 강의에서는  "아프리카에서 Jane이~" 정도로 예시를 들었다.

그리고 multi-head attention은 이걸 여러 번 하는 거다. 그래서 누가, 언제, 왜 등의 정보를 한 번에 살펴볼 수 있게 된다. 이 계산은 병렬적으로 수행한다. 그래서 인코더와 디코더를 한 번에 그리면 이렇게 생겼다. 그림이 참... 개발새발이다...

그림에서 보면 이전에 했던 ResNet 처럼 막 건너뛰는 애도 있고 positional encoding도 있다. 이건 문장에서의 단어 위치 정보를 넘겨준다고 보면 될 것 같다.

 

 이 강의만 듣고 전부 이해한다는 것도 말이 안 되지만, 사실은 강의도 100% 이해 못 한 것 같다. 정리하면서 이해가 더 잘 될까 싶었는데 거의 비슷한 상태다. 이번 강의를 들으면서 느낀 건 트랜스포머는 RNN을 사용하지 않았고, attention 위주로만 사용했다는 점과 attention을 여러 번 구하는데 병렬 처리가 가능하다는 점 정도다. 

 

 

1) 트랜스포머(Transformer)

* 이번 챕터는 앞서 설명한 어텐션 메커니즘 챕터에 대한 사전 이해가 필요합니다. 트랜스포머(Transformer)는 2017년 구글이 발표한 논문인 Attentio ...

wikidocs.net

강의보다 이 포스트가 훨씬 자세하게 나와있는 것 같다. 대신 강의에서의 설명 방법과 달라서 처음부터 다시 읽어야 했다.

 

* Courera의 Deep Learning Sepcialization 강의를 수강하는데 도움이 되고자 작성한 요약문입니다. 틀린 내용 있다면 정정해주시면 감사하겠습니다.