본문 바로가기
인공지능

[인공지능개론] Transformer①

by 반달링 2024. 8. 20.

Transformer에 대해 알아보자.

Transformer가 나오게 된 배경은 무엇일까? 그 이전에는 seq2seq (sequence-to-sequence) 모델이 있었다. 이는 Encoder-Decoder 구조로 LSTM이 여러개 연결되어 구성된 Encoder를 context를 추출하고 이를 다시 LSTM으로 구성된 Decoder에 넣어 autoregressive하게 생성해내는 모델이다.

이 모델은 하나의 고정된 크기의 context 벡터에 모든 정보를 압축하는 과정에서 정보의 손실이 발생한다는 문제와 vanishing gradient 문제가 존재했다. 이를 보완하기 위해 Attention으로 이루어진 Encoder-Decoder 구조의 Transformer 모델이 제안되었다.

그렇다면 Attention은 뭘까? 이는 예측해야 할 단어와 연관이 있는 부분을 조금더 집중해서 보고자 하는 방법으로 Attention 함수는 Query, Key, Value 라고 불리는 벡터를 이용하여 표현한다. 쉽게 설명하면 Attention 과정은 결국 Query는 누가 나랑 가장 비슷해? 라고 질문하는 것이고 모든 Key와의 유사도를 구한 다음 이를 Key에 mapping되어있는 각각의 Value에 반영한다. 모든 Key와의 유사도를 구하기 때문에 연산량이 많지만 global한 정보를 모두 보기 때문에 의존성이 낮아진다는 장점이 있다. 이 과정을 조금 더 자세히 알아보자.

Query는 t 시점에서 Decoder의 hidden state $s_t$이고, Key와 Value는 Encoder의 hidden state $h_t$이다. Query와의 유사도를 구하는데 그 방법은 바로 inner product이다. 그 결과는 attention score이라고 하고 $e^t $로 표현한다. 즉, 아래와 같은 attention score를 갖게 되는 것이다. $$ e^t=[s_t^T h_1, \cdots, s_t^T h_N] $$ softmax 함수를 통해 attention weight $\alpha^t$을 계산하고 이를 바탕으로 weighted sum을 하여 attention output $ a_t$을 계산할 수 있다. $$\alpha^t = softmax(e^t)$$ $$a_t = \Sigma_{i=1}^N \alpha_i^t h_i$$ 이렇게 계산된 $a_t$와 $s_t$를 결합해서 하나의 벡터 $v_t$로 정의되고 이를 활용하여 $\hat{y_t}$를 더 잘 예측할 수 있다. $v_t$를 신경망 연산을 수행한 후 마지막 layer에 통과시키고 softmax를 적용하여 다음 단어 $\hat{y_t}를 예측하게 된다.

Decoder는 앞선 seq2seq 모델과 같이 autoagressive하다. 따라서 앞선 결과를 다시 Decoder의 input으로 가져와 위의 과정이 반복된다.

 

[출처] 한양대학교 장준혁 교수님 인공지능개론 수업

'인공지능' 카테고리의 다른 글

[Graph Neural Network] Graph Representation  (0) 2024.08.21
[인공지능개론] Transformer②  (0) 2024.08.20
[인공지능개론] Clustering  (0) 2024.08.20
[인공지능개론] RNN②  (0) 2024.08.20
[인공지능개론] RNN①  (1) 2024.07.11

댓글