RNN(Recurrent Neural Network)
Sequential data
일반적으로 deep neural network에서는 input과 output이 하나의 vector인 one-to-one으로 이루어진다. 하지만 어떤 경우에는 sequential data가 input이나 output에 포함되는 경우가 있다. 예를 들어 stochastic process(time series)나 ordered data structures가 있다. speech recognition이 time series에 해당하는 주요 예시가 될 것이고, machine translation이 ordered data structure의 예가 될 것이다. 이런 경우에 one-to-many나 many-to-many, many-to-one의 형태로 input과 output이 구성될 수 있다. 1

요즈음에는 non-sequence data의 경우에도 sequential하게 processing하는 경우도 있다. 위의 Figure은 MNIST dataset을 visual attention의 sequence로 처리하는 과정의 일부이다.
즉, observation sequence
Recurrent Neural Network

RNN은 이전의 입력 데이터들에 대한 정보를 hidden state
따라서, 현재
이때 hidden state에 대한 non-linear transformation은
한 가지 기억해야 할 점은, 각 time에서 사용하는 parameter
Backpropagation
sequence labeling에서, Loss function은 negative log likelihood를 사용한다.
여기서
이때
이를
이므로
이다.
비슷한 방법으로
전체 vector
이제
만약 모든 time에 대해서 backpropagation 값을 고려한다면 다음과 같다 :
같은 방법으로 이전 hidden state에 dependency가 있는
Vanishing gradient and Exploding Gradient problem
위의 gradient 계산 부분을 보면 이전 hidden state에 dependency가 있는 경우에
이는 chain rule에 의해서 다음과 같이 계산된다 :
이는 풀어서 쓰면 다음과 같다 :
이때
문제가 되는 것은
이 심각한 문제를 해결하기 위해 여러 가지 방법이 제안되었는데, Gradient clipping도 그 중 하나이다. gradient clipping은 값의 L2 norm이 너무 커지면 나누어 주는 heuristic이다.
결과적으로는 LSTM이 가장 효과적인 대안으로 제시되었고, 오늘날에는 vanilla RNN은 거의 사용하지 않는다.
References
Gang Chen. (2016). A Gentle Tutorial of Recurrent Neural Network with Error Backpropagation. Department of Computer Science and Engineering, SUNY at Buffalo.
Fei-Fei Li, J. Johnson, S. Yeung. (2017). Convolutional Neural Networks for Visual Recognition. Dept. of Comp. Sci., Stanford University, Palo Alto, CA, USA, spring 2017 [Online].
Footnotes
- time series는 index가 integer
로 이루어진 특수한 경우를 가리킨다. reference : https://stats.stackexchange.com/questions/126791/is-a-time-series-the-same-as-a-stochastic-process [본문으로]
'DL·ML' 카테고리의 다른 글
[DL] Hierarchical Softmax (0) | 2022.07.01 |
---|---|
[ML] Reduced Error Pruning (0) | 2022.03.18 |
Xavier initializer (0) | 2021.12.22 |
[paper review] ImageNet Classification with Deep Convolutional Neural Network (AlexNet) (0) | 2021.11.29 |
경사하강법(Gradient Descent) (0) | 2021.06.21 |