학습내용
- Decoding
- 완전탐색 (Exhaustive Search, Brute-force search):
- 가능한 경우를 모두 구해서 문제의 해결 방법을 찾는 것입니다.
- 문제점: 물리적으로 불가능합니다.
- Ancestral Sampling, Forward Sampling:
- 문제점: 샘플을 많이 뽑아야하고, variance 가 높습니다.
- 그리디 탐색(Greedy Search):
- 가능성이 제일 높은 토큰 하나를 선택합니다.
- 효율적이지만 차선(suboptimal) 입니다., 한번 한 선택을 되돌릴 수 없다는 단점을 가지고 있습니다.
- 빔 탐색(Beam Search):
- 가능한 여러개의 후보자(candidate)를 가지고 그들 중에서 최선의 선택을 합니다.
- 후보자 갯수 K 가 올라간다고 해서 탐색 결과가 좋아지는 것은 아닙니다.
- 완전탐색 (Exhaustive Search, Brute-force search):
- Decoding 목적이 불분명합니다.
- 실시간 번역 시스템이 목적이라면, 품질(quality) 높여야 하지만 딜레이(delay)는 낮춰야합니다.
- 어린이들을 위한 번역 시스템이 목적이라면, 품질은 높여야 하지만 텍스트 난이도(text difficult)는 낮춰야 합니다.
- 온디바이스(on-device)에서의 번역시스템 구축이 목적이라면, 품질은 높아야하지만 계산복잡도(computational complexity)는 낮아야 합니다.
- Learning to decode
- 신경망이 무엇인가 생각해보면, forgetting machine 이라고 할 수 있습니다.
- Forward 과정에서 최대한 input 에 대한 정보를 버리는 과정입니다.
- 즉, 은닉 활성화 값(hidden activation) 에는 판단을 하기 위해 이와 관련있거나 없는 특징을 구별할 수 있는 정보를 포함하고 있습니다.
- RNN 에서 은닉층 탐색을 해본 결과
- CNN 과 달리 봐도 시각적으로 어떤 특정 패턴이 있는지 구별할 수 없었습니다.
- 하지만 신경망은 이를 잘 활용할 수 있다는 점은 분명했습니다.
- 신경망이 무엇인가 생각해보면, forgetting machine 이라고 할 수 있습니다.
- Trainable Decoding:
- 기존 conditional RNN 을 환경으로 정의하게 되면, 강화학습의 알고리즘을 사용할 수 있습니다.
- Decoder 를 에이전트(agent) 로 보고 훈련 가능한 Decoding agent 를 쌓습니다.
- 동시통역(Simultaneous Translation)
- Decoding
- 잘 훈련된 Neural Machine Translation 모델에서 시작합니다.
- Simultaneous decoder 가 들어오는 신호를 가로채고 해석합니다.
- 해석후, Simultaneous decoder 가 output 도출할지 아니면 다음 Source symbol 를 기다립니다.
- Learning
- 번역 딜레이와 품질의 균형 조절을 배우게 됩니다.
- Policy gradient
학습자료
- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : Case Study - Real-Time Translation Learning to Decode - 조경현교수