딥러닝/트랜스포머5 트랜스포머 시리즈 마지막편 트랜스포머의 구조 - 디코더 HTML 삽입 미리보기할 수 없는 소스 지난 포스팅에 이어서 트랜스포머의 디코더에 대해 알아보겠습니다 디코더의 구조를 보시면 인코더와 많이 닮아있습니다. 가장 큰 차이라면 멀티헤드 어텐션이 두 종류가 사용되었다는 것입니다 디코더 블럭에서는 셀프 어텐션으로 만들어진 마스크드 멀티헤드 어텐션(Masked Multi-head attention)과 인코더-디코더 어텐션으로 만들어진 멀티헤드 어텐션이 사용되었습니다. 오늘 포스팅의 두 주인공이 될 것입니다 디코더에서의 데이터의 흐름은 ⓵ 단어의 원래 임베딩 벡터 + 위치 임베딩 벡터가 합산되어 디코더 블럭에 입력되고 ⓶ 해당 입력이 Q, K, V로 변환되어 마스크드 멀티헤드 어텐션과 add&norm 층을 거친 후 ⓷ 쿼리 가중치가 곱해져 쿼리 벡터로서 인코더-디코.. 2024. 2. 6. 트랜스포머 시리즈 4편 트랜스포머의 구조 - 인코더 HTML 삽입 미리보기할 수 없는 소스 이번 포스팅과 다음 포스팅에서는 트랜스포머의 구조에 대해 알아보겠습니다 트랜스포머는 2017년 구글에서 발표한 논문 Attention Is All You Need에서 등장한 개념입니다 현재 자연어 처리 분야에서 사용되는 많은 모델들이 이 아키텍쳐에 기반을 두고 있으며 비전 분야에서도 트랜스포머에 기반한 ViT를 사용하기도 합니다 그러나 재미있는(?) 점은 논문의 저자들도 이게 왜 잘 되는지에 대한 설명을 하지 못한다는 겁니다 '이렇게 해보니 잘 되더라'라는 식의 내용이 많고 아직 제대로된 깔끔한 해석이 나오지 않은 상황입니다 (앞으로도 그럴 것 같습니다) 따라서 트랜스포머의 구조를 보시면서 '왜 이 레이어를 넣었지?', '왜 이렇게 했지?', '왜 이 연산을 한거지.. 2024. 2. 5. 트랜스포머 시리즈 3편 Q, K, V HTML 삽입 미리보기할 수 없는 소스 이번 포스팅에서는 트랜스포머에서의 셀프 어텐션과 유명한 식 $$Attention(Q, K, V) = Softmax(QK^{T})V$$에 대해 알아보겠습니다. 알고 계셨다면 좋고 모르고 계셨더라도 괜찮습니다. 이 식이 어떤 의미를 가지고 있고 어떻게 계산되는지 설명하겠습니다 Query, Key, Value 식에 대해 설명하기에 앞서 트랜스포머에서 어텐션이 어떻게 사용되는지 알아야 합니다 앞서 두 편의 포스팅에서 seq2seq에서의 어텐션은 은닉 상태 벡터간의 내적 연산을 수행하고, 셀프 어텐션은 각 단어의 임베딩 벡터간의 내적 연산을 한다고 설명했습니다 트랜스포머는 임베딩 벡터나 은닉 상태 벡터를 사용하지 않고 쿼리(Query) 벡터, 키(Key) 벡터, 밸류(Val.. 2024. 2. 4. 트랜스포머 시리즈 2편 Self-Attention 셀프 어텐션 HTML 삽입 미리보기할 수 없는 소스 지난 포스팅에서는 seq2seq과 어텐션을 결합한 seq2seq with attention에 대해 알아보았습니다 오늘은 셀프 어텐션(self-attention)에 대해 알아보겠습니다 seq2seq with attention을 잘 이해했다면 어렵지 않습니다 seq2seq with attention에서는 어텐션 스코어를 계산할 때 인코더에서 넘어온 은닉 상태 벡터들과 디코더의 은닉 상태 벡터간의 내적을 한 뒤 소프트맥스를 취해주었습니다. 여기서 주목할 점은 인코더의 은닉 상태 벡터 $h_{(encoder, i)}$와 디코더의 은닉 상태 벡터 $h_{(decoder, j)}$간의 연산이었다는 것입니다. 즉, 현재 출력하려는 결과와 유사도가 가장 높은 input 정보를 많.. 2024. 2. 2. 트랜스포머 시리즈 1편 Attention 어텐션 HTML 삽입 미리보기할 수 없는 소스 본격적으로 트랜스포머에 대해 배우기 전에 어텐션과 어텐션의 탄생에 대해 알아보겠습니다 Seq2Seq의 한계 어텐션은 seq2seq 모델의 단점을 극복하기 위해 등장한 방법입니다. seq2seq이 가지는 단점은 다음과 같습니다: seq2seq의 인코더는 입력된 시퀀스 데이터에 대해 하나의 은닉 상태 벡터(hidden state vector) 만을 디코더로 전달합니다 그래서 시퀀스의 앞부분에 있는 데이터에 대한 정보 유실됩니다 시퀀스 데이터의 길이가 길어질수록 이 문제는 더 심각해집니다 어텐션 seq2seq의 한계가 인코더에서 하나의 은닉 상태 벡터만이 디코더로 전달되는 것이 문제라면 인코더의 모든 은닉 상태 벡터를 전달해준다면 어떨까요? 그래서 seq2seq with.. 2024. 2. 1. 이전 1 다음