Table of Contents

순환신경망(RNN)

개념

순서가 있는 데이터(Sequential Data)를 처리하기 위해 설계된 딥러닝 모델의 한 종류
'순서가 있는 데이터'란 단어의 순서가 중요한 텍스트(NLP), 시간의 순서가 중요한 시계열 데이터(주가, 날씨), 소리의 순서가 중요한 음성 등이 포함

주요단어

셀(cell)

순환 구조를 가진 은닉레이어의 뉴런을 지칭하며, (정확히는 은닉 상태를 계산하는 순환 구조의 계산단위)
내부 메모리 (상태값)을 사용하여 순환하는 구조를 갖는다.
순환은 어렵게볼거잆이 그냥 이전 셀의 정보를 당므 셀이 기억하고잇다는 것.

어떻게 동작하나?

일반적인 Dense 레이어(이전에 본 MNIST 예제)는 '기억'이 없어 입력 x가 들어오면 y를 출력할 뿐, 이전에 무엇을 계산했는지 기억하지 못함.
하지만 RNN 셀은 '기억'이 있다.

시점 t-1 (예: “I”라는 단어 입력)
입력 $x_{t-1}$ (“I”)을 받음.
계산을 수행한 뒤, 은닉 상태 $h_{t-1}$ (“'I'라는 정보가 입력됨”을 요약한 값)을 계산.


시점 t (예: “am”이라는 단어 입력)
RNN 셀은 두 가지 입력을 받음.
1. 현재 입력 $x_t$ (“am”)
2. 이전 셀의 결과 $h_{t-1}$ (“'I'라는 정보”)
셀은 이 두 가지 정보를 모두 사용해 새로운 은닉 상태 $h_t$ (“'I am'이라는 정보가 입력됨”을 요약한 값)을 계산.


점 t+1 (예: “hungry”라는 단어 입력)
셀은 현재 입력 $x_{t+1}$ (“hungry”)와 이전 상태 $h_t$ (“'I am' 정보”)를 입력받음.


'순환'이란, 딥러닝의 '은닉 상태(메모리)'가 다음 시점(step)의 셀로 계속 전달되어,
과거의 정보가 현재의 계산에 영향을 미치는 구조를 의미
이 은닉 상태 $h_t$가 바로 사용자가 언급한 '내부 메모리' 임