딥러닝 프레임워크/자연어 처리

RNN 실습

Zoo_10th 2024. 4. 18.

1. Numpy로 RNN 구현하기

1-1. 이론적 배경

RNN은 이전의 출력이 다음 입력에 영향을 미치는 네트워크 구조를 갖고 있다. 이를 통해 시퀀스 내 데이터의 시간적 연속성을 모델링할 수 있다. RNN은 크게 두 부분으로 나뉜다.

1) 은닉층

시점 t 에서의 은닉 상태 h_t 는 현재의 입력 x_t 와 이전 은닉 상태 h_(t-1) 에 의해 결정된다.

2) 출력층

은닉 상태를 기반으로 최종 출력을 계산한다.

1-2. 구현 단계

2. Tensorflow Keras API RNN 구현

케라스(Keras)를 사용하여 RNN 모델을 구현하는 방법에 대해 체계적으로 설명하고 순차적으로 케라스의 RNN 레이어를 구성하고 설정하는 방법에 대해 다룬다.

 - 케라스에서 RNN 레이어를 추가하는 방법 이해하기

 - input_shape, input_length, input_dim 설정 방법 이해하기

 - return_sequences 매개 변수의 기능과 사용 시점 이해하기

2-1. RNN 레이어 추가하기

기본 RNN 레이어 추가 및 입력차원 명시하기

RNN에 입력 데이터를 제공할 때는 입력 텐서의 구조를 명시해야 한다. 입력 텐서는 일반적으로 (batch_size, timesteps, input_dim)의 3D 텐서이다.

2-2. 출력 형태 이해하기

 - 다 대 일 모델: return_sequences=False (기본 설정)인 경우, RNN 층은 마지막 시점의 은닉 상태만을 반환한다.

 - 다 대 다 모델: return_sequences=True 설정 시, 각 시점에 대한 은닉 상태를 출력하여 시퀀스 길이만큼의 출력을 유지한다.

 

728x90

'딥러닝 프레임워크 > 자연어 처리' 카테고리의 다른 글

LSTM (1)  (1) 2024.04.19
RNN 문자 생성  (0) 2024.04.18
RNN (1)  (0) 2024.04.18
자연어 처리 예제(1)  (0) 2024.04.17
자연어 처리(Text Mining)  (0) 2024.04.16

댓글