본문 바로가기

부스트캠프 AI Tech/[Week1] AI Math

[Week1] AI Math - CNN & RNN

1. Convolution

  • Convolution 연산은 커널(kernel)을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조
  • 기존에 배웠던 신경망에서는 가중치행렬을 학습시키지만 Convolution은 고정된 커널을 사용하는것이 특징

  • Convolution 연산의 수학적인 의미는 신호를 커널을 이용해 국소적으로 증폭 또는 감소시켜 정보를 추출 또는 필터링하는것

convolution 대신 cross-correlation 활용

  • 커널은 정의역 내에서 움직여도 변하지 않고(translation invariant) 주어진 신호에 국소적(local)으로 적용.

 

*dimensions

  • Convolution 연산의 다양한 차원

 

 

*2차원 Convolution

  • 2D-Conv 연산은 커널을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조

  • 입력 크기를 (H,W), 커널 크기를 (Kh,Kw), 출력 크기를 (Oh, Ow)라 하면 출력 크기는 다음과 같음

  • 채널이 여러개인 2차원 입력의 경우 2차원 Convolution 을 채널 개수만큼 적용

 

*Convolution 연산의 역전파

  • Convolution 연산은 커널이 모든 입력데이터에 공통으로 적용되기 때문에 역전파 계산도 Convolution 연산

  • 역전파 단계에서 다시 커널을 통해 그레디언트가 전달됨

 

2. RNN

 

*시퀀스 데이터

  • 소리, 문자열, 주가 등의 데이터를 시퀀스(sequence) 데이터로 분류
  • 시계열(time-series) 데이터는 시간 순서에따라 나열된 데이터로 시퀀스 데이터에 속함
  • 시퀀스 데이터는 독립동등분포(i.i.d) 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률 분포도 바뀌게 됨
  • 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루기 위해 조건부확률을 이용

  • 시퀀스 데이터를 다루기 위해선 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요

 

 

*시퀀스 데이터 다루는법

  • 자기회귀 모델(Autoregressive Model) - 고정된 길이만큼의 시퀀스만 사용하는 경우 

  • 잠재 AR 모델 - 바로 이전 정보를 제외한 나머지 정보들을 Ht라는 잠재변수로 인코딩해서 활용

  • 잠재 모델의 장점 - 가변적인 데이터 문제를 고정된 길이의 문제로 바꿀 수 있음
                           - 과거의 데이터를 다 활용
  • 문제점 - 과거의 정보의 데이터를 어떻게 인코딩 할지? => RNN(Recurrent Neural Network)

 

 

*RNN

  • 가장 기본적인 RNN 모형은 MLP와 유사한 모양
  • RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링

  • RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산 => BPTT(BackPropagation Through Time)

 

*BPTT (BackPropagtion Through Time)

  • BPTT를 통해 RNN의 가중치행렬의 미분을 계산하면 미분의 곱으로 이루어진 항이 계산

  • BPTT는 잠재변수에 대한 미분이 곱해져서 더해지게 되는데 시퀀스의 길이가 길어지게 되면 미분값이 엄청 커지거나 작아질 확률이 존재. 따라서 학습률이 떨어질 수 있음 => vanishing & exploding gradient problem
  • 따라서 시퀀스 길이를 끊는 것이 필요 => truncated BPTT : 미래 정보의 몇개 시퀀스를 제외하고, 과거의 시퀀스의 그레디언트를 계산

truncated BPTT

  • BPTT는 이론적으로 모든 이전 타임 스텝이 영향을 주지만 타임 스텝이 길어질 수록 영향을 주지 못하는 문제 발생
  • truncated BPTT도 일정한 타입 스텝을 기준으로 학습하므로 그 이상의 Long-term 패턴을 학습할 수 없는 문제 존재
  • truncated BPTT의 Advanced :  GRU , LSTM

 

*LSTM(Long Short-Term Memory)

LSTM 셀 구조

  • LSTM의 state는 두 개의 벡터 ht (short-term state), ct(long-term state)로 나누어 짐
  • Forget gate : ft에 의해 제어되며 장기 상태 ct의 어느 부분을 삭제할지 제어
  • Input gate : it에 의해 제어되며 gt의 어느 부분이 장기 상태 ct에 더해져야 하는지 제어
  • Output gate : ot는 장기 상태 ct의 어느 부분을 읽어서 htyt로 출력해야 하는지 제어
  • Long Term dependency 관점에서 보면 ct는 forget gate를 지나면서 일부 기억을 잃고, input gate로 부터 새로운 기억 일부를 추가하며 장기 기억을 가지고 감

 

*GRU(Gated Recurrent Unit) Cell

GRU 셀 구조

  • GRU는 LSTM의 두 상태 벡터 ct와 ht가 하나의 벡터 ht로 합쳐짐
  • Gate Controller : zt가 forget gate와 input gate를 모두 제어 -> zt = 1 , forget gate open   input gate close
                                                                                      zt = 0 , forget gate close   input gate open
  • 즉, 이전(t-1)의 기억이 저장 될 때 마다 타임 스텝 t의 입력은 삭제됨
  • 이전 상태 h(t-1)의 어느 부분이 출력될지 제어하는 새로운 rt gate controller 존재
  • GRU 셀은 output 게이트가 없어 전체 상태 벡터 ht가 타임 스텝마다 출력되는 특징

출처 : https://excelsior-cjh.tistory.com/185   (LSTM , GRU)

'부스트캠프 AI Tech > [Week1] AI Math' 카테고리의 다른 글

[Week1] AI Math 기초  (0) 2021.08.02