RNN
IT 위키
Recurrent Neural Network 내부적으로 순환(recurrent) 되는 구조를 이용하여, 순서(sequence)가 있는 데이터를 처리하는 데 강점을 가진 신경망
개요
순서가 있는 데이터
같은 데이터라도 순서에 따라 의미가 달라지는 특성을 가진 데이터
- ex) 문장1: I google at work vs 문장2: I work at google
- 문장1에선 google이 동사, 문장2에선 google이 명사
- 주로 자연어 처리에서 많이 사용됨
- 은닉층에서의 순환 구조를 통해 이전 데이터와 이후 데이터를 연결시켜 분석 가능
수식 표현
ht = fW(ht-1, xt)
- ht = 새로운 상태
- fW = 파라미터 W에 대한 활성화 함수
- ht-1 = 이전 상태
- xt = 현재 시점의 입력 벡터
특징
- 순환 구조: 네트워크가 자신의 출력을 다시 입력으로 받는 구조를 가짐
- 메모리 효과: 과거 시점의 정보를 은닉 상태(hidden state)에 저장하여, 순차적 데이터의 맥락을 고려할 수 있음
- 역전파를 통한 학습: 시계열 데이터에 맞게 확장된 역전파 알고리즘(Backpropagation Through Time, BPTT)을 사용
- 한계: 긴 시퀀스를 다룰 때 기울기 소실(vanishing gradient) 또는 기울기 폭발(exploding gradient) 문제가 발생하기 쉬움
변형 및 발전
- LSTM (Long Short Term Memory)
- 장기 의존성 문제를 완화하기 위해 고안된 구조로, 입력 게이트, 출력 게이트, 망각 게이트를 도입하여 중요한 정보는 오래 보존하고 불필요한 정보는 잊도록 설계됨
- GRU (Gated Recurrent Unit)
- LSTM을 단순화한 구조로, 계산량이 적고 비슷한 성능을 보이는 경우가 많음
- 양방향 RNN (Bidirectional RNN)
- 순방향과 역방향의 두 개 RNN을 결합하여, 과거와 미래 문맥을 동시에 고려
활용
- 자연어 처리
- 기계 번역, 언어 모델링, 감정 분석, 음성 인식 등에 활용
- 시계열 데이터 분석
- 주가 예측, 센서 데이터 해석, 시계열 패턴 인식
- 영상 처리
- 연속된 프레임을 고려해야 하는 행동 인식, 비디오 캡셔닝
같이 보기
참고 문헌
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press.
- Michael A. Nielsen, Neural Networks and Deep Learning, Determination Press.