Video Classification Dataset인 Something-Something V2 설치

https://developer.qualcomm.com/software/ai-datasets/something-something

 

Moving Objects Dataset: Something-Something v. 2

Moving Objects Dataset: Something-Something v. 2 Your model recognizes certain simple, single-frame gestures like a thumbs-up. But for a truly responsive, accurate system, you want your model to recognize gestures in the context of everyday objects. Is the

developer.qualcomm.com

위 사이트에서 회원가입 후에 모든 20BN-Something-Something Download Package를 00~19까지 다운로드
그 뒤에 우분투 서버로 파일은 넣은 뒤에 20BN-Something-Something Download Instructions을 보고 설치

 

TimeSformer에서 보면 초당 30Frame으로 Sampling 해야함

https://github.com/facebookresearch/TimeSformer/blob/main/timesformer/datasets/DATASET.md

 

GitHub - facebookresearch/TimeSformer: The official pytorch implementation of our paper "Is Space-Time Attention All You Need fo

The official pytorch implementation of our paper "Is Space-Time Attention All You Need for Video Understanding?" - GitHub - facebookresearch/TimeSformer: The official pytorch implementati...

github.com

 

ffmpeg를 이용 경로설정만 알아서 하면 됨

각 Frame당 30으로 셋팅

 

VIDEO_DIR=./20bn-something-something-v2
FRAME_DIR=./frames

for video_file in $VIDEO_DIR/*; do
    video_name=$(basename -- "$video_file")
    video_name="${video_name%.*}"

    mkdir "frame/${video_name}"

    ffmpeg -i "${video_file}" -r 30 -q:v 1 "$FRAME_DIR/${video_name}/${video_name}_%06d.jpg"

done

 

우분투 명령어

폴더개수

ls -l | grep ^d | wc -l

파일 개수

ls -l | grep ^- | wc -l


https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.

hub.docker.com

docker image찾기

 

docker images Pull/ TimeSformer Cuda11
docker pull qilf/timesformer_cuda11

 

docker 실행 

docker run --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 --volume ~/workspace:/workspace -it --rm --name kimhyunwoo qilf/timesformer_cuda11

 

 

conda create -n timesformer python=3.9 -y
source activate timesformer
pip install torchvision
pip install 'git+https://github.com/facebookresearch/fvcore'
pip install simplejson
pip install einops
pip install timm
conda install av -c conda-forge -y
pip install psutil
pip install scikit-learn
pip install opencv-python
pip install tensorboard
pip install matplotlib
pip install ptflops
pip install torchsummary
cd TimeSformer
python setup.py build develop
python tools/run_net.py  --cfg ./configs/SSv2/TimeSformer_divST_8_224.yaml
videomae
sudo pip install timm==0.4.12
sudo pip install deepspeed==0.5.8
sudo pip install opencv-python
sudo pip install tensorboardX
sudo pip install decord
sudo pip install einops

 

OUTPUT_DIR='./ex1'
# path to SSV2 annotation file (train.csv/val.csv/test.csv)
DATA_PATH='/workspace/ssv2/annotations'
# path to pretrain model
MODEL_PATH='./pretrain/checkpoint.pth'

OMP_NUM_THREADS=1 torchrun --nproc_per_node=2 \
    run_class_finetuning.py \
    --model vit_small_patch16_224 \
    --data_set SSV2 \
    --nb_classes 174 \
    --data_path ${DATA_PATH} \
    --finetune ${MODEL_PATH} \
    --log_dir ${OUTPUT_DIR} \
    --output_dir ${OUTPUT_DIR} \
    --batch_size 6 \
    --num_sample 2 \
    --input_size 224 \
    --short_side_size 224 \
    --save_ckpt_freq 10 \
    --num_frames 16 \
    --opt adamw \
    --lr 2e-3 \
    --layer_decay 0.7 \
    --opt_betas 0.9 0.999 \
    --weight_decay 0.05 \
    --epochs 40 \
    --test_num_segment 2 \
    --test_num_crop 3 \
    --dist_eval \
    
    
OUTPUT_DIR='./ex1'
# path to SSV2 annotation file (train.csv/val.csv/test.csv)
DATA_PATH='/home/work/workspace_kim/ssv2/annotations'
# path to pretrain model
MODEL_PATH='./pretrain/checkpoint.pth'
python run_class_finetuning.py \
    --model vit_small_patch16_224 \
    --data_set SSV2 \
    --nb_classes 174 \
    --data_path ${DATA_PATH} \
    --finetune ${MODEL_PATH} \
    --log_dir ${OUTPUT_DIR} \
    --output_dir ${OUTPUT_DIR} \
    --batch_size 6 \
    --num_sample 2 \
    --input_size 224 \
    --short_side_size 224 \
    --save_ckpt_freq 10 \
    --num_frames 16 \
    --opt adamw \
    --lr 2e-3 \
    --layer_decay 0.7 \
    --opt_betas 0.9 0.999 \
    --weight_decay 0.05 \
    --epochs 40 \
    --test_num_segment 2 \
    --test_num_crop 3 \
    --dist_eval \

'개인연구메모' 카테고리의 다른 글

Chatgpt 세미나 준비 관련  (0) 2023.04.18

https://www.assemblyai.com/blog/how-chatgpt-actually-works/#how-language-model-training-strategies-can-produce-misalignment

 

How ChatGPT actually works

Since its release, the public has been playing with ChatGPT and seeing what it can do, but how does ChatGPT actually work? While the details of its inner workings have not been published, we can piece together its functioning principles from recent researc

www.assemblyai.com

How ChatGPT Actually Works

ChatGPT OpenAI의 최신언어 Model이며 이전 GPT-3에 비해 개선 됨

제작자들은 Supervised LR, Reinforcement LR사용하여 Fine Tuning했지만, ChatGPT를 강하게 만든것은 RLHF(Reinforcement Learning from Human Feedback)

사람 Feedback 사용해서 harmful, Untruthful, Biased Output을 최소화

RLHF가 어떻게 이용되는지, GPT-3의 한계가 뭔지 그 훈련과정에서 어떻게 파생되는지 조사 해야함


 

Capability vs Alignment in Large Language Models

Capability : 특정 Task 또는 일련의 Task를 수행하는 Model의 기능을 나타냄

Model의 Capability는 Model의 목표를 정의하는 수학적 표현인 Objective Function을 얼마나 잘 최적화 될 수 있는지에 따라 평가됨

Ex 주식 시장 가격을 예측하도록 설계된 모델에는 모델 예측의 정확도를 측정하는 Objective Function이 있을 수 있음 
모델이 시간 경과에 따른 주가의 움직임을 정확하게 예측할 수 있다면 이 작업에 대한 높은 수준의 Capability을 가진 것

 

Alignment : Alignment는 Model이 실제로 수행하기를 원하는 것과 Model이 수행하도록 Training되는 것과 관련이 있음

한마디로 "그 Objective Function이 우리의 의도와 일치하는가?"라는 질문을 던지는 것

즉 Model의 목표와 행동이 인간의 가치와 기대에 부합하는 정도를 나타냄

Ex 새를 분류하는 Model이 있다면 Log Loss Function으로 학습시에 Model의 Log Loss는 낮아지지만, 실제 Test에서 Classification에서는 정확도가 낮음. 즉 Model의 Capability는 

 

GPT 3같은 경우 Model이 Misaligned됨
GPT3와 같이 Large-Scale Language Model은 Internet의 방대한 양의 Text Data에 대해 교육받고, 인간과 유사한 Text를 생성해도, 인간의 기대, 또는 바람직한 값과 일치하는 Output을 생성안함, Aligment가 낮음

실제로 그들의 Objective Function은 Word Sequence(or Token Sequence)에 대한 확률분포로 Sequence에서 다음 단어가 무엇인지 예측하는 것 (Language Modeling)

 

그러나 실제 Application에서 이러한 Model은 어떤 형태의 가치 있는 인지작업을 수생하기 위한 것 이며, 모델이 훈련되는 방식과 우리가 사용하고자 하는 방식 사이에는 차이가 존재

Word Sequence에서 Machine Calculated Statistical Distribution이 수학적으로 보면 Language Modelding 하는데 매우 효과적인 선택처럼 보이지만, 인간으로서 우리는 배경지식과 상식을 사용하여 주어진 상황에 가장 적합한 Text Sequence를 선택하여 언어를 생성

이는 Language Model은 지능형 개인 비서와 같이 높은 수준이 필요한 경우에는 문제됨

 

엄청난 양의 Data에 대해 훈련된 강력하고 복잡한 Model은 지난 몇년 동안 유능해졌지만, 인간의 삶을 더 쉽게하기에는 단점이 존재

Lack of helpfulness : 사용자의 명시적인 지시를 따르지 않음

Hallucinations : 존재하지 않거나 잘못된 사실을 만드는 모델

Lack of interpretability : 인간이 모델이 특정 결정이나 예측에 도달한 방법을 이해하기 어려움

Generating biased or toxic output : Biased/Toxic Data에 대해 Training 된 언어모델은 명시적으로 지시하지 않은 경우에도 출력이 나올수도 있음

이런 Alignment문제를 해결하기 위해 좋은 Training 방식은 뭘까?


how language model training strategies can produce misalignment?

Next-token-prediction & masked-language-modeling은 Transformer와 같은 Language Modeling Training에 사용되는 핵심기술

 

Next-token-prediction

첫 번째 접근 방식에서 Model은 일련의 Word(또는 "Tokens", 즉 parts of words)를 Input으로 받고 시퀀스의 다음 단어를 예측하도록 요청. 예를 들어 모델에 입력 문장이 주어진 경우

"The cat sat on the"

이렇게 나오면 이전 Context에서 이러한 Word가 나타날 가능성이 높기 때문에 다음 단어 "mat", "chair", "floor"를 예측할 수 잇음, Language Model은 실제로 주어진 Previous Sequence에서 가능한 각 단어의 likelihood(가능성)을 

 

masked-language-modeling

Masked-Language-Modeling은 Input Sentence의 일부 Word가 [MASK[와 같은 특수 Token으로 대체되는데 Next-Token Prediction의 변형임

Mask된 대신 삽입해야하는 올바른 단어를 예측하도록 Model에게 요청
"The [MASK] sat on the"

입력으로 다음 단어를 "cat", "dog" 또는 "rabbit"로 예측할 수 있음

이런 Objective Function은 한가지 장점은 Model이 일반적인 Word Sequence 및 Word 사용 Pattern과 같은 Language의 Statistical Structure을 학습 가능

이는 일반적인 Model보다 자연스럽게 유창한 Text를 생성하는데 도움이 됨. 모든 LM Model의 Pretraining 단계에서 필수

 

이러한 Objective Function의 문제를 일으킬 수도 있음. 본질적으로 Model이 중요한 Error와 중요하지 않은 Error를 구별할 수 없음

아주 간단한 예를 들자면 다음과 같음

"The Roman Empire [MASK] with the reign of Augustus."

'Began', 'End'를 모두 예측이 가능하고, 두 단어 모두 발생 Likelihood가 매우 높기 때문에(두 문장 모두 역사적으로 정확함)

선택이 가능, 하지만 두개는 매우 다른 의미를 가지고 있음 

 

보다 일반적으로 생각하면, 이러한 Training전략은 Text Sequence에서 다음 Word(Masking 단어)를 예측하도록만 Training된 Model이 반드시 일부를 학습하지 않을수도 있기 때문에 일부 더 복자한 Task에 대한 언어모델의 Alignment가 잘안됨

결과적으로 Model은 언어에 대한 더 깊은 이해가 필요한 작업이나 Context로 일반화하는데 어려움을 겪음

 

OpenAI의 연구원과 개발자는 Large-Scale Language Model의 Alignment 문제를 해결하기 위해 다양한 접근방식을 연구

Chatgpt는 원래 GPT-3 Model을 기반으로 하지만 Model의 Alignment 문제를 완화한다는 특정 Objective로 학습 Process로 진행하기 위해 Human Feedback을 사용하여 추가로 Training

 

이 테크닉의 이름은 Reinforcement Learning from Human Feedback 이전 학술 연구를 기반으로 함

ChatGPT는 프로덕션에 투입된 모델에 대해 이 기술을 사용한 첫 번째 사례를 나타냅니다.

 

근데 Chatgpt의 제작자들은 Human Feedback을 정확히 어떻게 사용하여 Alignment문제를 해결하나?


Reinforcement Learning from Human Feedback

해당 방식은 전반적으로 3가지 단계로 구성됨

 

1. Supervised Fine Tuning Step : Pre-Trained Language Model은 라벨러가 선별한 상대적으로 적은 양의 Demo Data에서 Fine Tuning 되어 선택한 Prompts list에서 Output을 생성하는 Supervised Policy(SFT)를 학습

이는 Baseline Model을 나타냄

2. “Mimic human preferences” Step : 라벨러는 상대적으로 많은 수의 SFT Model의 Output에 투표하도록 요청받고, 이렇게 하면 비교 데이터로 구성된 새 Dataset이 생성됨. 그 뒤에 이 데이터셋에서 Model이 학습됨. 이를 RM(Reward Model)이라고 함

3. Proximal Policy Optimization (PPO) step : Reward Model은 SFT Model을 더욱 Fine Tuning 하고 개선하는데 사용됨.
이 단계의 결과는 Policy Model임

 

각 단계의 세부사항을 살펴보면 다음과 같음

(참고: 이 문서의 나머지 부분은 InstructGPT 논문의 내용을 기반으로 합니다. OpenAI에 따르면 ChatGPT는 "InstructGPT와 동일한 방법을 사용하지만 데이터 수집 설정에 약간의 차이가 있습니다" 을 말함. 아쉽게도 ChatGPT에 대한 정확한 보고서는 아직 공개안됨)


Step 1 : The Supervised Fine-Tuning (SFT) model

첫 번째 단계는 SFT Model라고하는 Supervised Policy Model을 Training하기 위해 Demo Data를 수집

 

Data Collection : Prompts List가 선택되고 Labeling 작업자 Group이 예상되는 Output Response를 기록하도록 요청받음.
ChatGPT의 경우 두 가지 Prompts Source가 사용되었음.
일부는 라벨러 도는 개발자가 직접준비했고, 일부는 OpenAI의 API Response(GPT-3 고객)에서 Sampling

이 전체 Process는 느리고 비용이 많이 들기 때문에 Pre-Train된 언어모델을 Fine Tuning하는데 사용되는 상대적으로 작고 고품질의 선별된 데이터셋이 생성(12~15k Data Point)

 

Choice Model : 원래 GPT-3 Model을 Fine Tuning하는 대신 ChatGPT 개발자는 소위 GPT- 3.5 시리즈의 Pre-trained된 Model을 선택함.
아마도 사용된 Base Model은 대부분 Programming Code에서 Fine Tuning된 GPT-3 Model인 text-davinci-003일것임

따라서 흥미롭게도 개발자는 ChatGPT와 같은 범용챗봇을 만들기 위해 순수 Text Model이 아님

'개인연구메모' 카테고리의 다른 글

[TimeSformer, Something-Something v2 설치]  (0) 2023.05.07

https://arxiv.org/abs/2211.05778

 

InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

Compared to the great progress of large-scale vision transformers (ViTs) in recent years, large-scale models based on convolutional neural networks (CNNs) are still in an early state. This work presents a new large-scale CNN-based foundation model, termed

arxiv.org

Abstract

  • 최근 몇년간 Large Vision Transformer가 크게 발전한 것과 비교하면 cCNN을 기반으로 한 Large Scale Model을 거의 연구가 안됨
  • 해당 논문에서는 ViT와 같은 Parameter와 Training Data를 증가시켜 이득을 얻을 수 있는 Large Scale CNN-Based Foundation Model InternImage를 소개
  • Large Dense Scale Kernel을 이용하는 최근에 접근방식과 달리 InternImage는 Deformable Convolution을 Core Operator로 설정하였고, Detection, Segmentation과 같은 Task에서 필요한 Effective Receptive Field를 가지고, Input및 Task Information에 의해 조정되는 Adative Spatial Aggregation을 가지고 있음
  • 결과적으로 InternImage는 기존 CNN의 엄격한 Inductive Bias를 줄이고, ViT와 같은 Large-Scale Data에서 대규모 Parameter로 더 강하고 강력한 Pattern을 학습할 수 있게 함
  • 저자들은 ImageNet, COCO, ADE20K에서 좋은 성능을 가지고 SOTA에 달성
  • ViT를 능가하는 CNN이 가능하다는 것을 입증

Introduction

  • Transformer, ViT는 NLP, Vision 분야를 휩쓸어서 모든 연구의 Primary Choice, Large Scale Vision Foundation Model의 기초가 됨
  • ViT를 확장하여 아주 큰 Model을 만들고 다양한 Task에서 사용됨(Classification, Detection, Segmentation)
  • 이러한 결과는 대규모 Parameter 및 Data 시대에 CNN이 ViT보다 떨어진다는 것을 시사함
  • 하지만 저자들의 CNN Based Foundation Model이 유사한 Operator/Architecture-Level Design, Scaling-Up Parameter, Massive Data를 장착하면 ViT보다 비슷하거나 더 좋은 성능에 달성할 수 있다고 주장

  • CNN과 ViT 사이의 Gap를 해소하기 위해 먼저 두 가지 측면에서 차이점을 요약
  • Operator Level에서 보면 ViT는 Long-range Dependence와 Adative Spatial Aggregation(적응적으로 공간영역을 집계)을 가짐, Flexible한 MHSA의 이점을 활용하여 ViT는 Large-Scale Data에서 CNN보다 더 강력하고 강력한 Representation을 학습할 수 있음
  • Architecture 관점에서 보면 MHSA외에도 ViT에는 Layer Normalization, FC-Layer, GELU 등과 같이 Standard CNN에는 포함되지 않은 고급 구성 요소가 있음
  • 최근 연구가 Fig 1(c)에 표시된 것 처럼 매우 큰 Kernel(31x31 https://github.com/DingXiaoH/RepLKNet-pytorch)를 가진 Dense Convolution을 사용하여 CNN에 Long-range Dependence를 도입하려는 의미있는 시도를 했지만, 성능 및 Model Size 측면에서 Large-Scale ViTs와는 격차가 존재
  • 해당 연구에서는 Large-Scale Parameter 및 Data를 효율적으로 확장할 수 있는 CNN Based Foundation Model을 설계하는데 집중
  • 구체적으로 저자들은 Flexible Convolution인 DCN에서 시작함
  • Transformer와 유사한 구조의 맞춤형 Block Level 및 Architecture Level Desgin을 채택하여 InternImage라는 새로운 Backbone을 만듦
  • Fig 1에서 볼 수 있듯이 31x31과 같이 매우 큰 Kernel를 이용하여 개선한 CNN과는 달리 Internimage는 Core Operator로 Window size가 3x3인 Dynamic Space Convolution
  • 주어진 Data에 대해서 적절한 Receptive Field(Long or Short Range)를 Dynamic하게 학습할 수 있는 Sampling Offset
  • Sampling Offset은 Modulation Scalars에 대해 적응적으로 조정되어 ViT와 같은 Adative Spatial Aggregation을 달성, Standard Convolution의 과도한 Inductive Bias를 감소
  • Convolution Window는 일반적으로 3x3이며 Large-Dense Kernel로 인한 Optimization Problem과 Expensive Cost를 방지

  • 앞서 언급한 설계를 통해 제안된 InternImage는 큰 Parameter Size로 효율적으로 확장하고 Large-Scale Dataset에서 더 강력한 Representation을 학습하여 광범위한 Vision Task에서 Large-Scale ViT와 비슷하거나 훨씬 더 나은 성능을 얻음, 저자들의 기여는 다음과 같음
  • Large-Scale CNN-Based Foundation Model InternImage를 제안
    - 저자들이 알기를 1B Parameter와 400M 이상의 Training Image로 효과적으로 확장하고 SOTA ViT와 비슷하거나 심지더 더 나은 성능을 보여주는 최초의 CNN

    - Convolution Model이 대규모 Foundation Model연구를 위해 탐색할 가치가 있는 방향이기도 함을 보여줌
  • 개선된 3x3 DCN Operator를 사용하여 Long-Range Dependencies와 Adative Spatial Aggreation을 도입하여 CNN을 Large-Scale Setting에서 성공적으로 확장
    - Operator를 중심으로 Basic Block구축
    - Stack Rule 및 Scailng 전략을 탐구
    - 이러한 설계는 Operator를 효과적으로 사용하여 Model이 Large Scale Parameter 및 Data로부터 이득을 얻을 수 있게함
  • Image Classification, Object Detection, Instance and Semantic Segmentation에서 Model을 평가하고 크길르 30M에서 1B, Data는 1M에서 400M까지 확장하여 SOTA CNN 및 Large-Scale ViT와 비교
    - 여러 Size의 Model이 ViT, CNN과 비교하여 SOTA에 달성

Related Work

  • Vision Foundation Models
    - Large-Scale Dataset과 Computation Resource를 사용할 수 있게 된 후에 CNN은 Visual Recognition에서 주목
    - AlexNet, VGG, GoogleNet, ResNet, EfficientNet 등 다양한 깊은 Network 등장
    - 이런 Model 설계 이외에도 DCN, Depthwise Separable Conv등 다양한 Method 연구가 진행
    - 최근 몇년간에는 Transformer Based Model이 초점에 맞춰짐
    - ViT는 가장 대표적인 Model로 Global Receptive, Dynamic Spatial Aggregation을 가짐
    - 그러나 ViT에 대한 전 세계적인 관심은 Large Feature Map에서 Downstream Task에 적용을 제한하는 Computation / Memory Complexity으로 인해 어려움을 겪고 있음
    - 이를 해결하기 위해 PVT, Linformer 같이 Key & Value를 Downsampling하거나, DAT와 같이 Deformable Attention을 이용함
    - 이외에도 HaloNet, Swin Transformer는 Local Attention 메카니즘과 Shfited Window를 통해 정보를 전송
  • Large-Scale Models
    - Model을 확장하는 것은 NLP 영역에서 잘 연구된 Feature Representation을 향상시키는 중요한 전략
    - NLP분야에서 성공에 영감을 받은 여러 연구지는 처음으로 ViT에 2B 의 Parameter로 만듬
    - Swin Transformer를 3B로 만든 연구도 존재
    - 일부 연구자들은 다양한 수준에서 ViT와 CNN의 장점을 결합하여 Hybrid-ViT를 만들기도 함
    - 그러나 CNN-Based Foundation Model에 대한 연구는 Parameter와 성능 측면에서 Transformer 기반에 비해 낮음
    - 최근에 CNN Kernel의 크기를 늘리고 Depthwise-Separable로 가는 방향도 있었지만 여전히 ViT와는 격차가 존재
    - 본 연구에서는 ViT에 필적하는 대규모, 효율적인 CNN기반 Based Foundation Model의 개발이 목표

Proposed Method

  • Large-Scale CNN-Based Foundation Model을 설계하기 위해 저자들은 Flexible Convolution , 즉 DCNv2를 참조함
  • 그리고 몇 가지 조정을 통해 요구사항에 더 잘 맞도록 DCNv3를 설계
  • 그런 다음 Deformable Convolution Operator를 현대 Backbone에 사용되는 Block 설계 방식과 결합하여 Basic Block으로 이용
  • 마지막으로 DCN 기반 Block Stack 및 Scailing 원리를 탐구하여 대규모 Dataset에서 Model이 더 잘 학습되도록 함

Deformable Convolution v3

  • Convolution vs MHSA
    - 이전 연구에서 CNN과 ViT의 차이점에 대해 다양하게 논의
    - InterImage의 Core Operator를 결정하기 전에 먼저 Regular Convolution과 MHSA의 차이에 대해 설명
    (1) Long-Range Dependencies
    - Effective Receptive Field가 큰 Model은 대개 Downstream Vision Task에서 더 잘 수행된다는 것이 오랫동안 인식됨
    - 3x3 Regular Convolution에 의해 Stacked CNN은 실질적인 Effective Field는 상대적으로 작음
    - Very Deep Model에서도 CNN Based Model은 Long-Range Dependencies를 얻을 수 없음
    (2) Adaptive Spatial Aggregation
     - Weight가 Input에 의해 Dynamic하게 조정되는 MHSA와는 다르게 Regular Convolution은 Static Weight를 가지고 2D Locality, Neightborhood Structure, Translation Equivalence 특성을 가진 Operation
     - Bias가 높은 특성을 이용하여 Regular Convolution Model은 ViT에 비해 빨리 수렴되고 Training Data가 덜 필요할 수 있지만 CNN이 Web-Scale의 Large-Scale Data에 정보를 학습하는 것을 제한하기도 함

 

  • Revisiting DCNv2 (아래의 Image 참조) 
    - 저자들은 ∆pk을 이용하여 Long-Range Dependencies를 Capture할 수 있고 Short-Range까지 커버가 가능하다는 주장을 함
    - Adaptive Spatial Aggregation의 경우 Sampling Offset ∆pk와 Modulation ∆mk가 모두 학습할 수 있어 MHSA와 유사한 특성을 제안한다고 생각(Static Weight가 아니라 Convolution 취할때마다 Weight를 변경시킴, MHSA와 유사, Sigmoid로 Attend하는 값을 Scaling) 

  • Extending DCNv2 for Vision Foundation Models
    - 일반적으로 DCNv2은 Regular Convolution의 확장으로 이용되고,일반 Convolution Pretrained 된 Weight를 Load하여 더 나은 성능을 위해 Fine Tuning
    - 이는 From Scratch로 Trainijg 해야하는 Large-Scale Vision Model에는 적합하지 않음
    - 해당 논문에서는 이 문제를 해결하기 위해 3가지 측면에서 DCNv2 확장
  • (1) Sharing weights among convolutional neurons
    - 일반 Convolution과 유사하게 DCNv2는 각 Convolution 뉴런마다 독립적인 Weight를 가짐(3x3 Kernel의 경우 9개의 Weight 당연한 이야기임)
    - 그러므로 Parameter와 Memory Complexity가 Sampling point 숫자에 대해 Linear하게 늘어남(3x3 Kernel은 9, 5x5 Kernel은 25) 이럴 경우에 DCN을 이용하여 Large-Scale Model을 만들기에는 효율적이지 않음 
    - 이에 따라 Depthwise Separable Convolution에서 아이디어를 빌려와 가중치 Wk를 Depthwise, Pointwise 로 분리
    - Depthwise Part는 location-aware modulation scalar mk가 담당하고, Pointwise Part는 shared projection weights w among sampling points로 진행 
  • (2) Introducing multi-group mechanism
    - Multi-Group Design은 Group Convolution에서 처음 등장했고, MHSA의 Transformer 방식에서 Multihead Attention 형식으로 등장
    - Adative Spatial Aggregation과 함께 작동하며 서로 다른 Position의 다른 Representation Sub-Space의 풍부한 정보를 효과적으로 학습
    - 이에 영감을 받아 저자들은 Spatial Aggregation을 G그룹으로 분할, 각 Group은 ∆pgk라는 Sampling Offset, mgk 라는 Modulation Scale을 가지고 있으므로 서로 다른 Group에서는 MHSA처럼 서로 다른 Spatial Aggregation Pattern을 가질 수 있으므로 Downstream Task에서 강력한 Feaute를 제공
  • (3) Normalizing modulation scalars along sampling points
    - 기존의 DCNv2에서는 Modulation을 계산할 때 Sigmoid를 이용함
    - 그러므로 Sigmoid 함수의 특성으로 Modulation Scalars를 [0,1]범위에 있고, 모든 Sample Point들의 Modulation Scalar 합은 0 ~ K 까지 다양하여 Stable하지 않음(값이 튐)
    - 이렇게 하면 Large-Scale Parameter와 Data로 Training할 때 DCNv2 Layer에 unstable gradients로 이루어짐
    - Unstable Problem을 완화하기 위해 Sigmoid를 이용하는 것이 아닌 Softmax를 이용하여 값을 Normalization
    - 이럴 경우에 MHSA처럼 Modulation Value가 안정이 됨, Large-Scale Model Training시에 안정적인 결과를 생성
  • 위의 (1,2,3)에서 설명한 변경점들을 모두 합치면 DCNv2 수식에서 아래와 같은 DCNv3를 도출할 수 있음

  • G는 Group의 숫자(Group Convolution의 개수), K는 Sampling Point의 개수
  • W ∈ R C×C' , C' = C / G, Group Convolution시에 (1) 에서 설명한 방식대로 하나의 Channel에서 하나의 가중치를 곱
  • mgk ∈ R Modulation Scalar k-th Sampling Point의 g-Group, K개의 Point이므로 K개로 Softmax
  • ∆pgk Sampling Point Offset
  • 일반적으로 DCNv3는 DCN Series의 확장으로서 3가지 장점을 가지고 있음
  • (1) 이 Operator는 Long-Range Dependencies 및 Adative Spatail Aggregation 측면에서 Regular Convolution보다 장점이 큼
  • (2) 일반적인 MHSA 및 밀접한 관련이 있는 Deformable Attention과 비교하여 해당 Operator는 Convolution Inductive Bias를 상속하여 더 적은 Training Data와 Time으로 모델을 더 효율적으로 만듬
  • (3) 해당 연산자는 Sparse Sampling을 Base로 하므로 Computational and Memory Efficient가 MHSA나 31x31 Kernel을 Re-Parameterizing 한 것보다 좋음
  • 추가적으로 Sparse Sampling 덕분에 DCNv3는 3x3 Kernel을 이용하여 Long-Range Dependencies를 Capture가능하고, 최적화하기 쉽고 Large Kernel에 사용되는 Re-Parameterizing같은 Auxiliary 기술을 방지함

InternImage Model

  • DCNv3는 Core-Operator, 하지만 새로운 문제가 있음
  • 엔지니어링에서는 단순하게 Network를 쌓을 수 있는것이 중요함(3x3 Convolution을 Stack한 VGGNet과 같이)
  • 이에 따라 Core-Operator를 이용하여 Model을 효과적으로 구축하는 방법에 대한 연구가 필요
  • Basic Block과 다른 Integral Layer를 제시하여 맞춤형 Stack전략을 탐색하여 InternImage를 제안
  • 또한 Model에 대한 효율적인 Scailing Rules를 제안 

  • Basic Block
    - 기존 CNN에서 널리 사용되는 BottleNeck과는 달리 저자들의 방식은 LN, FFN, GELU를 포함한 ViT에 더 가까움
    - 이런 설계는 다양한 Vision Task에서 효과적인 것을 입증
    - Basic Block의 설계는 Fig3과 같으며 Core Operator는 DCNv3이고, Offset과 Modulation은 Depthwise Separable Convolution을 통해 Input Featue X에 전달
    - 다른 구성 요소는 Transformer와 유사함
  • Stem & Downsampling Layer 
    - Hierarchical Feature Map을 얻기 이해 Convolution Stem 및 Downsampling Layer를 사용하여 Feature Map의 Size를 다른 Scale로 조정
    - 우선 Stem Layer를 보면 Stage1 이전에 배치되어 Input Resolution이 4배 감소
    - 두개의 3x3 Convoltion, Stride 2, padding 1, LN, GELU를 이용, 첫 Convolution 의 Output Channel은 Second의 절반
    - 비슷하게 Downsampling Layer에는 Stride가 2이고, Padding=1인 3x3 Convolution, LN Layer가 하나씩 있음
    - 두 Stage 사이에 위치하고 Input Feature Map을 2배 DownSampling, Channel 은 Upsampling됨 
  • Stacking Rules
    - Stacking Rules Process를 명확히 하기 위해 InternImage의 Hyperparameter를 아래와 같이 나열
    - 저자들의 Model은 4개의 Stage로 구성되는데, 각 Stage마다 아래와 같은 Hyperparameter를 모두 정하게하면 총 12개의 Parameter를 골라야 하므로 Search Space가 너무 커지는 단점이 존재
    - 이를 위해서 4개의 Design Rules을 정함(그림3)
    - (1) C1이 나머지 Stage의 Channel Number를 결정(C1)
    - (2) 두번째 Rule은 모든 Stage에서 같은 Group숫자를 가짐 (C' 전달)

    - (3) AABA Rule을 통해 1,2,4 Stage는 같은 숫자의 Layer, 3는 다른 숫자의 Layer(L1, L3)
    - (4) L3가 무조건 L1보다 크거나 같아야 한다

    - 이런 설정으로 Search Space를 줄여서 효율적으로 탐색하여 Origin Model은 (64, 16, 4, 18)로 Setting

  • Scaling Rules
    -  Base Model인 Origion Model을 참조하여 저자들은 Scailing Rule을 정했는데, EfficientNet에서 제안된 방식을 활용
    -  두개의 Scaling Dimension을 고려하는데 Depth = (i.e., 3L1+L3) and Width C1, And Two Dimension using α, β and Composite Factor φ
    - Scaling Rule은 아래의 그림과 같음, 1.99는 InternImage에 한정되고, Model의 Width를 두배로 늘리기 위해 일정하게 유지하여 계산됨
    - 저자들의 실험으로 α = 1.09 및 β = 1.36인것을 확인 했고, 이를 기반으로 T/S/B/L/XL/H를 구성

Scaling Rule α ≥ 1, β ≥ 1, αβ^(1.99) ≈ 2

 


Experiment

  • Image Classification 
    - InternImage-T/S/B ImageNet-1k에서 From Scratch로 300Epochs
    - InternImage-L/XL ImageNet-22k 90Epochs -> ImageNet-1k 20Epochs
    - 이전 CNN, ViT SOTA Model에 비해 좋은 결과를 얻음(격차도 크게 존재)
    - ‡ = ImageNet-22k Pretrain, # Extra Large Scale Pretraining JFT-300M, FLD-900M

  • Object Detection & Instance Segmentation
    - 1x 12Epochs, 3x 36Epochs, Pretrained Weight를 이용
    - 모든 경우에 최고의 AP를 얻음
    - SOTA Detector들과 비교해도 다른 것들에 비해 가벼운 Parameter로 SOTA에달성

  • Semantic Segmentation
    - UperNet을 이용하여 Test, 마지막에는 Maks2Former를 이용
    - 가벼운 Parameter로 높은 mIOU를 얻음

Ablation Study

 

  • Sharing weights among convolution neurons matters
    - Large Scale Model은 Parameter와 Memory Cost에 민감하게 반응함, Hardware Limitation이 존재
    - 이런 문제를 해결하고자 저자들은 Shared Weight Convolution을 이용
    - Fig4를 보면 Shared Weight를 이용하는 경우와 이용하지 않는 경우에 대한 결과를 확인
    - Shared Weight를 이용하는 경우가 훨씬 효율적인것을 알 수 있고, Table 6을 보면 이용하는 것과 이용하지 않는것에 큰 차이가 없음을 알 수 있음
  • Multi-group spatial aggregation brings stronger features
    - 저자들의 Model은 Transformer의 MHSA와 같이 다양한 Head를 이용하는 것 처럼 다양한 Sub-Space학습이 가능
    - 그림 5와 같이 동일한 Query Pixe(별)에서 서로 다른 Group의 Offset이 서로 다른 영역을 보는 것을 알 수 있음 
    - 그리고 Table6을 봐도 MultiGroup 방식을 적용하는 것이 더 좋은 성능을 가져옴 
    - Model이 깊어질수록 effective receptive field(ERF)가 점점 증가함, 이런 현상은 Vanila ViT와는 다름 

 


Conclusion & Limitations

  • Image Classification, Object Detection 및 Semantic Semgnation과 같은 다목적 비전 Task에서 강력한 Model인 InternImage 소개
  • DCNv3를 개발하고 Block, Stack, Scailing Rule을 개발
  • 여러 Dataset에서 CNN이 여전히 좋은 선택이라는 것을 보여줌
  • 아직 개발 초기이므로 더욱 개선될 수 있다고 생각

https://arxiv.org/abs/2212.04500

 

Masked Video Distillation: Rethinking Masked Feature Modeling for Self-supervised Video Representation Learning

Benefiting from masked visual modeling, self-supervised video representation learning has achieved remarkable progress. However, existing methods focus on learning representations from scratch through reconstructing low-level features like raw pixel RGB va

arxiv.org


Abstract

  • Masked Visual Modeling의 이점을 활용하여 Self-Supervised Video Representation Learning은 놀라운 발전을 얻음
  • 그러나 기존에 방법은 Raw Pixel RGB 값과 같이 low-level Feature를 Reconstruction하여 From Scratch로 Representation을 학습하는데 중점으로 둠
  • 해당 논문에서는 Masked Video Distillation(MVD)를 제안, 간단하지만 효과적인 Two-Stage Masked Feature Modeling Frame Work인 MVD를 제안
  • 먼저 Masking 된 Patch의 Low Level Feature을 Recovering하여 Image(or Video) Model을 Pre-Training 한 다음 Result Feature를 Masking된 Feature Modeling을 대상으로 이용
  • Teacher Model의 선택을 위해, Video Teacher가 가르친 Student 들이 Temporal-Heavy Video Task에서 잘 수행하고, Image Teacher가 Spatially-Heavy Video Task에서 더 강력한 Spatial Representation을 Transfer
  • 저자들의 Visualization Analysis를 진행 한 결과 다른 Teacher가 Student들을 위해 다른 Learned Pattern을 생성
  • 이런 Observation이 동기를 부여하여 다른 Teacher의 Advantage를 활용하기 위해 MVD는 Spatial-Temporal Co-Teaching Method인 MVD를 제안
  • 특히 Masking 된 Feature Modeling을 통해 Video Teacher, Image Teacher 모두에서 Student Model을 추출
  • Extensive 한 실험에서 Sapatial-Temporal Co-Teaching으로 Pretrained 된 Video Transformer가 여러 Video Dataset에서 우수한 성능을 보임, (Single Teacher보다 우수)
  • Vanilla ViT를 이용하여 SOTA에 달성(SSv2, AVA v2.2)


Introduction

  • Self-Supervised Visual Representation Learning, Masked Image Modeling(MIM), MAE,BEiT, PeCO는 DownStream Task에서 인상적인 결과를 얻음
  • Video Domain에서도 이런 Pre-Training 방식이 적용되었고, BEVT, ST-MAE, VideoMAE같은 Model들이 제안됨
  • MAE, BEiT, 에 이어 기존 Masked Video Modeling 방법은 Raw Pixel Value또는 Low Leve의 VQVAE Token과 같은 Low Level의 Feature을 Reconstruction하여 VIdeo Transformer를 Pre-Training
  • 하지만 Low-Level Feature를 Reconstruction 대상으로 하면 종종 많은 Noise가 발생
  • 그리고 Video Data의 High Redundancy로 인해 Masked Video Modeling이 Shortcuts를 배우기 쉬우므로 Down Stream Task에 대한 Transfrer 성능이 제한됨
  • 이런 문제를 해결하기 위해 Masking Video Modeling을 VideoMAE처럼 높은 Masking Ratio를 이용

  • 해당 논문에서는 Pre-Train된 MIM, MVM Model의 High Level Feature를 Masked Prediction Target으로 사용하여 Masking Feature Prediction을 수행하여 Video Downstream Task에서 우수한 결과를 얻음
  • 이것은 Two-Stage Masked Video Modeling으로 볼 수 있는데, MIM Pretrained Image Model, MVM Pretrained Video Model을 First Stage에서 얻고, 두개의 Model이 Second Stage에서는 Teacher처럼 동작하는데, High-Level Feature Target을 대상을 제공함
  • 이런 방식을 Masked Video Distillation이라 정의

  • 좀더 흥미로운 사실은, 저자들은 MVD에서 다른 Teacher로 Distilled 된 Student Model이 Video Downstream Task에서 다른 속성을 나타내는 것을 확인
  • 구체적으로, Image Teacher 추출된 Student는 Spatial Cue에 집중, Video Teacher 에서 추출된 Model은 Temporal Cue를 추출
  • 첫 단계에서 Masking 된 Video Modeling Pre-Training에서 Video Teacher는 High Level의 Feature에서 Temporal Context를 학습
  • 따라서 Masking 된 Feature Modeling의 Target 대상으로 이러한 High Level Fature의 Representations을 사용할 때 Student Model은 더 강력한 Temporal Dynamic를 학습하도록 장려함
  • 유사하게 Image Teacher또한 Student Model이 공간적으로 의미있는 Representation을 학습하는데 도움이 될 수 있는 더 많은 Spatial Information을 포함하는 Target으로 High Level Feature을 제공
  • 저자들은 Image Teacher와 Video Teacher가 제공하는 Feature Target을 추가로 분석, Cross-Frame Feature Similarity을 계산
  • Video Teacher가 제공하는 Feature는 더 많은 Temporal Dynamic을 포함하고 있음을 보여줌
  • 위의 Observation에 부여하여 Video, Image Teacher의 장점을 활용하기 위해 MVD를 위한 간단하고 효과적인 Spatial-Temporal Co-Teaching Strategy를 제안
  • 자세히 보면 Student Model은 두 개의 다른 Decoder로 Image Teacher와 Video Teacher 모두에서 오는 Feature를 Reconstruction하여 더 강력한 Spatail Representation, Temporal Dynamic을 학습하도록 설계
  • Experiments는 Image Teacher와 Video Teacher 모두 Co-Training을 통해 MVD 몇가지 까다로운 Downstream Task에서 Single Teacher를 이용한 것보다 우수

  • 이러한 단순함에도 MVD의 Co-Training은 매우 효과적이고, 여러 Standard Video Recogniton Benchmarks에서 우수한 성능
  • SSv2, Kinetics-400에서 MVD가 없는 Base와 비교하여 같은 Size의 Teacher Model을 사용하여 400 Epochs보다 1.2, 2.8% Top-1 Score를 향상, SOTA에 달성
  • 저자들의 Contribution은 아래와 같음
    - MIM, MVM Pretrained 된 Model을 Teacher로 이용히여 지속적인 Masked Feature Prediction을 위한 High-Level Feature를 제공함으로써 더 나은 Video Representation을 학습할 수 있음을 발견, 이 두개의 Teacher Model을 다른 Video Downstream Task에서 다른 속성을 보임
    - Image,Video Teacher의 시너지 효과를 이요아고, 효과적인 Co-Training과 Maksed Video Distillation 방법을 제안
    - 여러 Video Recognition Benchmark에서 MVD는 SOTA에 달성

Related Work

  • Vision Transformers for Video Understanding
    - Video Understanding에 있어 Spatial-Temporal Modeling은 고려해야할 요소
    - 초기에는 2D CNN을 3D CNN으로 확장
    - 최근에는 Vision Transformer가 여러 Vision Task에서 진전을 이룸
    - TimeSformer, ViViT에서는 여러가지 Spatial-Temporal Factorization을 연구
    - 몇몇 Task(Video Swin, MViT)는 계산량을 줄이고, Locality라는 Inductive Bias를 Model에 주입
    - Uniformer, Video MobileFormer는 효율성을 고려하여 3D-CNN과 Attention을 결합
    - 해당 논문에서는 Vanila ViT를 이용하여 Pretraining 성능을 확인
  • Self-Supervised Video Representation Learning
    - 기존의 Self-Supervised Video Representation Learning은 Video이 Temporal 구조를 Base로 Pretext 작업을 설계
    - 최근에는 Positive Pair는 가깝게, Negative Pair는 멀리하는 Contrastive Learning 방식을 차용
    - 그러나 Contrastive Learning 방식의 Pre-Training은 Global Representation에 적용되어, Local 관계를 파악 못함
  • Masked Visual Modeling
    - Masked Language Modeling은 NLP분야의 지배적인 방법
    - ViT에서도 성공적으로 도입됨(ImageMAE)
    - VideoMAE에서는 매우 높은 Masking Ratio로 Video Patch를 잘 구성,MVD는 Masked Feature Modling에 중점을 두고 Image, Teacher Model을 이용하고, Student Model은 다른 속성을 가지고 보완
  • Knowlefge Distillation
    - Teacher Model의 Output을 Student Model의 Target으로 하여 Teacher Model의 지식을 Student Model에게 Transfer
    - 일반적인 Knowledge Distillation은 주로 Supervised Learning(Image Classification)에 중점을 두고 있음
    - 최근에는 Self-Supervised Pretrained Model에서느 Representation을 학습하기 위에 Self-Supervised Knowledge Distillation도 연구됨
    - 해당 논문에서는 두개의 Teacher를 이용하여 각각 Domain에서의 유용한 정보를 Transfer

Method

  • Masked Video Modeling은 Self-Supervised Learning을 위한 좋은 성능을 얻음
  • 기존의 접근 방식은 Low-Level Information을 Reconstruction(Pixel, HOG, VQVQE Token)
  • 해당 논문에서는 Low-Level Information을 Reconstruction하는 대신에 Feature Level에서 Masked Video Modeling을 수행
  • 이는 쉽게 이용 가능한 MIM, MVM에서 나온 High Level Feature을 예측하도록 2단계 Framework인 MVD에 의해 달성

The Paradigm of Masked Feature Modeling

  • Masekd Feature Modeling의 Core는 Maked Input Region의 Feature를 예측하도록 Model을 학습
  • 이 논문에서 저자들은 Effectiveness와 Simplicity, MAE의 Decoupled Encoder-Decoder 아키텍처를 가짐
  • Input X, Image는 (Ximg ∈ R(H×W×3), Xvid ∈ R(T×H×W×3)) 를 Non-Overlapping Patch로 분할
  • 각 Patch는 Linear Projection Matrix를 이용하여 Visual Token으로 Mapping
  • Transformer Encoder f에 Token을 전달하기 전에 Token의 Subset이 Mask되고, Input Token 시퀀스에서 삭제
  • Masked Token의 Information 재구성 하기 위해 Encoder에서 Visible Token + Learnable Masked Token을 Transformer Decoder g에 전달 

  • Xvis는 Visible Input Token, Tm은 Mask Token
  • 각 Masked Patch X(p)에 대한 Reconstruction Target은 Patch Feature h(X(p))로 표시
  • 여기서 h는 Target의 Feature를 생성하는 Function
  • 그 뒤에 Encoder과 Decoder를 Training시키기 위해 Masked Patch와 Reconstructed Patch의 Ground-Truth Feature Distance D를 측정하는 Loss Function을 정의

  • p는 Token Index, M은 Masked Token Set, Pixel Regression MAE, VideoMAE에서는 L2 Loss를 사용

Masked Video Distillation

  • 해당 논문에서 저자들의 MVD는 Low Level Pixel이 아닌 High Level Feature를 이용하여 Video의 Masked Feature Modeling을 수행
  • 특히 쉽게 사용 가능한 off-the-shelf Self-Supervisd Pretrained Image또는 Video Model에서 생성된 Outpyt을 Reconstruction 대상으로 사용
  • 이런 High-Level Feature는 Task의 Target은 MAE, VideoMAE와 같은 Masked Feature Modling으로 Pretrain된 Teacher Model로 인코딩됨
  • Video Representation Learning의 경우 Reconstructuon Target은 Image & Video Model를 이용하여 Spatial, Temporal Feautre를 학습
  • Image는 MAE 모델로 Pretrain, Video Model은 VideoMAE로 Pretrain 둘다 raw Pixel 재구성을 목표로 함
  • Train되면, 저자들은 Image Encoder h_img 를 이용하여 Spatial Target을 생성하고, Pretrained Video Transformer Encoder h_vid로 Spatial-Temporal Target을 생성
  • MVD Loss Function은 Image & Video -> L_mfm(h_img) , L_mfm(h_vid)를 이용

Spatial-Temporal Co-Teaching.

  • MVD를 Single Teacher로 수행하면, 다른 Teacher로부터 Distill된 Student들이 다른 Video Representation을 배우고, Downstream Task에서 잘 수행되는 것을 확인
  • 다양한 Downstream Video Task에서 MVD의 Accuracy를 상승시키고자, 저자들은 Spatial-Temporal Co-Teaching을 제안, Image, Video Teacher의 정보를 탐색하는 방법, 다양한 Video를 잘 처리하기 위해
  • 예를 들면 인간의 행동이 빠르게 변하는 Video에서는 더 많은 Temporal Informaton이 필요
  • 반면 상대적으로 정적인 Video에서는 Spatial 정보가 더 필요
  • 이를 위해 MVD는 Image & Video Teacher가 동시에 생성한 High-Level Feature를 예측하도록 학습
  • 두개의 분리된 Decoder를 이용하여 서로 다른 Target Feature를 Reconsturction하며 목표를 달성
  • 아래의 3번식은 Spatial-Temporal Co-Teacher의 Loss함수
  • λ1 and λ2는 Hyper-Parameter로 Image-Video Teacher의 Balance를 맞출 수 있음
  • 아래는 Sudo Code 

Final Loss
Pseudo Code

Architecutral Design

  • Encoder
    - MVD는 Vanilla Transformer Backbone을 이용
    - 각 VIdeo Input은 X_vid ∈ R T×H×W×3, Tube Embedding을 차용하여 각 Patch Size는 2x16x16
    - Patch Partitioning 이후에 Linear Embedding하여 T/2 x H/16 x W/16개의 Token을 얻음
    - Masked Feature Modeling Task에서 High Masking Ratio를 이용하여 제거하고, Transformer Layer에 남아있는 Token들을 전달
    -  Fine Tuning DownStream Task에서는 모든 Token을 집어넣고, 각 Layer에서 Joint Spatial-Temporal Self-Attention을 진행
  • Mask Strategy
    - VideoMAE의 Tube Masking Strategy를 따름
    - 우선 2D Random Mask가 생성된 다음 Temporal 차원에 따라 확장
    - 그러므로 Spatial Mask은 각 Time Slice에서 같음, Information Leakage를 막을 수 있음
    - Tube Masking은 High Masking Ratio로 진행하여 Video Transformer가 Hig-Level Sematics pretraining이 가능
  • Decoder
    - MVD는 Shallow Decoder를 가지는데, Vanila Transformer Layer와 Linear Projection Layer로 구성
    - Decoder의 Transformer Layer는 Encoder의 Transformer Layer와 동일
    - Spatial-Temporal Co-Training은 Masked Feature Modeling을 위한 Two Different Reconstruction Target을 이용
    - 두개의 Separated Decoder가 동일한 아키텍처를 공유하지만, Weight가 다른 두개의 분리된 Decoder가 Encoder 상단에 배치됨
    - Maksed Patch에 해당하는 Learnable Masked Token은 Decoder에 공급되기 전에 Encoder에서 Visible Token과 연결
    - Spatial-Temporal 관계를 공동으로 Modeling 한 후에 Transformer Layer의 Output Token은 Linear Projection Layer에 의해 최종 Prediction에 Mapping
  • Reconstruction Target
    - Spatial-Temporal Target Feature를 생성하기 위해, Student Model과 동일한 아키텍처를 공유하는 Video Teacher는 VideoMAE방식으로 Pretrain
    - Spatial Target Feature를 얻기 위해 Vanila image ViT, ImageMAE
    - Video Transformer에서 하나의 3D Patch(2 x 16 x 16)이 Image Transformer에 대한 두개의 2D Patch(16 x 16)에 해당
    - Prediction Layer의 크기를 줄이는 Single Time Slice에 따라 Spatial Feature를 예측함

Experiments

  • Dataset은 Kinetics-400, SSv2, UCF-101, HMDB51, AVA
  • MVD는 ViT-S, ViT-B, ViT-L까지 4개의 Model을 사용
  • Image Teacher는 ImageNet-1k에서 1600Epochs, Video Teacher는 K400에서 1600Epochs
  • ImageMAE, VideoMAE의 방식을 따름
  • Distillation Stage에서는 Student Model은 달리 언급이 없는 이상 From Scatrch로 K400에서 400Epoch로 Pretrain
  • Video Clip은 16Frame이고, Smooth L1 Loss를 이용 

Smooth L1

Main Result

  • Table1을 보면 Image Teacher를 이용하면 Spatial 정보가 중요한 K400에서는 Video Teacher보다 좋은 점수
  • Temporally Heavy Dataset인 SSv2에서는 Video Teacher를 쓴 경우가 더 좋은 점수
  • 결론적으로 저자들이 주장한대로 두개의 Teacher를 이용하면 더 좋은 점수를 얻음
  • Table2의 VideoMAE와 비교해도 우수한 결과
  • 하나의 Teacher에 비해 우수한 결과(Temporally Heavy , Spatail Heavy 모두에서)

Comparison With SOTA

  • K400에서 SOTA에 달성, SSV2에서 SOTA, AVA, UCF101, HMDB51에서 SOTA에 달성

Analysis and Discussion

  • Analysis of features encoded by different teachers
    - 다른 Teacher가 생성한 Target Feature의 속성은 다른 Downstream Task에서 Student의 Performance에 영향을 줄 수 있음
    - Teacher Model이 Input Video에서 Capture하는 Temporal Dynamics를 정량화하기 위해 Cosine Similarity를 구하고 이를 통해 각 Video Input에서 서로 다른 Frame에 걸쳐 Feature Map간에 유사성을 연구
    - Image Teacher의 경우 각 Frame간의 Feature Map의 유사성이 높음(밝은색)
    - 하지만 Video Teacher의 경우 서로 다른 Frame간의 Feature Map차이가 존재
    - 이는 Video Teacher가 Temporal 정보를 더 잘 Capture 한다는 것
    - 그러므로 Video Teacher가 추출한 것을 이용하면 Temporal Dynamic를 배우고, Temporally Heavy Dataset에서 유리하게 이용 가능

  • Training Time Comparison
    - MVD가 VideoMAE에 비해 정확도와 효율성이 높은지 확인
    - 공정한 비교를 위해 Teacher Model의 교육 시간도 포함
    - Table7이 결과로 MVD는 총 164시간, VideoMAE의 800시간보다 더 좋은 결과를 얻음

  • Reconstruction signals in MVD
    - MVD에서 우선 Teacher Model을 학습하는데, Masked Patch를 복구하는게 MAE의 방식(Pixel Level)
    - Table에서 추가적인 연구를 진행, Distilation Stage에서 새로운 Decoder Brach를 이용하여 Pixel을 복구하는 것 추가
    - Image Model로만 한 경우, 둘다 이용한 경우를 확인하면 Pixel Prediction을 추가하면 좋은 성능이 나오지 않는것을 확인

  • Comparison with bootstrapped teachers
    - 최근 몇몇 연구에서 Momentum Encoder Feature을 Maksed Image Modeling 대상으로 채택하는 방법을 이용
    - MVD는 Fixed Teacher Model을 이용
    - 저자들의 방식이 더 좋은 결과를 얻음

  • Comparison with feature distillation
    - 이전의 Self-Supervised Feature Distillation에서는 Distillation Loss를 Teacher, Student간에 전체 Feature Map에서 직접 계산됨
    - 따라서 Per-Token Distillation을 Baseline으로 구축
    - 특히 Student의 Output Feature은 MLP에 의해 투영된 다음에 Smooth L1 Loss로 각 Token에서 Teacher Model의 Feature를 모방하도록 강제됨
    - MVD의 Masked Feature Modeling이 더 우수한 결과를 얻음

Conclusion

  • Using MIM Pretrained Image Teacher + MVM Pretrained Video Teacher는 효과적으로 Finetuning이 가능해짐, Down Stream Task에서
  • Image + Video Teacher에서 Distill 된 표현은 다른 속성을 가지고, Image Teacher는 공간, Video Teacher는 Video 작업에 이점을 가짐
  • Image + Video Co-Training은 좋은 시너지 효과를 가짐

https://arxiv.org/abs/2203.12602

 

VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training

Pre-training video transformers on extra large-scale datasets is generally required to achieve premier performance on relatively small datasets. In this paper, we show that video masked autoencoders (VideoMAE) are data-efficient learners for self-supervise

arxiv.org

Abstract

  • 상대적으로 Small Dataset에서도 SOTA에 달성할려면 Large Scale Dataset으로 Pretraining 필요
  • 해당 논문에서는 VideoMAE가 SSVP(Self-Supervised Video Pre-training)을 위한 Data Efficient Learner임을 입증
  • 저자들은 ImageMAE에서 영감을 받아 매우 높은 비율의 Video Tube Masking을 제안
  • 이러한 단순한 디자인은 Video Reconstruction을 보다 어렵고, 의미있는 Self-Supervision Task를 만들어 Pre-Trained 프로세스 중에 효과적인 Video Representation을 추출함
  • 3가지 의미있는 결과를 얻음
    - 높은 비율의 Masking은 VideoMAE에 좋은 성능을 제공, Temporal Redundant가 존재하는 Video는 Image보다 더 높은 Masking 비율이 가능해짐
    - 추가 Data를 사용하지 않고 매우작은 3k~4k Dataset으로 인상적인 결과를 얻음
    - VideoMAE는 SSVP의 경우 Data의 양보다 Data의 품질이 더 중요함을 보여줌 (같은 Domain에서 학습, 기존 방식은 Image Domain에서 Pre-Training, 이후에 Video Domain으로 Fine Tuning)
  • Vanilla ViT Backbone에서 VideoMAE는 추가 Data를 이용하지 않고 SOTA

Introduction

  • Transformer는 자연어 처리 분야에서 큰 발전을 가져왔으며, Vision Transformer는 이미지 및 비디오 처리 분야에서도 유용하게 사용됨
  • 이 모델은 Image/Video의 Global Dependencies을 Modeling할 수 있으며 Flexible Attention Mechanism을 통해 효과적으로 Inductive Bias를 줄일 수 있음

  • ViT를 효과적으로 Training시키기 위해서는 Large Scale Supervised Dataset이 필요 
  • Video transformer도 Image Based transformer에서 파생되어 Large Scale Image Dataset(예: ImageNet)에서 Pre-Train Model에 크게 의존
  • 이에 따라, Video Dataset에서 Pre-Trained Model 또는 추가적인 Image Data 없이 Vanila vision transformer를 효과적으로 Train시키는 것은 어려움
  • 이런 Challenge을 해결하기 위해 SSVP 활용되며, Image Dataset에서 학습한 Self-Supervised Learning Model이 downstream task에서 Supervised Model보다 우수한 성능을 보임
  • Video Transformer의 학습에서도 SSVP가 유망한 해결책이 될 것으로 기대됨
  • Masked Autoencoding이 NLP, image에서 성공한 것을 보고 저자들은 Video에 SSVP를 적용한 VideoMAE를 제안
  • 저자들의 VideoMAE는 Simple Pipeline으로 Masking Random Cube를 추가하고, Missing Image을 Reconstructing
  • 하지만 Video는 Image에 비해 Extra Time Dimenstion이 존재함, 그러므로 Image와는 다르게 적용함
  • Video Frame은 Dense하게 Capture됨, Semantics Varies는 Time에서 느리게 변함
    - 이러한 Temporal Redundancy는 Missing Pixel를 Spatio Temporal Neighborhood를 이용하여 복원할 수도 있음
  • 게다가 Video는 Static Appearance의 Temporal Evolution으로 볼 수 있으며, Frame간의 대응관계가 존재
    - 이런 Tmperoal Correlation은 특정 Masking 전략을 고려하지 않는 한 Information Leakage로 이어짐
  • 이런 의미에서 Masking 안된 복사본을 쉽게 찾을 수 있고, Shortcut처럼 동작해 모델의 일반화하기 어려워짐
  • Video Masked Modeling을 보다 효과적으로 만들기 위해 저자들은 VideoMAE에서 매우 높은 비율의 Tube Masking을 설계
  • 첫째, Temporal Redundancy때문에 저자들은 Extremely High Masking Ratio를 이용, 또한 Clip을 DownSampling
  • 이런 간단한 전략은 효과적이고, 계산량을 줄일 수 있음
  • 둘째, Temporal Redundancy을 고려해 간단하면서도 효과저인 Tube Masking 전략을 고안하여 Reconstruction 중에 Motion이 없거나 무시가능한 Cube의 Information Leakage 위험을 완하하는데 도움이 됨
  • 논문의 기여는 3가지
    - 간단하지만 효과적인 Video Maksed Autoencoder를 제안 
    - NLP, Image와 비슷하게 Masking 전략이 우수한 결과를 가짐
    - 적은 양의 Video Data로도 좋은 성능을 가짐, SSVP의 경우 데이터의 품질이 양보다 중요

Proposed Method

Image MAE

  • Image Masked Auto Encoder
    - ImageMAE는 Masking & Reconstruction Task이고, Asymmetric Encoder-Decoder 아키텍처를 가짐
    - Input Image는 I ∈ R(3×H×W)이고, 16x16의 Non-Overlapping Patch로 분할
    - 각 Patch에 대해 Token Embedding을 진행
    - 그리고 Random하게 75%의 비율로 Masking을 진행하고, Decoder보다 깊은 Encoder에 넣고, Decoder에서는 복원을 진행
    - Loss Function은 MSE를 이용

  • Characteristics of Video Data
    - Video Data는 Temporal Relation을 포함, Image와 차이가 존재함
  • Temporal Redundancy
    - Video에는 Frequently Capture디는 Frame이 있음
    - Semantic Vary는 Temporal Dimension에서 천천히 변함
    - Figure2와 같이 연속된 Frame에서는 정보가 중복되는것을 알 수 있음
    - 이러한 속성은 Masked Video Autoencoing에서 두가지 중요한 문제로 이어짐
    - 첫째, Pretraining에서 Original Temporal Frame Rate를 유지하는 것이 덜 효율적임
    - 이렇게 하면 Masked Modeling에서 Static 또는 Slow Motion에 더 집중하게 됨
    - 둘째, Temporal Redundancy는 Motion Representation을 희석 시킴
    - 이는 정상적은 Masking Ratio(50~75%)에서는 누락된 Pixel 재구성하는 Task를 어렵지 않게 만듬
    - Encoder Backbone은 Motion Representation을 Capture하는데 효과적이지 않음
  • Temporal Correlation
    - Video는 Static Apperance의 Temporal 확장으로 볼 수 있고, 인접한 Frame간에 고유한 Correspondence가 존재
    - 이러한 Temporal Correlation은 Masking 및 Reconsturcion Pipeline에서 Information Leakage 위험을 증가 시킴
    - Figure2의 Random, Frame Masking은 인접한 Frame에서 Masking되지 않은 Patch에 해당하는 Spatio Temporal을 찾아 Masking Patch를 재구성 할 수도 있음
    - 이 경우 VideoMAE가 Contents에 대한 Spation Tempotral Inference과 같은 높은 수준의 정보가 아닌 Low Level 정보를 학습함
    - 이를 해결하기 위해 Reconstruction을 더욱 어렵게 만들고, SpatioTemporal 표현을 효과적으로 학습하기 위한 Masking 전략이 필요함

  • VideoMAE
    - VideoMAE에서 위와같은 문제를 해결하기 위해 그림1과 같이 PipeLine을 구성
    - VidoeMAE는 Downsampling된 Frame을 Input으로 사용하고, Cube Embedding을 사용하여 Video Token을 생성
    - 그 뒤에 Asymmetric Encoder-Decoder 아키텍처로 MAE를 사전훈련하기 위해 높은 비율의 Masking을 진행
    - Space-Time Attention과 함께 바닐라 ViT를 이용
  • Temporal Downsampling
    - 연속 Frame에 대한 Temporal Redundancy에 대한 위에 분석을 보고, 보다 효율적인 Video Pretrain방식을 수행하기 위해 Strided Temporal Sampling 전략을 이용
    - 우선 t개의 연속 Frame으로 구성된 하나의 Video Clip이 원본 Video에서 무작위로 Sampling
    - 그런 다음에 Temporal Sampling을 사용하여 Video Clip을 T frame으로 압추
    - 이때 Stride를 이용하는데 Kinetics, SSv2에서는 4~2로 설정
  • Cube Embedding
    - 2 x 16 x 16 의 Tubelet으로 Embedding을 진행
    - 그러므로 T / 2 x H / 16 x W / 16개의 3D Token이 생성됨(Dim = D)
    - 이런 디자인은 Spatial, Temporal Dimension Input을 줄일 수 있고, SpatioTemporal Redundancy를 줄일 수 있음
  • Tube Masking With Extremely High Ratio
    - 첫째, Temporal Redundacy요소가 VideoMAE Design에 영향을 미침
    - VideoMAE는 ImageMAE에 비해 High Masking Ratio를 가짐
    - Video Information Density는 Image에 비해 훨씬 낮으며 Ratio가 높을수록 Reconstruction 난이도가 높아짐
    - 이런 High Rate Masking은 Masking된 Modeling중에 Information Leakage가 완화하고, Masking 된 Video Reconstruction을 의미있는 SSVP로 만드는데 도움이 됨
    - 둘째, Temporal Correlation이 VideoMAE Design에 영향을 미침
    - High Masking Ratio, Tube Masking Mechanism을 이용함 (효율적임)
    - Temporal Tube Masking은 Maks가 전체 Temporal Axis, 즉 동일한 Masking Map을 공유하는 서로 다른 Frame으로 확장
    - 해당 방식을 이용하면 Masking 된 Cube의 Temporal Neighborhood는 항상 Masking 됨
    - 그림2와 같이, Masking된 곳은 항상 Masking
    - 이런 방식은 VideoMAE가 완전히 누락된 Cube를 복구하기 위해 높은 수준으로 Video을 이해해야함
    - 이런 간단한 전략은 Motion이 없거나 무시할 수 있는 Cube의 Information Leakage를 완화할 수 있고, 실제로 Masking 된 Video 사전 학습에 효과적임
  • Backbone: joint Space-time Attention
    - High Masking Ratio로 인해 Encoder에 입력으로 들어가는 Token의 수는 적어짐
    - High Level SpatioTemporal Information을 남은 Token으로 잘 Capture하기 위해 Vanila ViT Backbone인 Joint-Space Time Attention을 이용
    - 기존에는 Token에 개수에 대해 Quadratic Complexity를 가지지만, High Masking Ratio로 인해 이런 문제를 해결함

Experiments & Ablation Studies

  • Kinetics-400, SSv2, UCF101, HMDB51, ABA에서 진행

  • Decoder Design
    - Lightweight decoder를 이용
    - 1a에서 다른 Depth에 대해 Test를 진행
    - 4개의 Decoder Block을 이용하기로 결정(우수한 성능, 적당한 Memory 사용량)
    - Decoder는 384-dim을 가짐,(ViT-B의 경우 768-Dim)
  • Masking Strategy
    - Masking 전략을 1b에서 비교
    - Tube의 경우 Ratio를 75~90으로 올리자 Accuracy 68% ~ 69.6%으로 SSv2가 오름
    - 높은 Ratio의 Masking이 도움이 되는것을 확인
    - 이런 결과가 나오는 것은 Temporal Redundancy, Temporal Correlation이라는 Video의 특성임
    - K400에 대한 결과도 SSv2와 일치
    - K400의 성능차이가 SSv2보다 크지가 않은데, 그 이유는 Kinetics Video가 Scene과 연관이 깊음
    (테니스를 치고 있는 Class의 경우 테니스장 무늬에 집중하게됨)
    - Temporal Modeling 효과가 적음
    - Random, Frame Masking보다 Tube Masking의 효과가 좋음
  • Reconstruction Target
    - 첫째, Center Frame만을 이용하여 진행하면 1c와 같이 결과가 감소
    - Sampling Stride도 민감, τ /2 경우 기본 Sampling Stride보다 낮고 안좋은 결과가 나옴
    - 또한 T Frame에서 2T Frame을 Reconstruction을 진행하면 SSv2에서 조금 더 안좋은 결과를 얻음
    - 단순하게 하기 위해 Input Downsampling된 Clip을 기존 Reconstruction Target으로 사용
  • Pre-Trainjng Strategy
    - From Scratch가 제일 낮은 점수
    - ImageNet + K400으로 Pretraining에도 VideoMAE보다 낮음 
    - VideoMAE는 Extra Dataset이 없어도 최고 Accuracy를 달성
  • Pre-Training Dataset
    - 먼저 1600Epochs동안 ImageNet-1k에서 ViT-B를 Pretraining
    - 그 뒤에 2D Patch Embedding을 Cube Embedding 으로 확장한 뒤에 Video Dataset에 맞도록 Fine Tuning
    - 해당 방식도 From Scratch를 이김
    - 또한 ImageMAE로 Training 한 것보다 VideoMAE가 더 좋은 성능을 가짐
    - SSv2 -> K400, K400 -> SSv2로 진행해보니 Accuracy가 감소, 같은 Dataset으로 Pre-Training한 것이 좋음
  • Loss Function
    - 1f 에서는 Reconstrucion Task에서 Loss Function이 어느게 좋은지 확인
    - 결과적으로 MSE Loss가 더 좋은것을 확인, 그러므로 선택

  • Data Efficient Learner
    - SSVP는 이전에도 연구 되었지만 대부분 CNN기반
    - SSVP는 Transformer Base Backbone기반으로 한 경우는 거의 없음
    - 이에 대한 성능을 비교하기 위해 VideoMAE, From Scratch, MoCov3와 비교 진행
    - Table2를 보면 모든 경우에 VideoMAE가 좋은 성능을 보였고, Dataset이 적어질수록 VideoMAE와 다른 것들과의 차이가 커지는 것을 알 수 있음
    - 적은 Dataset에서도 효율적인 방식임
    - Table3을 보면 MoCov3보다 효율적이고, 효과적인 방법인 것을 알 수 있음 (시간, Accuracy)
  • High Masking Ratio
    - VideoMAE의 Core Design은 Extremely High Masking Ratio
    - K400, SSv2에서 Ratio에 대한 실험을 진행했고, ImageMAE, BERT와는 다르게 90%가 가장 높은 점수를 얻음
    - 이런 이유는 Temporal Redundancy, Correlation때문이라고 저자들은 주장
  • Transfer learning: quality vs. quantity
    - Table4를 보면 Kinetics Data로 학습을 진행하고 난 뒤에 결과를 확인
    - 당연히 VideoMAE가 더 좋은 점수
    - Table2와 비교해보면 UCF101, HMDB만이 K-400으로 학습한 뒤에 Transfer하는 것이 더 좋은 점수를 얻음
    (HMDB, UCF101은 워낙 작은 Dataset이므로 K400으로 Video 특성을 파악하는 것이 좋은 것 같음)
    - Figure4에서는 두가지 실험을 진행, (1) 동일한 Epoch로 Pretraining, (2) 동일한 시간 Budget으로 Pretraining
    - 놀랍게도 42000개의 Pretraining Video가 있어도, 240000개의 K400으로 Pretraining한 Model보다 더 높은 정확도를 얻음(68.7, 68.5)
    - 이런 결과는 SSVP에서 Pretraining과 Target Dataset 사이에 차이가 있을대 Domain Shift가 또 다른 중요한 요소이고, Data 질이 Dats의 양보다 더 중요함을 의미
    - 또한 VideoMAE가 SSVP를 위한 Data Efficient Learner임을 보여줌 

  • 저자들의 Model이 SOTA에 달성함(K400, SSv2, UCF101, HMDB51, AVA)

Masking Ratio가 높아도 어느정도 복원이 가능

Conclusion

  • 이 논문에서는 비디오 트랜스포머 사전 훈련을 위한 간단하고 데이터 효율적인 자기 지도 학습 방법인 VideoMAE를 제안
  • VideoMAE는 매우 높은 마스킹 비율과 튜브 마스킹 전략이라는 두 가지 중요한 디자인을 도입하여 비디오 재구성 작업을 더 어렵게 만듬
  • 이러한 더 어려운 작업은 VideoMAE가 더 대표적인 기능을 학습하고 정보 유출 문제를 완화하는 데 도움이 됨
  • 결과는 이 간단한 알고리즘이 서로 다른 규모의 비디오 데이터셋에 대해 잘 작동함을 보여줌
  • 특히 수천 개의 비디오 클립으로만 효과적인 VideoMAE를 학습할 수 있으며, 이는 데이터가 제한된 시나리오에서 중요한 실용적 가치가 있음

https://arxiv.org/abs/2201.04288

 

Multiview Transformers for Video Recognition

Video understanding requires reasoning at multiple spatiotemporal resolutions -- from short fine-grained motions to events taking place over longer durations. Although transformer architectures have recently advanced the state-of-the-art, they have not exp

arxiv.org

Abstract

  • Video Understanding은 Short Fine-Grained Motion(짧고 세밀한 동작)에서 장기간에 걸쳐 발생하는 Event까지 Multiple Spatiotemporal Resolution에서 추론이 필요
  • Transformer Architecture는 최근 SOTA가 되었지만, 다른 Spatiotemporal Resolution을 명시적(Explicitly)으로 모델링하지 않음
  • 저자들은 이런것을 보고 Multiview Transformer for Video Recognition(MTV)를 제시함
  • 저자들의 Model은 Input Video에서 다양한 View를 나타내는 별도의 Encoder로 구성되어 있고, Lateral Connection으로 다른 View들을 통합
  • 저자들의 Model에 대한 Ablation Study를 제시하고, MTV가 다앙한 Model 크기에 걸쳐 Accuracy, Cost측면에서 일관되게 Single View 보다 더 좋은 성능을 보임
  • 6개에서 SOTA, Pretrain을 통해 성능 향상

Introduction

  • Vision 구조는 CNN 기반, 최근에는 Transformer가 이를 대체하여 많은 발전을 이룸
    - Handcrafted Feature, CNN, Transformer까지 Classical Method 전반에 걸쳐 일정하게 유지 된 것은 여러 Resolution을 분석하는 것
  • Image Domain에서 MultiScale Processing을 Natural Image의 Statistics이 isotropic(All Orientations Equal), Shift Invariant 이기 때문에 일반적으로 Pyramid로 수행(Natural Image내의 통계적 특성이 Orientation, Location에 관계없이 비교적 일정하다는 것, 그러므로 Pyramid를 이용하여 여러 척도에 걸쳐 관련 정보를 효율적으로 캡처 가능)
  • Video의 Multiscale Temporal Information을 Modeling하기 위해 SlowFast와 같이 High Frame Rate로 작동하는 'Fast' Stream, Low Frame Rate로 작동하는 'Slow' Stream을 사용하여 Video를 처리하거나  Long Rate Interaction을 Modeling하기 위해 Graph Neural Network를 이용하기도 함

  • Pyramid Structure를 만들때 Spatio-Temporal Information은 Pooling, Subsampling 으로 인해 Information이 손실됨
  • 예를 들어 SlowFast Network은 Stream을 구성할 때 Frame을 Subsampling하여 Temporal Informaton이 Loss됨
  • 이 논문에서 저자들은 Simple Transformer Based Model로 Multi Resolution Temporal Context를 Capture가능하도록 함(Pyramid 구조를 이용하지 않고, SubSampling을 하지 않고)
  • 저자들은 Multiple Input Representations 또는 Input Video "View"를 활용
  • Figure1에 나타난 바와 같이 Input Video에서 여러 시간동안에 Token을 추출
  • 직관적으로 Long Time Intervals에서 추출된 Token은 장면의 요지(활동이 일어나는 배경)를 Capture하는 반면 Short Segment에서 추출된 Token은 사람이 수행하는 Gesture와 같은 fine-grained details을 Capture
  • 저자들은 이런 Token을 처리하기 위해 Multiple View Transformer를 제안(Figure1)
  • 각각의 View에 특화된 별도의 Transformer Encoder로 구성
  • 서로 다른 'View'의 Information을 통합하기 위해 Lateral Connection이 있음
  • 각 'View'를 처리하기 위해 다양한 Size의 Transformer Encoder를 사용할 수 있음
  • Smaller Encoder(Small Hidden Size & fewer Layer) Represent Borader View of th Video(FIg.1 Left)(in terms of accuracy/computation trade-offs)
  • 더 큰 Capacity를 가지는 Encoder를 사용하여 Detail Capture도 좋음(Fig. 1. Right)
  • 이런 Design은 Spatio-Temporal Resolution이 감소함에 따라 Model Complexity가 증가하는 Pyramid-Base 접근 방식과 대조를 보이고, 이를 실험으로 검증
  • 저자들의 제안은 Input Video의 "View"를 처리하는 간단하고, 이전 연구와 대조적으로 다양한 'View'로 쉽게 Generalizes를 진행
  • 실험에서 보면 'View'가 늘어날 수록 Accuracy가 증가
  • 제안한 구조는 Input View의 수에 따라 Network에 의해 처리되는 Token수가 증가하지만, "Small"에서 "Huge"에 이르는 Model 크기의 스펙트럼에서 Accuracy/Computation Trade-Off
  • 저자들은 이것이 더 많은 View를 Parallel로 처리하는 것이 Transformer Network의 Depth를 증가시키는 것 보다 더 높은 Accuracy 향상을 달성 가능(실험)
  • Design Choice에 대해 Ablation Study를 진행하여 6개 Task에 대해 SOTA에 달성

Related Work

  • Evolution of video understanding models
    - Hand-Crafted Feature에 의존하여 Motion 및 Appearance Infomation을 Encoding
    - ImageNet 등장으로 Large-Scale Dataset의 등장으로 CNN은 기존보다 우수
    - AlexNet이 ImageNET에서 우승하고 여러 세대 걸쳐서 진화 및 NAS에서 개선
    - Kinetics 등장 후에 3D CNN이 인기를 얻고, Speed와 Accuracy를 높이는 방향으로 많은 변형이 개발
    - 하지만 CNN은 Local만 가능하고, 결과적으로 Transformer Block은 Spatiotemporal Feautre 사이의 Long-Range Interaction Modeling을 Capture하기 위해 뒷단에 추가
    - Pure Transformer Model은 ViT가 출발을 했고, Video 분야에서 ViViT, TimeSformer는 성공적으로 자리잡음
  • Multiscale processing in computer vision
    - 'Pyramid' 구조는 Image에서 가장 인기있는 Multi Scale Representations 중에 하나이며 다양한 Vision Task 핵심
    - 여러 Domain에서 널리 사용됨
    - 해당 아이디어는 Network의 Spatial 차원이 감소하고, Network Depth는 점차 증가하여 풍부한 Feautre를 Encoding하는 현대 CNN에도 성공적으로 이용됨
    - 해당 기술은 Downstream Task에 대한 HighResolution Output Feature를 생성하는데 사용
    - CNN에서 Convolution 작업이 Input의 Sug-Region에서만 작동하고, Image 또는 Video 전체 'View'를 Capture할려면 Hierarchical Structure이 필요하기 때문에 Multi-Scale 처리가 필요
    - 이론적으로 그러한 Hierarchical 구조는 Token이 다른모든 Position에 Attend하는 Transformer에 필요하지 않음
    - 실제로 Training Data의 양이 제한되어 있기 때문에 Transformer와 유사한 Multi Scale Process를 적용하는 것이 효과적(Swin Transformer Etc)
  • 저자들의 Model
    - Pyramid Structure를 따르지 않고, Video의 Different VIew를 직접 가져와서 Cross-View Encoer에 공급
    - 실험에거 검증하는데, 이런 Multiple View구조는 Accuracy, Flops trade-offs측면에서 Single-View Architecture보다 좋음
    - 이는 더 많은 View를 Parallel하게 처리하는 것이 Transformer의 Network Depth를 증가시키는 것보다 더 큰 Accuracy 향상을 제공
    - 이전의 Pyramid Structure Transformer에서 보여주지 않은 10억개 이상 Parameter로 Model Capacity를 확장함에 따라 개선됨을 보여줌(가장 거대한 모델)
    - 개념적으로 동일한 Video Clip의 두개의 View를 처리하는 Two Stream CNN SlowFast와 유사
    - 서로 다른 Frame 속도로 Input Video를 Sampling하는 대신, 각 View에 대해 다양한 Size와 'Tubelets'을 Linear Projection하여 다른 View를 얻음
    -  또한, 우리는 제안된 방식이 가장 좋은 결과를 얻음

Multiview Transformers for Video

  • Preliminaries: ViT and ViViT
    - Input Video : V ∈ R (T×H×W×C)
    - Transformer 구조는 Input을 Discrete Token으로 Convert하여 Input을 처리, 이후에 여러 Transformer Layer를 순차적으로 처리
  • - ViT에서는 Image Token 추출을 Non-Overlapping 되게 분할하고, Linear Projection을 진행
    - ViViT에서는 N개의 Non-Overlapping Patch를 추출하는데, Spatio-Temporal Tube(Tubelets)을 이용
    - Patch 가 다음과 같다면 : x1, x2, . . . xN ∈ R (t×h×w×c), N = [T/t] x [H/h] x [W/w]
  • 각 Tube xi는 Linear Operator E로인해 zi = Ex,  zi ∈ R(d)가 됨
  • 모든 Token은 E를 거친 뒤에 Concat됨, 그 이후에 CLS Token을 앞쪽에 부착
  • Transformer는 permutation invariant(Vector 요소와 순서에 상관없이 같은 Output)한데, positional embedding p ∈ R (N+1)×d도 더해준다.

  • Linear Projection E는 Time, Height, Width 차원에서 각각 Kernel Size가 t x h x w이고 Stride가 (t,h,w)인 3D CNN으로 볼수가 있음(Patch Embedding을 3D CNN으로 수행)
  • 이후에 z를 Encoder에 집어넣어 MSA, MLP를 진행
  • 최종적으로 CLS Token을 이용해서 Classification을 수행
  • Multiview tokenization
    - 해당 Model에서는 Input Video에서 Multiple Set Of Token을 추출함
    - 아래와 같은 Notation에서 V는 'View'의 개수, l은 Transformer Layer 몇개를 통과한것이냐, i는 View의 Index
    - 저자들은 View를 Fixed Size의 Tube Set으로 정의
    - Larger View는 Larger Tubelet을 가지고(Fewer Token), Smaller View는 Smaller Tubelet(More Token)
    - 0번째 Layer는 Subsequent Transformer의 Input으로 들어가는 Token
    - 일반적으로 3D Convolution을 이용해서 Tokenize하는데, 이런 방식이 더 좋음
    - 각 View에 대해서 서로 다른 Convolution Kernel과 서로 다른 Hidden Sizes인 d(i)를 이용한다
    - Convolution Kernel이 작을수록 더 작으 Spatio Tubelet에 해당하므로, i번쨰 View에 대해 처리할 Token이 많아짐
    - 직관적으로 작은 Tube는 fine-grained Motuon을 Capture하고, 큰 Tube는 장면의 천천히 변화하는 Sematic를 Capture할 수 있음
    - 각 View는 서로 다른 Level의 Information을 Capture하므로, 각 Stream에 대해 다양한 Capacities의 Transformer Encoder를 사용하고, Stream간의 Lateral Connection을 이용하여 정보를 Fuse

 

  • Multiview Transformer
    - Multiple View의 Token을 추출하면 아래과 같은 Set을 얻게됨
    - Self Attention을 Quadratic Complexity를 가짐
    - 모든 View Token을 다같이 처리하면 Video에서는 불가능
    - 따라서 먼저 View간의 Token을 처리하기 위해 별도의 Transformer Encoder(Li)로 구성된 Multi View Encoder를 이용하고, 이런 Encoder간의 Lateral Connection을 이용하여 각 View간의 정보를 공유(Figure2)
    - 마지막으로, 각 View에서 Token Representation을 추출하고 이를 Final Global Encoder와 함께 처리하여 Final Classification Token을 생성하고, 이를 이용해서 Output를 생성

 

 

  • Multiview Encoder
    - Multiview Encoder는 각 View에 대해서 별도의 Encoder로 구성, 이 Encoder는 Lateral Connection으로 Cross-View Information을 융합
    - Encoder 내의 각 Transformer Layer에는 다른 Layer내에서의 다른 Stream의 Information을 선택적으로 Fuse하는것을 제외하고는 동일
    - 저자들의 Model은 Transformer Layer의 유형에 영향을 받지 않음
    - 각 Transformer Layer내에서는 동일한 Temporal Index내에서 추출된 Token들 사이에서만 Self-Attention을 계산(Factorised Encoder를 이용), 계산 비용을 줄일 수 있음
    - 또한 Multiview Encoder 내에서 다른 View의 Information을 융합하고, 모든 Stream Token은 집계하는 Subsequent Global Encoder로 인해 모든 Spatiotemporal Token에 대한 Self-Attention이 필요하지 않음
  • Cross-Veiw Fusion 
    - 총 3개의 Cross-View Fusion Method(CVA, Bottleneck Token, MLP Fusion)를 탐구, 각 View에 대해 Hidden Dimensons은 다를수도 있음

  • Cross-View Attention(CVA)
    - 서로 다른 View간의 Information을 결합하는 가장 Straight-Forward한 방식은 모든 Sigma(i)(Ni) Token에 대해 공동으로 Self-Attention을 취하는 것 이다. 이때 Ni는 i번째 View에 있는 Token의 수, 한마디로 모든 Token에 대해 Attention
    - 이 방식은 Quadratic Complexity를 가지는 Self-Attention에서는 불가능, 더욱이 Video Model에게는 이용하면X
    - 인접한 두개의 View인 i와 i + 1의 모든 Pair사이의 Information 순차적으로 융합하며, View는 Token 수가 증가하는 순서로 정렬됨 [N(i) ≤ N(i+1)] ( i는 큰 View, i+1은 작은 View)
    - 더 큰 View의 Token을 Update하기 위해 Query는 z(i), key 와 Value는 z(i+1)로 Attention을 계산
    - Token의 Hidden Dimension이 다를수도 있기 때문에 Key와 Value를 Linear Layer를 이용해서 Projection
    - 나머지는 Residual Connection, Attention 메카니즘은 동일

  • Bottlenect Tokens
    - 특정 Token, BottleNeck Token을 이용해서 Information을 교환하는 방식
    - B(i+1)i+1 View BottleNeck의 개수, d(i+1)i+1 View Hidden Dim을 의미
    - 아래의 그림은 B = 1인 경우, i+1번째 ViewBottleNeck Token Z_B^(i+1) 동일한 Z_ ^(i+1)Attention을 취하고, 이후에 다음 Attention을 취하기 전에 i번째 ViewBottleNeck Token을 전송(Linear LayerDim을 맞춤)
    - Token수가 많은 View부터 시작해, 적은 View, 모든 View Pair간에 Fusion가능
    - 직관적으로 보면 가장 적은 View가 모든 View의 세분화된 정보를 종합
    - 새로운 ParameterLinear ProjectionBottleNeck Token

  • MLP Fusion
    - 각 Transformer의 Encoder Layer는 MSA와 MLP Block으로 구성됨
    - 간단한 방법은 MLP Block앞에서 Fusion 하는 것
    - Figure2c의 그림을 보면 View i + 1, z(i+1)의 Token과 Hidden Dimension d(i+1)을 따라 View i의 Token과 연결
    - 그 뒤에 해당 Token은 Layer i의 MLP Block에 공급되어 d(i)로 투영됨
    - 이 과정은 Network의 Adjacent View간에 반복되며, 다시 한 번 View당 Token수가 증가함에 따라 View가 정렬됨
     
  • Fusion Location
    - Fusion Operation에서 Previous View의 모든 Token을 고려하는 Global Receptive Field가 있기 때문에 서로 다른 View간의 정보를 전송하기 위해 Cross-View Encoder의 각 Layer에서 Cross-View Fusion을 할 필요가 없음
    - 또한 각 개별 View Encoder의 서로 다른 Depth를 가질 수 있는데, 이는 View i의 Layer l과 View j의 Layer l'사이에서 Fusion이 발생 할 수 있음( l과 l' 다름)
    - 따라서 Fusion 위치를 정하는 Ablation Study를 진행

  • Global Encoder
    - 마지막으로 Figure1과 같이 Final Global Encoder로 각 View의 Token을 집계하여 Cross-View Transformer 이후 모든 View의 Information을 효과적으로 Fusion
    - 각 View에서 CLS Token을 추출하고, 모든 View의 Information을 취합하는 방법에 따라 다른 Transformer Encoder로 추가 하여 처리
    - 그 뒤에 CLS Token C개의 Classification Output으로 Mapping됨

Experiments

  • Model Variants
    - 5개의 Tiny, Small, Base, Large ,Huge까지 5가지의 ViT Variants를 이용
    - 예를 들어 B/2+S/4+Ti/8은 3개 View Model을 나타내고, Base, Small, Tiny Encoder는 각각 16x16x2, 16x16x4, 
    16x16x8의 3개의 Tubelet을 이용,
    - ViT에 따라 Huge Model(14x14)을 제외한 Model은 Tubelet의 Spatial Size가 16x16을 이용, 그러므로 생략
    - Base Model들은 Head가 12개가 아닌 8개로 설정
    - 그 이유는 Multi Head Attention을 위해 Token의 Hidden Dimension을 Head로 나눠야 하기 때문에

  • Training and Inference 
    - 별도의 Setting이 없는 한 ViViT의 Setting을 그대로 이용
    - 모든 Model은 Temporal Stride가 2인 32 Frame으로 Training
    - Linear Warming Up, Cosine Learning Rate Decay, Momentum 0.9, Synchronous SGD를 이용
    - Input Frame의 Resolution은 Training과 Inference 224x224로 설정
    - ViViT와 동일한 Data Augmentation 및 Regularization을 적용
    - Inference 동안 Multiple Spatial and Temporal Crop을 이용한 뒤에 평균을 취함
    - Crop의 수는 Result Table에 나옴 

  • Initialization
    - 이전 Task에 따라 ImageNet Dataset에 Pretrain된 ViT Model을 이용하여 초기화
    - 초기 Tubelet Embedding Operator E와 Position Embedding p는 Pretrain된 Model에서 서로 다른 Shape가지는데, ViViT와 동일한 Method로 (Central Embedding, ViT의 Position Embedding을 Temporal 축에 따라 Repeat)
    - Final Global Encoder는 Random으로 Initialization을 진행

  • Dataset
    Kinetics
    - Large-Scale, High-Quality Dataset으로 10s Video Clip(Human Action) 
    - 400,600,700 3가지 Version이 존재하고, Class의 수를 의미
    Moments in Time
    - 800000개의 Label이 붙은 3s Video 모음
    - 사람, 동물, 사물, 자연 현상과 관련 
    Epic-Kitchens-100
    - 주방에서 촬영된 총 100시간 분량의 90000개의 Video
    - 각 Video마다 noun, verb 명사와 동사 Label이 지정되고, 두개의 Head를 가진 단일 Network를 이용하여 두가지 Category를 Predict
    - 일반적으로 해당 Dataset은 ('noun', 'verb', 'Action')3개의 Accuracy가 이용되고, Action Label이 Primary Metric이 됨
    - 'Action' Label은 가장 높은 Score를 받은 'noun', 'verb' Pair를 선택하여 구성
    Something-Something v2
    - 220000개가 넘은 Short Video Clip을 가지고 있고, Human이 다른 Object와 행동을함
    - 비슷한 Object, Background는 여러 Class내의 Video에 나타남
    - 따라서 다른 Dataset와 달리 해당 Dataset에서는 Motion에서 Class구별하는 Model의 능력이 중요

  • Ablation Study
    - Kinetics 400 Dataset에서 Ablation Study를 진행
    - Largest Backbone은 Base를 이용하여 빠른 실험을 진행
    - Spatio Temproal Crop을 이용하는데 4개의 Temporal Crops, 3개의 Spatail Crop, 총 12개를 이용
    - 30 Epcohs, Lr 0.1

  • Model View Assignment (a), (b)
    - View는 Tubelet으로 표현된 Video Representation이고, Larger View는 Larger Tubelet, Small View는 Small Tubelet
    - 예를 들면 B/8 + Ti2 는 Base Model은 16x16x8 Tubelet, Tiny Model은 16x16x2 Tubelet, Tubelet이 작아지면 Token수는 증가
    - Table1을 보면 Smaller View를 Larger Model에 적용하는 것이 좋은 결과가 나옴
    - B/2 + S/4 + Ti/8은 81.8%의 Accuacy을 받았지만, B/8+S/4+Ti/2는 78.5%의 Accuracy를 얻음
    - FLOPs가 증가해서 그렇다고 주장할 수 있지만, 비슷한 FlOPs를 가지는 B/4+S/8+Ti/16에 비해 좋은 결과를 얻음
    - Larger View를 Capture하는 경우에는 Scene의 요지를 파악하기 때문에 덜 복잡하고, Scene의 Detail은 더 작은 View로 캡슐화 되므로 더 큰 Model이 필요
    - 또 다른 전략으로는 모든 View에 동일한 Model을 할당
    - Table1의 b를 보면 세가지 모두 큰 차이가 존재하지않고, GFLOPs와 Parameter만 증가하는 문제가 생김

  • What is the best cross-view fusion method?(c)
    - Table1의 c를 보면 3개의 View Model에 대해 다양한 Fusion 방법을 비교
    - Late Fusion, Ensemble, MLP, Bottleneck, CVA
    - Ensemble은 단순히 각 View에서 생성된 확률을 합산, 각 View Model이 개별적으로 학습됨(가장 안좋은 성능)
    - 해당 방식은 Small Model과 Tiny Model의 성능이 좋지 않기 때문임
    - Late Fusion 방식은 Transformer가 생성산 Final Embedding을 Cross-View 없이 각 View에서 Global Encoder에 공급하기 전에 연결(80.6% 까지 개선)
    - CVA, BottleNeck모두 좋은 성능이 나왔고, 제일 좋은 Accuracy를 보이는 CVA를 Main으로 진행
    - MLP Fusion 방식이 안좋은 결과가 나온 이유는, MLP Block의 연결로 인해 Random 초기화 해야하는 Channel이 추가로 발생하여 Model의 최적화가 어려워짐
  • Effect of the number of views(e)
    - Table1의 e를 보면 View의 개수가 영향을 미치는 것을 연구
    - View의 개수를 늘릴수록 Accuracy가 올라가는것을 확인 가능(2.5%, 2.8% 상승)
    - FLOPs의 차이라고 볼 수도 있으므로, Base Layer를 증가시켜 Test
    - 비슷한 FLOPs를 가지지만 Single View는 Accuracy가 미미하게 증가 또는 감소
  • Which layers to apply cross-view fusion?(f)
    - Fusion Method는 CVA를 이용
    - B + S + Ti Model에서 각각 다른 위치에서 CVA를 적용
    - CVA를 적용하는 Layer위치 ,Layer 수를 변경
    - 하나의 Fusion Layer를 이용하면 적절한 위치 순서는 5, 0, 11 순서, 초기 Layer에서 Fusion을 하면 성능이 향상 x
    - 중간 단계, Late단계의 Fusion을 이용하면 Accuracy 상승 효과가 존재, 하지만 초기 단계는 넣어도 개선안됨, 연속도 개선 x
  • Comparison to SlowFast(d)
    - SlowFast와 비슷하게 구성했고, 적은 FLOPs 높은 Parameter로 우수
  • Comparisons to state-of-the-art - Model
    - MTV-B : B/2+S/4+Ti/8
    - MTV-L : L/2+B/4+S/8+Ti/16
    - MTV-H : H/2+B/4+S/8+Ti/16
    - 모든 Kinetics Dataset 제외하고는 모두 Kinetic400을 Checkpoint로 이용

  • Accuracy/Computation Tradeoff
    - ViViT FE Model, MVT 모든 Model 간의 GFLOPs, Clip per Second를 비교
    - Tubelets, Temporal Tube가 2인 경우가 가장 좋은 Performance
    - 저자들은 Tubelet 크기를 조절하여 연산량을 조절가능(모든 View에 대해 비율로 Tubelet크기 조절가능)
    - 연산량과 Accuracy 관점에서 보면 MTV가 ViViT-FE이 보다 좋음
    - 이는 Network Depth를 늘리는 것 보다 여러 View를 병렬로 처리하는 것이 좋다는 것을 입증

  • Which layers to apply cross-view fusion?(f)
    - Kinetics 400, 600, 700 ImageNet Pretrain Model에서 우수한 성능을 보여줌(320pSpatial Resolution 다르게 한 것)
    - 추가 Dataset(Weak Textual Supervision (WTS), JFT)으로 Pretrain을 더 진행한 결과 성능 향상을 더 얻을 수 있었음
    - SSv2, Epic Kitchens, Moments in Time에서 모두 우수한 Accuracy
    - SSv2에서는 해상도가 높은 경우에만 MFormer보다 좋은 결과를 얻음

 

https://arxiv.org/abs/2201.00520

 

Vision Transformer with Deformable Attention

Transformers have recently shown superior performances on various vision tasks. The large, sometimes even global, receptive field endows Transformer models with higher representation power over their CNN counterparts. Nevertheless, simply enlarging recepti

arxiv.org

 

Abstract

  • Transformer는 최근 다양한 Vision Task에서 최고의 성능을 보임
  • 크고 때로는 Global 한 Receptive Field는 CNN Model보다 더 높은 Representation Power를 가진 Transformer모델을 제공
  • 그럼에도 불고하고 단순히 Receptive Field를 확대하는 것은 몇 가지 문제가 존재
  • ViT 같은 경우 Dense Attention을 이용하면, 과도한 Memory, Computational Cost가 존재, 또한 이미지를 Patch로 분할하고 이미지 전체(Patch)로 Self-Attention을 취하므로 관심 있는 영역을 벗어난 다른 비용에 영향을 받게 됨
  • 반면 PVT 또는 Swin Transformer에서 이용된 Sparse Attention은 데이터에 적응적이지 않으며, 긴 거리에 대해 모델링하는 능력이 부족
  • 해당 저자들은 이런 문제를 완화 하고자 새로운 Deformable Self-Attention Module을 제안, 해당 Module은 Query, Key Pair의 위치가 Data Dependent 하게 선택되도록 함
  • 이러한 유연한 체계로 Self-Attention Module이 관련된 Region에 집중하고 더 많은 Information을 Capture 하도록 함
  • 이를 바탕으로 저자들은 Deformable Attention Transformer를 제안, 해당 Deformable Attention Transformer는 Image Classification과 Dense Prediction Task에 General 하게 이용가능
  • 다양한 실험으로 포괄적인 Bench Mark에서 개선된 결과를 얻음

Introduction

  • Transformer는 원래 NLP Task들을 해결하기 위해 제안
  • 하지만 최근에는 Vision 분야에서 높은 Potential을 증명함
  • 이전의 진행되었던 ViT 같은 Model을 여러 개의 Transformer Block Stack을 만들고, Image 전체를 Non-Overlapping 되게 Patch Sequence(Visual Token)를 생성하여 Self-Attention을 진행, 이 방식은 CNN을 이용하지 않는 Image Classification Model이다
  • CNN과 대응관계에 있는 Transformer Model을 넓은 Receptive Fields를 가지고, Long-Range Dependencies가 우수
  • 이는 많은 양의 Training Data와 Model Parameter 체재에서 우수한 성능을 가지는 것으로 확인
  • 하지만 Visual Recognition에서 불필요한 Attention은 '양날의 검'처럼 작용하고 여러 가지 결점이 존재
  • 특히 Query Patch당 Self-Attention에 참여할 Key이 수가 너무 많으면 High Computational Cost를 가지고, Slow Convergence, OverFitting의 위험이 존재
  • 지나친 Attention Computation을 피하기 위해 여러 방식으로 Attention을 진행
  • 대표적으로 두 가지 어프로치가 있다. Swin Transformer는 Local Window에서 Attention을 제한하기 위해 Window-Based Local Attention을 진행
  • Pyramid Version Transformer는 (PVT) Key와 Value Feature Map을 DownSampling 하여 계산량을 줄임
  • 이러한 Hand-Craft Attention Pattern은 Data-agnostic 않으며 최적의 방식이 아님
  • 관련이 있는 Key/Value은 삭제되고, 덜 중요한 Key/Value만 계속 유지될 수도 있음

 

  • 이상적으로 하나를 기대해 볼 수 있는데, 주어진 Query에 대한 후보 Key/Value set을 Flexible 하고 각각의 개별 Input에 적응할 수 있는 능력을 생기게 해 Hand-Craft Sparse Attention Pattern의 문제를 완화 가능할 것
  • 실제로 CNN의 Paper에서 Convolution Filter에 대해 Deformable Receptive Field를 학습하는 것은 Data에 대해 종속적으로 더 많은 정보가 있는 영역을 선택적으로 골라 효과적인 것인 것을 확인
  • 가장 주목할 만한 연구인 Deformable Convolution Network는 다양한 Vision Task에서 인상적인 결과를 도출
  • 이는 Vision Transformer또한 Deformable Attention Pattern을 적용하고자 하는 동기가 생김
  • 그러나 이를 Naive하게 구현하는 것으 불합리하게 높은 Memory/Computational Cost를 초래
  • Deformable Offsets에 의해 도입된 OverHead는 Patch수에 대해서 Quadratic
  • 결과적으로 최근 다양한 연구에서 Transformer의 Deformable 메카니즘을 조사했지만, 높은 Computational Cost때문에 DCN과 같이 강력한 BackBone Network를 구성하기 위한 기본 요소로 선택한 사람은 없음
  • 대신 Deformable Mechanism은 Detection Head에 채택되거나, 후속되는 Network에 대한 Patch를 Sampling 하기 위한 전처리 계층으로 이용

 

  • 본 논문에서는 Image Classification 및 다양한 Dense Prediction Task을 위해 변형 가능 주의 변환기(DAT)라는 강력한 Pyramid Backbobne이 구성된 간단하고 효율적인 Deformable Attention Transformer(DAT)을 제시
  • 전체 Feature Map에서 서로 다른 Pixel에 대한 서로 다른 Offset을 학습하는 DCN 방식
  • 저자들은 여러 논문에 따르면 Global Attention은 일반적으로 서로 다른 Query에 대해 거의 동일한 Attention Pattern을 일으킴.
  • 그러므로 Query-Agnostic offset의 몇가지 Group(모든 Query가 공유하는)을 학습하여 Key와 Value가 중요한 영역으 이동하도록함
  • 이 설계는 Linear Space Complexity 유지하고 Transformer Backbone에 Deformable Attention Pattern을 도입
  • 특히, 각 Attention Module에 대해 Reference Point은 먼저 Input Data 전체에서 Uniform Grid를 생성
  • 그런 다음 Offset Network는 모든 Query Feature을 Input으로 사용후 모든 Reference Point에 대한 해당Offset을 생성
  • 이러한 방식으로 후보 Key/Value이 중요한 Region으로 이동되므로 원래의 Self-Attention Module을 보다 높은 Flexibility와 Efficiency로 보강하여 보다 유용한 정보를 포착

 

  • 요약하면, 저자들의 기여는 다음과 같음
  • 저자들은 Visual Recognition을 위한 최초의 Deformable Self-Attention을 제안
  • 여기서 Data Dependent Attention Pattern은 더 높은 Flexibility과 Efficiency을 제공
  • ImageNet, ADE20K 및 COCO에 대한 광범위한 실험은 Model이 Swin-Transformer보다 훌륭하다는것을 증명

Related Work

Trasfomer Vision Backbone

  • ViT가 도입된 이후에 개선 사항으로 Dense가 높은 Prediction Task와 Efficient Attention Mechanisms을 위한 Multi-Scale Feature을 학습하는 데 Focus를 맞춤
  • 이러한 Attention Mechanisms은 보통 Window Attention, Global Token, Focal Attention, Dynamic Token Size등 다양
  • 그 중에서도 추가적인 Inductive bias를  도입하기 위해 Convolution 연산을 Transformer model을 보완하는데 초점을 맞춘 연구들이 존재
  • CvT같은 경우 Token Process에 Convolution을 채택하고, Stride Convolution을 이용하여 Self-Attention의 Computational Cost를 낮춤
  • Convolution Stem(입력 이미지를 아주 aggressively하게 다운샘플링 하는 역할을 수행하는 네트워크)가 있는 ViT는 안정적인 Training을 위해 초기 단계에 Convolution을 추가
  • CSwin Transformer는 Convolution Base로 Positional Encoding 기술을 채택하고 Downstream Task에 대한 개선 사항을 보여줌
  • 이러한 Convolution Base 기술 중 많은 것이 잠재적으로 DAT 위에 적용되어 추가적인 성능 향상이 가능함

Deformable CNN and attention

  • Deformable CNN은 Input Data에 따라 Flexible Spatial Location에 주의를 기울이는 메커니즘
  • 최근에는 다양한 Vision Transformer에도 적용함
  • Deformable DETR은 CNN Backbone 상단에 각 Query에 대해 적은 수의 Key를 선택하여 DETR의 Convergence 개선
  • Key가 부족하면 Representaton Power가 제한되기 때문에 Deformable DETR 방식은 Vision에서 적합하지 않음
  • 또한 Deformable DETR의 Attention는 단순히 학습된 Linear Projection에서 비롯되며 Key는 Query Token 간에 공유되지 않음
  • DPT 및 PS-ViT는 Deformable Moduel을 구축하여 Visual Token을 세분화
  • 구체적으로 DPT는 단계별로 Patch를 세분화하기 위해 Deformable Patch Embedding을 제안하고 PS-ViT는 Visual Token을 개선하기 위해 ViT Backbone 이전에 Spatial Sampling Module을 도입
  • 하지만 위에 어느 것도 Deformable Attention을 Visual Backbone에 통합하지 않음
  • 하지만 저자들의 Deformable Attention는 Visual Token 간에 공유된 일련의 Global Key를 학습하기 위해 강력하면서도 간단한 설계를 사용하며, 다양한 Vision Task을 위한 일반적인 Backbone로 채택될 수 있음
  • 저자들의 방법은 또한 다양한 연구에서 효과적인 것으로 입증된 spatial adaptive mechanism으로 볼 수 있음

Deformable Attention Transformer

Preliminaries

  • 먼저 최근에 Vision Transformer의 Attention Mechanism을 확인
  • Feature Map을 Flattend하므로 x ∈ R N×C, MHSA Multi-Head Self Attetion, M Head개수, d = C/M
  • σ(·) SoftMax, z (m) embedding output from the m-th attention head, q (m) , k(m) , v(m) ∈ R N×d
  • Wq, Wk, Wv, Wo ∈ R C×C are the projection matrices
  • Transformer block에는 MLP block with two linear transformation, 그리고 GELU Activation
  • normalization layers and identity shortcuts, the l-th Transformer block is formulated
  • LN is Layer Normalization

Deformable Attention

  • Hierarchical Vision Transformer인 PVT, Swin Transformer는 과도하게 Attention을 하는것을 막기위해 노력
  • 하지만 PVT의 Downsampling Technique은 Information loss를 일으키고, Swin Transformer의 Shift Window Attention은 Receptive Field가 순차적으로 느리게 커지는데, 큰 물체를 Modeling하는데 제약이 생김
  •  따라서 관련 기능을 유연하게 Modeling 하기 위해 Data-Dependent Sparse Attention 필요하며, 이는 DCN에서 처음 제안된 Deformable Mechanism으로 이어짐 
  • 하지만 DCN의 방법을 Transformer Model에게 그대로 적용하는것은 어렵다
  • DCN은 각 Feature Map의 각 요소는 Offset을 개별적으로 학습하여 HxWxC의 Feature Map의 3x3 Deformable Convolution은 3x3xHxWxC의 Space Complexity를 가진다
  • Attention에 동일한 Mechanism을 직접 적용하면 Space Complexity가 Nq x Nk x C로 급격히 증가할 것이며, 여기서 Nq, Nk는 Query 및 Key의 수이며 일반적으로 Feature 크기 H W와 동일한 규모를 가지며 대략 Biquadratic Complexity
  • Deformable DETR는 각 척도에서 Nk = 4로 더 적은 수의 Key를 설정하여 이러한 Overhead를 줄일 수 있었지만, 허용할 수 없는 Information loss 때문에 Backbone Network에서 그렇게 적은 Key를 관리하는 것은 안좋음
  • 연구에 따르면 Visual Attention Model에서 서로 다른 Query가 유사한 Attention Map을 가지고 있다.
  • 저자들은 효율을 위해 각 Query에 대해 Shared Shift Key와 Value을 가진 더 간단한 Solution을 선택

 

  • 저자들은 구체적으로 Feature Map의 중요안 Region에 Guidance에 따라 Token간의 Relation을 효과적으로 Modeling하기 위해 Deformable Attention은 제안
  • 이러한 Focused Region은 Offset Network에 의해 Query에서 학습된 Deformed Sampling Point의 Multiple Group에 의해 결정
  • 그런 다음 Sampling된 Feature가 Key 및 Value Projection에 입력되어 Deformed Key 및 Value를 생성
  • 마지막으로 Standard Multi-Head Attention는 Sampling된 Key에 대한 Query에 attend하고 Deformed된 Value에서 Feature을 집계하기 위해 적용
  • 또한 Deformed Loaction의 Position은 Deformable Attention의 학습을 용이하게 하기 위해 보다 강력한 Relative Position Bias을 제공함(다음 Section)

Deformable Attention Module

Figure2

  • Input Feature Map : x ∈ R H×W×C
  • Uniform Grid Point : p ∈ R HG×WG×2, HG = H/r, WG = W/r. r = Factor 
  • values of reference points are linearly spaced 2D coordinates {(0, 0), . . . ,(HG − 1, WG − 1)}, And Normalize [−1, +1]
    따라서 HG X WG Grid Size가 (-1,1)이됨, (−1, −1) indicates the top-left, (+1, +1) indicates the bottom-right corner.
  • Reference Point를 대한 Offset을 얻기 위해 Feature Map은 Linear로 Projected된다. q = xWq, 그리고 θoffset(·)이란 가벼운 Sub-Layer에 공급되어 ∆p = θoffset(q)가 생성
  • Training 과정에서 Offset이 너무 커지는것을 방지하기 위해 미리 정의된 Factor s로 Amplitude를 조정, 즉 
    ∆p ← s tanh (∆p).
  • 그런 다음 Feature이 Key 및 Value으로 Deformed Point의 Location에서 Sampling되고 Projection Matrics이 이어짐
  • k˜ and v˜ represent the deformed key and value embeddings

  • 그 뒤에 8번 수식을 이용하여 Bilinear Interpolation  
  • g(a, b) = max(0, 1 − |a − b|)
  • (rx, ry) indexes all the locations on z ∈R H×W×C
  • g would be non-zero only on the 4 integral points closest to (px, py),
  • it simplifies Eq.(8) to a weighted average on 4 locations.

Vision Transformer With Deformable Attention.pdf
2.39MB

Experiments

  • AdamW, 300Epochs, Cosine Learning Rate Decay 
  • RandAugment, Mixup, CutMix 
  • Tiny, Small, Base에서 모두 기존 ViT 모델보다 좋은 성능을 확인
  • 같은 Scale의 Swin Transformer보다 FLOPs가 약간 증가

  • DAT를 BackBone으로 하여 RetinaNet에서 Object Detection 성능 확인
  • ImageNet 으로 Pretrained(300Epochs)
  • 최종 결과로 Tiny, Scale, Base에서 다른 PVT, Swin보다 좋은 결과를 얻음
  • 같은 Scale의 Swin Transformer보다 FLOPs약간 증가
  • DAT를 이용하면 Small, Large Object Detection 성능이 향상 

  • DAT를 BackBone으로 하여 Semantic Segmentation 성능 확인
  • SemanticFPN, UperNet
  • PVT, Swin Transformer 보다 약간 증가한 Flops에서 mIoU

  • DAT와 Swin Transformer을 BackBone으로 하는 Mask, Cascade Mask R-CNN 결과 비교
  • 모든 경우에서 개선된 결과를 얻었고, BackBone으로 가치가 큼

Ablation Study

Visualization

  • COCO Validation Set에서 Attention Score가 높은 Key Feature을 시각화( Score가 높을수록 원이 커지게됨
  • Object Detection에서 중요한 부분과 경계에 대해 Score가 높게 나옴(얼굴, 동물, 손)

  • 빨간색 Query Point에 대해 Attention Score가 높은 Key를 시각화
  • Swin-Transformer의 경우 고정된 Key Point가 나오는 반면, DAT는 Object의 주요 위치로 이동

https://arxiv.org/abs/2212.03229

 

Rethinking Video ViTs: Sparse Video Tubes for Joint Image and Video Learning

We present a simple approach which can turn a ViT encoder into an efficient video model, which can seamlessly work with both image and video inputs. By sparsely sampling the inputs, the model is able to do training and inference from both inputs. The model

arxiv.org

현재 Arxiv에만 올라온 논문, 2022년 12월 6일에 공개

 

Unoffical Implementation

https://github.com/daniel-code/TubeViT

 

GitHub - daniel-code/TubeViT: An unofficial implementation of TubeViT in "Rethinking Video ViTs: Sparse Video Tubes for Joint Im

An unofficial implementation of TubeViT in "Rethinking Video ViTs: Sparse Video Tubes for Joint Image and Video Learning" - GitHub - daniel-code/TubeViT: An unofficial implementation of T...

github.com

Abstract

  • 저자들은 ViT Encoder를 Image, Video Input모두에서 원활하게 작동할 수 있는 효율적인 Video Model로 전환할 수 있는 간단한 접근 방식을 제시
  • Input을 Sparsely Sampling함으로써 Model은 Image, Video Input에 대해 Training과 Inference가 가능
  • 이 Model은 Scalable이 간편하고, Full Finetuning 없이 PreTrain된 ViT에 쉽게 적응함

Introduction

  • ViT는 Visual Representation Learning에서 다재다능하고, Image UnderStanding, Multimodal, Self-Supervised에서 잘 이용됨
  • 하지만 Video에서 Adaptations을 어렵고, 계산량이 많음
    - ViViT, MTV, TimeSformer에서는 많은 수의 Frame을 처리하도록 설계
  • Video Understanding은 Computer Vision의 주요 Task
    - 3D CNN으로 Spatiotemporal information을 학습하여 처리
  • Image에 대한 메커니즘을 차용하기도 하는데, Kernel을 3D로 부풀려 Pretrain된 CNN의 Weight를 이용(I3D)
    - 그러나 Video에 적용되면 이런 Kernel들은 더이상 Image에 적용 불가능

  • 또한 대부분은 Previous Work는 Image, Video를 완전히 다른 Input으로 취급하여 Video.또는 Image Input에 대해 독립적인 방법을 제공함
    - 이는 두 가지 모두를 처리할 수 있는 Model설계가 어려움
    - 동시에 Image와 Video Input은 본질적으로 관련이 있으며 Single Visual Backbone은 Input 중 하나 또는 둘 다를 처리할 수 있어야 함
  • 몇몇 접근에서 Video, Image에 대해 동시에 처리하도록 함(Co-Training)
    - Perceiver, Flamingo는 같은 Model은 Input을 Resampling하고 Fixed Number Feature로 압축하여 해결
    - 그러나 이런 Resampling은 Long Video에는 Cost가 많음
    - 대표적으로 Flamingo는 Video은 1FPS로 Sampling된 개별 Frame으로 취급하여 Temporal 정보를 제한
    - 낮은 FPS Sampling 및 Frame별 Modeling은 Something-Something과 같이 Short Action을 인식하는데 좋지 않음
    - 반대로 높은 Frame에서는 계산이 불가능

그림1

  • 이러한 Limitation을 극복하고자 TubeViT라는 Simple, Effective Model을 제안
    - Image, Video Input에 Standard ViT Model을 원활하게 활용
    - 또한 Joint Image and Video Learning을 위한 Lightweight Approach를 소개
  • 저자들의 방법은 Video에서 다양한 Size의 3D Space-Time Tube를 Sampling하여 Vision Transformer에서 사용되는 Learnable Token을 생성(그림1)
  • Sparse Video Tube를 사용해 Model은 Input중 하나에 쉽게 적용이 가능하며, Training 및 Fine Tuning을 위해 Data Source중 하나 또는 둘다 잘 활용이 가능함
  • Sparse VIdeo Tube는 자연스럽에 Original Video Signal과 Image Signal를 처리하는데, 이는 Video의 Action 기타 Sptio Temporal 정보를 이해하는데 중요함  

  • Video Model은 Train이 비쌈
    - Previous Work에서는 Frozen Model을 이용하거나, Video에 Adapting하는 방식을 이용
    - 해당 저자들은 이러한 아이디어를 확장하여 Sparse Video Tube를 사용하여 훨씬 더 큰 ViT Model을 Lightweight Training이 있는 Video에 적용
    - 따라서 적은 Resources로 강력한 Large Video Model 생성이 가능
  • K400,600,700 SSv2에서 SOTA
  • 또한 From Scratch 또는 ImageNet-1k 및 Kinetics Dataset에서 Train되고, 매우 큰 Dataset(JFT-300M)에서 Training 한 것보다 성능이 우수함, videoMAE같이 Video를 이용하여 Pretraining한 것보다 성능이 우수함
  • 또한 Sparse Video Tube을 이용하여 Image, Video 모두에 대해 Training된 Weight를 잘 공유할 수 있음
  • 이는 Kernel을 Inflate하거나 새로운(I3D), New Temporal Specific Layer를 추가는 이전 작업과는 대조적
  • Sparse Sampling으로 인해 Token 수가 낮게 유지됨, 이는 FLOP를 줄이고 Accuracy을 향상시키는 데에도 중요하다는 것을 알게됨

    저자들의 Contribution
  • Sparse Video Tube기법을 개발
    - 다양한 Size의 3D Space-Time Tube로 Video을 Sparsely하게 Sampling하여 얻음
  • ViT 아키텍처를 Video에 쉽게 Adapt 시키는 Universal Visual Backbone
  • Joint Image and Video Understanding , Either Input
  • Easy-to-Scale Approach For Video Understanding, Already trained Large ViT Model을 사용가능

Related Work

  • Video Understanding을 해결하기 위해 많은 연구가 진행됨
    - 3D CNN, Video Transformer 하지만 문제점이 많음

  • transformers focus on only a few tokens
    - Frame은 Redundant Information(중복된 정보)을 가지고 있음
    - 따라서 Frame Sampling을 하기 위한 전략을 세움
    - 몇몇 연구에서는 Token의 개수를 줄여서 Redundant를 줄이기 위해 노력했지만, 일반적으로 Dense하게 시작하고, 휴리스틱하게 줄이는 방법을 이용함
    - 저자들은 초기 Input을 더 Sparse 하게 Sampling하여 효율성을 증가시켰음

  • VideoMAE는 Video Pretrianing으로 연구
    - Masking이 유익하다는 결과를 얻음
    - 그러나 Single Tube Shape를 이용하고, Non-Overlapping Patch이용, Image Video를 Co-Training 이용하지 않음

  • MTV, SlowFast Network에서 다양한 View, Stream에서 이점을 발견
    - MTV도 비슷하게 다양한 Tube을 이용하지만, Sparse Sampling을 통해 여러개의 작은 View당 Encoder가 아닌 단일 ViT Encoder Model을 사용
    - 이는 Image와 접근 방식을 더욱 통합
  • 또 다른 Video Understanding의 또 다른 작업은 Pretraining동안 Image Dataset을 활용하는 것
    - Image Dataset은 Annotation이 더 잘 달리고, 풍부한 Semantic Information을 제공(Dataset이 많음)
    - 한 가지 Approach는 Kernel을 Inflating하는 것
    - Image에서 Pretraining -> 그리고 Video로 Training하는 방식을 진행
  • Image and Video를 Joint하게 처리하는 방법도 있음
    - 이러한 Apporach는 비효율적일 수 있는 두개의 Input을 모두 처리하기 위해 아키텍처를 조정
    - Image 입력을 1Frame의 Video로 생각하거나, Input을 먼저 Encoding하기 위해 별도의 Network를 이용

  • Previous Work와 다르게 저자들의 방법은 Simple and Straightforward
    - 중요한 차이점은 Tube가 Raw Input에 Sparsely하게 적용되고, 서로 다르 모양의 Overlapping Tube, 단일 Shared Backbone을 이용
    - 두번째로 중요한 것은 모델이 Image, Video 양식 사이에서 완전히 공유되어, 두 Task모두 성능 향상이 가능하고, Vision작업에 일반적으로 적용가능

Method

Sparse Video Tubes

  • 저자들은 Simple And Straightforward Method를 제안, Image와 Video 모두에 원활하게 적용이 가능함
  • Image에 대한 Standard ViT의 Tokenization Approach방식인 16x16 Kernel이 있는 2D Conv이용
  • Sparseness 가 Video에 효과적이라는 관찰을 기반으로 진행(Token이 많아지면 성능이 나빠짐)
  • Video를 Dense하게 Tokenize하는 Prior Work를 따르기 보다는 2D Kernel을 이용하지만, 예를 들면 16번쨰 Frame에 큰 Temporal Stride를 이용
  • 따라서 32 x 224 x 224 Video Clip의 경우 6k개의 Token(32 x 14 x 14)가 아닌 392개의 Token이 생성 
    - 392개의 Token이 생기는 과정 (16, 32 Frame), 14 x 14 x 2 = 392
  • 하지만 이런 Sparse Spatial Sampling은 Information을 손실이 발생할 수도 있음
    - 예를들어 Quick Or Short Action(매우 작은 Frame에 발생하는 Action 및 크기가 작은 Action)
  • 그러므로 저자들은 Low Spatial Resolution으로 많은Frame에서 정보를 얻기 위해 16x4x4 Tube같은 다양한 모양의 Sparse Tube를 만듬
  • 이러한 Tube는 어떠한 Shape도 가능하고, 이것들의 효과를 실험적으로 증명
  • 중요한것은 이러한 Tube들은 Large Stride를 가지고, Sparsely Sampling함
  • 또한 Patch가 항상 (0,0,0)에서 시작되지 않도록 Optionally 하게 Start Offset을 추가하여 Tube간에 Overlap을 줄일 수 있음(그림2)
  • MTV에서도 이런 접근을 해지만, 여러 Transformer에 의해 Dense하게 처리하므로 연산량을 많음
  • 또한 Previous Work와 다르게 (같은)Tube간의 Overlapping도 가능함
    - 예를들면 Tube (T x H x W)에 대해 Spatio-Temporal Stride (Ts, Hs, Ws), (x, y, z) offset 적용 가능
    - 이런 설계를 통해, 저자들의 접근 바식은 Image and Video의 시각 정보의 원활한 Fusion이 가능하게함(다양한 Patch Embdding방식을 이용, Sparse, etc..)
  • Sparse Spatial Sampling은 Image 및 Frame Token을 공유 가능
    Spase Video Tube는 낮은 수의 Video Specific Token을 생성
  • 이를 통해 Image와 Video간에 ViT Model을 잘 공유함 

Positional embedding for sparse video tubes

  • 저자들의 Approach 중에 핵심적인 측면은 Positional Embedding
  • Language Model에서 Relative Positional Embedding은 흔하고 효과적인 접근법인
  • 하지만 여기서 두 Token사이의 Relative Position은 최소한의 의미를 가지며, 원본 Video나 Image에서 Patch Tube가 어디에서 왔는지에 대한 실제 Reference를 없음(정말로 상대적인 Position만을 제공함, Bias Map을 이용해)
  • ViViT, ViT, TimeSformer에서는 Learnable Positional Embedding을 이용하지만, 각 Patch가 Overlapping되는 경우 어디에서 왔는지 반영하지 않아 모델에게 이런 방식은 어려움
  • 대신에 Fixed sine/Cosine Embedding을 이용하기로 함
    - 중요한 것은 저자들은 Positional Embedding을 적용할 때 각 Tube의 Stride, Kernel Shape, Offset을 고려
    - 이 방식은 Positional Embedding이 해당 Tube의 Spatio-Tmeporal Location을 갖도록 보장함
  • (T는 Constant Hyperparameter), (j는 0 ~ d//6(d는 Embedding Dim))
  • (t, x, y는 0 ~ T, H, W), zi ∈ R(T×H×W×D):
  • 이것들은 Spatio-Temporal Position Embedding을 토큰 Zi의 Feature Dimension에 추가
  • Transformer에서 처럼 각 Channel에 대해 다른 Wavelength가 추가됨
  • d//6은 6개의 요소가 존재하기 때문에 이용(각 x,y,t에 대한 Sin 및 Cosine값), 이는 Representation의 각 Channel에 대한 Position Value를 생성
  • 중요한 것은 zi[t,x,y]는 Tube의 Center를 나타내는데, 모든 Stride와 Offset을 고려하여 Tube의 Center를 나타냄(채널 치수는 표현안함)
  • Tokenization Step이후에 모든 Token을 연결하고, Standard Transforemr Model을 적용
  • 이런 간단한 구조를 통해 Model은 모든 Input간에 대부분의 Weight를 공유할 수 있고, 이는 좋음!

Sparse Tube Construction

  • 저자들은 Visual Tube를 만드는 몇가지 Method를 탐구
    - Core Approach는 2개의 Tube로 구성됨
    - Image를 Token화 하는데 사용되는 1 x 16 x 16 x d, Video에 추가로 사용되는 8 x 8 x 8 x d Tube 2개로 구성됨
    - 이 두개의 Tube는 모두 16 x 16 x 16 Stride를 가지고있고, 강력한 성능을 제공, 몇가지 Variation을 탐구
  • Multi-Tube
    -  저자들의 Core-Apporach는 다양한 Size의 여러개의 Tube를 추가
    - 예를 들어 Temporally Long and Spatial Small Tube를 이용하여 긴 Action을 학습 16 x 4 x 4
    - 아니면 Spatial 정보에 집중하는 2 x 16 x 16 Tube를 이용
    - 많은 Variation이 있고 실험적으로 이를 탐구(Shape 및 Stride)

정확하지않음 추측

  • Space-to-Depth
    - 또 다른 Core Approach는 Depth to Space에서 영감을 받은 Space to Depth이다
    - 만약 Factor가 2일때 Tube의 Channel수를 2배로 줄이는데, 그러면 튜브의 모양이 T x H x W x d/2이 됨
    - 그 뒤에 두개의 Token을 Channel Axis을 따라 병합함
  • Interpolated Kernels
    - 이 Setting을 위해 각 Tube에 대해 Unique Kernel을 갖는 대신에 모양이 8 x 8 x 8인 1개의 3D Kernel을 학습
    - 그런 다음에 Tri-Linear interpolation으로 Kernel을 Tube 구성에 따라 4 x 16 x 16, 32 x 4 x 4 등 다양한 Size로 Reshape을 진행
    - 8 x 8 x 8의 Single Kernel을 이용해서 다양한 Size의 Kernel을 생성 가능 
    - 몇가지 장점이 존재하는데,
      1) Video Stream에서만 사용되는 Learnable Parameter를 줄일 수 있음
      2) Kernel을 좀더 Flexible하게 이용이 가능함
    - 예를 들면 더 긴 Video를 처리하기 위해 길게 만들거나(Temporal 축으로 길게),
    - (작은 Object를 찾기 위해 Spatial을 크게 만들수도 있음 ??)
  • TubeViT의 접근법은 위에서 언급한 Multi-Tube와 Space-To-Depth의 조합으로 구성되고, Setting은 Supplemental 에서 제공, Interpolated Kernel을 Ablation에서 실험진행

Image and Video Joint Training

  • 위에서 설명한 것과 같이, 저자들의 접근 방식은 Image, Video 두 Input모두 원활하게 adapt함
  • Image+Video Joint Input은 드물지만, 이 둘을 함께 사용하는 능력은 Training시에 중요하다(Many Dataset Valuable Annotations, ImageNet, Kinetics)
  • Jointly Training은 저자들의 방식이 매우 쉬움
  • Image는 2D Kernel에 의해 Token이 되고, Video는 2D Patch(Large Temporal Stride), Sparse Tube에 의해 Token이됨 
  • 그 뒤에 Standard ViT에 전달되고, 두 경우 모두 Position Embedding이 제공됨
  • 이 Position Embedding Apporah는 Joint-Training이 효과적이기 위해 필요
  • 이를 Section4의 Joint Training에서 입증

Image-To-Video Scaling Up of Models

  • 또한 Model은 더 효율적으로 Scaling Up하는 방법을 제안함
  • Training Large ViT Model은 연산량이 너무 비쌈, 특히 Video의 경우에는 더 문제임
  • 저자들의 Model은 거의 모든 구성요소가 Image와 Video 모두에서 공유되기 때문에, 저자들은 Heavy Fine Tuning없이 큰 Model을 활용하는 방법을 탐구
  • 첫번째
    - 저자들은 Jointly Image and Video에 대해 더 작은 Model을 공동으로 Training을 진행

    - 이것은 Tube에 대한 Weight Set을 제공
    - 그런 다음 Large-Pre-Trained Image ViT를 가져오고, Tube를 더 추가함( 그림에서 보면 2D Patch LargeModel, Small Model에서 학습시킨 Tube Patch들을 Large Model에 적응시킴)

    - 이런 Tube들은 Small Model과 같은 Kernel Weight를 사용하여 추가적인 Training을 피할 수 있음

    - 일반적으로 큰 ViT는 더 큰 Embedding Dimension을 이용하므로, 다시 Space-To-Depth Transform을 사용하여 새로운 Weight없이 적절한 Channel을 가진 Token을 생성
  • 두번째
    - Network에서 특정 Point를 Pick하고, 그 이전 Layer를 모두 Freeze시킴
    - 예를 들자면 ViT-H의 32개의 Layer중에 26번째를 Point로 잡으면 아래와 같이 Network에 Gate Connection을추가
    - s는 Network가 ViT Model의 Frozen Layer이고(s = 26), z0은 Tube의 Raw Input Token
    - 알파는 Learned Gating Parameter로, 0으로 초기화

    - 학습 초기에는 이 Gate는 Representation에 영향을 미치지 않으므로, ViT는 변경이 되지 않지만, 해당 Point에서는 Raw Tube를 통합하는 방법을 배울수 있고, Later Weight를 Refine가능함 

Experiment

  • Kinetics 400, Kinetics 600, Kinetics 700,and SomethingSomething V2
  • main results are trained jointly on ImageNet-1k (of 1.2M images) and the video data
  • 90M Base (B), 311M Large (L). A 635M Huge (H)
  • ‘created’ with Image-to-Video scaling.

Main Result

  • 4개의 Tube Configuration을 이용, Input 32x224x224
    - (8x8x8, stride=(16,32,32))
    - (16x4x4, stride=(6,32,32), offset=(4,8,8))
    - (4x12x12, stride=(16,32,32), offset=(0,16,16))
    - (1x16x16, stride=(32,16,16)) 
  • 총 559개의 Token만이 생기고, 많은 Tube Configuration을 Test, Space-to-Depth도 이용, Create는 Image-To-Video Scaling Up기법을 이용한 경우, 연산량을 아끼고 성능을 개선함 

  • K400, K600, K700, SSv2에서 모두 SOTA에 달성
  • 의미있는것은 Large Pretraining Data를 사용한 Model보다 좋은 결과를 얻음(CoCa 1.8B, JFT, MTV-H)
  • SSv2는 Dynamic Activities이지만 저자들의 접근법이 잘 맞아 SOTA에 달성

  • Joint Image+Video Training
    - Kinetics는 Spatial Information이 중요한 데이터셋

    - K-600에서 진행한 결과 ImageNet + Kinetics Jointly가 가장 좋은성능이 나옴
  • 저자들은 또한 TimeSformer Method Dense Patch, inflated 3D Kernel(ViViT)에서 이용된것을 Test
    - 두 경우 모두 제안된 접근된 제안방식이 모두 효과적
  • 또한 저자들은 Pretraining시에 Small Model을 이용하여 연산량이 적은 것이다.
  • Sainty Check로 ImageNet에서 성능을 확인했는데, 저자들의 ViT-B 모델이 좋은 성능을보임(일반적으로 Pretraining한 결과보다, 물론 튜닝도 안하고, Data Augmentation, Learning Schedules 조정안함)

Scaling Video Training With Sparse Video Tube

  • Table6에서 저자들은 증명했는데, Small TubeViT Model을 이용해서 Large-Scale Image Only Pretrain 모델을 어떻게 적용할 수 있는지 보여준다
  • 저자들은 이미 Pre-Train된 ViT-H를 활용하는것으로 시작
  • TubeViT-B에서 Learned Tube를 가져와 ViT-H Image Tokenizer와 함께 사용해 이전과 동일한 Video Token Set을 생성
  • 그런 다음에 이것들은 ViT-H의 Input으로 사용되고, Latter Part만 Video Data에 대해 Fine Tuning을 진행
  • 이것은 Model을 Full Finetuining하는 것이 아니므로 계산량이 저렴하고, 거대한 ViT Model을 확장하고 활용할 수 있는 효과적인 방법
  • Gate또한 훌륭하다는것을 확인, Update가중치가 줄어들어 Training Time이 43% 감소 (튜브정보를 넣어줘서 Encoder를 통과하면서 바뀐데이터에 Tube정보를 직방으로 넣어줌),ViT is unchanged. However, it can learn to incorporate the raw tubes at this point and further refine the later weights.
  • Even pretraining of handful of layers can achieve performance approaching the full model training

Detrimental Effects of Too Many Tokens

  • 다음으로 Figure4와 같이 Model에 사용된 Token수의 효과를 연구
  • 이 결과가 저자들의 접근방식이 왜 잘 작동하는지에 대한 또 다른 핵심
  • Token의 수가 너무 많으면 성능이 떨어짐
  • 예를 들어 Self-Attention이 더 긴 Sequence를 학습하기 위해 고군분투하거나, 더 긴 Sequence를 학습하기에 충분한 데이터가 없거나, Model이 더 긴 Sequence에 Overfitting할수도 있기 때문이다.
  • 이 결과는 현재 Dataset의 경우 Sparse Sampling이 Video를 처리하는데 효과적이고 효율적인 방법임을 나타냄
  • 또한, 길고 조밀하게 샘플링된 시퀀스를 사용하는 기존의 것이 이것에 의해 영향을 받을 수 있으며, 아마도 인수 분해된 주의 모듈이 필요한 또 다른 이유일 것이다.??

Main Ablations

  • (a) Position Embedding의 효과를 연구
    - Fixed Cosine Embedding이 훨씬 우수
    - 직관적으로보면 Token을 Sparsely Sampling, Overlapping Token을 이용하므로 해당 방법이 가장 Token의 위치를 잘 Capture
  • (b) Tube의 개수에 따른 성능변화를 측정
    - 이전의 Multi View와 일치하는 이 발견은 다양한 Tube를 가지는것이 Video Understanding에서 우수
  • (c) Depth-to-Space Version을 연구
    - 다시
  • (d) Model이 Training된 것보다 더 많은 Patch를 이용하여 Eval을 진행
    - 이를 위해 Kernel의 Stride를 줄임
    - 처음에는 결과가 개선되지만, 2배 증가한 후에는 Eval Data가 Training Data와 너무 달라 성능이 저하됨
  • (e) 저자들은 Interpolated된 Single kernel의 Ablity를 연구
    - 각 Tube마다 하나씩 N개의 3D Convolution을 갖는 대신에 1개의 8x8x8D Kernel을 이용하고, Interpolation을 진행
    - 놀랍게도 이것이 Network에서 Learnable Parameter를 줄이고 잘 동작한다는 것을 파악
  • (f) Multi-Crop Evaluation을 측정
    - 4 × 3 performs nearly the same as the 10 × 10 setting 거의 비슷
    - 우리는 Single Crop이라도 강력한 성능을 제공한다는 것을 발견, Standard 4×3은 10×10 Setting과 거의 동일한 성능을 발휘하여 Sparse Samplie이 상당히 Suitable하고 추가 정보가 유익하지 않음

  • (c) Depth-to-Space Version을 연구
    - 다시
  • (d) Model이 Training된 것보다 더 많은 Patch를 이용하여 Eval을 진행
    - 이를 위해 Kernel의 Stride를 줄임
    - 처음에는 결과가 개선되지만, 2배 증가한 후에는 Eval Data가 Training Data와 너무 달라 성능이 저하됨

Conclusion

  • 저자들은 Video Recognition을 위한 Sparse Video Tube를 제안
  • Sparse Video Tube를 사용하면 ViT Encoder를 효율적인 Video Model로 전환 가능
  • 접근 방식은 간단하고, Image와 Video Data와의 원활한 Joint Training을 가능하게 하며 여러 Dataset에 거쳐 성능은 개선
  • 또한 제안된 방법으로 Video Model의 좋은 Scailing기법을 제안
  • Joint Training, Token Reduced, Shared Image Video Weight에 대한 여러 실험으로 SOTA달성

Implementation Detail

  • Charades같이 Long Video에만 128 Frame을 이용
  • Large ViT Model학습시에 불안정한것을 확인
    - Weight Decay Value, LR를 줄임, 아니면 Accuracy가 0으로 가거나, Loss가 Flat됨
  • Charades나 SSv2에서는 (작은데이터)에서는 DataAugmentation이나 Dropout, Label Smoothing을 적용
  • 모든 Data에는 RandAugment적용

Full Model Setting

Joint ImageNet and Kinetics Training

  • ImageNet, Kinetics을 공동으로 학습시에 Class 예측을 출력하기 위해 별도의 FC-Layer를 이용
  • ImageNet은 1000, Kinetics는 600개의 Class를 이용
  • 그런 다음에 관련 Head에 대한 Loss를 계산하고 Backpropagation을 진행
  • Charades and SSv2는 Kinetics-600+ImageNet pretrained model and finetune

Additional Experiments on Charades

  • Charades Video는 평균 30초, 또한 Multi Label이므로 다른 설정을 이용함
  • 첫째, Multi Tube방식이 이전 작업만큼 성능이 안좋음
    - Charades는 Object관련 동작이 많고, Temporal Information이 매우 많음 -> 더긴 Video를 포함하기 위해 데이터에 더 적합하도록 Model을 수정
    - Interpolation으로 Tube모양을 늘림• (1 × 16 × 16) • (16 × 16 × 16) • (32 × 8 × 8) • (4 × 32 × 32)
  • 두가지 중요한 요소를 주목

Ablations on Tube Shapes

 

 

+ Recent posts