시퀀스
순서가 존재하는 데이터
시계열
순서가 존재하지만 특별히 시간에 따른 의미가 존재하는 데이터
순환신경망(Recurrent neural network)
은닉층의 노드들은 어떠한 초깃값을 가지고 계산이 시작되고 첫 번째 입력값이 들어온 t=0 시점에서 입력값과 초깃값을 조합으로 은닉층의 값들이 계산되게 된다.
이 시점에서 결괏값이 도출되면, t=1 시점에서는 새로 들어온 입력값과 t=0시점에서 계산된 은닉층의 값과의 조합으로 t=1일때 은닉층의 값과 결괏값이 다시 계산되게 된다.
이러한 과정이 지정한 시간만큼 반복된다.
시간에 따른 역전파(backpropagation through time)
시간을 역으로 거슬러 올라가는 방식으로 각 가중치들을 업데이트
일정 시간 동안 모든 값이 계산되면, 모델을 학습하기 위해 결괏값과 목푯값의 차이를 손실함수를 통해 계산하고 역전파 해야 하는데, 기존의 역전파와 다르게 RNN은 계산에 사용된 시점의 수에 영향을 받는다.
t = 2 시점에서 발생한 손실은 t = 2,1,0 시점에 모두 영향을 준다.
t = 1 시점에서 발생한 손실은 t = 1,0 시점에 모두영향을 준다.
t = 0에 서 t=2까지 계산에 사용됐다면 그 시간 전체에 대해 역전파를 해야 하는 것이다.
시점 | 입력값 | 출력값 |
---|---|---|
t=0 | p | y=target_0 |
t=1 | y | t=target_1 |
t=2 | t | o=target_2 |