섹션7, RNN

이도현·2023년 9월 11일
0
post-thumbnail

1. 순회신경망

  • Recurrent Neural Networks(RNN)은 자연어 처리 Natural Language Prcessing(NLP)문제에 주로 사용되는 인경 신경망 구조
  • 시계열 데이터를 다루기에 최적화된 인공신경망
  • 시계열 데이터: 시간축을 중심으로 현재 시간의 데이터가 앞, 뒤 시간의 데이터와 연관 관꼐를 가지고 있는 데이트를 의미
  • ex) 주식 가격, 파형으로 표현되는 음성데이터, 앞뒤 문맥을 가진 단어들의 집합으로 표현되는 자연어 데이터 등이 대표적인 시계열 데이
  • RNN은 기본적인 ANN 구조에서 이전시간(t-1)의 은닉층의 출력값을 다음 시간(t)에 은닉층의 입력값으로 다시 집어넣는 경로가 추가된 형태. 이 구조는 recurrent(순환되는)라는 단어에서 알 수 있듯이, 현재 시간 t의 결과가 다음 시간 t+1에 영향을 미치고, 이는 다음 시간 t+2에 영향을 미치는 과정이 끊임없이 반복되는 인공신경망 구조
aht=i=1Iwihxit+h=1Hwhhbhht1a^{t}_{h} = \sum^{I}_{i=1}w_{ih}x^{t}_{i} + \sum^{H}_{h_{'}=1}w_{h_{'}h}b_{h_{h}}^{t-1}
  • 구체적으로 길이 T를 가진 입력 시퀀스 x를 I개의 인풋노드 H개의 히든노드, K개의 아웃풋 노드를 가진 RNN에 입력하는 상황 x{t,i}는 시간 t일 때 i번째 입력데이터, a{t, h}는 각각 시간 t일 때 히든레이어의 출력값을 나타냅니다. W{h’h}b{t-1,h’}는 이전 시간 (t-1)의 히든 유닛의 활성값과 히든 유닛에서 히든유닛으로 되돌아오는 가중치의 곱
  • 최좇적으로 a{t,h}에 Sigmoid나 ReLU같은 활성 함수 델를 씌워 히든 유닛의 활성 값 b{t,h}를 계산합니다.
bht=δh(aht)b^{t}_{h} = \delta_{h}(a^{t}_{h})

  • RNN을 다른 관점으로 바라보면 시간축에 따라 인공신경망을 펼친 Unfold 형태

Untitled

2. 경사도 사라짐 문제(Vanishing Gradient Problem) & LSTM & GRU

1) LSTM(장단기 기억 네트워크)와 경사도 사라짐 문제

  • RNN은 시계열 데이터를 다루기에 적합하지만, 경사도 사라짐 문제Vanishing Gradient Prblem가 있습니다.
  • 경사도 사라짐: 시간 1에서 입력 받은 데이터는 시간 1에서 RNN의 파라미터를 업데이트하거나 예측을 진행하는데 강한 영향력(=큰 경사도Gradient)을 끼칩니다. 하지만, 2,3, … 계속해서 새로운 데이터가 들어옴으로써 새로 들어온 데이터의 영향력에 덮어 쓰여서, 시간 1에서 입력 받은 데이터의 영향력(=작은 경사도)은 조금씩 사라지다가 시간 7 쯤이서 영향력이 완전히 사라지는 현상을 관찰할 수 있습니다.
  • 이러한 문제점은 RNN이 장기기억력을 가지지 못한다는 점
  • LSTM(Long-Short Term Memory Networks)는 이런 경사도 사라짐 문제를 해결하기 위해서 제안된 발전된 RNN 구조
    • 은닉층의 각각의 노드를 인풋 게이트, 포겟 게이트, 아웃풋 게이트로 구성된 메모리 블럭 이라는 조금은 복잡한 구조로 대체
    • 인풋 게이트, 포겟 게이트, 아웃풋 게이트를 이용해서 경사도 사라짐 문제를 완화

  • 블럭 잇풋 게이트: 메모리 블럭의 입력값에 활성함수를 씌워주는 게이트

2) GRU(Gate Recurrent Unit)

  • GRU의 LSTM의 간략화 버전. GRU는 LSTM의 3개의 게이트를 2개의 게이트로 축소
  • 구체적으로 GRU는 리셋 게이트 r 과 업데이트 게이트 z를 가지고 있습니다.

profile
좋은 지식 나누어요

0개의 댓글