일반적인 feed forward 신경망은 흐름이 단방향이라 시계열 데이터의 성질을 충분히 학습하기 어렵습니다.

다음과 같이 문장 내 단어 순서가 무시되거나 아니면 맥락의 크기에 비례해 가중치 매개변수가 늘어나게 됩니다. 이러한 문제를 해결하기 위해 RNN(순환 신경망)을 통해 과정의 정보를 기억하는 동시에 최신 데이터를 갱신하는 신경망이 등장하게 됩니다.

입력은
이러한 RNN은 Long-Term Dependencies라는 시퀀스 데이터의 길이가 길어질수록, 과거의 중요한 정보에 대한 학습이 어려워지는 문제가 존재합니다. 과거 기울기를 전달함에 따라 장기 의존 관계를 학습할 수 있지만 중간에 기울기가 사라지거나 너무 커지게 되면 장기 의존 관계를 학습할 수 없습니다.
기울기 소실과 폭발의 원인은 BPTT과정에서 기울기를 변환시키는 tanh과 행렬곱으로 생기게 됩니다.

위의 사진은 tanh를 의미하는데 이 함수의 미분값은 1과 0 사이이므로 역전파에서 기울기가 tanh 노드를 지날 때마다 그 값이 작아지게 됩니다. 행렬곱 노드를 지날 경우 매번 같은 가중치
이러한 문제를 해결하기 위한 방법으로 기울기 클리핑을 사용하거나 LSTM라는 기울기 소실에 대응하기 위한 게이트가 추가된 RNN을 사용하면 됩니다.

LSTM의 게이트는
- forget gate: 과거의 정보
- input gate: 새로 추가되는 정보 g의 가치를 판단하는 게이트
- output gate: tanh(
게이트를 얼마나 열지 0.0 ~ 1.0 사이의 실수로 나타냅니다. 1.0에 가까울수록 비중을 크게 해서 데이터를 내보냅니다.

과거의 hidden state

RNN에서 구현했던 것처럼

LSTM에서 기울기 소실이 발생하기 어려운 이유는

+노드에서 상류에서 전해지는 기울기를 그래도 흘리므로 기울기 변화가 없습니다. x노드는 똑같은 가중치 행렬을 행렬곱하는 것이 아니라 매 시각마다 다른 게이트 값을 이용한 아다마르 곱을 하기에 매번 새로운 게이트 값을 이용하므로 곱셈의 효과가 누적되지 않아 기울기 소실이 일어나기 어렵습니다.
'BOAZ > 데이터 분석' 카테고리의 다른 글
6. GAN and Reinforcement Learning (0) | 2022.08.26 |
---|---|
4. CNN (0) | 2022.08.18 |
3. Ensemble and Random Forest (0) | 2022.08.09 |
2. Decision Tree and SVM (0) | 2022.08.03 |
[핸즈온 머신러닝] 3장 (0) | 2022.07.31 |