1) RNN이란?
RAN(순환신경망, Recurent Neural Network)은 주로 시계열 문적, 자연어 처리 등 순서가 있는 데이터에 사용하면 좋은 결과가 있는 모델이다. 실제로 주식, 파생상 품, 기상, 전력량 등을 계산할 때 매우 유효하고 캐글이나 해커톤 등의 대회에서 시계 열 문제를 다룰 때 많이 사용된다.
https://www.youtube.com/watch?v=PahF2hZM6cs&ab_channel=MinsukHeo%ED%97%88%EB%AF%BC%EC%84%9D 영상에 자세하게 나와있어서 링크 첨부!
2) SimpleRNN
가장 기본적인 RNN
x의 행의 수 = y의 벡터 크기
1~5까지의 인풋으로 6이 나오고, 2~6까지의 인풋으로 7이 아웃풋, 마지막 3~7까지의 인풋으로 8이 나오는 모델 훈련
<주의하기>
여기서 input_shape에서의 5는 x의 열의 수를 나타냄
뒤에 오는 1은 몇 개씩 자르는 지를 나타냄
input_shape = samples = time steps = feature ... 모두 정식용어로 혼용해서 사용함
https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH07/ch07_1.py
3) LSTM
RNN에서 가장 많이 쓰이는 모델
SimpleRNN보다 파라미터의 수도 많고, 성능이 좋다
첫 번째 히든 레이어에 SimpleRNN 대신 LSTM을 사용해서 구현함
https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH07/ch07_2.py
4) GRU
LSTM을 보완해 만든 뉴욕대학교 조경현 교수가 만든 모델.
LSTM의 아웃풋 게이트를 두지 않고 LSTM을 간단하게 변경한 구조이다. (약간 축소했다고 생각하면 됨)
속도는 LSTM보다 빨라지고, 성능은 거의 비슷하다.
https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH07/ch07_3.py
5) Bidirectional
우선 RNN으로 진행시킨 후 역으로 다시 훈련을 시키는 방법 -> 1개의 데이터 셋으로 2번 훈련시키는 효과!
LSTM의 2배의 파라미터를 잡기 때문에 약 2배 정도 느려지는 것을 알 수 있다.
https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH07/ch07_4.py
6) LSTM 레이어 연결
현재까지는 RNN 모델 다음에 바로 Dense층을 연결했다. 하지만 LSTM층에서도 2개 이상을 연결할 수 있다.
LSTM 하단에 LSTM을 추가하는 방식으로 구현한다.
LSTM을 무조건 2개 이상 엮는다고 좋아지지는 않는다. 적은 데이터일수록 더더욱 좋아지지 않는 것을 알 수 있다.
하이퍼파라미터를 튜닝할 경우 훨씬 더 좋은 성능이 나올 수 있다.
결국 최종 성능 판단은 최종 acc나 지표로 확인하는 것이 좋고, 하이퍼파라미터 튜닝을 최대한 많이 해보는 것이 중요하다.
https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH07/ch07_5.py
하이퍼파라미터튜닝이란?
'DeepLearning' 카테고리의 다른 글
딥러닝으로 걷는 시계열 예측 [CH10] RNN 모델 정리 (0) | 2023.06.29 |
---|---|
딥러닝으로 걷는 시계열 예측 [CH08] 케라스 모델의 파라미터들과 기타 기법들 (0) | 2023.06.20 |
딥러닝으로 걷는 시계열 예측 [CH06] 회귀 모델 총정리 (0) | 2023.05.24 |
딥러닝으로 걷는 시계열 예측 [CH05] 앙상블 (0) | 2023.05.23 |
딥러닝으로 걷는 시계열 예측 [CH04] 회귀 모델의 판별식 (0) | 2023.05.20 |