RNN (Recurrent Neural Network) 이론 및 개념

최우석·2024년 1월 17일

DeepLearning

목록 보기
1/4
post-thumbnail

RNN (Recurrent Nuerual Network)

순환 신경망 (RNN)
인공 신경망의 한 종류, 유닛간의 연결이 순환적 구조로 구성
seuqence data 처리 강점


📌 Sequence Data

sequence data: 어떠한 순서를 가진 데이터
대표적으로 시계열(time series), 자연어(NLP) 분야

time series:
'1일', '2일', '3일'

NLP:
I like cat
'I', 'like', 'cat'

RNN은 sequence data를 처리하기에 적합한 모델이며 어떤 것을 sequence로 정의하냐에 따라 NLP, time series, image 등 다양한 문제 해결 가능


📌 RNN architecture

기본적인 MLP는 대게 입력에서 출력측 방향으로 연산이 진행되는 순방향 신경망(Feedforward neural network)이다.

RNN은 순환 신경망으로 연산의 결과값이
출력층 뿐만 아니라 은닉층(자기 자신 or 이전 노드로)으로 향하는 구조이다.

RNN의 구조를 좀 더 간단히 표현하면 아래와 같다.

결국 RNN은 전 시점의 정보를 다음 시점으로 넘겨준다고 볼 수 있다.
이때, 다음 시점으로 넘겨줄 정보를 hidden state라고 한다

💡
hth_t: tt 시점의 은닉 상태hidden state)
xtx_t: tt 시점의 입력 벡터
yty_t: tt 시점의 출력 벡터
wtw_t: t1t-1 시점의 은닉 상태 가중치

즉, 시점 tt에 대한 hidden state를 구하기 위해 전 시점 t1t-1hh와 현 시점 xtx_t로 계산한다.

💡
은닉층 ht=tanh(wxxt+whht1+b)h_t = tanh(w_xx_t + w_hh_{t-1} + b)
출력층 yt=f(wyht+b)y_t = f(w_yh_t + b)


📌 RNN BPTT (BackProgation Through Time)

RNN은 동일한 hidden layer가 반복되는 구조로 순전파가 연산된다. 결국 학습을 하기 위해 Loss에 대한 gradient를 역전파하여 매개변수 ww 갱신

이때, 동일한 hidden layer가 반복되어 ww를 공유하는 구조이기 때문에 gradient를 넘겨줄 때 이전 단계도 고려해야함. 이러한 방식을 BPPT(BackProgation Through Time)이라고 한다.


📌 RNN 유형

RNN은 전 시점들의 정보를 전달하여 다음 시점을 계산한다.
이러한 개념을 적용해 입력과 출력을 변형할 수 있다.

🎈one to many
하나의 입력을 통해 sequence 출력
image cationing 등에 사용

🎈many to one
여러 개의 입력, sequence를 통해 하나 출력
감성분석(문장에서 긍정/부정 예측), 20일간의 평균 기온 예측 등에 사용

🎈many to many (3th)
input sequence를 모두 입력 받은 뒤 output sequence 출력
Seq2Seq 구조라고 불리며, 번역 등에 사용

🎈many to many (4th)
input sequence 입력 받은 즉시 output sequnce 출력
비디오를 프레임별로 분류하는 등에 사용


📌 RNN의 문제점

RNN은 비교적 짧은 sequence에서 좋은 성능을 보인다.
그러나 time step tt가 커지면 초기의 정보를 끝까지 유지하지 못하고 유실되는데 이를 장기 의존성 문제(long-term dependecies)라고 한다.

이는 time step tt가 커지면 tt시점의 loss 값이 전달되지 못하는 gradient vanishing 문제와 직결된다.

이런 문제를 해결하기 위해 LSTM, GRU 모델이 탄생했다.

다음 포스트에서 해당 모델을 다룰 예정이다.


Reference
1) 순환 신경망(Recurrent Neural Network, RNN)
2) [바람돌이/딥러닝] RNN(Recurrent Neural Network) - 순환 신경망 이론 및 개념

0개의 댓글