ML || DL/이론

[Coursera] DLS_C5W3: Sequence to Sequence Model / Beam Search / Attention Model

junmukbap98 2023. 10. 18. 15:11

1. Basic model

  • Sequence to Sequence model
    : Encoder-Decoder 구조

Sequence to Sequence model

  • Image captioning

Image captioning


2. Picking the most likely sentence

Language model과 machine translation model과의 차이점: language model은 output을 random 하게 sampling 하지만, machine translation model은 입력이 주어졌을 때 가장 확률이 높은 output을 sampling 한다. --> Machin translation as building a conditional language model

Language model과 machine translation model

하지만, 우리는 vocabulary에 있는 모든 단어에 대한 확률을 구한 다음에 가장 높은 확률을 가지는 output을 고르기에는 너무 많은 비용이 든다. 따라서 우리는 beam search algorithm을 활용한다.


3. Beam search

: beam search 알고리즘은 여러 개의 문장 중 확률이 높은 beam width 개의 문장을 선택한다. 

Beam search algorithm

이러한 beam search algorithm을 좀 더 효율적으로 활용하기 위해, 우리는 length normalization을 수행할 수 있다.

Basic beam search의 문제점과 length normalization

beam width, B가 크다면 --> better result, but slower / 작다면 --> worse result, but faster

 

우리는 RNN model과 beam search algorithm을 활용해서 기계 번역을 수행하게 된다. 

기계 번역 성능을 향상시키기 위해서 error를 분석할 때, 우리는 RNN model이 원인인지 beam search 알고리즘이 원인인지를 알아야 한다. 

Error analysis on beam search

위의 그림에 따라서 beam search가 문제가 된다면 B를 좀 더 증가시킬 수 있고, RNN model이 문제라면 RNN model의 성능을 향상하기 위한 여러 가지 방법들 (deep layer, more training set, regularization 등)을 활용하여 성능을 개선할 수 있다. 


4. Attention Model

: Sequence to Sequence model의 encoder는 입력 문장에 대한 정보를 encoding 한 feature vector를 decoder에 전달해 주고, decoder는 전달받은 feature vector를 활용해서 output을 생성한다. 

하지만 입력 문장의 길이가 매우 길 경우에, encoder에서 입력 문장의 모든 단어들을 기억할 수 없다. 따라서 decoder가 sequence를 생성할 때 필요한 특정 부분에 좀 더 가중치를 두어 주의집중 (attention) 하면 더 나은 성능을 기대할 수 있다. 

The problem of long sequences

Attention model 직관: t번째 단어를 생성할 때, 입력 시퀀스 정보에 얼마나 주의를 기울여야하는지 attention weight $\alpha^{\langle t, t' \rangle}$를 구한다. 그다음 t'번째 입력 단어의 activation ($a^{\langle t' \rangle}$)과 attentiontion weight를 곱해서 context vector를 생성하고, 이를 이용해서 y를 출력한다. 

Attention model

그렇다면, attention weight는 어떻게 계산할까?

Computing attention weight

우리는 attention weight의 합이 1이 되도록하기위해, softmax를 활용한다. softmax 안에 있는 $e$는 small NN (e.g., one hidden layer)를 이용해서 계산될 수 있다.