본문 바로가기

【5】RNN 기본 다지기/순환 신경망의 출현

(4)
예제로 다시 한번 이해하는 RNN구조 RNN을 실습해보자 import numpy as np from matplotlib import pyplot as plt from tensorflow.keras import datasets, layers, models 실습에 사용되는 패키지들이다. 텐서플로우 2.0은 선언하는 것은 생략하고 넘파이, 맷플롯립, 케라스 이렇게 사용된다. 이번에는 데이터셋을 호출하지 않고 만들어서 사용한다. data = np.sin( np.pi * np.arange(0, 100)* 2.025 ) + np.random.random(100) x = np.array([data[i+j] for i in range(len(data)-10) for j in range(10)]) x_train = x[:700].reshape(-1,10,1..
독특할 뿐, 어렵지 않은 RNN 구조 예시: 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com
시계열 데이터 분석을 위한 RNN 지금까지 살펴본 신경망 모델의 구조를 단순화시킨다면 아래와 같이 생각할 수 있다. 즉 화살표 오른쪽에 있는 그림처럼 신경망 모델을 표현 할 수 있다. 파란 동그라미가 입력으로 들어가면 네모박스에 있는 은닉층들을 통과하여 파란 동그라미로 출력이 된다. 여기서 하나의 네모 박스 안에는 여러개의 가중치(weights)가 포함되었다고 이해할 수 있다. 이제 우리는 단순화시킨 오른쪽 그림을 사용해 RNN을 이해해 볼 것이다. 텍스트 데이터를 이용해 예시를 들어보겠다. 한 문장에 대한 다음 문장을 예측하는 모델을 만든다고 가정해보자. 그렇다면 입력데이터는 하나의 문장이 될 것이고 출력데이터도 마찬가지로 예측한 하나의 문장일 것이다. 아래의 그림을 보자. 입력으로 “오늘 뭐 먹을까?”라는 하나의 문장이 들어왔을때 신..
순환 신경망의 출현 : 시계열 데이터 분석의 이해 지금까지 다뤘던 인공신경망은 사실 독립적인 데이터를 다루기에 적합하다. 그러나 순서가 있는 데이터를 독립적으로 본다면 어떻게 될까? 데이터 속의 관계성이 깨질것이며 이는 곧 정보의 손실을 의미한다. 이러한 문제를 해결하기 위해 등장한 것이 바로 순환신경망(Recurrent Neural Network, RNN)이다. 간단히 말하면 연속된 데이터를 다루는데 적합한 신경망이다. 이번 장에서는 RNN에 대해서 알아볼 차례이다. 그 전에 연속된 데이터가 무엇인지 먼저 설명하겠다. 이는 RNN의 재료가 될 뿐만 아니라 RNN의 구조를 이해하는데 도움이 될 것이다. "시계열 데이터 분석의 이해" 순서가 있는 데이터를 일반적으로 순차 데이터(sequential data)라고 부른다. 순차 데이터는 숫자와 기호 모두 포..