[BoostCamp] DAY14 Deep Learning Basic#4

1 분 소요

[BoostCamp] DAY14 Deep Learning Basic#4


1. RNN 첫걸음

1) Sequence 데이터란?

  • 소리, 문자열, 주가등의 데이터를 sequence데이터라고 한다.
  • Sequence데이너틑 독립 동등 분포 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 달라진다.

2) Sequence 데이터를 다루는 방법!!

  • 이전 sequence정보를 가지고 앞으로 발생할 데이터의 확률 분포를 다루기 위해 조건부 확률을 이용할 수 있다.
  • image
  • 이를 전개하여 정리해보면 아래와 같은 식을 구할 수 있다.
  • image
  • 그런데 위의 식을 본다면 t의 크기가 변한 다는 것을 볼 수 있다. 즉, 데이터의 길이가 가변성이 존재한다.
  • 이를 위해서는 가변적인 데이터를 다룰 수 있는 모델이 필요하다.

3) Recurrent Neural Network 란?

우리는 2)에서 배운 식을 아래와 같이 변형시켜 볼 수 있다.
image

이를 모형으로 나타내어 보면 아래와 같이 표현할 수 있다.
image

  • 그런데 우리는 sequence 데이터를 다루기에 적절한 모델이다.
  • 연속된 데이터를 다루기 위해서는 과거의 데이터를 기억하여 이것또한 학습에 활용할 수 있어야한다.
  • 그렇다면 어떻게 할 수 있을 까?
    • 위의 식에 과거의 결과값도 추가하여 연산하면 되지 않을 까?
    • image
    • 이를 모형으로 표현해보자.
    • image
    • RNN은 위와 같이 연산할 수 있다. 그렇다면 backpropagation은 어떻게 할 수 있을까?
    • BPTT(Backpropagation Through Time)을 사용해보자.

4) BPTT 란?

  • RNN의 가중치 행렬의 미분을 계산해보자.
  • image
  • 그런데 우리는 여기서 phi연산 부분을 유의 깊게 봐야할 필요가 있다.
  • 활성 함수를 통해 나온 값들을 계속해서 여러번 곱하면 0에 가까워지지 않을까?
  • 해당 부분에 대해 5)에서 이야기 해보도록 하자.

5) 기울기 소실의 해결책은?

  • 일정 길이에서 누적을 끊어 줘보자.
  • 이를 해결하기 위해 나온 것들이 LSTMGRU이다.

2. Recurrent Neural Networks

1) Sequential Model

  • Sequential data는 시간의 개념이 더해진 data를 의미한다. 예로 비디오, 소리, motion등이 존재한다.
  • Problem?
    • 데이터의 길이를 알기 어렵다. –> 언제 데이터가 끝날지 모른다.
    • 즉, 가변적인 크기의 입력을 감당할 수 있는 model이 필요하다.
  • Solve?
    • Markov model(first-order autoregressive model)
      • 현재는 바로 직전의 과거에만 의존한다.
      • 많은 정보의 소실이 일어난다.
      • joint dustrubution을 표현하기 쉬워진다.
    • Latent autoregressive model
      • 중간에 hidden state를 넣어 학습시켜 과거의 정보를 요약한다고 생각한다.
      • 즉, hidden state에 의존하여 문제를 해결한다.

2) Recurrent Neural Network

image

  • 이전 값 + 입력값으로 결과 값을 계산한다.

long term dependencies

  • 한참 과거의 입력값은 현재에 영향을 주는 것은 힘들다.
  • 즉, 가까운 과거의 입력만이 현재에 큰 영향을 준다.
  • 모델의 사고가 제한된다.

3) Long Short Term Memory (LSTM)

4) Gated Recurrent Unit

3. Transformer

4. TODO

  1. 위에서 아직 학습하지 못한 부분에 대해서 복습하며 학습하자.
  2. 아직까지 읽지 못한 논문들이 많다. 읽고 공부하자.
  3. 오늘 학습중 나온 실습 부분을 실습하자.
  4. 코딩 공부를 게을리 하지 말자.

5. 이모저모

  1. 강의
    • 오늘 역대급으로 어려웠다. 조원분들한테 더 학습할 수 있는 영상을 추천 받았으니 이것도 같이 보면서 학습해야겠다.
  2. 피어세션
    • 매번 피어세션을 할때마다 조원분들께 많은 것을 배워 가는 것 같다. 항상 감사하다.

댓글남기기