Rohdy
Rohdy의 study
Rohdy
전체 방문자
오늘
어제
  • 분류 전체보기 (32)
    • 석사 이야기 (0)
    • DL Study (17)
    • Pr4AI Study (1)
    • RecSys (3)
    • GraphMining (9)
    • 논문 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sigmoid
  • ML
  • IDGL
  • KAIST
  • gradientdescent
  • 2020
  • 로지스틱
  • logistic
  • 데이터사이언스
  • 대학원
  • 대학원컨택
  • 시그모이드
  • NeurIPS
  • 연세대
  • GSDS
  • 컨택
  • 대학원면접
  • 대학원입시
  • 정보대학원
  • 대학원준비
  • 논문요약
  • gnn
  • LinearRegression

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Rohdy

Rohdy의 study

LSTM(Long Short-Term Memory)
DL Study

LSTM(Long Short-Term Memory)

2022. 9. 13. 11:09

1. 장기 의존성 문제(the problem of Long-Term Dependencies)

바닐라 RNN은 출력 결과가 이전의 계산 결과에 의존한다는 특징이 있다. 따라서 바닐라 RNN은 비교적 짧은 시퀀스에서 효과를 보이는 단점이 있다. 즉, 시퀀스가 길어질수록 앞의 정보가 뒤의 정보에 충분히 전달되지 못하는 것이다. 이처럼 RNN의 Memory가 충분한 정보를 기억하지 못한다면, 정확한 예측에 실패할 수 있습니다. 이를 장기 의존성 문제라고 합니다.

2. LSTM과 바닐라 RNN 비교

바닐라 RNN의 장기 의존성 문제를 보완한 것이 LSTM인데, LSTM은 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 정합니다. 즉, 바닐라 RNN에 비해 더 복잡해졌으면 cell state라는 값을 추가하였습니다. 따라서 LSTM은 바닐라 RNN에 비해 긴 시퀀스를 처리하는데 더 뛰어난 성능을 보입니다.

 

입력 게이트

  • \(i_t = \sigma(W_{ix}x_t+W_{hi}h_{t-1}+b_i)\)
  • \(g_t = tanh(W_{xg}x_t + W_{hg}h_{t-1}+b_g)\)

입력 게이트는 현재의 정보를 기억하기 위한 게이트로 현재 시점 t의 입력 값 \(x_t\)값과 입력 게이트로 이어지는 가중치를 곱한 값과 이전 시점의 t-1의 은닉 상태가 입력게이트로 이어지는 가중치를 곱한 값을 더하여 시그모이드 함수를 통과한다. 이와 같은 방식으로 하나는 하이퍼볼릭탄젠트 함수를 통과한다. 이 두 값의 결과를 갖고 기억할 정보의 양을 구하게 된다.

 

삭제 게이트

  • \(f_t = \sigma(W_{xf}x_t+W_{hf}h_{t-1}+b_f)\)

삭제 게이트는 기억을 삭제하기 위한 게이트로 \(x_t\)값과 이전 시점의 \(h_{t-1}\)이 시그모이드 함수를 통과하게 된다. 시그모이드 함수를 통과하면 0에서 1 사이의 값이 나오게 되는데 이 값이 곧 삭제 과정을 거친 정보의 양이다. 0에 가까울수록 많이 삭제된 것이고 1에 가까울수록 적게 삭제된 것이다.

 

셀 상태(장기 상태)

  • \(C_t = f_tC_{t-1}+i_tg_t\)

셀 상태 \(C_t\)를 LSTM에서는 장기 상태라고 부른다. 일단 시작은 삭제 게이트를 지나서 일부 기억을 잃어버린 상태이다. 앞서 입력 게이트에서 구한 i와 g의 값을 원소별 곱(Entrywise product)을 진행해준다. 이 것이 이번 t시점에서 기억할 기억이다. 이제 두 값을 더하면, 이것이 \(C_t\)가 된다. 이를 t+1기의 LSTM Cell로 넘기게 된다.

결과적으로 삭제 게이트와 입력게이트를 통해서 이전 시점의 입력과 현재 시점의 입력을 얼마나 반영할 것인지를 계산하여서 다음기로 넘기는 것이다.

 

출력 게이트와 은닉 상태(단기 상태)

  • \(o_t = \sigma(W_{xo}x_t+W_{ho}h_{t-1}+b_o)\)
  • \(h_t = o_t*tanh(c_t)\)

출력 게이트는 \(x_t\)값과 \(h_{t-1}\)값에 가중치를 곱해서 시그모이드 함수를 지난 값이다. 해당 값은 \(h_t\)의 값을 결정하는 사용 된다. 앞서 구한 \(C_t\)값(장기 상태 값)을 하이퍼볼릭탄젠트 함수에 넣어 나온 값과 앞서 구한 값을 원소별 곱(Entrywise product)을 한 결과가 \(h_t\)이다.

 

참조: https://wikidocs.net/60751

'DL Study' 카테고리의 다른 글

#2 Autoencoder의 모든 것 - Manifold Learning  (2) 2022.09.15
#1 Autoencoder의 모든 것 - 2가지 관점으로 DNN Loss 함수 이해하기  (0) 2022.09.14
Recurrent Neural Network  (0) 2022.09.12
Convolution Neural Network  (0) 2022.09.08
기울기 소실과 폭주  (0) 2022.09.07
    'DL Study' 카테고리의 다른 글
    • #2 Autoencoder의 모든 것 - Manifold Learning
    • #1 Autoencoder의 모든 것 - 2가지 관점으로 DNN Loss 함수 이해하기
    • Recurrent Neural Network
    • Convolution Neural Network
    Rohdy
    Rohdy

    티스토리툴바