RNN (Recurrent Neural Network)

sdubee10·2022년 1월 4일
0

Deep Learning

목록 보기
3/3

순환 신경망 : RNN(Recurrent Neural Network)

순환 신경망 (Recurrent Neural Network)은 은닉 계층 안에 하나 이상의 순환 계층을 갖는 신경망을 의미한다. 순환 신경망은 다른 네트워크들과 입력을 받는 방식이 다르며, 순서가 있는 데이터에 주로 사용된다.

순서가 있는 데이터란? :
순서가 있는 데이터는 (소리, 언어, 날씨, 주가) 등의 데이터처럼 시간의 변화에 함께 변화하면서 그 영향을 받는 데이터를 의미한다.


RNN의 구조

RNN은 되먹임 구조를 가지고 있다. 레이어의 출력을 다시 입력으로 받아서 사용하는 것으로서, 이전의 데이터가 함께 결과에 영향을 미친다.

RNN은 입력과 출력의 길이에 제한이 없다는 특징이 있다.
기본적으로 Fully Connected 구조를 가지고 있지만, 구조를 바꾸면 다양한 형태스타일의 네트워크를 형성할 수 있.

RNN 파라미터

  • RNN은 모든 시간대에 동일한 변수를 사용한다.
  • units 파라미터는 RNN 신경망에 존재하는 뉴런의 개수이다.

1. return_sequences

+RNN 계산 과정에 있는 hidden state를 출력할 것인지에 대한 값을 의미한다.

  • 해당 값은 다층으로 이루어진 RNN 또는 one-to-many, many-to-many 출력을 위해서 사용된다.

  • 위의 그림과 같이 False의 경우, 마지막 출력값 하나를 출력한다.

  • True의 경우, 모든 과정의 출력값을 출력한다.

2. return-state

  • LSTM 레이어에서 주로 사용되는 값으로, cell_state를 출력할 것인지를 결정하는 값이다.

3. activation

  • 활성화 함수를 선언하는 변수이다. tanh, relu 등과 같은 함수를 사용할 수 있다.

기본적인 RNN 레이어


RNN모델의 문제점:

  • 입력 데이터가 커지면, 학습 능력이 저하된다.

  • 데이터의 뒤쪽으로 갈수록, 앞쪽의 입력 데이터를 까먹게? 된다.

  • 입력 데이터와 출력 데이터 사이의 길이가 멀어질 수록 연간관계가 줄어드는데, 이를 장기 의존성(Long-Term Dependenc)문제라고 한다.


LSTM(Long Short Term Memory) 레이어

장기 의존성 문제를 해결하기 위해 제시되었다.

LSTM 구조

  • LSTM 레이어는 출력 값 이외에, LSTM셀 사이에서 공유되는 셀의 상태가 존재한다는 점이 특징이다.
  • 위의 그림과 같이 기존 RNN에서 c라는 cell state라는 변수가 추가적으로 공유된다.
  • 이러한 셀 상태가 함께 다음 레이어로 전달되면서, 기존의 상태를 보존하여 장기의존성문제를 해결한다.

GRU(Gated Recurrent Unit)레이어

GRU는 LSTM과 비슷한 역할을 하지만, 더 간단한 구조로 이루어져 있어서 계산상으로 효율적이다.

GRU 구조

GRU는 LSTM에서의 셀 상태(cell state) 역할의 c가 없지만, 다음의 출력 h가 c의 역할을 함께 수행한다.

GRU에서는 Update Gate, Reset Gate 두 가지만 존재하며, 활성화 함수는 sigmoid 2번과 tanh 1번 사용된다.

0개의 댓글