본문 바로가기
  • Let's go grab a data
Data/Talk

순환신경망 RNN (Recurrent Neural Network)

by pub-lican-ai 2017. 6. 9.
반응형

순환신경망 RNN (Recurrent Neural Network)



일반적인 신경망은 각각의 입출력이 서로 독립적이라 가정하지만 RNN은 순서가 있는 정보를 입력 데이터로 사용한다는 점이 특징

예를 들어 문장에서 다음에 올 단어를 예측할 시 이전 단어와 연관이 있기 때문이다. 

음성인식, 음악, 문자열, 동영상등 순차적인 정보가 담긴 데이터를 다룰 수 있다.

모든 입력 시퀀스에 대해 동일한 연산을 수행하지만 연산 시점에서의 출력 데이터는 이전의 모든 연산에 영향을 받는 특성이 있다.



업데이트 상태 벡터 Updated State Vector : 시퀀스에 대한 모든 과거 개체들에 대한 정보를 담음

위 그림의 우측 구조는 각 시간 스텝에 대한 전체 입력 시퀀스를 처리하기 위한 네트워크로써

각 계층마다 다른 매개변수(가중치)를 가지는 일반적 다중계층신경망과는 달리

U,V,W로 명명된 모두 같은 매개변수(가중치)를 공유한다. 따라서 학습 대상 매개변수의 갯수가 크게 감소해 학습 시간이 감소한다.


각 시간 스텝마다 공유되는 매개변수 때문에 각 출력값에 대해 계산된 그레이디언트는 현재 상태 뿐만아니라 이전 상태에 대해서도 의존적이다

위 왼쪽 그림의 가운데 은닉층의 자신을 가르키는 화살표를 Recurrent Weight라고 하며

이 Recurrent Weight가 아래 그림처럼 과거의 신경망과 현재의 신경망에 공유되며 연결해주는 역할을 한다.


학습 시 기존 인공신경망의 학습 알고리즘인 오류 역전파Error back-propagation 처럼 현재 시점에 발생한 에러를

단순히 아래쪽 계층으로 전달하여 가중치를 조정하는 것이 아닌

과거 시점까지 전달하는 BPTT(Back Propagation Through Time) 알고리즘을 통해 학습이 됩니다.

마치 글을 읽다가 문맥이 이상한 부분이 나타나면 글의 앞부분 부터 전체적으로 수정하는 느낌


출처: 텐서플로 입문 _ 잔카를로 자코네

http://blog.naver.com/2011topcit/220610525815

텐서플로 입문: 예제로 배우는 텐서플로, 에이콘 
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음




반응형