- 중요한 신경망의 개념 중 하나.
- NN은 다음과 같이
- Input값이 Hidden layer에서 선형 함수를 거친 다음 Activation Function(tanh)를 거치고 Output으로 바로 전환디는 과정을 거침.
NN
- 그러나 RNN은 Hidden layer에서 선형함수를 거친 다음Activation Function(tanh)가 바로 Output으로 전달되지 않고, 다시 Input 값으로서 전달 됨. 그 다음 다시 해당 값이 선형 함수를 거치고 Actication Function을 거친 다음 다음 Input 값으로 전달 됨. (반복) => Recurrent Neural Network => 순서가 있는 데이터를 처리하는데 강점을 가짐.
RNN
- 순서가 있는 데이터?
: 내부 요소들이 동일하다고 하더라도 순서가 바뀌면 통합적으로 완전히 다른 의미가 되는 것.
예) 텍스트 데이터.
I work at google(나는 구글에 근무한다)
I google at work(나는 회사에서 구글링한다)
: 내부 요소는 동일하지만 순서가 바뀌니까 다른 의미가 되었다.
그렇다면 우리가 RNN으로 잘 알고 있는 주식 데이터를 살펴보자. (종가만)
1일 2일 3일 4일
1000 1050 900 1060
1일 3일 2일 4일
1000 900 1050 1060
- 내부 요소는 같지만 내가 의도하는 바는 전혀 다르다. 나는 시계열로 일별 종가를 필요로 하였는데 전혀 다른 값이 왔다. 이런 데이터는 RNN으로 손쉽게 처리 할 수 있다.
- RNN은 순서가 있는 데이터를 온전히 파악하기 위하여 은닉측 내에 순환적 구조(Recurrent structure)를 이용하여 과거의 데이터를 기억(Remember)해 두고 있다가 새롭게 입력으로 주어지는 데이터와 은닉층에서 기억하고 있는 과거 데이터를 연결 - (New Input+Recurrent Output)시켜서 그 의미를 알아내는 기능을 수행.
=> 데이터 분석 결과가 데이터 분석 결과에 영향을 미칠 경우 RNN을 사용하자!
[RNN의 동작 원리]
가장 간단한 텍스트 데이터(I work at google)를 분석하면서 동작 원리를 알아 보자.
1. 먼저 문장을 각 요소별로 분리한다. (데이터 전처리 = 형태소 분리)
: I/work/at/google
2. 신경망 구조 설계
: 입력 - 은닉 - 출력
: 은닉층으로는 tanh를 사용한다. 그리고 최종 분류로는 softmax를 사용한다.
: 출력층은 명사, 대명사, 동사, 전치사 4가지 Class를 분류한다.
3. 먼저 I가 입력층으로 들어감. I는 선형회귀를 서친 다음 tanh를 거침. 이전에 아무 값도 들어오지 않았으므로 I를 그대로 분석함. 이후 출력층에서는 다시 한 번 선형회귀를 거치고 softmax를 통해서 해당 단어(I)가 어떤 class에 속하는 지 분류해 냄. 여기서는 대명사.
4. 다음으로 Work를 입력.
같은 신경망에 Work가 들어감. 기본에 I가 잔존해 있어서 이 값이 영향을 줌. 하지만 분류는 위 3의 과정과 같이 똑같이 해낼 수 있음. 즉, 동사로 분류.
(이하 상동)
'머신러닝 > 딥러닝 - 오토인코더' 카테고리의 다른 글
오토인코더란(4) - 그림으로보는 오토인코더의 종류 (0) | 2021.11.10 |
---|---|
오토인토더란(3) - Deep Auto Encoder With MNIST DATA (0) | 2021.11.09 |
Auto Encoder란(2) - Denoising Auto Encoder/Stacked Auto Encoder (0) | 2021.11.05 |
Auto Encoder란(1) (0) | 2021.11.04 |
Keras로 딥러닝 만들고 파라미터 튜닝하기(Grid Search (0) | 2021.01.26 |