Loading...
2022. 12. 17. 03:07

비전공자도 이해할 수 있는 AI지식 - 딥러닝은 기계번역을 어떻게 바꾸었는가-

1. 신경망 기반, 자연스러운 번역의 시작 2010년대 들어 드디어 딥러닝이 주목받기 시작합니다. 먼저 구문 기반으로 분석하는 방식에 딥러닝을 적용해봅니다. 그리고 우리나라의 조경현 교수가 몬트리올대학교에서 박사 후 과정 중에 성공적인 결과를 넀습니다. 이때부터 바야흐로 딥러닝을 본격적으로 기계번역에 도입합니다. 이후에는 구문 단위를 넘어 아예 문장 전체에 딥러닝을 적용하죠. 이를 신경망 기반 기계번역(Neural Machine Translation)이라고 합니다. 그렇다면, 신경망 기반 기계번역은 어떻게 작동할까요? 앞서 단어 기반에서 구문 기반으로 확장하면 보다 자연스러운 문장이 나온다고 얘기한 바 있습니다. 신경망 기반은 한발 더 나아가 문장 전체를 마치 하나의 단어처럼 통째로 번역해서 훨씬 더 자..

2022. 5. 18. 20:03

transformer의 마지막 encoder-decoder multi head attention

1. encoder-decoder multi head attention decoder의 2번째 attention layer는 특별하게 encoder decoder multi head attention으로 불린다. decoder의 masked self attention 이후 나온 결과는 Query로 들어오고 encoder의 최종 결과로 나오는 hidden vector는 적절하게 변형?되어 key,value로 들어온다 decoder의 query는 encoder가 이해한 맥락정보로부터 받아온 key value중 어떠한 정보에 더 집중할지 attention 연산을 수행하게 된다. 그 후 residual connection, layer normalization을 거치고 나온 결과에 encoder가 그랬던 것처럼 ..

2022. 5. 18. 02:09

transformer decoder에 사용된 masked self attention에 대해 알아보고 구현하기

decoder는 특이하게 masked multi head attention을 먼저 수행한다. 이것은 decoder 내부에서 이루어지는 self attention 과정으로 decoder의 input sequence끼리만 이루어진다. 언어모형을 학습시킬때 이미 정답을 아는 상태에서 학습을 시킨다. i go home을 번역하라고 할때 decoder에는 ' 나는 집에 간다'를 넣고 '나는 집에 간다 '를 순차적으로 뱉게 학습을 시킨다는 것이다. decoder에 input으로 ''를 넣어주면 output이 '나는'이 나오길 바라고 '나는'을 input으로 넣어주면 '집에'가 나오길 바란다. 그런식으로 학습을 시킨다. 하지만 이런 학습이 inference에는 어울리지 않는다는 점이다. test과정에서는 정답을 모른..

2022. 5. 16. 20:24

transformer의 decoder 구조 알아보기

decoder의 기본 구조는 이렇다. The decoder is also composed of a stack of N = 6 identical layers. In addition to the two sub-layers in each encoder layer, the decoder inserts a third sub-layer, which performs multi-head attention over the output of the encoder stack. Similar to the encoder, we employ residual connections around each of the sub-layers, followed by layer normalization. We also modify the se..

2022. 4. 15. 01:56

teacher forcing 기법

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

2022. 4. 14. 01:17

예시로 이해하는 attention의 기본 아이디어

encoder의 기본 진행은 다음과 같다. 위에서 나온 4개의 encoder의 hidden vector $h_{1}^{(e)}$, $h_{2}^{(e)}$, $h_{3}^{(e)}$, $h_{4}^{(e)}$와 첫번째 step의 decoder output hidden vector $h_{1}^{(d)}$가 있는데 원래라면 첫번째 단어 생성을 위해서 $h_{1}^{(d)}$가 output layer로 들어가서 예측을 수행했을 것 그러나 attention은 첫번째 단어 생성을 위해 어떤 단어에 더욱 집중해야하는지 알기 위해 $h_{1}^{(d)}$와 $h_{1}^{(e)}$ ,$h_{2}^{(e)}$ ,$h_{3}^{(e)}$ ,$h_{4}^{(e)}$과의 내적 연산을 수행하여 각 vector에 대하여 sc..