RNN은 시간에 따라 변화하는 데이터를 얘측할 때 사용된다.
stationary( 변화없는 )데이터
NON - stationary 데이터
둘 중에 무엇이든 이러한 데이터들은 이전의 값들이 필요하다. 그러나 CNN, FCN을 사용하면 이전 값들이 그냥 소멸되게 된다.
위 사진이 RNN에 대한 기본 원리 이다.
이렇게 RNN이 들어가면 t1 -> t n 까지 모든 결과가 모든 input들을 포함하게 된다.
위의 사지을 보면 확실히 뒤에 있는 부분은 미분이 많이 들어가서 gradient 소실이 크게 보인다. 그리하여 vanish나 explode를 막기 위해 LSTM을 사용하게 되었다.
LSTM Long Short Term Memory
LSTM을 이해하려면 gate 구조를 이해해야 된다.
gate구조는 open과 close를 통해 이 값을 저기에 줄지, 안 줄지를 결정할 수 있다.
여기서 Ct 는 장기기억이고, ht는 단기기억이다.
이 수식을 그냥 보면 너무 복잡하다. 하나하나 차근차근 해결해 보겠다.
여기서 sigmoid는 0(forget)과 1(유지)로 나누기 때문에 위에서 봤던 게이트 역활을 하게 된다.
위 과정을 통해 LSTM이 업데이트 되게 된다.
LSTM을 살짝 바꿔서 무조건 forget한 데이터를 업데이트 하는 방식도 있다.
단점으로는 시간 하나 하나 마다 FCN이 생기기 때문에 느리고, gradient의 vanishing과 exploding이 여전히 존재하고, 장기 기억이 어렵다는 것이다.
LSTM의 구현 코드는 저번에 apple 주식 맞추기로 있다.
2023.12.07 - [인공지능/공부] - TensorFlow - LSTM을 사용하여 apple 주식 예측하기
'인공지능 > 공부' 카테고리의 다른 글
인공지능 Initialization, Regularization, Transfer Learning (50) | 2023.12.16 |
---|---|
인공지능 backpropagation, optimization- 개념 (0) | 2023.12.16 |
생성형 인공지능 GAN 개념 - autoencoder의 업그레이드 버전 (45) | 2023.12.15 |
물체의 위치까지 구분하는 인공지능 -segmentation, odject detection (45) | 2023.12.15 |
생성형 인공지능 Autoencoder - 개념 (43) | 2023.12.14 |