250x250
Notice
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Today
Total
관리 메뉴

serendipity

트랜스포머 네트워크 본문

Study/AI

트랜스포머 네트워크

z 2021. 7. 13. 00:16
728x90

4. 트랜스포머 네트워크 

구글 연구 팀이 NIPS에 공개한 딥러닝 아키텍처로, 뛰어난 성능으로 주목받았다.

이후 발표된 GPT, BERT 등 기법은 트랜스포머 블록을 기본 모델로 쓰고 있다.

트랜스포머 모델

 


-  Scaled Dot-Product Attention

트랜스포머 블록의 주요 구성 요소 중 하나다.

입력(X)은 기본적으로 행렬 형태를 가지며 그 크기는 입력 문장의 단어 수 X 입력 임베딩의 차원 수다.

예로, 드디어 /금요일/ 이다 라는 문장이 입력으로 들어가면, 히든 차원 수가 768일 때, 입력 행렬의 크기는 3 X 768이다.

 

계산 과정 (수식)

 

매커니즘은 쿼리(query), 키(key), 값(value) 세가지 사이의 다이내믹스가 핵심이다.

아래 그림의 과정처럼 계산을 수행하며, 소프트맥스 행렬과 값 행렬을 내적하는 것으로 마무리된다.

 

 

우선 각 단어 벡터들로부터 Q벡터, K벡터, V벡터를 얻는 작업을 거친다.

 

소프트맥스

 



 

이것이 단어들 사이 의미적, 문법적 관계를 도출해낼 수 있는 까닭은 다음과 같다.

 

  • dot-product
    : 코사인 유사도를 구할 때 내적을 이용하듯이 쿼리와 키의 내적 계산을 통해 벡터 공간상 가까운 정도를 계산한다.
      내적 값이 커지는 방향으로 학습이 진행된다.
  • attention
    : 쿼리 단어들과 키 단어들이 일치하는 attention을 self-attention이라고 한다.

      같은 문장 안에서 모든 단어 쌍 사이 의미, 문법적 관계 도출한다.
  • scale
    : 키 행렬 차원 수 (d_k) 제곱근으로 나눠 스케일을 맞춰준다.

      이는 쿼리-키 내적 행렬 분산을 줄여 softmax gradient가 지나치게 작아지는 것을 방지한다.

 

Attention을 계산하는 식에서 softmax 확률은 가중치 역할을 하고 각 값 벡터를 가중합한다고 볼 수 있다.
각 값 벡터들이 쿼리-키 단어에 해당하는 softmax 확률에 곱해진 뒤에 모두 더해지는 것이다.

 

Self Attention의 장점
다른 모델  Self Attention
CNN : 사용자가 정한 특정 window 내 로컬 문맥만 확인 문장 내 모든 단어 쌍 사이 관계 전체 파악
RNN : sequence 길이가 길면 vanishing gradient 문제 발생

 


- Multihead Attention

위에서 언급한 Scaled Dot-Product Attention을 여러번 시행하는 것이다.

앞에서 만든 쿼리(Q), 키(K), 값(V)에 Scaled Dot-Product를 h번 진행하고, 

각 Attention 결과 행렬을 concatenate하여  W^O와 내적함으로써 행렬 크기를 입력 행렬과 맞춰준다.

 

( 입출력 행렬의 크기는 (입력 단어 수) * (hidden vector 차원 수)로 동일하다.)

 


- Position-wise Feedforward Networks

앞의 Multi-Head Attention 출력 행렬을 행 벡터 단위로 수식을 적용한다. 즉, 단어 벡터 x 각각에 수식을 적용하는 것이다.
먼저 선형변환을 한 후, ReLU를 적용시킨 뒤 또 한번의 선형변환을 거쳐 계산된다.

 

Position-wise Feedforward Networks 수식
수식을 그림으로 나타내면

 


 

🌱  트랜스포머의 학습 전략은 ' 웜업(warm up) '이다. 

사용자가 정한 스텝 수에 이르기까지 학습률을 올렸다가 스텝 수를 만족하면 조금씩 떨어뜨리는 방식이다.

이는 대규모 데이터, 큰 모델 학습에 적합하다. 

 

 

728x90

'Study > AI' 카테고리의 다른 글

임베딩 파인튜닝  (0) 2021.07.13
BERT  (0) 2021.07.13
ELMo  (0) 2021.07.12
Doc2Vec , LDA  (0) 2021.07.12
GloVe , Swivel  (0) 2021.07.11
Comments