본문 바로가기
AI HW/Transformer

Deit 논문에 대하여...

by jyun13 2024. 1. 15.

https://linda-suuup.tistory.com/101

 

[논문리뷰 - 이미지] DeiT Training data-efficient image transformers & distillation through attention

목차 0. Abstract 고성능 비전 트렌스포머를 이미지 이해 작업 처리하는데 사용함 86M 파라미터를 이용하여 ImageNet에서 top-1 accuracy를 83.1% 달성 1. Introduction - Convolution 신경망 ( Imagenet) - Natural Language P

linda-suuup.tistory.com

 

https://hyoseok-personality.tistory.com/entry/Paper-Review-DeiT-Training-data-efficient-image-transformers-distillation-through-attention

 

[Paper Review] DeiT : Training data-efficient image transformers & distillation through attention

2020년 Vision Transformer가 등장하면서 Vision task에서도 Transformer가 큰 격변을 가져오기 시작했습니다. 하지만, 이러한 Vision task에서의 Transformer들은 1. 거대 데이터셋으로 학습 필요 2. 매우 무거움 등

hyoseok-personality.tistory.com

 

https://housekdk.gitbook.io/ml/ml/computer-vision-transformer-based/deit-training-data-efficient-image-transformers-and-distillation-through-attention

 

DeiT (Training Data-efficient Image Transformers & Distillation through Attention) - noviceforever

Stochastic depth, Mixup, Cutmix, Repeated Augmentation, Random Augmentation 등 적용

housekdk.gitbook.io

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

efficient transformer의 시초

 

최근 NLP 뿐만 아니라 오디오, 컴퓨터 비전 등 다양한 분야에서 어텐션 기반의 뉴럴 네트워크가 주목을 받고 있음

비전 분야에서는 NLP에서 혁신적인 결과를 가져왔던 transformer 구조를 그대로 가져와 이미지를 patch 단위로 인풋으로 넣어 처리하는 비전 transformer로 이어졌음

 

그러나 이런 high performance 트랜스포머 모델들은 상당히 많은 양의 데이터로 학습되어야 하고 상당히 많은 양의 파라미터 수를 가지고 있어 무겁다. -> 큰 infrastructure과 하드 컴퓨팅 리소스 필요

=> 거대 데이터 셋으로 pretrain된 네트워크를 fine tuning해서 사용하는 방식이 만연함

 

적은 수의 파라미터와 간단한 컴퓨팅 자원, 그리고 효율적인 수의 데이터만으로 기존의 무거운 high performance transformer에 가까운 혹은 그 이상의 성능을 낼 수 있는 것을 목표로 삼았음

 

1. 적은 수의 파라미터와 간단한 컴퓨팅 자원을 위해서 knowledge distillation을 함.

(하지만 기존의 증류 방식 대신에 transformer구조에 적합한 token-based distillation방식을 가져옴)

-> 현실적인 모델의 사용과 기존의 트랜스포머 간의 차이를 줄일 수 있는 효과적인 트랜스포머 제기

 

2. 효율적인 수의 데이터를 위해 저자들은 strong data augmentation과 improved training기법들(optimizer regularization 등)을 통해 VIT가 data efficient하게 학습되기 위해서 어떻게 configuration되어야 하는 지를 제시하고 있음. 

 

- Vision Transformer(VIT)는 딥러닝 모델 중 하나
- 주로 컴퓨터 비전 작업을 수행하는 데 사용되는 혁신적인 아키텍처입니다.
- VIT는 이미지 데이터를 처리하기 위해 기존의 컨볼루션 신경망(CNN) 대신 Transformer 아키텍처를 적용한 것이 특징입니다.
- Transformer는 주로 자연어 처리 분야에서 성공적으로 사용되었던 모델로,
VIT는 이를 비전 작업에 적용한 최초의 시도 중 하나입니다.

- 여러 CNN 기반 모델들이 이미지에서 특징을 추출하고 분류하는 데에 사용되었지만, VIT는 이미지를 격자 형태의 패치로 나누고, 이를 펼쳐서 Transformer의 입력으로 사용합니다.

- 각 패치는 flatten되어 1차원 벡터로 변환된 후 Transformer 모델에 입력으로 제공됩니다.

1. Patch Embeddings (패치 임베딩):
- 이미지를 격자로 나눈 각 패치는 선형 변환에 의해 임베딩됩니다. 이러한 임베딩된 패치는 Transformer의 입력으로 사용됩니다.

2. Transformer Encoder (트랜스포머 인코더):
- 임베딩된 패치는 여러 개의 Transformer 인코더 레이어를 통과합니다. 이 인코더 레이어는 자기 어텐션 메커니즘(self-attention mechanism)과 전방향(feedforward) 신경망으로 구성되어 있습니다.

3. Class Token (클래스 토큰):
- 이미지에 대한 분류를 수행하기 위해 하나의 토큰이 추가됩니다. 이 토큰은 모든 위치의 정보를 종합하여 최종 출력에 반영됩니다.

4. Positional Embeddings (위치 임베딩):
- Transformer는 입력 순서에 대한 정보를 처리하지 못하기 때문에 위치 정보를 주입하기 위해 위치 임베딩이 사용됩니다.

5. Multi-Head Self-Attention (다중 헤드 셀프 어텐션):
- 인코더 레이어에서는 다중 헤드 셀프 어텐션 메커니즘이 사용되어 각 위치의 패치가 전체 이미지에 대한 정보를 참조할 수 있게 합니다.

6. Feedforward Networks (전방향 신경망):
- 각 인코더 레이어는 다층 퍼셉트론(MLP)으로 구성된 전방향 신경망을 포함하고 있습니다.

VIT는 이미지를 패치로 나누고 Transformer를 사용하여 각 패치 간의 관계를 학습함으로써 이미지를 처리합니다. 이로써 VIT는 이미지 분류, 객체 검출, 세그멘테이션 등의 비전 작업에서 경쟁력 있는 성능을 보이며, 특히 대규모 데이터셋에서 효과적으로 학습될 수 있는 데이터 효율적인 특징을 갖고 있습니다.

 

자기 어텐션 메커니즘(Self-Attention Mechanism): 자기 어텐션은 입력 시퀀스의 각 요소가 서로 다른 가중치로 상호작용하는 메커니즘입니다. 트랜스포머에서 사용되며, 각 요소의 중요도를 계산하여 전역적인 의미를 파악합니다. 주로 Query, Key, Value라는 세 가지 개념을 사용하며, 이를 통해 각 요소 간의 관계를 계산합니다.

전방향 신경망(Feedforward Neural Network): 전방향 신경망은 단순한 구조로, 입력에서 출력으로 정보를 전달합니다. 주로 선형 변환과 활성화 함수로 이루어져 있으며, 특정 위치에서 나타나는 패턴이나 특징을 감지하고 추상화하는 데 사용됩니다. 트랜스포머에서는 각 위치의 정보를 더 풍부하게 표현하기 위해 사용됩니다.

 

    2-1. knowledge Distillation

    기존의 무거운 모델을 사용하는 것보다 이를 통해서 동일한 혹은 그 이상의 성능을 내는 비슷한 가벼운 모델을 구성

    적은 수의 파라미터와 간단한 컴퓨팅 자원으로 목표를 달성하고자 함.

     

    1. SOTA를 달성하고 있는 무거운 transformer 모델들을 실질적으로 사용하기 위한 트랜스포커에 적합한 novel distillation strategy를 제기함

    2. 기존의 knowledge Distillation방식(soft label)과는 다른 의견인 hard label의 사용을 주장

     

    knowledge Distillation?

    1. model compression

    - 일반적으로 ML/DL 모델들은 performance와 computation cost/time은 trade-off 관계

    - 다양한 모델 압축 방법들이 있음

    ex. pruning, weight Factorization, Weight Sharing, Quantization, knowledge distillation

    - 이들의 목표는 유사함: 좋은 성능을 내는 큰 모델을 학습시키고 (큰 비용, 비싼 장비) 이러한 큰 모델을 작게 축소해서 작은 모형으로 제품을 만들거나 서비스를 제공함으로써

    -> 학습 단계에서의 시간적, 비용적 문제는 있겠지만 추론에서는 시간과 비용이 절약된 모델을 얻어 사용하고자 하는 것.

    - 다양한 접근 방법들 중 최근에 부상되는 것은 Quantization

     

    2. 그래서 knowledge Distillation가 뭔데?

    - teacher-student 구조 : 작고 단순한 student model로 크고 복잡한 teacher model 혹은 그 이상의 성능을 내도록 하는 것

    - 좋은 퍼포먼스를 위해 학습된 복잡하고 큰 모델을 지식을 전달해줄 수 있는  teacher로 정의

    - 이러한 teacher model의 지식을 전달받은 더 작고 간단한 student model을 정의함으로써 teacher model이 가지는 복잡한 지식들 중에 현재의 퍼포먼스를 달성하기 위한 본질적인 지식만을 남기고 나머지는 분리시켜서 날리는 방식

     

    3. 그래서 knowledge Distillation는 어떻게 하는데?

    1. train data는 teacher model을 통해 학습된다. = data는 teacher model에 feeding 됨

    2. train data를 teacher model과 student model에 모두 feeding 함
    = pretrained teacher model을 freeze시키고 data를 태워 prediction한 결과(soft label)와 지식이 증류되기를 원하는 trainable student model의 prediction 결과(soft label)가 비슷하도록 loss를 measure해 학습시키고, 동시에 student model 또한 기존대로 Ground Truth에 대해서 학습을 시킴

     

    소프트맥스 함수란?

    소프트맥스 함수는 딥러닝에서 가장 일반적으로 사용되는 활성화 함수 중 하나입니다. 소프트맥스 함수는 입력된 벡터의 각 요소를 0과 1 사이의 확률값으로 변환해주는 함수입니다. 이 함수는 분류 문제에서 주로 사용되며, 다중 클래스 분류를 수행할 때 각 클래스에 대한 확률값을 출력하기 위해 사용됩니다.

     

     

    2-2. Learned with Eifficient Data

    VIT의 경우 잘 학습이 되기 위해서는 거대 외부 데이터셋으로 학습이 되어야 함.

    이걸 실제로 사용하기 위해서는 이 VIT를 Imagenet등으로 finetuning시켜서 사용하게 된다.

     

    -> 무거운 VIT를 거대 데이터 셋으로 학습시키기 위해서는 많은 학습시간과 computing resource가 소요된다. 

    실제로 Finetuning을 하더라도 현실적으로 힘듦

     

    그렇기에 실질적인 사용에 있어서 VIT에는 Eifficiency가 요구됨

    => Eifficient VIT의 시초로 large training dataset없이 high performance 달성을 위해 오로지 imagenet만으로 학습해 cost가 적지만 비슷한 성능을 내는 efficient transformer를 제시함.

    Fine Tuning 이란?
    - 기존에 학습되어져 있는 모델을 기반으로 아키텍쳐를 새로운 목적(나의 이미지 데이터에 맞게)변형하고 이미 학습된 모델 Weights로 부터 학습을 업데이트하는 방법
    - 모델의 파라미터를 미세하게 조정하는 행위
    (특히 딥러닝에서는 이미 존재하는 모델에 추가 데이터를 투입하여 파라미터를 업데이트하는 것을 말한다.)

    출처: https://eehoeskrap.tistory.com/186 [Enough is not enough:티스토리]

     

    Transformer
    - NLP task에서 계속해서 SoTA 성능을 달성하고 있음.
    - 높은 computational efficiency와 scalability를 가짐.
    - “With the models and datasets growing, there is still no sign of saturating performance.”

    NLP (Natural Language Processing):
    NLP는 기계가 인간의 언어를 이해하고 처리하는 분야입니다. 컴퓨터가 텍스트를 이해하고, 생성하며, 해석하는 기술을 포함합니다. NLP의 목표는 자연어와 관련된 다양한 작업을 수행하는 컴퓨터 시스템을 개발하는 것이며, 이는 텍스트 분류, 기계 번역, 감정 분석, 질의 응답 시스템 등을 포함합니다.

    SoTA (State-of-the-Art):
    SoTA는 특정 분야에서 현재 사용 가능한 기술 또는 모델 중에서 가장 뛰어난 것을 나타냅니다. SoTA 모델은 해당 분야에서 최고 수준의 성능을 보이는 최신 기술이나 모델을 의미합니다. NLP에서의 SoTA는 주로 언어 모델 및 텍스트 처리 작업에서 가장 높은 정확도나 성능을 달성한 모델을 나타냅니다.

    Transformer:
    Transformer는 딥러닝에서 NLP 작업에 특히 효과적인 모델 구조로 알려져 있습니다. Attention 메커니즘을 기반으로 하며, 자연어 처리 작업에서의 성능을 향상시켰습니다. Transformer는 주로 "Attention is All You Need" 논문에서 처음 소개되었으며, 특히 트랜스포머 아키텍처를 사용한 모델들이 NLP 분야에서 SoTA를 차지하는 경향이 있습니다.

    Computational Efficiency와 Scalability:
    Transformer는 계산 효율성과 확장성 면에서 우수한 성능을 보입니다. 이 모델은 병렬 계산이 가능하며, 효율적인 학습을 위해 GPU 및 TPU와 같은 하드웨어 가속기를 이용할 수 있습니다. 또한, Transformer의 self-attention 메커니즘은 문장 길이에 덜 민감하므로, 긴 문장에 대한 처리에서도 강건한 성능을 보이며 확장이 가능합니다.

    No Sign of Saturating Performance:
    "성능 포화의 조짐이 없다"는 말은 Transformer 기반의 모델이나 기술이 계속해서 발전하고 있으며, 모델과 데이터셋이 커짐에도 불구하고 성능이 여전히 향상되고 있다는 것을 의미합니다. 새로운 아이디어, 모델 아키텍처, 학습 전략 등이 지속적으로 제안되고 적용되면서, NLP 분야에서의 성능 향상이 계속되고 있다는 것을 나타냅니다.

     

    3. Distillation Method - cost efficiency

    1. hard distillation vs soft distillation

    2. classical distillation vs distillation token

     

    무거운 Transformer 모델들을 실질적으로 사용하기 위한 트랜스포머에 적합한 novel distillation strategy 제시

    (cost efficiency 관점)

     

    1. hard distillation vs soft distillation

    이 두 방법 사이의 주요 차이점은 타겟(ground truth) 정보를 어떻게 사용하는지에 있습니다.

    1. Hard Distillation:
       - 학습 신호의 형태: Hard distillation에서는 주로 학생 모델이 선생 모델의 라벨(타겟 클래스)을 재현하도록 학습됩니다. 이는 선생 모델의 출력이 주어진 데이터의 실제 라벨과 가장 일치하도록 하는 방식입니다.
       - 활용: 라벨 자체를 사용하여 학생 모델을 훈련시키므로, 주로 분류 작업에서 활용됩니다. 작은 모델이 큰 모델의 결정 경계를 학습하도록 도와줍니다.

    2. Soft Distillation:
       - 학습 신호의 형태: Soft distillation에서는 선생 모델의 소프트맥스 출력(확률 분포)를 사용하여 학생 모델을 훈련합니다. 즉, 학생 모델은 선생 모델의 예측 분포를 재현하도록 학습됩니다.
       - 활용: 대표적으로 전이 학습에 사용됩니다. 선생 모델의 불확실성 정보를 포함한 부드러운 확률 분포를 학생 모델에 전달하므로, 학생 모델은 불확실성을 더 잘 고려하면서 훈련됩니다.

    비교 요약:
    - Hard Distillation: 라벨을 사용하고 더 간단한 모델을 만들기 위한 방법. 주로 분류 작업에서 사용.
    - Soft Distillation: 선생 모델의 소프트맥스 출력을 사용하고 불확실성을 고려한 모델을 만들기 위한 방법. 주로 전이 학습에서 사용.

     

    사실 지식 증류에서 어떤 라벨을 사용할 것인지는 이전부터 논의되어 온 주제이다.

    - 소프트 라벨의 사용 주장 : label smoothing의 효과를 제공하기에 이게 좋다

    - 하드 라벨의 사용 주장 : 소프트 라벨은 data augmentation에 따라서 label과 image 사이의 misalignment 를 발생시킬 수 있기에 하드 라벨을 사용하는 것이 안전하다고 주장 

    Soft Label: Soft label은 라벨을 확률 분포로 나타내는 것을 의미합니다. 예를 들어, 각 클래스에 대한 확률 값을 가진 벡터가 soft label입니다.

    Misalignment: 데이터 증강을 통해 이미지를 변형하면, 해당 이미지의 라벨은 변형 전의 라벨과 일치하지 않을 수 있습니다. 예를 들어, 어떤 이미지에 대한 라벨이 '고양이'일 때, 이미지를 회전시켰다면 해당 라벨은 더이상 완전히 '고양이'를 나타내지 않을 수 있습니다.

    Soft label을 사용할 때, 이러한 데이터 증강에 따른 라벨과 이미지 사이의 불일치(misalignment)가 발생할 수 있습니다. 이는 모델이 학습할 때, 정확한 라벨과 이미지 간의 일치를 어렵게 만들 수 있습니다.
    따라서, 어떤 상황에서는 이러한 불일치를 피하기 위해 hard label을 사용하는 것이 안전하다고 주장하는 것입니다.

     

    EX. teacher model 학습 과정에서 crop augmentation을 사용했는데, 특정 이미지(cat label이 되어있고 lanscape에 cat 이미지의 구석에 존재하는) 만약 soft label을 사용한다면 crop된 이미지에서 만약 cat이 속해있지 않게 augmentation이 된다면 implicit하게 label을 바꾸게 될 것. 즉, 해당 이미지의 label은 cat인데도 teacher model 학습 과정에서 이러한 specific augmentation때문에 soft label의 기준에서는 다른 label들의 값이 높아져 오히려 왜곡이 된다. 

     

    이 때 hard label => 이렇데 specific augmentation에 depending되어 implicit하게 label을 바꾸는 문제가 해소

     

    논문에서는  data efficient transformer을 위해 strong data augmentation을 적용 

    -> hard label을 선택함으로써 이러한 문제를 해결

    + label smoothing을 해줌으로서 soft label과 같은 효과를 가져올 수 있음

     

    Knowledge Distillation의 목적

    : 선생 모델(Teacher)과 학생 모델(Student) 간의 정보 전달을 위한 손실 함수를 정의

    1. KL Divergence between Teacher and Student Softmax Distributions
       - 목적: Teacher의 softmax 분포와 Student의 softmax 분포 간의 KL divergence를 최소화합니다. 이는 두 모델 간의 예측 분포를 유사하게 만들어, 학생 모델이 선생 모델의 지식을 효과적으로 습득할 수 있도록 하는 것입니다.


    2. Student Loss:
       - 목적: 학생 모델이 진짜 라벨(ground truth)에 대해 정확한 예측을 하도록 유도합니다.

    (Ground truth와 Student 모델의 하드 예측 사이의 교차 엔트로피를 최소화하여 정확한 예측을 유도)
       - 수식: Cross Entropy Loss를 사용하여 학생의 예측 분포와 실제 라벨 간의 손실을 계산합니다. 이는 일반적인 분류 작업에서 사용되는 손실 함수로, 학생 모델이 정확한 예측을 하도록 합니다.

    3. Distillation Loss:
       - 목적: 선생 모델의 지식을 학생 모델로 전달합니다.
       - 수식: Cross Entropy Loss를 사용하여 학생 모델의 소프트 예측 분포와 선생 모델의 소프트 타겟(soft targets) 간의 손실을 계산합니다. 소프트 타겟은 선생 모델의 예측 분포를 의미하며, 이를 활용하여 학생 모델을 부드럽게 학습시킵니다.

    따라서, 전체 목적 함수(Objective)는 다음과 같이 표현됩니다:

    {Objective} = {Student Loss} + {Distillation Loss} + {KL Divergence} 

    이를 최적화하면, 학생 모델은 선생 모델의 지식을 적절히 습득하고, 일반적인 분류 손실을 줄이면서 성능을 향상시킬 것

     

    2. classical distillation vs distillation token

    transformer에 적합한 것은 distillation token

    기본적인 형태는 ViT와 동일하며, KD를 위한 distillation token을 추출

     

    기존의 VIT 구조에 distillation token을 하나 추가함으로써 distillation loss에 해당하는 부분을 담당

    = 기존의 class token과 patch Embedding들 뿐 아니라 distillation embedding을 Softmax function을 취한 값과 pretrained teacher model의 prediction결과를 loss로 measure해 teacher model의 Knowledge을 학습하는 knowledge distillation을 하는 것

     

    + 물론 당연하게 class head에서는 그대로 class embedding으로 prediction한 결과와 true label간의 loss를 measure 함

     

    Vision Transformer(VIT) 구조에 대한 지식 증류(Knowledge Distillation)의 변형

    1. VIT 구조에 Distillation Token 추가:
    - VIT 구조: Vision Transformer는 이미지를 작은 패치로 나누고, 각 패치에 대한 임베딩을 획득한 후, Transformer 아키텍처를 사용하여 이미지를 처리하는 구조입니다.
    기존 VIT는 클래스 헤드에 대한 예측을 위해 패치 임베딩 및 클래스 토큰(class token)을 사용합니다.

    - Distillation Token 추가: 여기에 새로운 요소로 distillation token이 추가되었습니다.
    이 token은 knowledge distillation에서의 역할을 담당하며, 이 토큰에 대한 임베딩은 학습 중에 Softmax 함수를 적용한 teacher model의 예측 분포와 비슷하게 학습됩니다.

    2. Knowledge Distillation을 위한 Loss 계산:
    - Distillation Embedding과 Softmax 값: Distillation token의 임베딩은 Softmax 함수를 취한 teacher model의 예측 분포와 유사하도록 학습됩니다.
    이는 teacher model의 지식을 학습하는 과정으로, 작은 모델이 큰 모델의 결정을 잘 따라갈 수 있도록 돕습니다.

    - Pretrained Teacher Model의 Prediction 결과와 Loss: 또한, 기존의 VIT에서처럼 class token과 패치 임베딩들을 사용하여 얻은 예측 결과실제 라벨 간의 손실을 계산합니다. 이 부분은 기존의 분류 작업에서 사용되는 손실 함수입니다.

    3. 결과적인 학습 과정:
    - VIT의 학습은 새로운 distillation token을 고려한 두 가지 손실 함수로 이루어집니다.
    1. 하나는 기존의 분류 손실로써, 클래스 예측과 실제 라벨 간의 차이를 줄이기 위한 것이며,
    2. 다른 하나는 distillation token을 사용한 지식 증류 손실로써, 작은 모델이 teacher model의 예측과 유사한 확률 분포를 가질 수 있도록 하는 것입니다.

    이러한 구조를 사용함으로써, VIT가 작은 크기로도 높은 성능을 달성할 수 있도록 지식 증류를 활용하고 있습니다. 이는 큰 모델로부터 얻은 지식을 작은 모델에 효과적으로 전달하는 방법 중 하나입니다.

     

    3-1. Conv Teacher

    VIT가 거대 데이터 셋으로 학습되어야 하는 이유: inductive bias가 적어서

     

    inductive bias가 teacher model로부터 상속을 받는 것이 성능에 유의미한 영향을 미친다.

    그 결과 CNN을 사용했을 때 transformer를 teacher로 썼을 때보다 더 좋은 성능 향상을 얻을 수 있다. 

    이를 저자들은 CNN을 teacher model로 사용했을 때 inductive bias를 상속받아 더 많은 정보를 습득할 수 있기 때문이라고 해석함 -> student를 transformer로 사용하고 더 많은 inductive bias을 전달하기 위해서는 Convnet을 teacher model로 사용하는 것을 적극 권장함

    "ConvNet" 또는 "Convolutional Neural Network (CNN)"은 주로 이미지 처리에 사용되는 딥러닝 아키텍처 중 하나 ConvNet은 주로 합성곱 연산을 사용하여 입력 데이터에서 특징을 추출하고, 특징 맵의 계층적 구조를 통해 복잡한 패턴을 학습하는 데 특화되어 있음

    1. Convolutional Layer (합성곱층): 이 층은 입력 데이터에 필터(커널)를 적용하여 특징 맵을 생성합니다. 각 필터는 이미지에서 특정한 특징을 감지하도록 학습됩니다. 여러 개의 필터가 적용되어 여러 개의 특징 맵이 생성됩니다.
    2. Activation Function (활성화 함수): 일반적으로 ReLU(Rectified Linear Unit)와 같은 활성화 함수가 사용됩니다. 이 함수는 비선형성을 도입하여 ConvNet이 복잡한 패턴을 학습할 수 있게 합니다.
    3. Pooling Layer (풀링층): 풀링은 특징 맵의 크기를 줄이고 계산량을 감소시키는 역할을 합니다. Max pooling과 Average pooling이 주로 사용됩니다.
    4. Fully Connected Layer (완전 연결층): ConvNet의 마지막 부분에는 완전 연결층이 있습니다. 이 층은 특징 맵을 평탄화하고, 이를 이용하여 최종 분류를 수행합니다.

     

    4. 결론

     

    결국 Data-efficient Transformer을 제안하는 것

    하지만 지금까지 언급된 내용 중 지식 증류에서의 conv teacher 사용을 제외하고는 data efficient에는 초점이 없었음

    그 이유는 사실 저자들은 Data efficient를 위해 특별한 아이디어 설계가 들어갔다기보다는 기존의 연구들의 방법과 효과를 분석하면서 ablation study를 통해 data efficient한 학습을 했도록 했기 때문

     

    DeiT는 결국 구조적으로는 VIT의 구조를 그대로 가져오고 추가적으로 지식 증류를 위해서 distilation token, head만 추가하는 방식

    Knowledge Distillation과 Data augmentation, Improved Training을 통해서 기존처럼 거대한 양의 데이터로 학습될 필요가 없고 상대적으로 가벼운 image transformer를 제시하고 앞으로 효율성 관점에서 transformer 모델들이 풀어나갈 부분들을 제시함.

     

    다시 정리하면,,,

     

    DeiT(Data-efficient Image Transformer)와 VIT(Vision Transformer)은 둘 다 이미지 분류 문제를 해결하는 데에 특화된 Transformer 기반의 모델입니다. 그러나 두 모델 간에는 몇 가지 차이점이 있습니다.

    1. 모델 구조와 목적:
       - DeiT: DeiT는 이미지 분류를 위한 모델로, 이미지 내의 객체들을 분류하는 데에 중점을 둡니다. 또한 데이터 효율성을 강조하면서 작은 규모의 데이터셋에서도 효과적으로 학습이 가능하도록 설계되었습니다.
       - VIT: VIT는 이미지 내의 위치 정보를 사용하여 이미지를 토큰 단위로 나누고, 이를 Transformer 모델에 입력으로 제공하여 이미지를 분류합니다. 초기에는 주로 대규모 이미지 분류 작업을 위해 제안되었으나, 이후 다양한 비전 태스크에 적용되었습니다.

    2. 토큰화 및 위치 정보:
       - DeiT: DeiT는 이미지를 동일한 크기의 패치로 나누고, 각 패치를 토큰으로 변환하여 모델에 입력으로 제공합니다. 그러나 위치 정보가 토큰에 명시적으로 포함되지 않습니다.
       - VIT: VIT는 이미지를 격자 모양의 패치로 분할하고, 각 패치를 토큰으로 변환하여 입력으로 사용합니다. 또한, 위치 임베딩을 통해 토큰에 위치 정보를 부여합니다.

    3. 데이터 효율성:
       - DeiT: DeiT는 데이터 효율성을 강조하면서도 성능을 높이기 위한 모델입니다. 작은 데이터셋에서도 효과적으로 학습할 수 있도록 구성되었습니다.
       - VIT: VIT는 초기에는 대규모 데이터셋에서 성능을 향상시키는 데에 초점을 맞추었습니다. 그러나 VIT의 변형들은 작은 데이터셋에서도 효과적으로 동작하도록 개선되었습니다.

    4. 모델 크기와 성능:
       - DeiT: DeiT는 비교적 작은 모델 크기로도 효과적인 성능을 보여줍니다.
       - VIT: 초기 VIT 모델은 대규모 모델로 구성되어 있으며, 대규모 데이터셋에서 높은 성능을 보이지만, 모델의 크기가 커서 작은 데이터셋에서는 성능이 하락할 수 있습니다.

    DeiT와 VIT는 비전 태스크에서 Transformer 아키텍처의 효과적인 활용을 보여주고 있으며, 각각의 특징에 따라 다양한 태스크에 적용되고 있습니다.