[Computer Vision] RNN-based Video Models

2024. 9. 24. 20:18·Computer Vision
목차
  1. RNN-based Spatio-Temporal Modeling
  2. LRCN
  3. Beyond Short Snippets
  4. FC-LSTM
  5. ConvLSTM
  6. ConvGRU
  7. Attention Mechanism
  8. Information Loss with RNN
  9. Attention Idea
  10. Dot-Product Attention 
  11. Attention-based Video Models
  12. MultiLSTM
  13. Visual Attention
본 포스팅은 서울대학교 이준석 교수님의 '시각적 이해를 위한 머신러닝 (2023 spring)' 강의를 바탕으로 작성되었습니다.
모든 내용의 출처는 해당 강의에 있습니다.
Courses: http://viplab.snu.ac.kr/viplab/courses/mlvu_2023_1/index.html
Youtube: https://www.youtube.com/watch?v=-iwEKM56BpU&list=PL0E_1UqNACXDTwuxUzCl5AeEjXBfWxCwc&index=13

 

RNN-based Spatio-Temporal Modeling

LRCN

  • 비디오는 프레임의 시퀀스이므로, CNN을 통해 일련의 시퀀스로부터 특징을 추출하고 이를 RNN에 넣는 것이 가장 기본적인 RNN-based Video Modeling
  • LRCN(Long-term Recurrent Convolutional Network)이 그러한 예시
  • 사전 학습된 CaffeNet으로 프레임들의 특징을 추출하고 이를 LSTM에 입력
  • 각각의 프레임들에 대한 예측을 averaging하여 종합

 

Beyond Short Snippets

  • 2014년 까지의 기존의 비디오 연구는 16프레임 정도로 굉장히 짧은 프레임으로 이루어짐
  • 더 길고(최대 5분) 복잡한 내용을 담고 있는 비디오를 다뤄보자는 취지로 시작
    • Raw Frame에 대해서는 1fps를 적용 (초당 1프레임, 장면 전환을 이해하는 정도)
    • 동작에 대한 정보를 살리고자 Optical Flow를 피처로서 추가적으로 적용 (15fps)
  • 이들의 정보를 통합하는 데에 있어 추출된 conv-feature들에 대해 Pooling, LSTM 두 가지 방식을 적용해봄
  • Pooling

    • Conv pooling: 가장 간단한 max pooling. averaging이 아닌 max를 사용한 이유는 비디오 길이가 긴 만큼 핵심 정보를 max로서 살리기 위함
    • Late pooling: FC layer를 몇 개 더 쌓고 max pooling
    • Slow pooling: FC layer를 사이에 넣은 계층적 구조
    • Local pooling
    • Time-domain conv: max pooling 이전에 1x1 conv를 적용하여 차원 축소
    • 결과적으로 Conv pooling이 가장 성능이 좋았음
  • LSTM
    • 그림과 같이 각 프레임으로부터 추출된 conv-feature들에 대해 Multi-layer LSTM을 적용
    • 예측을 종합하기 위한 여러 방법을 시도했고 결과적으로 Weighted averaging 방식이 가장 좋았음 (약간의 차이로)
  • Pooling vs. LSTM
    • LSTM이 조금 더 좋은 성능
    • Conv pooling에서 프레임을 4배 정도로 증가시켰을 때는 LSTM과 유사해짐
    • 공간적인 정보가 살아있는 conv-feature 대신 CNN의 말단에 있는 FC 레이어를 거친 FC feature를 넣었을 때는 성능이 매우 감소함

 

FC-LSTM

  • long-term memory인 cell state도 게이팅에 관여하도록 하고자 하는 아이디어
  • 그림과 같이 cell state를 선형변환한 Vct−1Vct−1를 게이트에 추가
  • 이와 같은 변화를 채택하여도 여전히 FC를 직접적으로 통과하지 않으므로 그래디언트가 잘 흐름

 

ConvLSTM

  • 앞선 FC-LSTM에 대해 다음과 같이 model spatio-temporal dynamics로의 두 가지 확장
    • input (x)와 hidden (h, c)를 벡터에서 행렬로 확장 (배치 단위를 고려하면 실제로는 3D tensor)
    • 기존에 FC 형태였던(행렬곱) Weights (W, U)를 컨볼루션 연산으로 대체
  • LSTM 셀 안에 있는 i, f, o, c, h가 2D로 변환되며 공간적 정보를 유지하기 위해 모든 연산이 컨볼루션으로 바뀜
  • multi-layer LSTM과 같이 여러 시간대로 쌓임
  • seq2seq 구조에 적용하여 인코더로부터 추출된 마지막 hidden matrix를 가지고 디코더에서 미래를 예측하는 task를 수행할 수 있음 (e.g. Hurricane Tracking & Forecasting)

 

ConvGRU

  • LSTM 대신 GRU를 적용
  • 각 레이어에서 one-step 이전의 hidden state와 한 층 밑의 hidden state 외에도 2D input feature xx를 추가적으로 입력 받음

Attention Mechanism

Information Loss with RNN

  • RNN에서 전체 시퀀스는 그 길이에 상관 없이 하나의 임베딩으로 인코딩됨
  • 이 임베딩이 모든 정보를 담고 있기를 원하지만 실제로는 긴 길이의 시퀀스의 경우 정보 손실이 불가피함
  • 먼저 입력된 정보들은 더 손실되기 쉬움
  • 이를 해결하기 위해 마지막 하나뿐만 아니라 모든 hidden state를 반영하고자 하는 것이 어텐션 아이디어의 기초가 됨

 

Attention Idea

  • Attention function: Attention (Q, K, V) = Attention value
  • query는 곧 문맥이자 현재의 상황이라면 key-value 쌍은 레퍼런스
  • attention value는 value들의 가중합인데, 이 가중합에 대한 가중치가 높다는 것은 query와 (value에 딸려있는) key 간의 상관관계가 높다는 뜻을 의미
    • 일반적으로 Q와 K는 차원이 같음
    • V와 Attention value는 차원이 같음
    • 많은 경우 4개를 모두 같은 차원을 사용
  • seq2seq 모델에서의 응용
    • Q (Query): t일 때 디코더에서의 hidden state
    • K (Keys): 모든 시간에 대해 인코더에서의 hidden states
    • V (Values): 모든 시간에 대해 인코더에서의 hidden states

 

Dot-Product Attention 

  • 그림을 보며 해석해보자면 현재 디코더 hidden state를 Query라고 할 수 있음
  • 인코더 hidden state들은 Key, Value 두 역할을 모두 하는데 Key로서는 Query와의 내적을 통해 Attention score를 구하게 됨
  • 이 Attention score에 softmax를 취해 Attention coefficients를 구함
  • 인코더 hidden state들이 Value로서 사용될 때는 앞서 Attention coefficients와의 가중합을 통해 최종적으로 Attention value를 구하게 됨
  • 다른 형태의 어텐션 방법들도 존재하나, dot-product 방식이 파라미터 수도 적고 학습도 쉬워서 많이 사용됨

Attention-based Video Models

MultiLSTM

  • 기본적으로 LRCN과 유사한 구조
  • Multiple input: LSTM에 단일 프레임을 입력받는 대신 N개의 최근 프레임들에 대해 어텐션 적용
    • Query: LSTM의 이전 hidden state
    • Key, Value: 최근 N개의 입력 프레임 피처
    • Attention value: 최근 N개의 프레임 피처에 대한 가중합
  • Multiple output: 마찬가지로 최근 N개의 프레임에 대한 예측을 출력

 

Visual Attention

  • 그림을 보면서 설명하자면 각 단계마다 다음의 과정을 수행
    • LSTM의 마지막 hidden state h1h1이 Query로 사용됨
    • 다음 입력 이미지의 마지막 conv-feature인 X2X2와 어텐션을 수행하여 spatial attention coefficients l2l2를 얻음
    • X2X2와 l2l2 간의 가중합을 계산하여 attention value x2x2를 얻고 이것이 LSTM의 입력으로 들어감
    • 클래스 예측 y2y2를 수행하고 마찬가지로 이번에는 h2h2를 Query로 동일하게 반복
  • Spatial attention
    • 마지막 conv-layer feature인 XtXt는 그림과 같이 K x K x D 차원
    • K x K 개의 regional 피처들이 element-wise로 가중합되어 D 차원의 xtxt 출력
  • Attention summary
    • Query: 마지막 LSTM의 이전 hidden state ht−1ht−1
    • Key, Value: input XtXt로부터 K x K 차원의 regional 피처
    • Attention value: regional 피처들의 가중합. 가중치는 곧 ht−1ht−1과 얼마나 유사한가를 의미
    • 의미: 현재 time step에서 지금까지의 프레임들에 대한 의미를 고려했을 때 새로운 입력에 대해서는 어느 부분에 집중을 해야하는가

'Computer Vision' 카테고리의 다른 글

[Computer Vision] Metric Learning  (0) 2024.10.01
[Computer Vision] Segmentation  (2) 2024.09.30
[Computer Vision] Object Detection  (1) 2024.09.29
[Computer Vision] Transformers II  (4) 2024.09.27
[Computer Vision] Transformers I  (0) 2024.09.25
  1. RNN-based Spatio-Temporal Modeling
  2. LRCN
  3. Beyond Short Snippets
  4. FC-LSTM
  5. ConvLSTM
  6. ConvGRU
  7. Attention Mechanism
  8. Information Loss with RNN
  9. Attention Idea
  10. Dot-Product Attention 
  11. Attention-based Video Models
  12. MultiLSTM
  13. Visual Attention
'Computer Vision' 카테고리의 다른 글
  • [Computer Vision] Segmentation
  • [Computer Vision] Object Detection
  • [Computer Vision] Transformers II
  • [Computer Vision] Transformers I
ymkwon
ymkwon
공부 기록, 논문 리뷰 등에 대한 정리
  • ymkwon
    ymkwon
    ymkwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • CS231n (9)
      • 기계학습 (2)
      • 딥러닝 (0)
      • Paper Review (4)
      • Computer Vision (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    cs231
    기계학습
    컴퓨터비전
    멀티모달
    딥러닝
    cs231n
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
ymkwon
[Computer Vision] RNN-based Video Models

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.