[딥러닝] RNN(LSTM-동작)

Peter·2021년 7월 8일
0

딥러닝

목록 보기
43/47

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 동작

  • 전체적으로 위와 같은 과정이 계속 반복되는것
profile
컴퓨터가 좋아

0개의 댓글