본문 바로가기

RNN

시계열 데이터 분석을 위한 RNN 【5】RNN 기본 다지기 / 순환 신경망의 출현 시계열 데이터 분석을 위한 RNN 지금까지 살펴본 신경망 모델의 구조를 단순화시킨다면 아래와 같이 생각할 수 있다. 즉 화살표 오른쪽에 있는 그림처럼 신경망 모델을 표현 할 수 있다. 파란 동그라미가 입력으로 들어가면 네모박스에 있는 은닉층들을 통과하여 파란 동그라미로 출력이 된다. 여기서 하나의 네모 박스 안에는 여러개의 가중치(weights)가 포함되었다고 이해할 수 있다. 이제 우리는 단순화시킨 오른쪽 그림을 사용해 RNN을 이해해 볼 것이다. 텍스트 데이터를 이용해 예시를 들어보겠다. 한 문장에 대한 다음 문장을 예측하는 모델을 만든다고 가정해보자. 그렇다면 입력데이터는 하나의 문장이 될 것이고 출력데이터도 마찬가지로 예측한 하나의 문장일 것이다. .. 더보기
순환 신경망의 출현 : 시계열 데이터 분석의 이해 【5】RNN 기본 다지기 / 순환 신경망의 출현 순환 신경망의 출현 : 시계열 데이터 분석의 이해 지금까지 다뤘던 인공신경망은 사실 독립적인 데이터를 다루기에 적합하다. 그러나 순서가 있는 데이터를 독립적으로 본다면 어떻게 될까? 데이터 속의 관계성이 깨질것이며 이는 곧 정보의 손실을 의미한다. 이러한 문제를 해결하기 위해 등장한 것이 바로 순환신경망(Recurrent Neural Network, RNN)이다. 간단히 말하면 연속된 데이터를 다루는데 적합한 신경망이다. 이번 장에서는 RNN에 대해서 알아볼 차례이다. 그 전에 연속된 데이터가 무엇인지 먼저 설명하겠다. 이는 RNN의 재료가 될 뿐만 아니라 RNN의 구조를 이해하는데 도움이 될 것이다. "시계열 데이터 분석의 이해" 순서가 있는 데이터를 일.. 더보기
[머신러닝] 케라스로 RNN 순환 층 구현하기 (파이썬 코드) 1. 케라스의 순환 층(RNN) RNN은 Recurrent Neural NEtwork의 약자로, 시퀀스 모델인 순한 신경망을 의미합니다. 즉, RNN은 입력과 출력을 시퀀스 단위로 처리하는 모델인데요, RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로 보낼 때, 은닉층 노드의 다음 계산 입력으로도 결과값을 보낸다는 특징을 갖고 있습니다. 한편, 케라스로 이러한 순환 층을 구현할 수 있는데요, SimpleRNN 라이브러리를 이용하여 구현할 수 있습니다. SimpleRNN은 케라스에 있는 모든 순환 층과 동일하게 두 가지 모드로 실행할 수 있는데요, 전체 시퀀스를 반환하거나 입력 시퀀스에 대한 마지막 출력만 반환할 수 있습니다. 그렇다면, 간단한 RNN 모델을 만들어보겠습니다. f.. 더보기
[자연어 처리] RNN 텍스트 분류 모델, 어떠한 활성화 함수 & 손실 함수를 사용하는게 좋을까요? - RNN으로 텍스트 분류 모델을 만들 때, 어떠한 활성화 함수와 손실 함수를 사용하는 게 좋을까요? RNN 구조를 이용한 텍스트 분류 문제는 모든 time step(시점 수 = 던어 수)에 대해 입력을 받고, 최종 출력 층에서 활성화 함수를 통해 하나의 답을 고르는 문제인데요, 이때 출력층에서 두 개의 선택지 중에서 답을 고르는 건지, 세 개 이상의 선택지에서 답을 고르는 건지에 따라 이진 분류 또는 다중 클래스 분류로 나누어집니다. 만약, 여기서 이진 분류의 문제로 해결을 하고 싶다면 활성화 함수는 Sigmoid 함수를, 손실 함수는 binary_crossentropy를 사용하는 것이 적절합니다. 반면, 다중 클래스 문제이 경우 활성화 함수를 Softmax, 손실함수를 categorical_cross.. 더보기