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 설정 시, 각 시점에 대한 은닉 상태를 출력하여 시퀀스 길이만큼의 출력을 유지한다.
'딥러닝 프레임워크 > 자연어 처리' 카테고리의 다른 글
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 |
댓글