티스토리 뷰

딥러닝

[3] LSTM(Long Short-Term Memory)

up_one 2024. 6. 27. 13:35

이번 포스팅에서는 2024.06.21 - [프로젝트] - [Time Series Forecasting] FinaceDataReader을 이용한 LSTM 시계열분석에서 주식 종목의 종가와 같은 시계열 데이터를 분석하기 위해 활용되었던 LSTM(Long Short-Term Memory)에 대해 포스트 하겠습니다.

 

[Time Series Forecasting] FinaceDataReader을 이용한 LSTM 시계열분석

투자하고 있는 주식 종목의 미래 가치를 예측하여 자산 관리에 도움이 될 수 있도록 하기 위해 이 프로젝트를 교내 학회에서 진행하였습니다. 1. Dataset 설명2. Data Preprocessing3. Modeling4. 확장점 1.

up-one-coding.tistory.com

 

시계열 데이터는 데이터가 시간의 흐름에 따라 관측되며 현재 상태가 과거 상태의 영향을 받는 데이터입니다. 따라서 미래의 데이터를 예측하기 위해 과거 상태와 현재 상태를 어떻게 반영할 것인지가 중요합니다. LSTM(Long Short-Term Memory)은 Cell State 구조를 통해 3가지 상태 게이트를 추가하여 장기 의존성 문제를 완화한 딥러닝 시계열 모델입니다. 장기 의존성 문제란 과거 상태의 정보를 반영하는 길이가 길어질수록 과거 정보를 학습에 반영하기가 어려운 상황을 의미합니다. 즉, 과거 정보에 대한 학습 가중치가 Gradient Vanishing로 인해 0으로 수렴되는 것을 LSTM(Long Short-Term Memory)이 해결해 주는 것입니다.

 

LSTM 구조

 

 

LSTM이 이전 시점의 정보를 반영하고 다음 layer로 정보를 전달하는 방식은 특정 layer에서 다른 layer로의 가중치와 변수값을 곱하면서 이뤄집니다. 이때 중요한 것은 각 Cell에서 이뤄지는 State를 결정하기 위한 연산입니다. State 중 Cell State는 정보의 흐름과 망각 여부가 바뀌지 않고 이전 시점에서 현재 시점으로 그대로 전달되는 상태를 뜻합니다. 이 Cell State을 바탕으로 Gate라는 것을 추가하는 것이 LSTM 계층을 조립하는 것의 시작입니다.

Cell state을 바탕으로 hidden state을 계산하는 LSTM

 

< 특정 layer에서 다른 layer로의 가중치 (Parameter)>

1. hidden layer에서 반응 변수로의 가중치

2. 설명 변수 layer에서 hidden layer로의 가중치

3. 이전 시점 hidden layer에서 현재 시점 hidden layer로의 가중치

 

위 파라미터를 이용하여 Cell State의 Gate를 추가할 수 있습니다. Cell State에 저장된 기억을 토대로 외부 계층에 hidden state을 출력할 수 있습니다. 이를 위해서는 tanh함수를 Cell State 값에 적용해 변환시키는 것이 중요합니다. 이제부터 LSTM에서 필요한 Gate에서 이뤄지는 연산을 살펴보고 각 Gate가 Cell state에서 어떻게 만나 최종적으로 어떤 정보를 내보낼지 결정하는 과정을 살펴보겠습니다.

 

1. Output Gate

Output Gate는 어떤 정보를 내보낼지 결정하기 위한 역할을 맡습니다. 즉 현재 시점의 입력 Xt와 이전 시점의 ht로부터 정보를 얼마큼 다음 시점으로 보낼 것인지 결정하는 연산이 진행됩니다. 어떤 정보를 다음 시점으로 전달하기 위해서는 가중치 매개변수와 상태에 대한 값을 곱한 값에 Sigmoid 연산을 취해야 합니다. Sigmoid 연산은 값을 0 ~ 1의 값으로 변환시키기 때문에 1에 가까울수록 다음 시점까지 값을 전달한다라는 의미로 이해할 수 있습니다.

Output gate 추가

 

Output gate에서의 연산

 

2. Forget Gate

Forget Gate는 Output Gate의 그림에서 표시된 어떤 계산을 담당하는 Gate입니다. 즉, 불필요한 과거 정보를 잊기 위한 연산을 통해 출력값을 산출합니다. 이 출력값과 이전 시점의 Cell State과의 원소별 곱을 계산하여 현재 시점의 Cell State를 구할 수 있습니다. 

Forget Gate 추가

 

Forget gate 연산

 

3. 임시 Cell State

현재 시점의 Cell State를 구하기 위해서는 이전 시점의 정보에서 일부를 잊는 것뿐만 아니라 새롭게 들어오는 정보도 기억해서 현재 시점으로 보내줘야 합니다. 다만 다른 Gate에서 Sigmoid 연산을 통해 전달하는 방식 대신 tanh 함수를 적용하여 정보의 중요도로 해석되는 값을 출력합니다. 즉, Gate의 역할 관점에서, 정보의 중요도에 따라 얼마큼 전달할 것인지를 비율을 결정하는 것입니다.

임시 Cell State 추가

 

임시 Cell state에 대한 연산

 

4. Input Gate

Input Gate는 현재 정보를 기억하기 위한 Gate로, 들어오는 정보에 대한 가중치를 설정하는 연산을 진행합니다. 즉 최종적으로 임시 Cell State에 대한 원소별 곱을 계산하고 Forget gate 값과 더해 현재 시점의 Cell state 값을 산출할 수 있습니다.

Input Gate 추가

 

Input Gate 연산

 

LSTM의 동작원리를 정리하자면, 이전 시점의 정보 중 불필요한 것은 잊고, 현재 시점의 정보 중 중요도가 높은 것은 가중치를 곱해 산출한 다음, 이 둘을 Cell State로 보내 어떤 정보를 다음 시점으로 전달할지 최종적으로 전달하는 과정입니다. LSTM과 같은 딥러닝 시계열 모델은 과거 정보에 대한 처리가 유용하고 정상성을 요구하지 않습니다. 또한 ARIMA 모델의 차수, 계절성에 따른 파라미터를 결정하는 프로세스가 없기 때문에 성능이 좋은 장점이 있습니다.

'딥러닝' 카테고리의 다른 글

오차역전파법(Backpropagation)  (2) 2024.07.16
적대적 생성 신경망(GAN)  (0) 2024.07.11
RNN (Recurrent Neural Network)  (0) 2024.07.08
[2] 합성곱 신경망 (CNN) PART2  (0) 2024.06.24
[1] 합성곱 신경망 (CNN) PART 1  (0) 2024.06.23
TAG more
글 보관함
최근에 올라온 글