18장 시퀀스 배열로 다루는 순환 신경망(RNN)
Deep Learning for everyone
⦿ 예제 소스 https://github.com/taehojo/deeplearning → 18장. 시퀀스 배열로 다루는 순환 신경망(RNN) [구글 코랩 실행하기]
⦿ 바로 가기 https://bit.ly/dl3-ch18
인공지능이 문장을 듣고 이해한다는 것은 많은 문장을 ‘이미 학습(train)해 놓았다’는 것입니다. 그런데 문장을 학습하는 것은 우리가 지금까지 공부한 내용과는 성질이 조금 다릅니다. 문장은 여러 개의 단어로 이루어져 있는데, 그 의미를 전달하려면 각 단어가 정해진 순서대로 입력되어야 하기 때문입니다. 즉, 여러 데이터가 순서와 관계없이 입력되던 것과는 다르게, 이번에는 과거에 입력된 데이터와 나중에 입력된 데이터 사이의 관계를 고려해야 하는 문제가 생기는 것입니다.
이를 해결하기 위해 순환 신경망(Recurrent Neural Network, RNN) 방법이 고안되었습니다. 순환 신경망은 여러 개의 데이터가 순서대로 입력되었을 때 앞서 입력받은 데이터를 잠시 기억해 놓는 방법입니다. 그리고 기억된 데이터가 얼마나 중요한지 판단하고 별도의 가중치를 주어 다음 데이터로 넘어갑니다. 모든 입력 값에 이 작업을 순서대로 실행하므로 다음 층으로 넘어가기 전에 같은 층을 맴도는 것처럼 보입니다. 이렇게 같은 층 안에서 맴도는 성질 때문에 순환 신경망(이하 RNN)이라고 합니다.
그림 18-1 | 일반 신경망과 순환 신경망(RNN)의 차이