-
순서가 있는 데이터
- 문장이나 음성같은 연속적인 데이터, 문장에서 놓여진 위치(순서)에 따라 의미가 달라짐
- 현재 데이터의 의미를 알기위해서는 이전에 놓여있는 과거 데이터도 알고있어야 함
- RNN은 과거의 데이터를 알기 위해서 1) 은닉층내에 순환(recurrent)구조를 이용하여 과거의 데이터를 기억하고 있다가 2) 새롭게 입력으로 주어지는 데이터와 은닉층에서 기억하고 있는 과거데이터를 연결시켜 그 의미를 알아냄
-
RNN 동작원리 - 정성적 분석
- I: 과거의 데이터가 없기에 입력데이터 I에 대한 tanh값만 계산됨
- work: 이전의 데이터 I와 연결시켜 은닉층의 계산값을 만들어낸 후 출력층으로 내보냄과 동시에 다시 순환구조를 이용하여 I의 영향을 받은 work가 기억됨
- at: work가 아닌, I에 영향을 받은 work의 영향을 받음
- google: I, work에 영향을 받은 at의 영향을 받음
-
RNN 동작원리 - 시간개념 포함
- 순환구조를 1) 은닉층에서 기억하는 과거의 데이터(빨간 화살표)와
2) 일정시간이 지난후에 입력되는 데이터에 연결시켜주는 구조로 바꾸어서 생각해볼 수 있음
- 문장이나 음성과 같은 순서가 있는 데이터는, 시간의 경과에 따라 데이터가 순차적으로 들어온다는 것과 같은 의미임
-
Neural Network에서 바이어스는 각 층에서 오직 1개의 값으로 정의될 수 있으나, 가중치는 각 층으로 입력되는 데이터의 개수만큼 정의됨
- RNN에서의 가중치, 바이어스
- 바이어스: 은닉층 바이어스 bh, 출력층 바이어스 b0 2개
- 은닉층 가중치: 은닉층에서 입력데이터 A1에 대한 가중치 Wih, 내부적으로 순환되는 과거데이터 H에 적용되는 Whh
- 출력층 가중치: 입력데이터가 A2하나이기에 가중치 1개만 필요
-
RNN 동작원리 - 정량적 분석
-
시간개념을 포함한 current state Ht
-
학습데이터를 구성하고 있는 unique 문자를 숫자로 나타낸 후, 숫자를 one-hot 방식으로 변환하는 것이 순서가 있는 데이터를 학습하는 RNN에서 일반적인 방법