장단기 메모리(LSTM)

하영영·2023년 5월 1일
0

NLP

목록 보기
9/17

🧜‍♂️ (바닐라)RNN의 한계


  • 바닐라 RNN : 가장 단순한 형태의 RNN
  • 비교적 짧은 시퀀스에 대해서만 효과를 보임

  • 장기 의존성 문제 : 바닐라 RNN의 시점이 길어질수록 앞의 정보가 뒤로 충분히 전달되지 못함(과거의 값들이 희석되는 문제)
    ex) 나는 오늘 기분이 무척이나 나빴지만 밥이 맛있어서 기분이 다시 좋아졌다.

    '기분이 좋아졌다'가 핵심 포인트지만 '나빴다'라는 단어가 너무 초반에 등장해 뒷단까지 충분히 전달되기 어려울 수 있다. -> 장기 의존성 문제



👩‍🔧 LSTM(장단기 메모리) 열어보기


  • LSTM(Long Short-Term Memoty) -> RNN의 단점 보완(장기 의존성 학습 가능)


  • LSTM의 은닉층-출력층 연산은 RNN과 동일
  • LSTM의 핵심 아이디어 : 이전 단계의 정보를 memory cell에 저장하여 흘려보냄
    현 시점의 정보를 바탕으로 과거의 내용을 얼마나 잊을지 곱해주고(삭제 게이트), 그 결과에 현재의 정보를 더해서 다음 시점으로 정보를 전달(셀 상태)





🤶 LSTM


  • 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트 추가
  • 불필요한 기억 지우고, 기억해야할 것을 정함
  • 기존의 RNN에서 셀 상태(cell state) 추가




  • RNN 처럼 이전 시점의 셀 상태가 다음 시점의 셀 상태를 구하기 위한 입력으로 사용됨





👉 입력 게이트, 망각 게이트, 출력 게이트

  • 셋 모두 시그모이드 함수 존재 (0~1사이의 값 출력 -> 이 값들로 게이트 조절)



1) 입력 게이트

: 현재 정보를 기억하기 위한 게이트

  • i_t와 g_t를 가지고 선택된 기억할 정보의 양을 정한다.



2) 삭제 게이트(망각 게이트)

  • f_t는 0~1사이의 값을 가짐.
  • f_t는 삭제 과정을 거친 정보의 양
  • 0에 가까울수록 정보가 많이 삭제된 것 / 1에 가까울수록 정보를 온전히 기억함
  • f_t를 가지고 셀 상태를 구한다.



3) 셀 상태

  • f_t는 삭제 게이트에서 일부 기억을 잃은 상태이다.

  • 입력게이트의 i_t와 g_t의 원소별 곱(o)(: 같은 크기의 두 행렬을 같은 위치의 성분끼리 곱하는 것) -> 선택된 기억할 값

  • i_t o g_t(입력 게이트에서 선택된 기억) + f_t o C_t-1(삭제 게이트의 결과값) = C_t
    = 다음 t+1시점의 LSTM 셀로 넘겨짐

  • 즉, 각 게이트의 영향력은
    삭제 게이트 - 이전 시점의 입력을 얼마나 반영할지
    입력 게이트 - 현재 시점의 입력을 얼마나 반영할지
    (한쪽 게이트가 0이 될 경우를 가정해보라)



4) 출력 게이트와 은닉 상태

  • 이 값은 현재 시점 t의 은닉 상태를 결정할 때 쓰임
  • tanh이므로 값은 -1~1
  • 이 값은 출력 게이트의 값과 연산되어 값이 걸러짐(은닉 상태)







profile
NLP 공부중

0개의 댓글

관련 채용 정보