ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RNN (Recurrent Neural Networks)
    CS 공부/AI 2023. 1. 12. 02:37

    시퀀스 데이터


    • 시계열, 소리, 문자열, 주가 등의 시간 순서에 따라 나열된 데이터, 차원을 알 수 없음
      • 시퀸스 데이터는 독립동등분포 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터 분포 확률도 바뀜
      • 조건부확률을 이용하여 시퀀스 데이터를 다룸

    고정된 길이 (타우)만큼의 시퀀스만 사용하는 경우 AR 자기회귀모델이라고 부름

     

    Sequential 모델


    Naive sequence model
    과거의 모든 데이터를 확인
    Autoregressive  model
    과거의 데이터 중 몇개만 확인 (fix timespan)
    Markov model(first-order autoregressive model)
    바로 전 데이터 하나만 확인, 많은 정보를 버릴 수 밖에 없음, 결합확률분포 표현하기 좋음
    Latent autoregressive model
    hidden state(latent state)가 과거의 정보를 요약하고 있고, hidden state만 확인

     

    RNN


    단점: Short-term dependencies
    (데이터가 오래 못감, 조금 전의 데이터는 고려가 되는데 한참 전의 데이터는 고려가 힘듦)

    x1+A=>h1, h1+x2=>h2...

     

    RNN 모형: 가장 기본적인 RNN 모형은 MLP와 유사

    히든 state(ht)의 활성함수(activation function)는 비선형 함수인 tanh

     

    • Ht(hidden state)를 복제해서 다음 순서의 잠재변수를 인코딩하는데 사용
    • RNN의 역전파(BPTT)는 잠재변수의 연결그래프에 따라 순차적으로 계산

    W(1), W(2)는 시퀀스와 상관없이 불변인 행렬

     

     BPTT: RNN의 역전파 방법, RNN의 가중치행렬의 미분을 계산
    • truncated BPTT: 시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘 계산이 불안정해지므로 길이를 끊는 것이 필요
    • Short-term dependencies(gradient가 소실 되는 문제)를 해결하기위해 LSTM과 GRU 사용

     

    LSTM


    RNN의 단점인 Vanishing gradient를 극복하기 위해 고안됨

    전체 구조

    전체 구조 중 하나

    input + previous hidden state + previous cell state => output

    • cell state: 컨베이너 벨트와 같음, 정보가 유용한지 아닌지 판단해서 유용한 것만 넘김
      • previous cell state: 0~t까지의 정보를 취합해서 summarize 해줌 (output으로 안나감)

    cell state

    • forget gate: 버릴 정보를 정함
      • input: 현재의 입력(x_t)와 이전의 output (h_t-1)

    forget gate

    • input gate: cell state에 쌓을 정보를 정함
      • 현재의 입력(x_t)와 이전의 output (h_t-1)을 잘 섞어서 update

    input gate

    • update cell: input gate에서 나온 Ct를 가지고 올릴지 말지 결정해서 취합 후  cell state 업데이트

    update cell

    • output gate: updated cell 중에서 어떤 값을  output으로 내보낼지 결정

    output gate

     

    GRU


    • reset gate(forget gate와 비슷)와 update gate만 있음
    • cell state와 hidden state가 없음 - output gate가 필요 없음
    • LSTM보다 GRU가 성능이 좋은 경우도 있음

    Gated Recurrent Unit

     

    Further Questions


    • CNN 모델이 Sequential 데이터를 처리하는 데에는 구체적으로 어떤 한계점이 있나요?
    CNN의 학습과정은 순서가 중요하지 않은 정보들이 공통으로 가지는 특징들만 관심이 있기 때문에 실시간으로 들어오는 정보들의 순서 관계를 처리할 수 없는 문제점이 있다. (Sequential 데이터는 input 길이가 일정하지 않아서 conv나 fc 사용하기 힘듦)
    • LSTM 에서는 Modern CNN 내용에서 배웠던 중요한 개념이 적용되어 있습니다. 무엇일까요?
    update gate에서 concatenation(DenseNet)을 활용한 skip-connection (ResNet)으로 셀을 업데이트
    • RNN, LSTM, GRU 는 각각 어떤 문제를 해결할 때 강점을 가질까요?
    RNN: short-term memory가 중요한 문제
    LSTM, GRU: short-term memory와 long-term memory가 모두 중요한 문제

    'CS 공부 > AI' 카테고리의 다른 글

    파이썬 AI 개발 환경 준비  (0) 2023.03.02
    AI 프로그래밍  (0) 2023.01.12
    CNN  (0) 2023.01.12
    Convolution 연산  (0) 2023.01.12
    최적화 (Optimization)  (0) 2023.01.11
Designed by Tistory.