Attention 구현(3/3)
참고문헌: 책 『밑바닥부터 시작하는 딥러닝2』 Chapter8. 어텐션
~ 목차 ~
4. Attention 응용- Transformer
4.1 RNN의 단점
4.2 Transformer란
5. 소감
4. Attention 응용- Transformer
4.1 RNN의 단점
- GPU 학습은 병렬계산환경에서 이루어지는데, RNN은 구조적으로 병렬 계산이 불가능하기 때문에 GPU의 성능을 충분히 활용하지 못함(RNN은 이전 시각의 계산결과를 다음 시각에 활용하기 때문). 그래서 성능이 잘 안 나옴
- 이를 개선하기 위해서는 아래와 같은 두 가지 방법이 있음
[방법1] 병렬 계산이 가능한 RNN 도입
[방법2] RNN을 아예 제거하고 새로운 모델 도입 - 다양한 연구들이 있지만, 가장 대표적인 모델은 [방법2]를 적용한 Transformer모델임(논문: 『 Attention is all you need』)
- 'RNN이 아닌' Attention을 사용해서 처리해서, 병렬처리가 가능해짐
4.2 Transformer란
- Transformer는 Attention으로 구성되는데, 그중 Self-Attention 기술을 이용하는 게 핵심임
- Self-Attention: 자신에 대한 주목. 하나의 시계열 데이터 내에서 각 원소가 다른 원소들과 어떻게 관련되는지를 살펴보자는 뜻
- 원래의 Time Attention에서는 [그림8-37]의 왼쪽처럼 서로 다른 두 시계열 데이터가 입력되었지만,
Self-Attention에서는 [그림8-37]의 오른쪽처럼 같은 시계열데이터가 입력됨
- [그림8-38]을 보면, Transformer의 Encoder와 Decoder에서는 모두 RNN대신 Self-Attention을 사용하고 있음(그림의 화살표 참조)
- Feed Forward 계층: 시간방향으로 독립적으로 처리하는, 은닉층 1개와 ReLU로 구성된 Affine신경망으로 이루어진 계층
- [그림8-38]에 나온 Nx는 회색 배경으로 둘러싸인 계층들을 N겹 쌓았다는 뜻임
- Transformer 사용시 효과: GPU의 병렬계산을 더 잘 이용할 수 있기 때문에, 학습시간이 줄어들고 출력 품질도 끌어올릴 수 있음
5. 소감
- 이제야 Attention과 Transformer가 뭔지 감이 잡힌다. (3번에 걸친 포스팅.. 좀 의미 있었을지도)
- 어느정도까지 이해하는데에 꽤 오랜 시간이 걸렸다. 반복해서 보다보니 어떻게 이해는 된 것 같다. 뭔소린지 모르겠을 때는 죽을맛이었는데 이해가 되니 조금 설레고 재밌다!
- 그림을 보면서 하나하나 짚고 넘어가서 그런지 이번에는 유독 책의 그림이 많이 첨부되었다.
- 다음에는 논문 Attention is all you need를 함 읽어봐야겠다. 이제는 시도해볼만 한 것 같다! (과연..)
.
. - 언제나 화이팅
'기본기 다지기 > CNN부터 Attention까지 구현' 카테고리의 다른 글
[기본이론] Attention 구현(2/3) (1) | 2024.09.27 |
---|---|
[기본이론] Attention 구현(1/3) (1) | 2024.09.26 |
[기본이론] seq2seq 구현 (0) | 2024.09.23 |
[밑시딥] LSTM 구현하기 (0) | 2024.09.23 |
[밑시딥] RNN 구현하기 (0) | 2024.09.23 |