ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [08.05] Day4 - 'RNN 맛보기' 🍽
    네이버 부스트캠프 AI Tech 2기 2021. 8. 6. 22:44
    728x90
    반응형

    RNN 첫걸음(AI Math 10강)

    [수업 내용]

    강사 : 임성빈 교수님

    모델의 설계는 그렇게 어렵지는 않지만, 왜 이렇게 설계했는 지에 대해서 생각해보고 설계해야 한다.

    어떤 데이터들을 다루나?

    : 시퀀스 데이터(소리, 문자열, 주가 등)의 데이터들을 시퀀스 데이터로 분류한다. 즉, 시간의 흐름대로 나열된 데이터를 시퀀스 데이터라고 한다.

    1. 시퀀스 데이터는 독립동등분포(i.i.d) 가정을 위배하기 쉽다.→ 순서를 바꾸거나 과거 정보의 손실이 발생하면 데이터의 확률분포도 바뀌게 된다.(데이터의 분포가 달라지게 되어 정보가 바뀌게 된다.)
    2. 시퀀스 데이터를 다루는 방법
      • 시퀀스의 정보를 가지고 앞으로 발생할 데이터 확률분포를 다루기 위해 조건부 확률을 이용한다.
      • 이전 1~t-1까지의 조건부 확률을 이용한 베이즈 정리를 통해서 유도할 수 있다.
      • 시퀀스 데이터 같은 경우 과거에 모든 정보를 사용하긴 하지만, 시퀀스 데이터 다룰때는 모든 정보들이 꼭 필요한 것은 아니다.
        그중, 과거에 데이터를 고정된 길이(타우)만큼만 사용하는 경우 AR(타우)(Autoregressive Model) '자귀회귀모델'이라고 한다.
      • 시퀀스 모델 같은 경우 들어오는 입력이 가변적이다. 그래서 '자귀회귀모델'에서 고정된 길이의 구간 이외의 과거 데이터를 묶어서 '잠재변수'라는 것으로 다루고 이를 적용한 것이 RNN의 배경이다.

    RNN

    입력행렬 X로 부터 가중치를 곱해서 bias를 더해서 활성함수를 씌어 잠재변수를 구하고 다시 선형 모델을 결합시켜 출력 O를 구할 수 있게 된다.(이때, W1, W2 행렬들을 시점, 시퀀스데이터에 상관없이 고정적이다.)

    문제 : 이 모델에서는 과거에 데이터를 다룰 수 없다. → 왜냐면 입력시점 t에 대한 데이터만 다루기 때문이다.

    그럼 어떻게 과거 데이터를 다룰 수 있을까?

    중간에 이전 잠재변수로부터 받은 Ht-1 잠재변수를 받아서 새로운 잠재가중행렬을 곱해서 반영해 준다.

    RNN 같은 경우는 BackPropagation을 진행할 때 잠재변수의 연결그래프 순서에 따라서 순차적으로 계산된다.(이를 BPTT 라고 하며 RNN의 역전파 방식을 의미한다.)

    BPTT(BackPropagation Through Time)

    : Gradient Vanishing되는 문제가 발생한다. 시퀀스 데이터가 길어지면 길어질 수록, 미분을 할때 곱하는 값이 [0,1]이라면 점점 0에 수렴하게 되는 원리 때문이다.

    → 그래서 이를 해결하기 위해서 Truncated BPTT라는 것을 적용한다.

    (특정 Block에서 끊고 Gradient를 전달하는 개념 → 완전한 해결은 아니다.)

    그래서 오늘날 LSTM, GRU 같은 네트워크를 사용한다.

    [회고]

    모임에서 시퀀스 모델의 확률 식에 대한 질문에 이렇게 답했다.

    "현재까지의 확률분포P(X1... Xt)는 과거의(P(X1...Xt-1)의 확률분포를 통해서 구할 수 있다는 개념인데,
    우리가 아는 정보가 무엇이 있을까요?

    1. P(Xt) -> 현재 T번째 입력벡터의 확률
    2. P(1...Xt-1) -> T이전에 확률 분포

    이때 조건부 확률인 P(A) = P(A|B) * P(B) 을 사용합니다.
    현재 t번째의 확률분포 P(X1....Xt) = P(Xt|X1....Xt-1) * P(X1...Xt-1) 라고 수식을 만들 수 있고,
    이때 P(A|B) 부분을 뜯어보면 P(Xt 교집합 X1....Xt-1) -> X는 독립적이기 때문에 단순히 곱셉연산으로 가능하게되고 기존에 아는 정보인 P(Xt) 와의 곱셉으로 처리됩니다. 그래서 새로운 t번째의 확률 분포를 구할 수 있다. 정도로 저도 이해했고 틀린거나 애매한건 집어주세요! 저도 더 완벽히 이해하면 좋죠" -> (여기서 독립이라는 가정이 좀 틀렸다. 시퀀스 모델 같은 경우 독립이 아닐 경우가 많을 것으로 예상한다. 그래도 어느정도 조건부 확률에 대한 연관성을 가지고 식을 이해하는 것이 중요하다고 생각한다.)

    반응형
Designed by Tistory.