[Deep Learning] Recurrent Neural Network, RNN, 순환 신경망 (강의 12)

이수빈·2023년 6월 14일
0
post-thumbnail

0 Recurrent Neural Network


☑️ what) automata와 같이 previous output을 current input으로 사용한다. → 이 때 input으로 사용되는 데이터는 과거 정보를 담고 있다고 할 수 있다. input data 각각을 학습 X, input data 순서까지 고려하여 학습 O

❓ why) RNN은 가변적인 input을 다루기에 적합하다. Feed-Forward(FF), CNN으로는 input의 길이가 가변적인 경우를 다룰 수 없다. input의 최대 길이를 정하기에도 무리가 있다.

➰ ex) 음성 인식, 시계열 예측

Sample FF NetSample RNN
RNN은 input이 같아도, state(h)가 다르면 output이 다를 可

1 Vanilla RNN


FF CellRecurrent Neural Cell
yt=F(ht)y_t = F(h_t)ht=tanh(Wx)h_t = tanh(Wx)

1. Use

▶️ 감성 분석
▶️ Image Captioning

2. Input-Output Scenarios

  • 1-1 \ni FF
  • 1-多 \ni Image Captioning
  • 多-1 \ni 감성 분석
  • 多-多 \ni 번역, 비디오 Captioning
    			

▶️ use) FF Image Captioning 감성 분석 번역, 비디오 Captioning

3. BackPropagation Through Time (BPTT)

펼쳐진 RNN에서 이전의 모든 데이터를 input으로 받는다. 이에 따라 W 값은 복사본이 계속 계산되고, 합쳐진다.
🥲 pb) Vanishing, Exploding Gradent

4. Issues with the Vanilla RNN

sol1) Sliding window

...

sol2) Gradient Clipping

gradient 값이 크면 줄인다. Exploding gradient를 예방할 수 있다.

sol3) LSTM

...

2 LSTM (Long Short-Term Memory)


☑️ what)"Constant Error Flow"에 착안하여 Long-Term dependency 문제를 해결한다. 이전 layer 상태 정보를 다음 layer로 전달할 때 weight를 사용하지 않고 Identity relationship을 사용한다.

how) Identity 관계를 구현하기 위해, 간단하게 memory cell 하나를 사용할 수 있다. (->Memory)

0개의 댓글