Deep Learning/Basic

Recurrent Neural Network

  • -
728x90
반응형

1. 개념

  • 순차 데이터를 처리하는데 적합한 신경망
    • machine translation, DNA analysis, voice recognition, motion recognition, sentiment analysis 등에 이용
  • hidden layer의 neuron에서 출력된 값이 다시 그 neuron의 입력으로 사용됨
    • 학습된 neuron의 상태가 다음 학습에 사용되는 것
    • 이전에 수신한 정보를 계속 보유 = 일종의 단기 기억
    • 단기 기억은 hidden weight에 저장
  • 동일한 입력이어도 이전의 입력에 따라 다른 출력 결과 생성
  • RNN의 필요 기능
    • 가변 길이의 입력에 대한 처리
    • 장기 의존성의 추적
    • 순서 정보의 유지
    • 시퀸스 전체의 파라미터 공유

 

2. 구조

  • 입력 벡터 : \( x_t \)
  • 출력 벡터 : \( y_t = f(W_{hy}h_t) \)
  • 은닉 상태 : \( h_t = \tanh(W_{hh}h_{t-1}+W_{xh}x_t) \)

 

3. 네트워크 전파 방향

  • 시간 축으로 풀어서 생각
    • 모든 출력의 손실을 합산하여 전체 손실 계산
    • 중간에 출력하기를 원한다면 다른 weight을 사용하여 출력 가능
  • forward propagation through time
    • 매 시간 단계마다 동일한 weight 사용
  • backward propagation through time
    • 계층을 통하는 방식 대신 시간을 거슬러 올라가면서 gradient 역전파
    • 아래 그림과 같이 time step 별로 network를 펼친 다음, back-propagation 하는 것을 BPTT(Back Propagation Through Time)이라 함
      • RNN의 전체 time step 양이 많아지면 계산량 또한 많아지기 때문에, time step을 일정 구간별로 나눠 back-propagation 을 수행하는 Truncated BPTT 방식도 존재

 

4. 종류

  • 1:1 : 단일 입력과 단일 출력을 가지며, 가장 보통의 경우
  • 1:N : 단일 입력과 다중 출력을 가지며, image captioning에 주로 사용
  • N:1 : 다중 입력과 단일 입력을 가지며, sentiment analysis에 주로 사용
  • N:M : 다중 입출력을 가지며, machine translation에 주로 사용

 

5. 문제점

  • gradient vanishing problem
    • 멀리 떨어진 데이터의 영향을 받는 경우 context가 필요
    • activation function의 교체나 weight를 단위 행렬로 교체, bias를 0으로 초기화 하는 방법을 통해 해결하거나, LSTM이나 GRU의 gated cell을 사용하여 해결
  • gradient explosion problem
    • gradient를 일정 크기 이상 커지지 못하게 하는 방법을 통해 해결

 

 

참고 서적

딥러닝 EXPRESS

 

참고 링크

https://excelsior-cjh.tistory.com/184

728x90
반응형

'Deep Learning > Basic' 카테고리의 다른 글

Gated Recurrent Unit  (0) 2023.03.27
Long Short-Term Memory  (0) 2023.03.27
Inductive Bias  (0) 2023.02.13
Ablation study 란  (0) 2023.02.06
Cosine Similarity  (0) 2022.07.30
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.