RNN(Recurrent Neural Network)

임정민·2024년 5월 13일
1

딥러닝 개념

목록 보기
1/13
post-thumbnail

*본 게시글은 유튜브 '메타코드M' 딥러닝 자연어처리 RNN 개념을 30분안에 정리해드립니다ㅣ서울대 AI박사과정 자료를 참고한 점임을 알립니다.

RNN에 대해서

1. 기본 컨셉

  • 재귀적인 (반복되는) 뉴럴 네트워크
  • 시간에 따라 weight가 보존되는 네트워크

2. 특징

  • 시계열 데이터를 처리하기에 좋은 뉴럴 네트워크 구조
  • ex) 음성 인식(speech recognition), 번역기(machine translation), 감정 분석(sentiment classification) 등

3. RNN vs CNN

  • CNN은 이미지의 영역별로 같은 weight를 공유
  • RNN은 시간별로 같은 weight를 공유
  • 즉, RNN은 과거와 현재에 같은 weight를 공유

4. First Order System

  • 현재 시간의 상태 (xtx_{t}) 가 이전 시간의 상태 (xt1x_{t-1}) 와 관련이 있다고 가정

  • 외부 입력없이 자기 혼자서 돌아간다. => 'Autonomous System'

    xt=f(xt1)x_{t} = f(x_{t-1})
  • 입력이 있을 수도 있다. => 현재 시간의 상태 (xtx_{t}), 이전 시간의 상태 (xt1x_{t-1}), 현재의 입력 (utu_{t})

    xt=f(xt1,ut)x_{t} = f(x_{t-1}, u_{t})

    ex) xtx_{t} : 내일의 날씨, xt1x_{t-1} : 오늘의 날씨, utu_{t} : 구름의 양

  • xtx_{t}를 정확히 예측할 수 없다.

  • 관측 가능한 상태만의 모음 => 'State-Space Model'

    xt=f(xt1,ut)x_{t} = f(x_{t-1}, u_{t})
    yt=h(xt)y_{t} = h(x_{t})

5. State-Space Model as RNN(1)

  • 'hidden layer'들의 상태를 'hidden state' (xtx_{t})

  • 상태(xtx_{t})는 이전까지의 상태와, 이전까지의 입력을 모두 대표하는 '압축본'

  • 원래 풀고 싶었던 문제

    xt=f(ut,ut1,ut2,...,u0)x_{t} = f(u_{t},u_{t-1},u_{t-2},..., u_{0})

    ex) I (u0u_{0}) / like (u1u_{1}) / eating (u2u_{2})

  • 대신해서 풀 문제

    xt=f(xt1,ut)x_{t} = f(x_{t-1}, u_{t})

    ex) I ~ eating (xt1x_{t-1},utu_{t})

  • state를 거쳐서 오는 'First-order Markov Model'

6. State-Space Model as RNN(2)

  • 'State-Space Model'에서 근사함수는 2개 (f,hf,h)

  • 입력 (utu_{t}) 과 출력 (yty_{t}) 간의 관계 => 'hidden layer'를 포함한 'Neural Network'

  • 함수 ffhh를 근사시키기 위해 뉴럴 네트워크를 사용

    xt=f(xt1,ut)x_{t} = f(x_{t-1}, u_{t})
    yt=h(xt)y_{t} = h(x_{t})
  • 뉴럴 네트워크 셋팅으로 함수 근사

    xt=σ(Wxxxt1+Wxuut+bx)x_{t} = \sigma(W_{xx}x_{t-1}+W_{xu}u_{t}+b_{x})
    yt=σ(Wyxxt+by)y_{t} = \sigma(W_{yx}x_{t}+b_{y})
  • Parameter matrix는 총 5개 (Wxx,Wxu,Wyx,bx,byW_{xx},W_{xu},W_{yx},b_{x},b_{y})

  • 입력 (utu_{t}) 과 출력 (yty_{t}) 간의 관계 => 'hidden layer'를 포함한 'Neural Network'

    xt=f(xt1,ut)x_{t} = f(x_{t-1}, u_{t})
    yt=h(xt)y_{t} = h(x_{t})

7. RNN: Training

  • Back-propagation through time (BPTT)

8. RNN: Problem Types

  • Many-to-many (기계 번역 등)
    • *Seq2Seq = Many-to-one + One-to-Many
  • Many-to-one (시계열 예측 등)
  • One-to-many (문장 생성 등)

참고 자료

profile
https://github.com/min731

0개의 댓글

관련 채용 정보