NLP 기초 (5)

정원국·2022년 5월 26일
0

NLP 기초

목록 보기
5/7

순환 신경만 (RNN)

Recurrent Neural Network

  • 시계열 데이터를 처리하기에 좋은 뉴럴 네트워크 구조

    예시들
    - 음성인식 ( speech recognition )
    - 음악 생성기 ( music generation )
    - DNA 염기서열 분석
    - 번역기 ( machine translation )
    - 감정 분석 ( sentiment classification )

  • CNN이 이미지 구역별로 같은 weight 를 공유한다면,
  • RNN은 시간 별로 같은 weight 를 공유한다.
    - 즉, 과거와 현재는 같은 weight를 공유한다.

First Order System

  • 현재 시간의 상태가 이전 시간의 상태와 관련이 있다고 가정:
    - First-order system

    \qquad \qquad \qquad \qquad \qquad xt=f(xt1)x_t = f(x_{t-1})

    xt=x_t = 시간 t일때 상태
    xt1=x_{t-1} = 시간 t-1일때 상태
    - 그림으로 표현하면?
    - 이 시스템은 외부 입력 없이 자기 혼자서 돌아간다.
    • aoutonomous system
    • 초기조건은 필요
  • 현재 시간의 상태가 이전 시간의 상태와, 현재의 입력에 관계가 있는 경우
    - 상태 : x , 입력 : u
    - 식으로 표현하면 :
    xt=f(xt1,ut)\qquad \qquad \qquad \qquad x_t = f(x_{t-1},u_t)

  • 1차원 시스템의 모형:
    xt=f(xt1,ut)\qquad \qquad \qquad \qquad x_t = f(x_{t-1},u_t)

  • Q) 모든 시간 t에서 모든 상태 xtx_t가 관측 가능한가(observable)?
    - 날씨 예측
    - 주가 예측
    결론 - 일부만 관측 가능하다.

State - Space Model

  • 1차원 시스템의 모형:
    xt=f(xt1,ut)\qquad \qquad \qquad \qquad x_t = f(x_{t-1},u_t)

  • 각 시간에서 관측 가능한 상태의 모음 : 출력 yty_t
    yt=h(xt)\qquad \qquad \qquad \qquad y_t = h(x_t)

  • 어떤 시스템을 해석하기 위한 3요소 : 입력 , 상태, 출력 (u,x,y)(u, x, y)
    xt=f(xt1,ut)\qquad \qquad \qquad \qquad x_t = f(x_{t-1},u_t)
    yt=h(xt)\qquad \qquad \qquad \qquad y_t = h(x_t)

  • 그림으로 표현하면?
  • 상태 xtx_t가 의미하는 것은? hidden layer의 state
  • 앞의 그림에서 상태 xtx_t는 이전까지의 상태와, 이전까지의 입력을 대표할 수 있는 압축본이라고 할 수 있다.
  • 상태 xtx_t는 시계열로 들어오는 입력들을 최대한 상세히 표현할 수 있어야 한다.
  • 원래 풀고 싶었던 문제 :
    - xt=f(ut,ut1,ut2,...,u0)x_t = f(u_t, u_{t-1}, u_{t-2}, ..., u_0)
  • 대신해서 풀 문제:
    - xt=f(xt1,ut)x_t = f(x_{t-1},u_t)
  • First-order Markov Model


State - Space Model as RNN

  • State-Space Model에서 근사하는 함수는 2개:

    xt=f(xt1,ut)\qquad \qquad \qquad \qquad x_t = f(x_{t-1},u_t)
    yt=h(xt)\qquad \qquad \qquad \qquad y_t = h(x_t)

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


    y=σ(wTx+b)\qquad \qquad \qquad \qquad y = \sigma(w^Tx + b)


    ( σ\sigma = 비선형 부여 )
    ( wTx+bw^Tx + b = 선형 모델)

  • 뉴럴 네트워크 셋팅으로 함수 근사:


    xt=σ(Wxxxt1+Wxuut+bx\qquad \qquad \qquad \qquad x_t = \sigma(W_{xx}x_{t-1} + W_{xu}u_t + b_x
    yt=σ(Wyxxt+by)\qquad \qquad \qquad \qquad y_t = \sigma(W_{yx}x_t + b_y)

  • 사용하는 parameter matrix는 총 5개


RNN: Training

  • ANN, CNN 에서처럼 back-propagation을 이용한다.
  • Back-propagation through time (BPTT)
    • Many - to - many
    • Many - to - one
    • One - to - many
  • Sequence - to - sequence (seq2seq) =
    \qquad \qquad \qquad \qquad many-to-one + one-to many

profile
Data scientist 지망생

0개의 댓글