안녕하세요
블레이즈 테크 노트의 블레이즈 입니다.
지난 포스트에서 RNN 순환 신경망을 공부했습니다.
이번에는 RNN을 활용한 시퀀스 투 시퀀스 신경망 기계 번역 모델에 대해서 알아보고자 합니다.
머신러닝(ML) Recurrent Neural Network 기초
https://youtu.be/UNmqTiOnRfg 순환 신경망에 대해서 아주 쉽게 설명한 영상입니다. 특히 내가 원하는 정보를 벡터로 변환하는 걸 잘 보여준다고 생각합니다. 영상에서 요리사는 애플파이, 햄버거, 치킨
blazetechnote.tistory.com
시퀀스 투 시퀀스 모델은 순서가 있는 입력을 받아서 순서가 있는 출력으로 내보냅니다.
아래의 그림처럼 어떤 순서가 있는 입력 A B C D를 받았다면
여기에 어떤 처리를 해서 내가 원하는 출력인 P Q R S를 산출하는 모델인 것입니다.
우리의 언어는 순서의 특징을 가지고 있습니다.
단어는 어떤 위치에 나타나느냐에 따라 다른 의미를 내포하고 있기 때문입니다.
또한 어떤 단어가 나오면 그 뒤에 나올 수 있는 단어가 어느정도 유추 가능합니다.
예를 들어 The little이 나왔다면 그 뒤에 다시 the가 나올 확률보다는 bird가 나올 확률이 높겠죠.
따라서 한국어를 영어로 번역하고 영어를 프랑스어로 번역하는 일 역시 일종의 순서가 있는 데이터의 변환이라고 볼 수 있습니다.
시퀀스 투 시퀀스 (Seq2Seq) 기계 번역이라고 하는 이유입니다.
그렇다면 Seq2Seq 모델이 어떻게 인풋을 아웃풋으로 변환하는지 원리가 궁금할 것입니다.
Seq2Seq 모델을 살펴보면 인코더와 context, 디코더가 있습니다.
인코더는 인풋을 받고
이 인풋을 전부 받은 다음 하나의 context로 변환합니다.(벡터로 변환)
이 context를 다시 디코더에 넣으면 그 순서가 있는 출력이 반환됩니다.
인코더는 인풋이 내포하고 있는 맥락(context)를 읽어서 이를 hidden state라고 하는 벡터에 담고
디코더는 이 hidden state를 해석해서 아웃풋을 만든다고 생각할 수 있습니다.
이 때 인코더와 디코더는 모두 RNN 순환신경망입니다.
그래서 Seq2Seq모델이 RNN을 활용했다고 하는 것이죠.
위 그림을 자세히 보시면 Le를 입력으로 받고 h(1)을 인코더에 다시 넣어줍니다.
이 때, 각각의 단어는 워드 임베딩(word embedding)을 통해 입력됩니다.
워드 임베딩은 단어를 벡터로 매핑하는 기술입니다.
다시 말해 Le 라는 단어가 [0.24 1.84 0.23 2.1] 이런 식으로 변환되어서 인코더로 입력된다는 뜻입니다.
그림에서 이 과정은 생략되었습니다.
인코더 RNN은 h(1)과 petit을 받아 h(2)를 생성합니다.
그리고 h(2)와 oiseau를 입력받아 h(3)를 생성합니다.
아래의 포스트에서 RNN이 이전 state와 날씨 두 개의 input을 입력받았던 것과 유사하죠?
머신러닝(ML) Recurrent Neural Network 기초
https://youtu.be/UNmqTiOnRfg 순환 신경망에 대해서 아주 쉽게 설명한 영상입니다. 특히 내가 원하는 정보를 벡터로 변환하는 걸 잘 보여준다고 생각합니다. 영상에서 요리사는 애플파이, 햄버거, 치킨
blazetechnote.tistory.com
이렇게 인코더가 모든 입력을 다 처리하고 나면 context를 만듭니다.
context는 벡터인데 다음과 같다고 할 수 있겠죠.
0.2
-0.3
0.5
-0.8
0.3
0.7
이 벡터는 인코더로 들어온 인풋의 정보가 전부 다 담겨 있습니다.
제가 표현한 예시는 6개의 값만 들어있는 벡터이지만 실제로는 훨씬 훨씬 더 길 것입니다.
https://moondol-ai.tistory.com/412
시퀀스-투-시퀀스(sequence-to-sequence) 간단히 이해하기
본 글은 "딥 러닝을 이용한 자연어 처리 입문"을 학습하며 작성한 것입니다. 중간중간 제가 이해한 내용을 좀 더 풀어서 썼습니다. 시퀀스-투-시퀀스(이하 seq2seq)는 입력된 시퀀스로부터 다른 도
moondol-ai.tistory.com
이 블로그도 잘 정리되어 있네요.
아래의 그림은 인코더 RNN 이 인풋을 받아서 hidden state를 만들고
마지막 hidden state가 디코더로 들어가는 형상을 나타낸 그림입니다.
컨텍스트는 인풋의 모든 정보를 가지고 있어서 길다고 말씀을 드렸습니다.
따라서 컨텍스트는 전체 모델의 성능을 안좋게 만드는 핵심 부분입니다.
특히 문장이 길수록 그 모든 정보들을 담아야 한다는 점에서 전체 처리 속도가 느려질 수 밖에 없습니다.
그리고 시퀀스의 앞쪽 정보가 상당히 흐려진다는 문제도 있습니다.
이렇게 context의 문제를 보완하고 기계 번역을 크게 향상시킨 개념이 Attention 개념입니다.
Bahdanau et al., 2014 와 Luong et al., 2015에서 제안된 개념이죠.
그러나 이 어텐션 개념은...
다음 포스트에서 함께 알아보겠습니다.
감사합니다.
블레이즈 테크노트
'머신러닝(Machine Learning)' 카테고리의 다른 글
NLP 트랜스포머 두 번째, 포지셔널 인코딩(Positional Encoding) 알아보기 (0) | 2023.07.25 |
---|---|
NLP 트랜스포머 첫 번째, RNN에서 트랜스포머로 (0) | 2023.07.24 |
NMT(인공 신경망 기계 번역) Seq2Seq 에서 어텐션 메커니즘까지 정리 (0) | 2023.07.14 |
NMT(인공신경망 기계 번역) 어텐션(Attention)이란? 기초 설명 (0) | 2023.07.13 |
머신러닝(ML) 순환신경망(Recurrent Neural Network) 기초 (0) | 2023.07.10 |