1. 장기 의존성 문제(the problem of Long-Term Dependencies)
바닐라 RNN은 출력 결과가 이전의 계산 결과에 의존한다는 특징이 있다. 따라서 바닐라 RNN은 비교적 짧은 시퀀스에서 효과를 보이는 단점이 있다. 즉, 시퀀스가 길어질수록 앞의 정보가 뒤의 정보에 충분히 전달되지 못하는 것이다. 이처럼 RNN의 Memory가 충분한 정보를 기억하지 못한다면, 정확한 예측에 실패할 수 있습니다. 이를 장기 의존성 문제라고 합니다.
2. LSTM과 바닐라 RNN 비교
바닐라 RNN의 장기 의존성 문제를 보완한 것이 LSTM인데, LSTM은 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 정합니다. 즉, 바닐라 RNN에 비해 더 복잡해졌으면 cell state라는 값을 추가하였습니다. 따라서 LSTM은 바닐라 RNN에 비해 긴 시퀀스를 처리하는데 더 뛰어난 성능을 보입니다.
입력 게이트
- \(i_t = \sigma(W_{ix}x_t+W_{hi}h_{t-1}+b_i)\)
- \(g_t = tanh(W_{xg}x_t + W_{hg}h_{t-1}+b_g)\)
입력 게이트는 현재의 정보를 기억하기 위한 게이트로 현재 시점 t의 입력 값 \(x_t\)값과 입력 게이트로 이어지는 가중치를 곱한 값과 이전 시점의 t-1의 은닉 상태가 입력게이트로 이어지는 가중치를 곱한 값을 더하여 시그모이드 함수를 통과한다. 이와 같은 방식으로 하나는 하이퍼볼릭탄젠트 함수를 통과한다. 이 두 값의 결과를 갖고 기억할 정보의 양을 구하게 된다.
삭제 게이트
- \(f_t = \sigma(W_{xf}x_t+W_{hf}h_{t-1}+b_f)\)
삭제 게이트는 기억을 삭제하기 위한 게이트로 \(x_t\)값과 이전 시점의 \(h_{t-1}\)이 시그모이드 함수를 통과하게 된다. 시그모이드 함수를 통과하면 0에서 1 사이의 값이 나오게 되는데 이 값이 곧 삭제 과정을 거친 정보의 양이다. 0에 가까울수록 많이 삭제된 것이고 1에 가까울수록 적게 삭제된 것이다.
셀 상태(장기 상태)
- \(C_t = f_tC_{t-1}+i_tg_t\)
셀 상태 \(C_t\)를 LSTM에서는 장기 상태라고 부른다. 일단 시작은 삭제 게이트를 지나서 일부 기억을 잃어버린 상태이다. 앞서 입력 게이트에서 구한 i와 g의 값을 원소별 곱(Entrywise product)을 진행해준다. 이 것이 이번 t시점에서 기억할 기억이다. 이제 두 값을 더하면, 이것이 \(C_t\)가 된다. 이를 t+1기의 LSTM Cell로 넘기게 된다.
결과적으로 삭제 게이트와 입력게이트를 통해서 이전 시점의 입력과 현재 시점의 입력을 얼마나 반영할 것인지를 계산하여서 다음기로 넘기는 것이다.
출력 게이트와 은닉 상태(단기 상태)
- \(o_t = \sigma(W_{xo}x_t+W_{ho}h_{t-1}+b_o)\)
- \(h_t = o_t*tanh(c_t)\)
출력 게이트는 \(x_t\)값과 \(h_{t-1}\)값에 가중치를 곱해서 시그모이드 함수를 지난 값이다. 해당 값은 \(h_t\)의 값을 결정하는 사용 된다. 앞서 구한 \(C_t\)값(장기 상태 값)을 하이퍼볼릭탄젠트 함수에 넣어 나온 값과 앞서 구한 값을 원소별 곱(Entrywise product)을 한 결과가 \(h_t\)이다.
'DL Study' 카테고리의 다른 글
#2 Autoencoder의 모든 것 - Manifold Learning (2) | 2022.09.15 |
---|---|
#1 Autoencoder의 모든 것 - 2가지 관점으로 DNN Loss 함수 이해하기 (0) | 2022.09.14 |
Recurrent Neural Network (0) | 2022.09.12 |
Convolution Neural Network (0) | 2022.09.08 |
기울기 소실과 폭주 (0) | 2022.09.07 |