728x90
반응형
LSTM의 인터페이스
- LSTM이 기울기 소실을 일으키지 않는다.(일으키기 어렵게 한다.)
- LSTM은 RNN에 게이트 추가
단순화된 도법을 적용한 RNN 계층
- tanh계산을 노드 하나로 그림
RNN 계층과 LSTM 계층 비교
- c라는 경로가 있다는 차이가 있다.
- c를 기얽 셀(memory cell(혹은 단순한 '셀'))이라 하며, LSTM의 기억 메커니즘이다.
- 기억 셀의 특징은 데이터를 자기 자신으로만(LSTM 계층 내에서만) 주고받는다는 점이다.
- LSTM 계층 내에서만 완결되고, 다른 계층으로는 출력하지 않는다.
- LSTM의 은닉 상태 h는 RNN 계층과 마찬가지로 다른 계층으로(위쪽으로) 출력된다.
LSTM 계층 조립하기
- 기억셀 ct에는 t에서의 LSTM의 기억이 저장돼 있<는데, 과거로부터 시각 T까지에 필요한 모든 정보가 저장돼 있다고 가정한다.
- 필요한 정보를 모두 간직한 이 기억을 바탕으로, 외부 계층에 은닉 상태 h를 출력한다.
- 출력하는 ht는 기억 셀의 값을 tanh 함수로 반환한 값이다.
기억셀 ct를 바탕으로 은닉 상태 ht를 계싼하는 LSTM 계층
게이트란
- '문'을 의미하는 단어
- 게이트는 데이터의 흐름을 제어한다.
- 물의 흐름을 멈추거나 배출하는 것이 게이트의 역할
- 다음 단계로 흘려보낼 물의 양을 제어할 수 있다.
output 게이트
- tanh(ct)의 각 원소에 대해 '그것이 다음 시각의 은닉 상태에 얼마나 중요한가'를 조정한다.
- 이 게이트는 다음 은닉 상태 ht의 출력을 담당하는 게이트이므로 output게이트(출력 게이트)라고 한다.
- 열림 상태(다음 몇 %만 흘려보낼까)는 입력 xt와 이전 상태 ht-1로부터 구한다.
- 가중치 매개변수와 편향에는 output의 첫 글자인 o를 첨자로 추가한다.
output 게이트 추가
- '곱'이란 원소별 곱이며, 아다마르 곱(Handamard product)이라고도 한다.
forget 게이트
- ct-1의 기억 중에서 불필요한 기억을 잊게 해주는 게이트가 forget 게이트(망각 게이트)라고 한다.
forget 게이트 추가
forget 게이트가 수행하는 계산
- 출력 f
- f와 이전 기억 셀인 ct-1과의 원소별 곱, ct = f⊙ct-1을 계산해 ct를 구한다.
새로운 기억 셀
- 새로 기억해야 할 정보를 기억셀에 추가 tanh 노드 추가
새로운 기억 셀에 필요한 정보를 추가
- tanh 노드가 계산한 결과가 이전 시각의 기억 셀 ct-1에 더해진다.
tanh 노드에서 수행하는 계산
input 게이트
- g에 게이트 추가
input 게이트
- input 게이트는 g의 각 원소가 새로 추가되는 정보로써의 가치가 얼마나 큰지를 판단한다.
- 새 정보를 무비판적으로 수용하는 게 아니라, 적절히 취사선택하는 것이 이 게이트의 역할이다.
- input 게이트에 의해 가중된 정보가 새로 추가되는 셈이다.
input 게이트 수행 계산
LSTM의 기울기 흐름
기억 셀의 역전파
- 기억 셀의 역전파에서는 '+'와 'x' 노드만을 지나게 된다.
- '+'노드는 상류에서 전해지는 기울기를 그대로 흘릴 뿐이다.
- 'x'노드는 '행렬 곱'이 아닌 '원소별 곱(아마다르 곱)'을 계산한다.
- 매 시각 다른 게이트 값을 이용해 원소별 곱을 계산한다.
- 매번 새로운 게이트 값을 이용하므로 곱셈의 효과가 누적되지 않아 기울기 소실이 일어나지 않는(혹은 일어나기 힘든) 것이다.
- 'x' 노드의 계산은 forget 게이트가 제어한다.
- forget 게이트가 '잊어야 한다'고 판단한 기억 셀의 원소에 대해서는 그 기울기가 작아진다.
- '잊어서는 안된다'라고 판단한 원소에 대해서는 기울기가 약화되지 않고 과거 방향으로 전해진다.
LSTM(Long Short-Term Memory) 단기기억을 긴 시간 지속할 수 있음을 의미
출처 : 밑바닥부터 시작하는 딥러닝2
https://www.hanbit.co.kr/store/books/look.php?p_code=B8950212853
728x90
반응형
최근댓글