본문 바로가기
AI 공부/딥러닝

딥러닝 (RNN,LSTM,GRU)

by AI Sonny 2022. 10. 3.
728x90

순차적 데이터(sequential data)

  • 순서를 가진 데이터
  • 음성, 동영상, 주식가격 (순서가 중요하다.)

 

순환신경망(Recurrent Neural Networks)

  • 이전 단계의 처리 결과가 다음 단계에 입력이 되는 형태의 신경망
  • 순서가 있는 데이터를 flatten하면 순서의 의미가 사라지게 된다. 그래서 순환신경망을 사용한다.
  • 순서의 의미도 학습하자

"치킨", "대신", "밥" 을 순환하며 연산 후 출력

 

 

Vanilla RNN

Vanilla RNN 문제점

  • 사라지는 경사 (경사소실)
  • 장기 의존 관계를 잘 학습할 수 없음
  • 이전 단계에 입력이 다음 단계에 의미가 없을 수 있다.
  • 동일한 가중치와 tanh로 인해 역전파 시 경사가 소실된다. (ReLu 사용불가 경사가 폭발)

 

LSTM(Long Short Term Memory)

  • 순환신경망의 사라지는 경사 문제를 해결
  • 입력길이가 길어져도 최초의 입력 의미를 전달한다.
  • 활성화 함수를 통과 안한다.
  • input_size : 피처 개수
  • hidden_size : 은닉상태의 출력개수
  • batch_first : 입력 데이터가 batch가 먼저일 경우 True, 입력길이가 먼저일 경우 False

forget gate (규제역할)

GRU(Gated Recurrent Unit)

  • LSTM 을 간소화
  • 은닉상태만을 사용
  • Cell State와 Hidden State를 통합한다.
  • 속도가 더 빠르다.
  • bidirectional: 양방향 여부, 기본값은 False
  • 입력이 첫번째 레이어와 두번째 레이어에 들어가고, 역방향으로도 진행된다.
  • 결과값이 정방향, 역방향으로 2개가 나온다.

728x90

'AI 공부 > 딥러닝' 카테고리의 다른 글

TabNet 정리  (0) 2022.12.12
평가 지표  (0) 2022.11.07
딥러닝 (손실함수)  (0) 2022.10.02
딥러닝 (pytorch)  (0) 2022.10.02
딥러닝 (경사하강법, 역전파, 배치)  (1) 2022.09.26

댓글