코딩 기록 저장소

[딥러닝] RNN(Recurrent Neural Network) 본문

개인 공부/인공지능

[딥러닝] RNN(Recurrent Neural Network)

KimNang 2024. 3. 27. 18:17

RNN (Recurrent Neural Network)

RNN이란?

- 시계열 또는 순차 데이터를 예측하는 딥러닝을 위한 신경망 아키텍처

- 다양한 길이의 순차 데이터로 작업하고 자연 신호 분류, 언어 처리, 비디오 분석 등의 문제를 해결하는 데 특히 효과적임

- 시퀀스를 처리하기 위해 고안된 모델을 시퀀스 모델이라고 하는데 그 중 RNN은 가장 기본적인 인공 신경망 시퀀스 모델

RNN의 작동 방식

- 과거의 정보를 사용하여 현재 및 미래의 입력에 대한 신경망의 성능을 개선하는 딥러닝 구조

- RNN의 독특한 점은 신경망에 은닉 상태 및 루프가 있음

- 루프 구조를 통해 신경망은 은닉 상태에 과거의 정보를 저장하고 시퀀스에 대해 연산할 수 있음

- 신경망은 훈련 중에 입력과 은닉 상태의 두 가지 모두에 대한 가중치를 학습함

- 구현이 되면 출력은 현재 입력, 그리고 이전 입력을 기반으로 하는 은닉 상태를 기반으로 함

 

RNN이 중요한 이유

- RNN은 다음과 같은 응용 분야에서 핵심 기술로 사용됨

 

  • 신호 처리
    • 신호는 일정 시간에 걸쳐 센서로부터 수집되는 경우가 많으므로 순차적인 데이터임
    • 대규모 신호 데이터셋에 대해 자동 분류 및 회귀를 수행하면 실시간 예측이 가능함
    • 원시 신호 데이터를 심층 신경망에 입력하거나 전처리하여 주파수 성분과 같은 특정한 특징에 집중할 수 있음
    • 특징 추출은 신경망의 성능을 대폭 개선할 수 있음
  • 텍스트 분석
    • 언어는 본질적으로 순차적임
    • 텍스트 조각의 길이는 다양함
    • RNN은 문장의 단어를 맥락화하는 방법을 학습할 수 있기 때문에 텍스트 분류, 텍스트 생성, 기계번역, 감성 분석 등의 자연어 처리 작업에 매우 유용한 툴

 

RNN을 사용해야 하는 경우

- 분류 및 회귀 작업에서 시퀀스 및 시계열 데이터로 작업하는 경우 RNN 사용을 고려할 수 있습니다. 비디오는 본질적으로 영상의 시퀀스이므로 RNN은 비디오에도 효과적임

신호를 사용한 작업과 마찬가지로 시퀀스를 RNN으로 공급하기 전에 특징 추출을 하는 것이 좋음

- 각 프레임에 대한 특징 추출을 위해 CNN을 활용할 수 있음