[Week 6] Beam Search

PangDae·2021년 9월 17일
0

Beam Search

  • 적절한 문장을 생성하기 위해, 어떤 Time Step의 단어까지 고려 할 것인가?

Greedy Decoding

  • 생성된 한 글자만 고려하는 방법

한 Time Step만의 단어를 고려하여 문장을 생성할 시, 현재 단어가 잘못 만들어 졌을 경우, 수정할 수 없다는 결점이 생긴다.

  • 모든 경우의 수를 고려하는 방법

모든 경우의 수를 고려했을 때, 최적의 문장을 만들 수 있다. 하지만 cost가 너무 크다는 단점을 가지고 있다.

Beam Search

  • 위의 두가지 방법을 적절하게 섞은 방법이다.

Beam Search의 개념은 간단하다. 사용자가 정의한 사이즈 만큼의
Time Step 까지만 고려하겠다는 것이다.
위의 사진을 보자. 만들 수 있는 모든 경우에 수를 생성하고 사용자가 설정해둔 Beam size 까지 확률을 확인한 후, 가장 높은 확률의 루트를 선택하여 해당 과정을 반복하는 것을 확인 할 수 있다.
이와 같은 개념이 Beam Search 이다.

profile
개발이 하고싶습니다.

0개의 댓글