(04강) LSTM and GRU
Last updated
Last updated
LSTM, GRU에 대해서 알아보고 기존 RNN과의 차의를 알아보자
Further Reading
Further Question
BPTT 이외에 RNN/LSTM/GRU의 구조를 유지하면서 gradient vanishing/exploding 문제를 완화할 수 있는 방법이 있을까요?
RNN/LSTM/GRU 기반의 Language Model에서 초반 time step의 정보를 전달하기 어려운 점을 완화할 수 있는 방법이 있을까요?
※ 기존 RNN이 가진 문제점
현재노드와 먼 과거의 상태를 사용한 문맥처리가 어렵다.
거리가 멀어짐에 따라 Gradient vanishing/exploding 현상이 발생한다.
Pass cell state information straightly without any transformation
Short-Term memory(단기기억)을 길게 가져간다는 의미
i : input gate, whether to write to cell
f : forget gate, whether to erase cell
o : output gate, how much to reveal cell
g : gate gate, how much to write to cell
Generate information to be added and cut it by input gate
Generate new cell state by adding cureent information to previous cell state
Generate gidden state by passing cell state to tanh and output gate
Pass this hidden state to next time step, and output or next layer if needed
LSTM의 모델을 경량화한 모델
적은 메모리 요구량과 빠른 계산이 가능하도록 하였다. LSTM에는 Cell State와 Hidden State가 있는 반면 GRU에는 Hidden State 만이 존재한다.
forget gate를 1 - input gate 가중치로 사용
필요로 하는 정보를 곱셈이 아닌 덧셈연산으로 이루어지게되어 RNN에 비해 길이에 대해 Gradient Vanishing, exploding 문제를 완화할수 있게 되었다.
LSTM은 위 그림과같이 기존 RNN의 input값인 뿐만 아니라 Cell State라는 값도 Input으로 가지게된다. 이 값은 지금까지 지나온 layer들 즉, 과거의 단어에 대한 정보를 잘 담고 있다.
과거로부터 넘어온 데이터에서 만큼 가중치를 제거한다.(생략할 부분을 정한다.)
🌟가중치의 합이 1이 되게끔 되어있다.
c.f) in LSTM
를 사용하지 않고 를 사용