본문 바로가기

시퀀스2

# 4. Recurrent Neural Network (RNN) - Code 이번 포스트에서는 지난 포스트에서 다루었던 RNN의 이론을 바탕으로 코드로 직접 구현해본다. RNN의 은닉층 연산에 대해 간단히 복습을 해보자. $h_{t} = tanh(W_{x}x_{t} + W_{h}h_{t-1} + b)$ 위 식은 이전 메모리 셀의 은닉 상태($h_{t-1}$)와 현재 시퀀스의 입력 데이터($x_{t}$)를 바탕으로 현재 메모리 셀의 은닉 상태를 연산하는 식을 의미한다. $D_{h}$ : 은닉층의 크기 $d$ : 입력 벡터의 크기 (피처 수, 단어의 종류 수) Numpy를 통한 구현 import numpy as np # sequence data : N x T x D (샘플 수 x 시퀀스 수 x 차원 수) time_steps = 10 # T (시퀀스 수) input_dim = 4 # .. 2021. 12. 7.
# 3. Recurrent Neural Network (RNN) - Theory Sequence Data (시퀀스 데이터) 이번 포스트에서는 순환 신경망(Recurrent Nerual Network, RNN)에 대해 다룬다. RNN은 입출력을 시퀀스(=시간) 단위로 처리하는 모델이다. 고로, 시계열 데이터를 처리하는데에 적합하다. RNN을 다루기 이전에 시퀀스에 대해 간략하게 짚고 넘어가자. 이전에 다루던 데이터는 시간을 고려하지 않은 데이터들이었다. Tabular 데이터는 $N \times D$의 모양을 가지고 있다. 이때, $N$은 데이터 샘플의 수, $D$는 피처의 수다. 여기에 시간을 고려한 데이터를 하나의 배열에 표현하려면 $N \times T \times D$로 표현할 수 있다. 그리고 RNN의 각 시퀀스의 입력에 대입되는 모양은 $N \times 1 \times D$가 .. 2021. 12. 7.