카테고리 없음

순환신경망(RNN, Recurrent Neural Networks)

dev-bleck 2022. 9. 28. 14:16

순차적 데이터(sequential data)

- 순서를 가진 데이터

- 순서가 바뀌면 데이터가 아예 달라짐

 

순환신경망(Recurrent Neural Networks)

- 순차적 데이터를 잘 처리함

- 이전 단계의 처리 결과가 다음 단계에 입력이 되는 형태의 신경망 (=> 순서)

- 순서가 바뀌면 데이터가 달라지니까 순서를 학습함

위 그림을 펼쳐 놓으면?

! 단계가 길어질 수록 이전 단계의 입력의 의미가 없어진다

순환신경망에서 (그나마) 학습이 잘되는 탄젠트 함수

 

Vanilla RNN의 문제점

- 경사소실 문제

- 장기 의존 관계를 잘 학습하기 어려움 => 입력 길이가 길어질 수록 끝 부분은 잘 학습할 수 없음

 

LSTM(Long Short-Term Memory)

- 순환신경망의 경사소실 문제 해결

- 각 cell에 대한 출력 사용 가능

- 마지막 cell에 대한 출력 또한 사용 가능

- 병렬처리가 안돼서 느리다는 단점

 

GRU(Gated Recurrent Unit)

- LSTM을 간소화

- cell state가 없고 hidden state(은닉상태)만을 사용

728x90