RNN의 은닉 노드
- 기본적인 RNN의 구조
- 입력에서 은닉층연산을 할때 그동안 누적된 은닉층 값을 받아서 연산을 진행
LSTM의 동작
- LSTM에서 출력 게이트와 입력 개폐구 값이 1.0으로 고정되면 RNN과 다를게 없음
- 이 값들은 가중치와 신호 값에 따라 정해지고 개폐 정도를 조절함(RNN과 차별성)
입력단, 입력게이트, 출력게이트에서 계산
- g,i,o 값은 가중치 u,w, 현재 순간의 입력벡터 x, 이전 순간의 상태 h에 따라 결정
- \tau_g 는 tanh, \tau_f는 logistic sigmoid 주로 사용
- 입력 개폐구의 값 i가 0.0에 가깝다면 g*i는 0.0에 가깝게 되어 입력단을 차단
- 1.0에 가깝다면 그대로 전달하는 효과
메모리 블록의 상태
- 현재 메모리 블럭은 하나 전 메모리 블럭에서 입력값에 입력게이트를 곱한값을 더한 값
- 입력 개폐구의 값 i이 0.0이면 g*i는 0이 되어 이전 상태와 같게 됨(입력 개폐구가 차단되어 이전 내용을 그대로 기억)
- 이전 입력의 영향력을 더 멀리 확장하는 효과
출력단 계산
- o가 출력 개폐구 정도를 조절
- 계산결과인 h_j는 Q개의 출력 노드로 전달되어 출력단 계산에 사용
- 입력단, 입력 개폐구, 출력 개폐구에 있는 노드로 전달되어 t+1 순간의 계산에 이용됨
수식 정리
LSTM 구조에 따른 경사 흐름 개선
- 중간중간 셀(메모리)가 위치하고 원래 흐르던 셀과 새로 입력단에서 오는 셀이 합쳐져서 다음 은닉층으로 진행된다는 것이 ResNet 구조와 닮았음
망각 개폐구 동작
- 은닉층에서 넘어온값과 입력값을 연산한 값이 첫번째로 망각개폐구로 흘름
입력 개폐구 동작
셀 상태 갱신
- 입력개폐구에서 정해진 양과 망각개폐구에서 결정된 정보가 합쳐져
다음 은닉층으로 전달됨
아웃풋 개폐구
- 다음 은닉층으로 전달될 셀과 출력 개폐구를 거친 값이 곱해져 다음 은닉층 정보로 전달됨
시간에 따른 LSTM 동작