Loading...
2022. 4. 27. 22:24

NLP의 역사를 바꾼 self-attention의 기본 원리

1. self-attention transformer에 도입한 attention의 원리는 seq2seq의 attention과 비슷하지만 조금 다르다. self-attention이라고 이름이 붙여졌는데 transformer encoder의 기본 구조는 input sequence x1,x2,x3가 self attention을 지나 바로 encoding되어 h1,h2,h3의 hidden vector가 된다. 2. seq2seq의 encoder 이전 sequence의 압축정보를 전달받아 다음 sequence로 넘겨가며 전달하며 encoder의 hidden vector를 생성했다. decoder에서 마지막 encoder의 hidden vector랑 첫번째 decoding input을 입력받아 생성한 decoder..

2022. 4. 19. 16:03

length normalization을 이용한 beam search의 종료조건

1. beam search의 종료조건 greedy decoding은 가 생성되면 종료했다. beam search도 그런가? 여러가지 hypothesis를 고려하기때문에 가 각 hypothesis마다 다르게 생성된다는 것이 문제다. 가 생성된 hypothesis는 더 이상 단어를 생성할 필요가 없으니 물론 고려할 필요는 없다. 중간에 고려대상 hypothesis가 를 만들경우 그 hypothesis는 임시공간에 저장해놓고 최종후보대상에 올려놓는 것이다. 그 경우 다음 step에서 몇개를 고려해야하느냐가 문제다. 1개를 선택했으니 k-1개만 고려할까? 아니 beam search의 취지에 맞게 계속 k개를 고려할까? 사람마다 다르다.. 적절하게 고려하는것이 중요하다 어떨때 종료할까? 첫번째로 time step..

2022. 4. 18. 10:21

beam search 기법이란 무엇인가

1. exhaustive search decoding의 매 스텝마다 모든 가능한 경우에 대해 확률분포를 따져보겠다는 것이다. 모든 가능한 경로에 대해 확률을 계산하여 최종적으로 가장 확률이 높은 1가지를 선택한다 근데 이제 보면 알겠지만 계산비용이 $O(V^{T})$로 T가 조금만 커져도 말도 안되게 커진다 참고로 greedy decoding은 매 스텝마다 가장 확률이 높은 1가지만 뽑으니까 2. beam search greedy는 계산이 쉽지만 최적을 항상 보장하지 않는다는 점, exhaustive search는 계산 비용이 너무 많이 든다는 점에서 중간책을 선택하고 싶다는 것이다. 그렇다면 매 step마다 beam size=k개만 고려하겠다. 최종적으로 고려한 적절한 수의 후보들 중 가장 확률이 높은..

2022. 4. 17. 08:26

greedy decoding(greedy search)은 왜 최적이 아닐까?

1. greedy decoding 일반적으로 행하던 decoding 방법이다. 매 time step마다 계산된 확률분포중 가장 확률이 높은 단어를 하나씩 선택한다. sequence 전체적으로 보는것보다 당장 현재 step에서 가장 확률이 높은 최적 단어를 뽑고자 하는 것이다. 순간순간에는 최적이지만 전체로 볼때는 최적이 아니라는 greedy algorithm에서 따온거겠지? 정답은 he hit me with a pie인데 he, he hit 생성하고 다음 단어 생성하는데 최적인 단어는 a라고 생각한거지.. 그러면 이제 이 순간 다음부터는 뭐가 나오든 최종 결과는 무조건 잘못된거임 2. 이상적인 번역이란 이상적으로 input sequence x가 주어질 때 그것에 대한 번역인 translation y를 찾..

2022. 4. 15. 23:50

attention 구조는 NLP를 어떻게 바꾸었는가

1. backpropagation attention의 가중치(attention distribution, attention모듈에는 가중치가 없는데? 근데 이놈들은 결국 encoder의 가중치랑 decoder의 가중치에 영향을 받겠지)를 잘 학습하도록 backpropagation에 의한 gradient가 attention module로도 흘러들어감 gradient vanishing 문제를 어느정도 완화시켰다. 직관적으로 attention구조가 없다면 gradient는 위 그림에서 먼 단어까지 가는데 굉장히 멀어서 잘 안흘러가겠다는 것을 느낄 수 있는데 attention구조에 의해 마치 빠른 길로도 gradient가 흘러들어가는 모습이다.. 2. 다양한 attention mechanism attention 구..

2022. 4. 15. 01:56

teacher forcing 기법

decoder의 예측 수행은 이전 예측 단어를 다음 예측을 위한 input으로 넣어준다. 문제가 무엇이냐? 예측이라는 것이 항상 정확할까? 특히 학습 초반에는 예측이 정확할 경우가 거의 없다. 그러면서 정확히 예측하지 못한 단어가 다음 단어 예측을 위한 input으로 들어가면서 이런 오류가 누적된다는 것. 그래서 보통 학습이 더디다. 이런 결과를 피하고싶어서 이전 단어 예측값과는 무관하게 decoder의 다음 단어 예측을 위한 input으로 무조건 정답을 넣어주는 것을 teacher forcing 기법이라고 한다. 첫 단어의 정답은 the인데 예측결과 a가 나왔다. 이것을 넣지 않고 그냥 무조건 the를 넣어주는 것이다. 위와 같은 방법은 당연하겠지만 학습속도를 올릴수 있다. 정답으로 예측하니까 당연하지..