크크루쿠쿠

Beam Search and BLEU score 본문

DeepLearning/부스트캠프 AI Tech

Beam Search and BLEU score

JH_KIM 2021. 9. 13. 13:03

Beam Search

Greedy decoding

근시안적으로 현재 time step에서 좋아보이는것을 decode -> 중간에 오류가 나면 어떻게함?

틀렸을 경우 예시

Exhaustive search

확률값을 제일 크게 만드는 y를 찾아야함!

앞에서 가장 큰 값만을 찾는게 아니라 적절하게 뒤에 값들도 고려를 해줘야함.

-> 계산값이 너무 많아져서 불가능함

 

Beam search

앞의 경우 두개의 경우를 조합한 idea

매 time step마다 k개의 가지수를 고려해준다.

마지막 까지 고려한 뒤에 가장 적절한 후보를 뽑아준다.

k = beam size (5~10)

 

globally optimal solution을 항상 찾아주는것은 아니지만 계산량이 효율적임.

 

k^2 개 중에서 k개만큼 골라서 나아간다.

T 라는 timestep 만큼만 하거나  end token 발생시 중단한다.

최종 score가 가장 높은것을 예측값으로 내준다.

-> 길이가 길수록 lower score가 나오므로 normalize 해줘야 한다.

 

BLEU Score

Precision and Recall

Reference: Half of my heart is in Havana ooh na na

Predicted: Half as my heart is in Obama ooh na

precision (정밀도): 예측값 중에 얼마나 있나?

recall (재현율) : 정답중에 얼마나 나왔나?

F-measure -> 조화평균

-> model 2는 문법이 이상한데?

BLEU score

앞에 보인 문제 해결하기 위한 score

- BiLingual Evaluation Understudy

N-gram phrase가 얼마나 겹치는지 반영!

recall은 사용 안하고 precision만 사용한다.

1,2,3,4 -gram 의 precision을 사용한 뒤 기하평균을 사용

짧은 문장일 때 precision 값이 높아질 확률이 높으므로 gravity penalty 부여 (min 부분)

앞의 예시로 model2의 경우 문법이 완전 틀린경우 score가 0이 되는걸 볼 수가 있다.

'DeepLearning > 부스트캠프 AI Tech' 카테고리의 다른 글

Transformer (2)  (0) 2021.09.20
Transformer (1)  (0) 2021.09.14
Sequence to Sequence with Attention  (0) 2021.09.13
[NLP] LSTM and GRU  (0) 2021.09.07
[NLP]Recurrent Neural Network and Language Modeling  (0) 2021.09.07
Comments