15) LSTM
———————preview——————————
RNN에서는 가중치가 업데이트 되는 과정에서 1보다 작은 값이 계속 곱해지기 때문에
기울기가 사라지는 “기울기 소멸 문제”가 발생하는데 이를 해결하기 위해
LSTM이나 GRU 같은 확장된 RNN 방식들을 사용하고 있습니다.
LSTM은 기울기 소멸 문제를 해결하기 위해 망각 게이트, 입력 게이트, 출력 게이트라는 새로운 요소를 은닉층의 각 뉴런에 추가했습니다.
LSTM 순전파
망각게이트 : 과거 정보를 어느 정도 기억할지 결정합니다.
입력게이트 : 현재 정보를 기억하기 위해 만들어졌습니다.
셀 : 각 단계에 대한 은닉 노드를 메모리 셀이라고 합니다. ‘총합’을 사용하여 셀 값을 반영하며, 이것으로 기울기 소멸 문제가 해결됩니다.
출력게이트 : 과거정보와 현재 데이터를 사용하여 뉴런의 출력을 결정합니다.
(계산한 값이 1이면 의미 있는 결과로 최종 출력, 0이면 해당 연산 출력을 하지 않음)
LSTM 역전파
셀을 통해서 역전파를 수행하기 때문에 ‘중단 없는 기울기’ 라고도 합니다.
최종오차는 모든 노드에 전파되는데, 이때 셀을 통해서 중단 없이 전파됩니다.
—————————————————————
Data processing flow를 먼저 살펴보면 1)preprocessing 2) tokenization 3)embedding 4)model에 넣음
위와 같은 과정으로 진행되고 LSTM는 rnn의 gradient vanishing 문재를 해결하는 방법으로 고안된 것으로 중요한 정보는 오래되더라도 memory 할 수 있도록 한 것으로 forget gate, input gate, output gate로 이루어져 있으며
Forget gate는 과거 정보를 얼마나 기억할지를 결정하는 것으로 시그모이드 함수를 이용하고, 0이면 버리고 1이면 온전히 보존하도록 합니다.
식은 다음과 같습니다.
->
Input gate는 현재 정보를 기억하기 위해 만들어졌습니다.
계산한 값이 1이면 입력이 들어올수 있도록 허용해주며 0이면 차단하도록 합니다.
Output gate는 과거정보와 현재 데이터를 사용하여 뉴런의 출력을 결정합니다.
어떤식으로 데이터가 전달되는지 보면
1. 어떤 정보를 얼만큼 날리면 좋을지 결정.
2. input으로 부터 cell state를 update준바.
3. Cell state update
4. 새로운 cell state로 부터 filtered output을 결정.
GRU는 과거정보를 적당히 초기화 시키려는 목적으로 얼마나 빨리 지울지를 결정하는 reset gate와
과거와 현재 정보의 최신화 비율을 결정하는 역할을 하는 Update gate를 통해 전체를 구성합니다.
seq2seq는 인코더 디코더를 갖고 있는 구조로
Seq2seq-encoder
Seq2seq-decoder
Seq2seq-combined model
Seq2seq-LSTM
Greedy search : probability 가장 높은것을 선택.
Beam search: probability 높은 것 부터 5개, 몇개씩 선택합니다.