Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 코테 공부
- Knowledge Tracing
- 다이어트
- 체스트프레스
- 코테준비
- 데드리프트
- pytorch
- 하체운동
- 개인 피티
- 티스토리챌린지
- 덤벨운동
- 개발자
- 바디프로필
- 디버깅
- 연구 시작
- 영화 비평
- 건강
- 코드
- 운동
- PT 운동
- 논문 리뷰
- 오블완
- 프로그래머스
- 바프준비
- 개인 운동
- 라섹 수술 후기
- 암풀다운
- github
- 코딩테스트
- 개인 PT
Archives
- Today
- Total
치즈의 AI 녹이기
Beam Search 본문
자연어 생성에서의 Beam search와 Greedy search의 차이
준비물: 학습된 자연어 생성 모델
목표: 학습된 자연어 생성 모델을 갖고 자연어를 생성(예측)
기본적인 방법: 예측된 확률 분포에 따라 가능한 모든 아웃풋 시퀀스의 조합을 탐색.
그러나 이는 계산 비용이 크다. 따라서 이를 해결하는 방법 두 가지를 소개한다.
1. Greedy search
- 기본적인 Seq2Seq 모델에서 채택하는 방식.
- 현 시점에서 가장 확률이 높은 단어를 다음 시점의 인풋으로 넣어 아웃풋을 도출한다.
- 시간복잡도 측면 good, 최종 정확도 측면 bad.
- 각 시점마다 확률이 좀 낮아도 최종 정확도는 높아질 수 있기 때문.
2. Beam search
- Greedy search의 단점을 보완하여 등장.
- 현 시점에서 확률 분포가 상위 k개(빔의 개수)인 것을 골라 아웃풋을 도출한 후, 자식 노드가 k보다 크면, 누적 확률이 가장 큰 k개를 남기고 버림.
- 어떠한 자식 노드들이 서로 같은 확률을 가지더라도, 어떤 가지에서 어떤 순서로 뻗어나왔냐에 따라 누적 확률이 달라짐.
- 최종적으로 마지막 토큰 <eos>를 출력한 자식노드가 k개가 되면 예측을 멈춘다.
- 최종 k개의 후보 중에서 가장 높은 누적 확률을 가진 빔을 선택한다.
- 빔의 길이가 길어질수록 최종 누적 확률 계산 시 값이 작아지는 불공평성을 해결하기 윟새 length penalty 적용.
'인공지능 대학원생의 생활 > 구글링' 카테고리의 다른 글
모델 학습을 개선하는 4가지 테크닉 (0) | 2021.11.25 |
---|---|
Knowledge Distillation (0) | 2021.10.28 |
Git에 requirements.txt 생성하기 (0) | 2021.07.27 |
BERT와 RoBERTa의 차이점 (0) | 2021.07.25 |
대용량 파일 압축 풀기 (tar.gz) (0) | 2021.07.20 |