① 순환신경망(Recurrent Neural Network)는 시퀀스 데이터(sequence data)를 처리하기 위해 설계된 신경망이다.
㉠ 시퀀스 데이터는 시간의 흐름에 따라 순서대로 나열된 데이터를 의미한다.
ⓐ 시퀀스 데이터의 예시로는 문장(단어들의 시퀀스), 주식 시장 데이터(시간에 따른 주가 변화), 음성 신호(연속적인 음향 데이터) 등이 있다.
㉡ 순환 신경망은 시퀀스의 각 요소가 이전 요소와 어떻게 연관되어 있는지 학슴함으로써 시퀀스 데이터에 숨겨진 패턴과 관계를 찾을 수 있다.
② 순환신경망은 이전 출력이 입력으로 사용될 수 있도록 하는 구조를 가진 신경망이다.

③ 순환 신경망은 각 시퀀스 요소를 처리하는 셀(cell)이라는 구조를 사용한다.
㉠ 셀은 현재 입력과 이전 셀의 출력(이전 시점의 정보)를 받아 현재 셀의 출력을 생성한다.
㉡ 각 셀의 출력 y(t)는 은닉 상태(hidden state)라고도 하며, 시퀀스의 정보를 시간에 걸쳐 전달하는 역할을 한다.
④ 순환 신경망에서의 셀 내부의 구조는 다음과 같다.

㉠ RNN의 셀 구조는 과거의 정보를 현재의 의사결정과 결합하여 미래의 출력을 예측하는 데 중요한 역할을 한다.
㉡ 순환 신경망의 각 셀에서 이뤄지는 작동 원리는 크게 두 개의 방정식으로 정의할 수 있다.
㉢ 첫 번째 방정식은 각 시간 간격 t에서의 은닉 상태
ⓐ 활성화 함수
ⓑ
ⓒ
ⓓ
ⓔ 결과적으로 이 방정식은 이전 은닉 상태와 현재 입력을 결합하여 새로운 은닉 상태를 생성해 낸다.
㉣ 두 번째 방정식은 각 시간 간격 t에서의 출력값 \( y^{< t > \)을 계산하는 방정식이다.
ⓐ 활성화 함수
ⓑ
ⓒ
ⓓ 결과적으로 이 방정식은 시간 간격 t에서의 은닉 상태를 출력값으로 변환하며, RNN의 사용 목적에 따라 예측 또는 분류를 위해 사용할 수 있다.
⑥ 일반적인 RNN 구조의 장점을 요약하면 다음과 같다.
㉠ 시퀀스의 길이에 상관없이 입력을 처리할 수 있다. 이는 텍스트, 음성 등의 시퀀스 데이터를 처리하는 데에 유용하다.
㉡ 입력 시퀀스의 길이와 상관없이 일정한 크기의 모델을 유지한다. 이는 모델이 크고 복잡해지는 것을 방지한다.
㉢ 이전 시점의 정보를 현재의 의사결정에 활용한다. 이를 통해 시퀀스의 시간적인 동적 특성을 파악할 수 있다.
㉣ 시간에 따라 동일한 가중치를 재상요하기 때문에 파라미터의 개수를 줄이고, 학습을 보다 효율적으로 만든다.
⑦ 일반적인 RNN 구조의 단점을 요약하면 다음과 같다.
㉠ 이전 단계의 출력이 다음 단계의 입력으로 사용되기 때문에 연속적인 계산이 필요하며 병렬 처리가 어렵다.
㉡ 기울기 소실(vanishing gradient) 문제로 인해 긴 시퀀스를 학습할 때 학습 과정이 비효율적이거나 불가능해지게 만든다.
ⓐ 따라서 일반적인 RNN 구조는 오래된 정보를 기억하는 데 어려움이 있다.
ⓑ LSTM이나 GRU와 같은 고급 RNN 구조를 통해 해결할 수 있다.
㉢ 기본 RNN 구조는 현재와 과거의 정보만을 고려할 수 있으며, 미래의 입력 정보는 고려하지 않는다. 이를 해결하기 위해 양방향 RNN이 사용될 수 있다.
'All about Machine-Learning > 기본' 카테고리의 다른 글
BERT(Bidirectional Encoder Representations from Transformers) (0) | 2023.12.21 |
---|---|
손실 함수(Loss function) (0) | 2023.03.05 |
모델의 복잡도 (0) | 2023.03.05 |
전처리(Preprocessing) (0) | 2023.03.05 |
과적합(Overfitting) (0) | 2023.03.05 |