Vanishing gradients with RNNs
참고 영상 : Vanishing gradients with RNNs
기본적인 RNN 알고리즘의 문제점
- 기울기 소실(Vanising gradients)
The cat, which already ate …, was full
The cats, which already ate …, were full
위 예시는 언어가 매우 장기적인 의존성을 가질 수 있는 예
- 앞서 쓰여진 단어(cat/ cats)가 문장 후반부에 영향을 미침
하지만 기본 RNN은 의존성을 포착하는데 효과적이지 않음
- 깊은 deep neural network의 기울기 소멸 문제
신경망이 암기가 필요하다는 것을 인식하도록 하는 것이 어려울 수 있음
- 단수형이면 was, 복수형이면 were이라는 사실을 외워야 한다는 사실
- 영어는 삽입되는 관계절이 매우 길 수 있으므로 앞선 정보를 외워야할 수 있음
이 때문에 기본 RNN은 local의 영향을 많이 받는다.
- $ \hat{y}^{<3>} $ 는 가까운 $ x^{<1>}, x^{<2>}, x^{<3>} $ 의 영향을 받음
- 오류가 시퀀스의 시작으로 역전파되는 것이 어려움
- 기울기 폭주(Exploding gradients)
- 기울기가 기하급수적으로 감소하지 않고 통과하는 레이어의 수에 따라 기하급수적으로 증가할 수 있음
- 기울기 폭주는 매개변수가 폭발하기 때문에 발견하기 쉬움
- NaN : 숫자 오버플로우의 결과
- 솔루션 : Gradient Clipping
- 기울기 벡터를 보고 일부 임계값보다 크다면 벡터의 일부를 다시 조정해서 너무 크지 않게 만드는 것
- 최대값에 따라 클리핑됨
- 기울기 소멸은 기울기 폭주보다 해결하기 힘들다
- RNN은 1,000배 이상의 혹은 10,000배 이상의 데이터 세트를 처리함
-
이는 1,000 or 10,000 신경망 레이어
- 이에 대한 솔루션 : gru(gated recurrent unit)
댓글남기기