RNN
# Tag:
- Source/KU_ML2
순환 신경망(RNN, Recursive Neural Network)
Weights의 변화가 한 방향으로 이동하는 것이 아니라, 다시 자기 자신에게 돌아오는 형태.
계속 반복적으로 가중치가 수정되는 모습이 나타난다. 전후 관계를 학습한다는 것이다.
시계열 데이터(Time-Series Data)와 같이 (temporal invariance, 시간에 상관없이 특정한 패턴이 존재하는 경우) 연속적인 데이터를 예측하거나 분류할 때 사용된다.
이전 값에 depedent하게 되는, Markov assumption하에 만들어지는 Network이다.
Vanilla RNN

- h는 hidden state, 해당 hidden state는 다음 Cell로 전달되면서 학습이 반복된다.
- 이 때의 가중치는 로 별도로 존재한다.
- 입력 가중치 , 출력 가중치 가 별도로 존재하며, 같은 가중치끼리는 하나가 업데이트 되면 동일하게 전부 업데이트 된다.
- time에 따라 이전의 hidden layer의 출력 값을 다시 입력으로 합하는 구조이므로, 는계속해서 동일하게 유지된다.

- time에 따라 이전의 hidden layer의 출력 값을 다시 입력으로 합하는 구조이므로, 는계속해서 동일하게 유지된다.
Activation Function을 라고 할 때,
- hidden state update : , 위는 여러 개의 layer가 연결된 것처럼 되어 있지만(unfolding), 구현은 자기 자신에게 hidden state가 입력으로 다시 들어온다.
- output:
일종의 partially connected Network라 할 수 있다. 실제 구현은, fully connected network의 weights Matrix에서 연결이 없는 부분의 weight는 0으로 설정한다.
Back Propagation Through Time(BPTT)
- 위와 같이, Layer가 계속해서 쌓이게 되면 편미분이 반복되면서 Gradient Vanishing 문제가 발생하므로, 이를 해결하기 위해 LSTM을 이용한다.
- Sequence가 길어지게 되면, 이전의 데이터를 잘 기억하지 못하게 된다. Short-term memory problem이 발생한다.

- 수정수정

