미시간대 강의_LSTM : uninterrupted gradient super highway

Aacara·2021년 8월 30일

MichiganUniversity

목록 보기
4/4


RNN은 같은 weight matrix를 사용하기 때문에 입력 sequence의 길이가 어떻든 간에 사용할 수 있다는 이점이 있다.

하지만 단점 역시 존재한다. 가장 기본적인 형태의 RNN형태를 통해 그 단점이 무엇인지 살펴보자. Backpropogation을 할 때 gradient flow 상 두 가지 문제가 발생한다.

  • 문제 1: tanh nonlinearity 문제
    tanh는 nonlinearity를 완화시키는 역할을 수행한다. 하지만 nonlinearity가 완전히 해소되는 것이 아니기 때문에 문제가 발생하는 것이다.
  • 문제 2: 가중치 행렬의 transpose로 곱하는 문제
    하나의 RNN 블록을 통과할 때 가중치 행렬의 transpose로 곱하는 것이 문제가 되지 않지만, 위 그림에서 보다시피 여러 블록을 통과하게 되면 gradient 상 문제가 발생한다.
    • 문제 2-1: 가장 큰 singular value > 1일 때,
      exploding gradient가 발생
      해결방법: gradient clipping
    • 문제 2-2: 가장 작은 singular value < 1일 때,
      vanishing gradient가 발생
      해결방법: RNN 구조 자체를 바꾼다.

그래서 문제 2-2를 해결하기 위해 LSTM 구조를 만든 것이다.

  • 기존 RNN 구조와의 차이점?
    : hidden vector의 수
  • 기존 RNN: 하나의 step 당 하나의 hidden vector(h(t))를 생성
  • LSTM: 하나의 step 당 두 개의 hidden vector(h(t), c(t))를 생성
    • Output을 hidden vector가 아닌 4개의 게이트로 설정한다
      : 주의할 점: 비선형성을 다르게 설정한다
      • sigmoid[0,1]: input, forget, output gate
      • tanh[-1,1]: gate gate
    • 여기서 4개의 게이트 벡터의 크기는 h
    • 직전의 hidden vector와 현재의 input과 결합
  • LSTM의 parameter 설명
  • LSTM의 구조가 gradient flow 문제를 완벽하게는 아니지만 어느정도 어떻게 해결했는지 설명
  • LSTM의 구조가 RNN의 구조와 유사하다. 이처럼 유사한 다른 구조에서 아이디어를 얻는 경우가 많다.
profile
https://github.com/aacara

0개의 댓글