RNN(Recurrent Neural Network)

https://www.youtube.com/watch?v=AsNTP8Kwu80

 

가상의 주식시장 설정

파란색 회사의 10일차 주식 가격을 예측하고 싶다면 이전 9일까지의 데이터 사용
빨간색 회사의 10일차 주식 가격을 예측하고 싶다면 이전 5일까지의 데이터 사용

- 신경망은 우리가 예측에 사용하는 순차 데이터가 얼마나 많은지에 유연해야 함

- RNN은 다른 양을 가진 입력값을 처리할 수 있다

가상 주식 시장의 일반적인 경향

 

 

 

RNN

- weight, biases, layers, activation functions, and feedback loops 가지고 있음

- feedback loop는 순차적인 입력값 사용 가능

 

 

 

주식 가격 예측

  • 어제 가격 : 0 / 오늘 가격 : 0 일 때, 내일의 가격 예측

① 어제의 값과 오늘의 값을 순차적으로 입력값에 대입

 

② 어제의 값을 입력값에 넣고 w1, b1 activation function으로 중간값 y1 구함

    = yesterday input * w1 + b1 => activation function

 

③ y1을 w2, b2를 이용해 오늘의 값인 output 구할 수 있음. But 이미 오늘의 실제값 주어진 상태임

③ y1을 feedback loop를 통해 오늘의 값과 덧셈

    = (today input * w1) + (y1 * w2)

 

④ 오늘의 값과 y1을 연산한 후, activation function에 넣어 y2 값을 구함

 

⑤ w3, b2를 이용해 최종적으로 내일의 값 예측

    = y2 * w3 + b2

RNN 순환 과정을 펼쳐서 표현한 그림

 

 

  • 그저께 : 1 / 어제 : 0.5 / 오늘 : 0.5일 때, 내일의 가격 예측

※ feedback loop가 여러번 반복되어도 weights와 biases는 매번 동일

 

 

 

RNN 문제점 - The Vanishing/Exploding Gradient Problem

- The Vanishing/Exploding Gradient Problem(기울기 소실/폭주 문제)

: feedback loop가 많아질수록 가중치가 겹치면서 기울기가 소실되거나 폭주하는 현상

 

기울기 폭주 예시

 

- 기울기 폭주 문제를 해결하기 위해 가중치 값을 1보다 작게 하면 기울기 소실 문제 발생