티스토리 뷰

아래 블로그를 보고 학습한 내용을 정리한다. 

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

 

LSTM (Long Short-Term Memory)

- RNN(Recureent Neural Network)의 일종

- Vanila RNN의 취약점인 장기 의존성을 학습하기 위해 고안되었다.

- 현재는 기본적인 RNN은 거의 안쓰고 LSTM이 널리 사용된다. 

 

LSTM은 어떻게 장기 의존성을 학습할 수 있을까??

- 기본적인 RNN에서는 gradient vanishing 문제를 해소하기 위해 학습 단계에서 여러 트릭을 사용한다. 

- 반면, LSTM은 아예 명시적으로 과거의 정보를 다음 스테이트로 넘기는 구조를 사용하여 장기 의존성을 학습한다. 

 

LSTM의 핵심 - Cell State와 Gate

Cell State

- LSTM은 4개의 레이어를 가지고 있는데, 이 레이어 중 핵심은 cell state이다.

- cell state는 과거의 데이터를 다음 타임 스텝으로 전달하는 역할을 한다.

- cell state에서는 약간의 선형적인 연산만 하면서 체인을 따라 정보가 쭉 흘러간다.

- 이런 구조는 정보를 전달하기 용이한 구조이다. 

 

Gate

- LSTM은 gates를 통해 셀스테이트에 정보를 선택적으로 흐르도록 조절한다. 

- 게이트는 시그모이드 레이어와 pointwise 곱 연산으로 구성된다.

- 시그모이드는 0과 1사이의 숫자를 결과 값으로 내며, 각 컴포넌트가 다음 스테이트로 얼마나 흘러가야 하는지를 나타낸다.

- LSTM은 셀스테이트의 정보를 보호하고 조절하기 위한 3개의 게이트를 가진다. 

 

 

Step-by-step LSTM walk through

 

Forget gate

- 어떤 정보를 셀스테이트에 전달할 것인지 정하는 단계이다.

- 직전 히든스테이트의 값 h_(t-1)과 현재의 인풋을 받아 weight를 곱한 후 시그모이드를 취한 것이다. 

- 각 값들은 0과 1사이의 값을 취하는데, 0이면 정보를 하나도 흘러보내지 않음을 1이면 그대로 전달하는 것을 의미한다. 

 

 

 

Input gate layer & tanh layer

- cell state에 저장할 새로운 정보를 결정하는 단계이다.

- 이 단계는 두 부분으로 구성된다. 

- input gate layer라고 불리는 시그모이드 레이어가 어떤 값을 업데이트 할 것인지 정한다. 

- tanh layer가 셀 스테이트에 더해질 후보인 tilde C_t를 생성한다. 

- 그리고 이 둘이 결합되어(elementwise product) 다음 스테이트에 더해질 정보를 생성한다. 

 

 

 

- 다음은 이제까지 계산된 값을 이용해 cell state를 갱신하는 단계이다. 

- 이전 cell state 값인 c_(t-1)에 forget gate의 값을 곱한다.

- 그리고 input gate * tilde c_t를 더한다. 

- 이 값은 업데이트 되어야할 새로운 정보이다. 

 

- 마지막으로 셀스테이트의 정보를 사용하여 아웃풋을 내놓는 단계이다.

- 먼저 셀스테이트의 정보 중 어떤 부분을 아웃풋으로 내보낼 것인지를 시그모이드 레이어에서 정한다.

- 셀스테이트에 tanh를 취한 후 이 중 일부의 정보만 내보내도록 시그모이드 게이트와 곱한다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함