<aside> 💡

핵심 용어 설명

1. RNN (Recurrent Neural Network, 순환 신경망)

RNN'기억력'을 가진 신경망으로, 시계열 데이터를 다루는 데 특화된 모델입니다.

2. 최대-최소 정규화 (Min-Max Normalization)

최대-최소 정규화는 흩어져 있는 데이터의 단위를 통일시켜주는 '데이터 스케일링' 기법 중 하나입니다. 📏

RNN

지금까지 우리는 순서가 없는 데이터를 다뤘습니다. 모델에 행렬 하나만 입력하면 충분했죠. 하지만 데이터에 순서가 있다면 어떨까요? 순서를 무시하고 데이터 전체를 한 번에 넣으면 제대로 학습될까요? 정답은 '아니오'입니다. 이미지를 MLP로 학습했을 때 특징 위치가 변하면 성능이 급락했던 것처럼, 시계열 데이터도 마찬가지입니다. 순서가 조금만 바뀌어도 모델 성능에 악영향을 미칩니다. 그렇다면 데이터 순서로부터 특징을 추출하려면 어떻게 해야 할까요? 시계열 데이터를 다루는 방법은 의외로 간단합니다. 데이터를 순서대로 입력하면 됩니다. 문제는 모델 구조입니다.

모델이 과거 정보와 현재 정보를 모두 가지려면, 이전 출력을 다시 입력으로 넣어야 합니다. 이렇게 출력을 다시 입력으로 넣는 것을 순환한다(되풀이된다)recurrent라고 부르며, 이러한 구조를 가진 신경망을 RNN(recurrent neural network)이라고 합니다. RNN 구조를 그림으로 살펴보겠습니다.

image.gif

RNN의 가장 중요한 특징은 은닉 상태(hidden state) 입니다.

RNN은 입력층에서 들어온 데이터와 이전 시점의 은닉 상태를 함께 사용해 새로운 출력을 만들어냅니다.

즉, 현재의 출력은 단순히 현재 입력뿐 아니라 과거의 정보에도 영향을 받습니다.

image.png

RNN 에서 신경망 각 층은 한 시점(cell)을 가리킥 있습니다. 모든 시점에서의 가중치는 전부 공유 되고 있습니다. 모든 시점에서의 출력은 다음 시점의 입력값과 합쳐져 가중치가 적용 되고, 최종 출력값을 출력으로 하며, 출력층 이전의 출력을 은닉(hidden state)상태 라고 부릅니다. 단, 입력층은 모델 시작이므로 이전의 은닉상태가 존재하지 않습니다. 이때는 우리가 임의로 랜덤하게 값을 생성해주면 됩니다. 이렇게 설계된 모델은 과거의 계산 정보와 현재의 입력을 모두 고려한 모델이 되므로 순서가 있는 시계열 데이터를 처리하는데 적합합니다.

image.png

이 구조는 다음과 같은 수식으로 표현됩니다. $hₜ = f(Wxₜ + Uhₜ₋₁ + b)$ 여기서

은닉 상태는 RNN의 기억(memory) 역할을 하며, 문장·음성·시계열 데이터처럼 ‘순서가 중요한 데이터’를 이해하는 데 핵심적인 역할을 합니다.

🔁 가중치의 반복 — 시간에 따른 학습