본문 바로가기
Graduate Lectures(2024-2)/딥러닝영상인식1

[Lecture 9] Recurrent Neural Network

by BangGeuk 2024. 12. 16.

본 강의 학습 목표는 다음과 같다.

  • Video Processing
  • Recurrent Neural Network (RNN): Types of RNN (One-to-many, Many-to-one, Many-to-many), Backpropagation in RNN, Applications of RNN, Problems of RNN
  • Long-Short Term Memory (LSTM)

Video Processing

지금까지 강의는 3 x H x W 짜리 이미지를 input으로 받아 처리하였다. Video의 경우, 시퀀스가 존재하기 때문에 T x 3 x H x W 짜리로 input으로 받는다. T는 Time 축이다. 이러한 시퀀스 데이터를 처리하기 위해, RNN을 배운다. 

 

Recurrent Neural Network (RNN)

RNN은 연속된 데이터를 처리한다. time=0일 때, 처리하고 time=1일 때, time=1,2 정보를 처리하고 time=2일 때, time=1,2,3 정보를 처리하며 시퀀스 데이터를 처리한다.

 

RNN은 hidden state가 존재하며 시퀀스를 처리하며 업데이트된다. 전 hidden state와 input을 통해 hidden state가 생성된다. 그리고 hidden state로부터 output이 생성된다.

 

vanilla Recurrent Neural Network 식은 다음과 같다.

 

Types of RNN (One-to-many, Many-to-one, Many-to-many)

One-to-many는 다음과 같다.

 

Many-to-one은 다음과 같다.

 

Many-to-many는 다음과 같다.

 

Many-to-many 예시는 다음과 같다. output layer로 나온 점수를 softmax를 통해 확률로 변환하여 학습한다.

 

Backpropagation in RNN

Many-to-many의 경우, 다음과 같이 각 output loss를 평균값을 계산하여 backward를 진행한다.

 

만약, 시퀀스가 너무 길 경우 다음과 같이 chunk 단위로 나눠 loss를 계산하여 backward를 진행할 수 있다.

 

Applications of RNN

RNN을 가지고 글을 학습시켜 글을 생성할 수 있다.

 

Problems of RNN

RNN의 문제로는 short-term memory일 때에만 작동이 괜찮다. long-term memory일 때는 gradient vanishing 문제가 생겨 학습이 잘 되지 않는다.

 

Long-Short Term Memory (LSTM)

long-term memory의 문제를 해결하고자 LSTM이 등장했다.

 

 

Forget gate는 이전 hidden state와 input을 통해 sigmoid를 통과하여 생성된다.

 

Input gate는 다음과 같이 계산된다.

 

Output gate는 다음과 같이 계산된다.

 

GRU는 output gate가 따로 없이 forget gate와 input gate로만 사용한다.