LSTM이란?
RNN은 결정적 단점이 있다. 가중치가 업데이트되는 과정에서 기울기가 1보다 작은 값이 계속 곱해지면 기울기가 사라지는 기울기 소멸 문제가 발생한다. 또한, 일반적으로 기본 순환층은 긴 시퀀스를 학습하기 어렵다. 시퀀스가 길수록 은닉 상태에 담긴 정보가 점차 희석되기 때문이다. 따라서 멀리 떨어져 있는 단어 정보를 인식하는 데 어려울 수 있다. 이러한 문제를 해결하기 위해 게이트 구조를 사용하여 정보를 장기간 기억하기 위해 고안되었다.
LSTM에서 사용되는 각 게이트에 대해 알아보자.
망각 게이트

망각 게이트(forget gate)는 과거 정보를 어느 정도 기억할지 결정한다. 과거 정보와 현재 데이터를 입력받아 시그모이드를 취한 후 그 값을 과거 정보에 곱해준다. 따라서 시그모이드의 출력이 0이면 과거 정보는 버리고, 1이면 과거 정보는 온전히 보존한다.
입력 게이트

입력 게이트(input gate)는 현재 정보를 기억하기 위해 만들어졌다. 과거 정보와 현재 데이터를 입력받아 시그모이드와 하이퍼볼릭 탄젠트 함수를 기반으로 현재 정보에 대한 보존량을 결정한다. 즉, 현재 메모리에 새로운 정보를 반영할지 결정하는 역할을 한다. 여기서 시그모이드 함수는 새로운 정보의 중요도를 결정하고, 찬젠트 함수는 실제 추가될 정보를 생성한다.
셀

일반적인 RNN에서는 간단한 구조의 노드(뉴런)를 사용하지만, LSTM에서는 셀이라고 부르는 더 복잡한 구조를 사용한다. 셀(cell)은 각 단계에 대한 은닉 노드이다. 셀은 각 타임 스텝에서 정보를 처리하고 기억하는 역할을 한다. 시간이 지남에 따라 정보를 셀 상태에 추가하거나 제거함으로써, 중요한 정보를 오랫동안 유지하고 불필요한 정보를 잊을 수 있다. 망각 게이트와 입력 게이트의 이전 단계 셀 정보를 계산하여 현재 단계의 셀 상태를 업데이트한다.
출력 게이트

출력 게이트(output gate)는 과거 정보와 현재 데이터를 사용하여 뉴런의 출력을 결정한다. 이전 은닉 상태와 t번째 입력을 고려해서 다음 은닉 상태를 계산한다. 그리고 LSTM에서는 이 은닉 상태가 그 시점에서의 출력이 된다.

이러한 과정을 통해 LSTM은 시퀀스의 각 시점에서 어떤 정보를 기억하고, 무시하며, 출력할지를 결정한다. 이를 통해 장기 의존성 문제를 해결하고 시퀀스 데이터를 효과적으로 처리할 수 있다. LSTM은 자연어 처리, 음성 인식, 시계열 예측 등 다양한 분야에서 활용된다.
- 자연어 처리(NLP) : 문맥 이해 (문장이나 문단에서 단어의 순서와 문맥을 이해) 등
- 음성 인식 : 음성 시퀀스 처리 (시간에 따라 변하는 음성 데이터의 시간적 특성을 분석하여 텍스트로 변환) 등
- 시계열 예측 : 금융 시장, 기상, 수요 등 시간에 따른 데이터 예측 등
'인공지능 > Deep Learning' 카테고리의 다른 글
[DL] LSTM으로 전력 사용량 예측하기 (데이콘) - 단일 변수 (0) | 2023.11.26 |
---|---|
[DL] RNN으로 IMDB 리뷰 분류하기+단어 임베딩 (0) | 2023.11.05 |
[DL] RNN(Recurrent Neural Network : 순환 신경망) (0) | 2023.11.03 |
[DL] CNN으로 CIFAR10 dataset 분류하기 (0) | 2023.09.21 |
[DL] CNN(Convolutional Neural Network : 합성곱 신경망) (0) | 2023.09.18 |
댓글