본문 바로가기
Artificial Intelligence/Deep Learning

[딥러닝] RNN (Recurrent Neural Network) - 순환신경망 구조

by EunjiBest 2022. 2. 24.

[딥러닝] RNN (Recurrent Neural Network) - 순환신경망 구조

 

 

RNN은 자연어 처리를 한다던지, 주가 예측을 한다던지

시간의 흐름이 매우 중요한 시계열 데이터에 적합한 모델이다.

 

 

기본적인 RNN 구조도이다.

하나씩 뜯어보면

 

인풋값이 X0으로 들어가서 ->  A에서 어떤 가중치(w)에 대한 계산이 되고, -> 결과값이 h0이된다.

-> 첫번째 A 가중치(w)가 두번째 A로 전달이 되면서 인풋값 X1과 합쳐져고 -> 결과값 h1이 된다.

-> 두번째 A 가중치가 세번째 A로 전달이 되고 인풋값 X2와 합쳐지고...

 

이런식으로 계속 전달 전달 전달...이 되는 구조인 것을 확인할 수 있다.

 

위에 기본적인 구조를

Vanilla RNN이라고 한다. 가장 초기 버전이다.

 

이 Vanilla RNN은 좋은 성능을 내지 못했는데,

Vanishing / Exploding Gradient 문제 때문이다.

 

무슨말이냐 하면,,.!

 

X0에서 X1, X2, ... Xt까지 수많은 레이어를 거치면서

X0의 의미나 중요성이 Xt까지 전달되지 못하고

그라디언트 소실 문제가 발생이 된다는 말이다.

 

 

이 문제를 해결할 수 있는

LSTM 레이어에 대해서는 다음에 포스팅 해보도록 하겠다.!

 

 

 

 

 

 

 

 

 

 

반응형

댓글