CS224n Lec 6: Simple and LSTM Recurrent Neural Networks

김상윤·2023년 3월 13일
0

Stanford CS224n NLP

목록 보기
4/4

LSTM

RNN은 예측 시점으로부터 최근에 있는 데이터를 필요로 하는 예측에는 성공적이다. 그러나 가까이 있는 문맥만으로는 부족하고 더 많은 양의 문맥이 필요한 경우에는 RNN이 정보를 서로 연결짓지를 못한다.

이론적으로 시간 차이가 많이 나는 입력들 사이의 의존성을(일명 Long-term dependencies) 학습할 수 있어야 한다. 그러나 실제로는 RNN은 장기 의존성을 학습하지 못하였다.

LSTM Networks

LSTM은 long-term dependencies를 학습할 수 있는 특수한 종류의 RNN이다. LSTM은 장기 의존성 문제를 일으키지 않도록 설계되었다.

LSTM의 핵심은 하나의 블럭을 통과하며 변하는 Ct cell state에 있다. Cell state는 minor linear interaction만 하며 블럭을 통과하며 때에 따라서는 변경되지 않고 통과하는 것도 가능하다. LSTM은 gate를 사용하여 정보를 더하고 빼는 것이 가능하다. Gate는 시그모이드와 원소별 곱셈 연산으로 이루어져있다. 시그모이드는 0 부터 1 사이의 값을 반환하며 이를 수치를 통해 Cell state의 각 성분별로 정보를 얼마나 통과시켜야 하는지 결정한다. 시그모이드 결과가 0이라는 것은 어떠한 정보도 통과시키지 말라, 1은 모든 정보를 다 통과 시키라는 것이다. LSTM은 이런 게이트를 3개 가지고 있고 이를 통해 state를 결정한다.

Step-by-Step LSTM walk through

  1. Forget Gate
    LSTM의 첫번째 단계는 현재 가진 cell state 중 어떤 정보를 버릴 것인지 결정하는 것이다. Forget gate layer를 통해 필요한 정보에 대한 결정이 이루어진다. Forget gate는 ht-1와 xt를 forget weight matrix와 곱하고 bias term을 더하여 결정한다.
    언어 모델에서 활용되는 예시로는 과거의 입력 단어들을 기준으로 다음 단어를 예측하려고 할 때 현재 주어의 성별 정보가 cell state에 포함되어 지칭 대명사(He/She 등의 Pronoun)를 상황에 맞게 적절히 사용할 수 있다. 그러나 새로운 주어가 나타나면 과거 대상의 성별 정보를 잊어야 하는 경우에 Forget Gate가 필요하다.

  2. Input Gate & New Memory Cell
    LSTM의 두번째 단계는 새로운 정보를 cell state에 얼마나 저장해야 하는지 결정하는 것이다. 이 단계는 2개의 요소로 구성되어 있다.
    1) 첫번째 요소 Input gate이다. Input는 시그모이드 계층을 통과한 결과를 기준으로 어떤 값들을 업데이트할 것인지 결정하는 과정이다.
    2) New Memory Cell을 생성하는 단계가 두번째 요소이다.은 tanh 계층을 이용하여 새로운 값들의 후보 벡터 Ct를 만든다. 이 값은 cell state에 일부 더해질 수 있다.
    위에서 보았던 예시를 보자. 새로운 주어가 나타났을 때 과거 대상의 성별을 새로운 정보로 대체하기 위해서는 새로운 정보를 입력하는 과정이 필요하다.

  3. Output Gate
    LSTM의 마지막 단계는 우선 Ct-1를 Ct로 업데이트하는 과정이다. 이전 상태 Ct에 forget을 곱하여 잊을 부분을 결정하고 새로운 값의 후보 Ct과 업데이트할 정도/양을 나타내는 it의 곱을 더한다.

    새로운 cell state가 결정되었으니 이제 출력할 값을 결정할 차례이다. 출력은 cell state에 기반한 값이지만 완전히 동일한 값은 아니고 필터링된 값이다. 출력은 다음 두 가지를 원소별 곱셉하여 구할 수 있다.
    1) cell state의 어느 부분을 출력할 것인지 sigmoid를 통과시켜 결정한 값
    2) cell state를 tanh에 통과시켜 -1과 1 사이의 값으로 정규화시킨 값

profile
AI 대학원 지망생

0개의 댓글