Etc/Deep Learning

7장 시계열 분석(3) - LSTM

z.zzz 2021. 8. 25. 15:52

7.5 LSTM

RNN의 단점 : 기울기 소멸 문제(가중치 업데이트 과정에서 1보다 작은 값이 계속 곱해짐 → 기울기가 사라짐)

 - 해결 : LSTM, GRU 같은 확장된 RNN 방식 사용

 

7.5.1 LSTM 구조

1. LSTM 순전파

LSTM의 '기울기 소멸 문제' 해결 방법

은닉층의 각 뉴런망각 게이트, 입력 게이트, 출력 게이트 추가

 

 A. 망각 게이트

 망각 게이트란?

 과거 정보를 어느 정도 기억할지 결정함

 방법 : ① 과거 정보현재 데이터를 입력받음

         ② ①에 시그모이드를 취함

         ③ ②값 × 과거 정보

          ⇒ 시그모이드의 출력이 0이면 과거 정보를 버림(초기화)

                                         1이면 과거 정보를 보존(메모리에 유지)

          = 입력 값을 이용해서 이전 상태 정보를 현재 메모리에 반영할지 결정

 

 

 B. 입력 게이트

 입력 게이트란?

 현재 정보를 기억하기 위해 만들어짐

 현재 메모리에 새로운 정보를 반영할지 결정하는 역할

 방법 : ① 과거 정보, 현재 데이터를 입력받음

          ② 시그모이드와 하이퍼볼릭 탄젠트 함수를 기반으로 → 현재 정보에 대한 보존량을 결정

   - 계산한 값이 1이면 입력 xt가 들어올 수 있도록 허용

   - 계산한 값이 0이면 차단

 

 

 C. 셀

 메모리 셀이란?

 각 단계에 대한 은닉 노드

 셀 값 반영 방법 : 총합(sum)을 이용(←기울기 소멸 문제를 해결함)

 

 셀 업데이트 방법

 망각 게이트입력 게이트이전 단계 셀 정보를 계산 → 현재 단계의 셀 상태를 업데이트

왼쪽이 망각 게이트, 오른쪽이 입력 게이트의 셀

 

 

 D. 출력 게이트

 출력 게이트란?

 과거 정보, 현재 데이터를 사용 → 뉴런의 출력을 결정

 갱신된 메모리의 출력 값을 제어

   - 계산한 값이 1 : 의미있는 결과로 최종 출력

   - 계산한 값이 0 : 해당 연산 출력X

     //과거 정보 = 이전 은닉 상태

     // 현재 데이터 : t번째 입력

     // 출력: 다음 은닉 상태

 

📍LSTM 전체 게이트

 


2. LSTM 역전파

LSTM의 역전파 수행 : 을 통해서 수행

 

LSTM 셀 단위 역전파

최종 오차는 모든 노드에 전파됨

 - 이때 을 통해서 중단 없이 전파됨

 

 

 

단위 오차 전파 ⇒ 입력 방향으로 오차가 전파되지 않음(X)

 

셀 내부적으로는 오차입력(xt)으로 전파됨

 

 

 


💻실습 - 텐서플로 2로 LSTM 구현

RNN 실습과 동일한 데이터셋 사용

네트워크 구성만 LSTM을 이용

 

unfold(unroll)

https://dgkim5360.tistory.com/entry/understanding-long-short-term-memory-lstm-kr