인프런 커뮤니티 질문&답변

David님의 프로필 이미지
David

작성한 질문수

딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)

Encoder-Decoder Model 설명 - part2

Beam-search 전략에서 joint probability를 만드는 문제 질문 드립니다.

작성

·

293

0

안녕하세요.

Beam-search 전략에서 joint probability를 만드는 문제 질문 드립니다.

학습하면서 joint 확률분포를 여러 경우의 수에 대해 미리 모두 만들어놓는 개념이라고 보면 되나요?

예를들어,

"I love you so much" 를

"난 널 매우 사랑해" 로 번역할 때

 

I가 나왔을 때, '그는 매우' 나 '철수는 사과를' 이 나올 확률보다는 '난 널' 이라고 나올 확률이 제일 높도록 학습하는 개념인가요?

좋은 강의 감사합니다.

답변 1

1

YoungJea Oh님의 프로필 이미지
YoungJea Oh
지식공유자

Beam search는 현재까지의 예측을 기반으로 가능한 다음 단계의 예측을 생성하고, 각 단계에서 가장 가능성이 높은 몇 가지 예측만 유지(beam의 크기로 정의됨)하며 진행됩니다. 결국, 가장 높은 총 예측 확률을 가진 시퀀스가 선택됩니다.

Beam search는 미리 모든 가능한 경우의 수에 대한 결합 확률 분포를 만들어 놓는 개념이 아니라, 그 때그 때 주어진 상황에 따라 가장 가능성이 높은 몇 가지 예측을 선택하고 이를 바탕으로 다음 단계의 예측을 생성합니다.

예를 들어, "I love you so much"를 번역하는 경우에 'I'를 '나는' 이라고 번역한 후 가능한 다음 단어는 '널', '그는', '철수는' 등이 될 수 있습니다. Beam search는 이 단계에서 가장 확률이 높은 예측 몇 가지(beam의 크기에 따라)를 선택하고, 그 다음 단계로 넘어갑니다. 이렇게 각 단계에서 가장 가능성이 높은 예측을 선택함으로써, 최종적으로 가장 확률이 높은 전체 번역을 찾아내는 것이 목표입니다.

따라서 예를 들어 beam 크기를 3으로 하고 "난 널 매우 사랑해"가 최종 번역이 되려면, 각 단계에서 '난 널', '나는 철수를', '나는 그를' 이 선택되고 다음 단계에서 '난 널 매우', '나는 철수를 매우', '나는 그를 매우', 그 다음 단계에서 '난 널 매우 사랑해', '나는 철수를 매우 사랑해', '나는 그를 매우 사랑해' 가 각각 선택되며, 이 중 가장 전체적인 확률이 높은 첫번째 번역이 선택되는 알고리즘입니다.

좋은 질문 감사합니다.

David님의 프로필 이미지
David

작성한 질문수

질문하기