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
'Etc > Deep Learning' 카테고리의 다른 글
7장 시계열 분석(4) - 게이트 순환 신경망(GRU) (0) | 2021.08.25 |
---|---|
7장 시계열 분석(2) - RNN 구조(계층, 셀) + RNN 셀 구현 (0) | 2021.08.21 |
7장 시계열 분석(1) - 시계열 데이터 분류, 시계열 분석 모델, 순환 신경망(RNN), RNN계층과 셀 (0) | 2021.08.21 |
6장 합성곱 신경망Ⅱ(5) - 이미지 분할을 위한 신경망(U-Net부터 내용추가하기) (0) | 2021.08.17 |
6장 합성곱 신경망(4) - 객체 인식을 위한 신경망(R-CNN, 공간 피라미드 풀링, Fast R-CNN, Faster R-CNN) (0) | 2021.08.12 |