순환 신경망(Recurrent neural network)이란 무엇인가? 우선'리커런트 (Recurrent)'라는 단어부터 시작한다. 주기는 빈번하거나 반복적으로 발생하는 것을 의미한다. 이러한 유형의 신경망은 일련의 시퀀스 입력에 대해 동일한 작업을 반복적으로 수행하기 때문에 순환 신경망이라고 한다. 따라서 순환 신경망을 이해하려면 시퀀스 데이터라는 개념을 이해해야 한다. 시퀀스 데이터(Sequence Data) 데이터 세트의 포인트가 데이터 세트의 다른 포인트에 종속될 때마다 데이터를 순차 데이터라고 한다. 이에 대한 일반적인 예는 주가와 같은 시계열 또는 각 점이 특정 시점의 관찰을 나타내는 센서 데이터이다. 시퀀스, 유전자 시퀀스 및 날씨 데이터와 같은 순차적 데이터의 다른 예가 있다. 다음은 잘 알려진 순차 데이터 다운로드 사이트이다. RNN(순환 신경망)이 필요한 이유 합성곱 신경망은 이미 매우 강력하다. 그럼,RNN이 필요한 이유는 무엇인가? 컨볼루션 신경망이 좋은 영역에서는 대부분의 데이터가 정적이라는 것을 인정해야 한다. 입력 데이터는 이미지와 같은 2차원 데이터와 같이 서로 독립적이다. 그러나 의미 인식 및 시계열 분석과 같은 응용 프로그램의 경우 컨볼루션 신경망은 약간 부적절하다. 우리가 이전에 다룬 모든 네트워크(컨볼루션 신경망 포함)는 각 입력은 개별적으로만 처리할 수 있으며 이전 입력과 다음 입력은 전혀 무관하다. 그러나 일부 작업은 시퀀스 정보를 더 잘 처리할 수 있어야 한다. 즉, 이전 입력이 후속 입력과 관련된다. 예를 들어 여자친구에게 '사랑해'라고 말하고 부모님에게 '사랑해'라고 말할 때, 두 '사랑해'의 문자적 의미는 같지만 문맥에 따라 의미가 다르다. 전자는 연애(여자친구와의)를 표현하고, 후자는 감사(부모와)을 표현한다. 그것들은 완전히 다른 의미를 가지고 있다. 따라서 이전 출력을 기반으로 약간의 편차가 필요하며 이것이 RNN의 목적이다. 즉, RNN에는 이전에 시퀀스 데이터에서 발생한 일에 대한 특정 메모리가 있다. 그러나 실제로 이러한 종류의 메모리는 매우 제한적이다. 이전에 완전히 연결된 신경망에서 다음과 같은 그림을 그렸었다. 그 기반에 작은 것을 추가하면 순환 신경망의 구조 그림이 될 수 있다. W가 표시된 화살표 원을 제거하면…