본문 바로가기
Deep Learning

[DL] Transformer

by ram_ 2023. 3. 3.

Transformer Model

: A transformer model is a neural network that learns context and thus meaning by tracking relationships in sequential data like the words in this sentence.

 

 

A transformer is a deep learning model that adopts the mechanism of self-attention, differentially weighting the significance of each part of the input data. It is used primarily in the fields of natural language processing (NLP) and computer vision (CV).

 

Like recurrent neural networks (RNNs), transformers are designed to process sequential input data, such as natural language, with applications towards tasks such as translation and text summarization. However, unlike RNNs, transformers process the entire input all at once. The attention mechanism provides context for any position in the input sequence. For example, if the input data is a natural language sentence, the transformer does not have to process one word at a time. This allows for more parallelization than RNNs and therefore reduces training times.

 

Transformers were introduced in 2017 by a team at Google Brain and are increasingly the model of choice for NLP problems,[3] replacing RNN models such as long short-term memory (LSTM). The additional training parallelization allows training on larger datasets. This led to the development of pretrained systems such as BERT (Bidirectional Encoder Representations from Transformers) and GPT (Generative Pre-trained Transformer), which were trained with large language datasets, such as the Wikipedia Corpus and Common Crawl, and can be fine-tuned for specific tasks.

 

 


한국어로 된 설명이 가장 직관적인 영상을 찾았다.

 

https://youtu.be/mxGCEWOxfe8

짧게 간추려보자면,

  • 병렬적으로 한번에 학습하기 때문에 빠른 속도를 가지고 있다. 
  • Input Data의 크기와 encoder에서 출력된 data의 크기가 같다.
  • positional encoding을 함으로써 학습데이터보다 더 긴 테스트 데이터가 들어와도 인코딩이 잘 된다. 
  • encoder에서 현재 셀의 output을 다음 셀에 전달하지 않는다. Transfomer의 장점이자 특징이 모든 셀이 한번에 계산되는 것이기때문이다. 

 

 

Decode layer에서 출력된 값은 Vetor형태이다.

이 vector을 실제 단어로 바꾸고자 Decode 최종 단에는 Linear & Softmax Layer를 사용한다.

Linear Layer에서는 Softmax에 들어갈 logit 값을 생성한다.

Softmax Layer는 모델이 알고 있는 모든 단어들에 대한 확률값 출력. 가장 높은 확률값 가진 단어 뽑는다. 

Transformer은 OneHotEncoding이 아닌 Label Smoothing으로 0~1 사이의 값 가진다.

'Deep Learning' 카테고리의 다른 글

[DIVE INTO DEEP LEARNING] 2.3 Linear Algebra_scalars, vectors  (1) 2023.12.20
[DIVE INTO DEEP LEARNING] 4.1 Softmax Regression  (0) 2023.12.20
[DL] 감성분석  (0) 2023.02.21
[DL] RNN , LSTM  (0) 2023.02.21
[DL] YOLO 사용법  (0) 2023.02.21