Hello Blog!

Why is LSTM strong on gradient vanishing?

Recurrent Neural Network

RNN의 에 대한 계산식은 다음과 같다.

이때, 에 대해 미분한다고 하면(T>t), 이는 chain rule에 의해 다음과 같이 표현될 수 있다.

여기서,

, ,

이므로

만약 의 값이 아주 작다면(-1에서 1사이) 미분식이 깊어질수록(T-t가 커질수록) 결과값은 0에 수렴하게 될 것이다(vanished). 반대로 의 값이 아주 크다면, 미분식이 깊어질 수록 결과값은 발산하는 형태를 띌 수 있다(exploded).

Long-Short Term Memory

LSTM의 Cell State 에 대한 계산식은 다음과 같다.

이때, 에 대해 미분한다고 하면(T>t), 이는 chain rule에 의해 다음과 같이 표현될 수 있다.

여기서, 이므로

위 식의 는 sigmoid함수의 output이기 때문에 (0,1)의 값을 갖게 되는데, 이 값이 1에 가까운 값을 갖게되면 미분값(gradient)이 소멸(vanished)되는 것을 최소한으로 줄일 수 있게된다. 값이 1에 가깝다는 것은, Cell State 공식에 의하면 오래된 기억(long term memory)에 대해 큰 비중을 둔다는 것과 같은데, 이로인해 gradient 또한 오래 유지된다는 것은 꽤나 흥미로운 현상이다.

+더불어 는 1보다 큰 값을 가질 수 없으므로 미분식이 깊어진다고 해서(T-t값이 커진다고 해서) 이로인해 그 값이 넘치게(exploded) 되지는 않는다.

Appendix: Why tanh??

RNN은 vanishing gradient problem에 민감하기 때문에 Gradient를 최대한 오래 유지시킬 수 있는 activation function을 사용하는 것이 바람직하다. 아래 Sigmoid와 Tanh에 대한 그래프를 관찰해보자.

Sigmoid

dSigmoid(x)/dx 의 최대값은 0.25 언저리에 불과하다. 즉, 거듭 곱해지게 되면 gradient vanishing이 발생하게 될 것이다.

Tanh

dTanh(x)/dx의 최대값은 1이다. Sigmoid와 비교했을때 gradient vanishing에 강할 것이다.

링크에서 다른 activation function의 그래프도 같이 관찰해본다면 좋을 것 같다.

References


Share this: