RNN/LSTM

Flash·2022년 7월 29일
0

아직 대학생이라 월급도 없지만 앞으로 취직을 해 월급을 열심히 벌어도
월급만으로는 '자가'를 마련하는 것은 택도 없다고 한다.

그로인해 요즘 세간의 주식 시장에 대한 관심은 폭등했고 최근 주식 시장은 크게 하락중이다...

주가가 하락하는 이유는 굉장히 복합적으로 결정되기 때문에 그래프만으로 판단할 수 없지만
그래프를 분석하는 것을 통해서 주가 예측을 하는 것이 유의미한 지 공부해보려 한다.

주식 그래프는 '시계열 데이터'로 시간의 흐름에 관련한 데이터를 의미힌다.

기존의 신경망은 '이전 상황'을 고려하여 '이후의 상황'을 판단하도록 설계되지 않았고
따라서 RNN을 개발하게 된다.

시계열 데이터를 분석하기 위해서는 기본적으로 RNN을 알아야 하므로 RNN에 대해서 학습했다.

http://cs231n.stanford.edu/2016/syllabus.html 의 강의자료를 주로 참고하여 학습했다.


RNN(Recurrent neural network

순환 신경망, RNN은

  • 자연어 처리, 음성 인식, 날씨 예측, 주가 예측과 같은 Sequece Data를 처리하는 신경망이다.
  • 예시로 Text Generation, Speech Recognition, Image/Video Captioning 등이 있다
    아래는 Text Generation의 예시로 'hell'을 통해서 'ello'를 예측하여 hello를 완성할 수 있다.
    Output layer에 softmax 함수를 적용하거나 적용하지 않더라도 one hot encoding을 통해서 predict 할 수 있음. Softmax 함수를 이용하면 cost를 구할 수 있다.
    아래의 예시에서는 앞의 두 예측은 예측에 오류가 난 것을 확인할 수 있다.

RNN의 Forwarding, Backward 연산 및 구조

  • 보통 활성화 함수로 tanh를 사용하게 되고 ReLU를 사용할 수 도 있다고 한다.

RNN의 입출력 형태는 one to one, many to one, one to many, many to many 모두 가능하다.

RNN은 고려해야 하는 시간이 길어질 수록 은닉층에서 정보를 기억하기 어려워 학습이 어렵다. 이는 'Vanishing Gradient problem' 때문이다.
[출처] : Kaggle, DS & ML

따라서 LSTM을 제안한다.


RNN(Recurrent neural network

LSTM은 Long-term data를 잘 기억하기 위해 Long-term memory를 제안하는데 이것이 cell state c이다.

은닉층에 cell state가 추가되어 셀의 상태가 계속 전달되고 이를 통해 정보를 보존할 수 있다.

LSTM은 input gate, forget gate, output gate를 추가하여 정보를 유용하게 이용한다.

LSTM 이외에도 한국인 교수가 개발한 GRU model도 훌륭한 RNN의 일종이라고 한다.

profile
Whiplash We Flash

0개의 댓글