본문 바로가기
머신러닝(Machine Learning)

NMT(인공 신경망 기계 번역) Seq2Seq 에서 어텐션 메커니즘까지 정리

by Blaze_블즈 2023. 7. 14.

안녕하세요 블레이즈입니다. 

 

지난 두 포스팅에서 인공신경망 기계 번역 Neural Network Machine Translation을 다뤄봤습니다. 

 

먼저 순환신경망인 Recurrent Neural Network에 대해 공부했었죠. 

https://blazetechnote.tistory.com/entry/머신러닝ML-Recurrent-Neural-Network-기초

 

머신러닝(ML) 순환신경망(Recurrent Neural Network) 기초

안녕하세요 블레이즈 테크노트의 블레이즈입니다. 오늘은 순환신경망(Recurrent Neural Network)에 대해 간단히 알아보도록 하겠습니다. 앞으로는 순환신경망이라는 단어와 RNN을 혼용할 예정이니 참

blazetechnote.tistory.com

 

순환신경망의 기초는 결국 이산수학이나 코딩에서 재귀함수와 유사합니다. 

 

함수의 output이 input으로 들어가는 구조라는 뜻이죠. 

 

다시 말해 과거의 정보가 미래의 값을 예측하는데 계속 사용됩니다. 

이러한 RNN은 순서가 있는 정보를 처리할 때 유용하게 사용됩니다. (ex. 문장 만들기) 

 

https://www.geeksforgeeks.org/introduction-to-recurrent-neural-network/

 

위 그림을 보시면 매 시간마다 input X_t가 새롭게 들어옵니다. 

X_t와 초기조건을 통해 만들어내는 산출값을 우리는 Hidden State 라고 합니다. 그림에선 h_t로 표시되어 있습니다. 

그리고 Ouput L_t는 해당 시간의 인풋인 X_t와 바로 직전의 hidden state인 h_t-1 을 통해 계산됩니다. 

 

어떻게 보면 이 RNN은 인풋을 받는 layer가 있고

hidden layer가 있고

마지막으로 output layer가 있다고 볼 수 있습니다. 

Ma, Shukai & Xiao, Bo & Hong, Ron & Addissie, Bisrat & Drikas, Zachary & Antonsen, Thomas & Ott, Edward & Anlage, Steven. (2019). Classification and prediction of wave chaotic systems with machine learning techniques.

일반화할 경우 이러한 Hidden Layer는 여러 개가 될 수도 있습니다. 

 

 


기계 번역, Machine Translation에서 대표적으로 알아본 것이 시퀀스 투 시퀀스 모델 Seq2Seq입니다.

Seq2Seq은 RNN으로 만들어진 Encoder와 Decoder로 번역을 진행합니다. 

 

영어 문장을 프랑스어 문장으로 번역하고 싶다면 

input은 영어 문장이 되고 

output은 프랑스어 문장이 됩니다. 

 

 

https://towardsdatascience.com/understanding-neural-machine-translation-encoder-decoder-architecture-80f205643ba4

 

인풋인 영어 문장을 RNN으로 처리하고 나면 인코더의 hidden state가 나옵니다. 

그림에서는 vector라고 되어 있는 부분입니다. 

 

그러고 나면 디코더는 이 vector를 초기값으로 하여 

RNN을 돌리게 되고 아웃풋을 생성할 수 있습니다. 

 

 

 

시퀀스 투 시퀀스 기계 번역 모델에 대한 더 자세한 설명은 아래의 포스팅을 참고해주세요:)

 

https://blazetechnote.tistory.com/entry/NLP-시퀀스-투-시퀀스-신경망-기계-번역-모델Seq2Seq-Neural-Machine-Translation-기초

 

NLP 시퀀스 투 시퀀스 신경망 기계 번역 모델(Seq2Seq Neural Machine Translation) 기초

안녕하세요 블레이즈 테크 노트의 블레이즈 입니다. 지난 포스트에서 RNN 순환 신경망을 공부했습니다. 이번에는 RNN을 활용한 시퀀스 투 시퀀스 신경망 기계 번역 모델에 대해서 알아보고자 합

blazetechnote.tistory.com

 


한편, 시퀀스 투 시퀀스 모델은 문제점이 있는데

input과 output을 매개하는 vector가 영어문장의 모든 의미를 충분히 담고 있느냐 하는 것입니다. 

 

간단한 문장이라면 가능하겠지만 아주 긴 문장이라면요? 

 

이 vector는 크기가 고정되어 있기 때문에 인풋이 길 경우 정보의 압축이 일어날 수 밖에 없습니다. 

결과적으로 일부 맥락이 탈락하는 현상이 벌어집니다. 

 

또한, 이 외에도 인풋의 뒤쪽에 있는 단어의 의미는 강하게 남아있고 앞 쪽 단어의 의미는 상대적으로 희미해지는 문제점이 있었습니다. 

 

 

이를 해결하기 위해 등장한 개념이 어텐션 메커니즘, Attention Mechanism 입니다. 

 

어텐션 메커니즘은 인풋 정보를 넘겨주는 context vector를 하나로 제한하지 않고 

인코더에서 사용되는 모든 hidden state를 넘겨주는 방식을 채택합니다. 

 

이 때, 어떤 인코더의 어떤 hidden state를 집중적으로 참고할 것이냐의 문제가 발생합니다. 

 

어텐션 매커니즘은 각 hidden state에 대하여 Attention score라는 점수를 매깁니다. 

이 점수를 매기는 방식은 꽤나 다양한데, 결국은 디코더의 hidden state와 유사도를 측정하는 과정이라고 생각할 수 있습니다. 

 

이렇게 유사도를 매긴 Attention score를 softmax 함수를 활용해(tanh 함수를 사용하는 경우도 있음) 

확률적으로 파악하고 다시 hidden state과 곱해서 

context vector를 모든 time stamp마다 새롭게 만듭니다.

 

 

 

https://towardsdatascience.com/understanding-neural-machine-translation-encoder-decoder-architecture-80f205643ba4

 

 

이러한 어텐션 메커니즘은 기계 번역의 성능을 한층 업그레이드 할 수 있었던 요인으로 평가받고 있습니다. 

 

 

어텐션 메커니즘에 대한 더 자세한 설명은 아래의 포스팅 참고 부탁드립니다. 

 

https://blazetechnote.tistory.com/entry/NMT인공신경망-기계-번역-어텐션Attention이란-기초-설명

 

NMT(인공신경망 기계 번역) 어텐션(Attention)이란? 기초 설명

안녕하세요 블레이즈 테크노트의 블레이즈입니다. 지난 포스트에서 Seq2Seq 모델을 살펴봤습니다. https://blazetechnote.tistory.com/entry/NLP-시퀀스-투-시퀀스-신경망-기계-번역-모델Seq2Seq-Neural-Machine-Transl

blazetechnote.tistory.com


아래의 동영상은 구글 클라우드에서 나온 영상인데 어켄션 메커니즘에 대해 잘 설명해주고 있는 것 같아 첨부합니다.

https://youtu.be/fjJOgb-E41w