Skip to content
BIBI edited this page Sep 14, 2019 · 5 revisions

기존의 인공신경망은 순차적인 정보가 담긴 데이터를 처리하는 것에 어려움이 있다.

RNN(Recurrent Neural Network)

01. RNN이란?

  • Sequence data를 모델링하기 위해 등장
  • 다른 NN과는 다르게 hidden state를 가지고 있음 (기억. 지금까지 입력된 데이터의 요약된 집합)
    • 새로 입력이 들어오면 네트워크는 자신의 hidden state를 수정
    • 입력을 모두 처리하고 난 네트워크의 hidden state는 sequence 전체를 요약하는 정보가 됨

image

  • 빨강 : 입력 / 노랑 : hidden state(기억) / 파랑 : 출력
    • 첫번째 입력이 들어오면 첫번째 hidden state가 만들어짊
    • 두번째 입력이 들어오면 첫번째 hidden state를 참고하여 두번째 hidden state가 만들어짊
  • 순차적인 정보가 담긴 데이터(Sequence data)를 처리하는 데 용이
  • 이전 상태의 hidden layers의 결과가 다음 순서의 hidden layers의 입력으로 들어가도록 설계
  • 이전 상태를 보존하면서 새로운 상태를 받아들이기 때문에 입력값의 시간 순서를 기억
    • 순차적인 데이터 입력에 따라 문맥 정보 파악이 가능
    • 이론적으론 긴 Sequence Data를 처리할 수 있지만, 실제로는 비교적 짧은 Sequence Data만 효과적으로 처리한다 : 장기 의존성 문제
  • RNN은 입력 값 크기의 제한이 존재하지 않는다. 그래서 길이의 제한이 없는 텍스트나 음성 분석에 많이 사용된다.
2018-10-19 9 39 08

: Unfold 형태로 바라본 RNN

02. Backpropagation Through Time (BPTT)

  • RNN은 Backprpagation과는 조금 다르게 학습시켜야 한다.
  • RNN에선 현재 step과 이전 step이 연결되어 있기 때문에 시간을 거슬러 올라가며 backpropagation 진행
  • 사용되는 함수
    • Softmax
      • 값의 분포에 따른 출현 확률
    • Cross-Entropy
      • 두 개의 확률 분포의 비슷한 정도를 나타내는 지표
      • 0에 가까울 수록 확률 분포가 비슷하다
      • softmax를 통해 나오는 예측값이 확률 분포이므로, 오차함수는 Cross-Entropy를 사용한다
  • 수학적 관점으로 보는 BPTT

Vanishing gradient

  • backpropagation through time에서, step의 길이가 길어질수록 편도함수 값이 0에 수렴하는 문제이다.
  • Truncated BPTT (단기 BPTT)
    • 모든 시간에 대한 은닉층의 값을 저장하는 것 : 현실적으로 불가능
    • 기준 길이보다 오래된 값은 반영하지 않도록 한다
  • 해결 방법

03. RNN의 예시

2018-10-19 9 48 45
  • one to one

    • 고정 input, 고정 output
    • perceptron. 신경망의 기본적인 구조
    • 순환적인 부분이 없기 때문에 rnn이 아니다.
  • one to many

    • 고정 input, 시퀀스 output
    • image captioning : 이미지를 가지고 Sequence of words 생산
    • 이미지 -> 들판 위에 구름이 낀 하늘이 있다.
  • many to one

    • 시퀀스 input, 고정 output
    • Sentiment analysis
    • sequence of words -> sentiment
    • 주어진 문장의 감정 상태를 분석한다 (afinn, vader)
  • many to many

    • 시퀀스 input, 시퀀스 output
    • Machine Translation
    • sequence of words -> sequence of words
    • 번역기 : encoder to decoder라고도 한다
  • many to many

    • 동기화된 시퀀스 input, 시퀀스 output
    • Search term autocomplete
    • sequence of words -> sequence o words
    • 자동 완성 검색어

RNN은 입력된지 시간이 오래 지난 데이터는 잘 보존하지 못하는 문제가 있다. 이 문제를 해결하기 위해 LSTM이 개발되었다.

Reference

Clone this wiki locally