[CVPR 2023]SeiT: Storage-Efficient Vision Training with Tokens Using 1% of Pixel Storage

안녕하세요 이번에 소개할 논문은 2023년 네이버 AI에서 발표한 논문으로 지난 KCCV 학회에 참관했을때 포스터 섹션에서 본 논문입니다. 이 논문에서는 이미지넷과 같이 저장 공간이 많이 필요한 데이터셋을 비전 모델을 학습하는데 있어 필요한 저장 공간을 줄이면서도 높은 성능을 유지할 수 있는 새로운 접근 방식을 제안한 논문입니다. 그럼 바로 리뷰 시작하겠습니다.

1.Introduction

최근 비전 영역에서 많은 발전을 이루었지만 더 일반화되고 좋은 비전 모델을 개발하기 위해서는 수십억 규모의 데이터 포인트가 필요합니다. 그러나 품질이 좋으면서도 오류에 강한 일반적인 분산 데이터셋을 설계하는 것은 매우 cost가 많이들고 어려운 문제입니다. 이러한 문제는 비전 데이터셋에서 더욱 어려운 문제로 나타나고 있습니다. 예를 들어, GPT-2를 8M 문서로 학습하는 데는 40GB의 저장 공간만 필요하지만, 더 큰 GPT-3는 410B 토큰을 학습하기 위해 570GB의 저장 공간이 필요합니다. 반면, 이미지를 저장하는 데는 텍스트보다 훨씬 더 많은 저장 공간이 필요합니다. 예를 들어, 11M개의 이미지를 포함하는 ImageNet-21k 데이터셋은 1.4TB의 저장 공간이 필요하며, 이는 GPT-3의 저장 공간보다 2.5배 더 큽니다. 대규모 사전 학습을 위한 더 큰 규모의 데이터셋은 훨씬 더 큰 저장 공간을 필요로 하며, 예를 들어 5B 이미지에 대해 240TB의 저장 공간이 필요합니다. 결과적으로, 저장 공간은 비전 모델을 확장하는 데 있어 언어 모델보다 더 비중을 차지하고 있습니다.

왜 이미지는 텍스트보다 더 큰 저장 공간을 필요로 할까요? 이는 언어가 이산적(discrete)인 반면, 이미지는 연속적(continuous)이라는 본질적인 차이 때문입니다. 또한, 텍스트의 품질은 문서 길이와 독립적이지만, 이미지의 품질은 직접적으로 저장 크기에 영향을 미칩니다. 더 나은 품질의 이미지는 더 큰 저장 공간을 필요로 합니다. 손실 압축 방식인 JPEG를 사용하면 저장 크기를 줄일 수 있지만, 선행 연구에 따르면 “디지털 이미지의 대부분의 비트는 인지할 수 없는 세부 사항에 해당”한다고 합니다. 이러한 인지할 수 없는 세부 사항(예: 이미지의 세밀한 디테일이나 고주파 정보)은 원하는 비전 classifier에는 불필요할 수 있습니다. 그러나 딥 비전 모델은 인지할 수 없는 고주파나 국부적인 영역에 취약하여, 모델이 객체의 진정한 특성보다는 인지할 수 없는 세부 사항에 너무 많은 주의를 기울이는 경향이 있습니다. 따라서 인지할 수 없는 세부 사항을 제거하여 이미지 데이터셋을 줄여도 여전히 성능을 유지할 수 있을 것이라고 예상 할 수 있습니다.

storage-efficient 비전 모델 학습에는 두 가지 주요 방향이 있습니다. 첫 번째 방향은 덜 중요한 샘플을 버리거나 본래 이미지보다 더 “압축된” 이미지를 합성하여 데이터 포인트의 총 수를 줄이는 것입니다. 그러나 이 접근 방식은 전체 데이터셋과 비교했을 때 성능이 크게 저하되거나, 복잡성이 높아 대규모 데이터셋에 적용할 수 없습니다. 또한, 샘플링된 또는 합성된 이미지는 여전히 일반적인 이미지이므로, 이러한 방법들은 인지할 수 없는 세부 사항을 표현하기 위해 비효율적으로 압축을 하게 됩니다. 더 나아가, 이러한 방법들은 전체 데이터셋을 학습하여 각 샘플의 중요도 점수 또는 샘플별 그래디언트를 계산해야 하므로, 새로운 데이터셋이나 새로 들어오는 데이터 스트림에 적용하기 어렵습니다.

두 번째 접근 방식은 이미지의 총 수를 유지하면서 각 이미지의 크기를 줄이는 것입니다. 예를 들어, 더 효율적인 압축 방법을 학습하는 것입니다. 그러나 neural compression  방법은 대부분 매우 소규모 데이터셋에서 연구되었으며, 대규모 데이터셋에 대한 일반화 가능성은 여전히 해결되지 않은 문제입니다. 또한, neural compression 의 목표는 객체 인식 작업을 위한 가장 차별화된 특징을 추출하는 것이 아니라, 이미지를 압축하고 원본 이미지를 가능한 한 완벽하게 복원하는 것입니다. 이러한 제한점 때문에 ImageNet과 같은 대규모 데이터셋을 압축하여 딥 비전 모델을 학습하는 데 neural compression  방법이 사용된 적이 없습니다.

neural compression 의 사용의 어려움으로 인해 이미지 품질을 조절하여 저장 용량을 줄이려는 시도도 있습니다. 예를 들어, LAION 데이터셋은 각각의 이미지를 256×256 해상도로 저장하여 ImageNet 이미지의 36%만 차지합니다. 마찬가지로 JPEG 압축 품질을 조정하여 전체 저장 용량을 줄일 수 있습니다. 그러나 이 방법들은 압축 비율이 25% 이하로 떨어지면 성능이 크게 저하되는 제한된 압축 비율을 가지고 있습니다. 이미지 해상도를 조정하여 4% 압축 비율을, JPEG 품질을 조정하여 7% 압축 비율을 달성했을 때, 각각 63.3%와 67.8%의 Top-1 정확도를 달성했습니다. 반면, 저자의 접근 방식은 1%의 압축 비율로 74.0%의 Top-1 정확도를 달성했습니다.

이전 방법들의 모든 단점은 디지털 이미지를 저장하기 위해 너무 많은 인지할 수 없는 비트가 할당된다는 사실에서 비롯됩니다. 저자의 접근 방식은 이미지 대신 토큰을 저장하여 이러한 한계를 극복하며, VQGAN 또는 ViT-VQGAN 토크나이저와 같은 사전 학습된 비전 토크나이저를 사용합니다. 저자는 Storage-efficient Vision Training (SeiT)을 도입하여 각 이미지를 32×32 토큰으로 변환합니다. 각 토큰이 가질 수 있는 가능한 경우의 수(코드북)는 391로, 각 토큰을 저장하는 데 1.15KB만 필요합니다. ImageNet의 140GB 픽셀 기반 저장소를 저장하는 데 1.5GB 미만의 cost가 듭니다. 저자는 최소한의 수정으로 ViT 모델을 토큰화된 이미지에서 학습시킵니다. 먼저, 1024 길이의 토큰화된 이미지를 ViT-VQGAN의 사전 학습된 32차원 코드북 벡터를 사용하여 32×32×32 텐서로 변환합니다. 다음으로, 텐서를 무작위로 크기를 조정하여 32×28×28 텐서를 얻습니다. 그런 다음 ViT가 처리할 수 있는 형태로 텐서를 변환하기 위해 Stem-Adapter 모듈을 도입하여, Stem 계층 이후 ViT의 첫 번째 레이어 입력과 동일한 768×14×14 크기의 텐서로 변환합니다. 이미지 기반 증강은 토큰에 직접 적용할 수 없기 때문에, 저자는 Token-EDA, Emb-Noise 및 Token-CutMix와 같은 간단한 토큰 전용 증강 방법을 제안합니다.

SeiT는 이전의 storage-efficient 방법들에 비해 몇 가지 장점을 가지고 있습니다. 첫째, 이미지를 토큰으로 추출하기 위해 단지 순방향 작업만 필요한 토크나이저를 사용하므로, 중요도 기반 샘플링, 이미지 합성 방법, 또는 neural compression 과 같은 데이터셋 압축을 위한 추가 최적화가 필요하지 않습니다. 따라서 SeiT는 새로 들어오는 데이터 스트림에 직접 쉽게 적용할 수 있습니다. 둘째, 사전 학습된 특징 추출기를 사용하는 이전 연구들과 달리, SeiT는 최소한의 수정만으로 픽셀 기반 접근 방식과 동일한 아키텍처를 사용할 수 있습니다. 마지막으로, SeiT는 ImageNet에 대해 1%의 압축 비율로 높은 압축 비율을 보여줍니다. 따라서 저자의 Contributions은 다음과 같습니다.

Contributions: (1) 저자는 사전 학습된 비주얼 토크나이저를 사용하여 이미지를 1024개의 이산 토큰으로 압축했습니다. 토큰에 간단한 압축을 적용하여, 픽셀로 저장된 이미지와 비교해 저장 용량을 0.97%로 줄였습니다. (2) 저자는 기존 ViT 학습의 프로토콜과 하이퍼파라미터를 최소한으로 변경하여 ViT 학습이 가능하도록 Stem-Adapter 모듈과 Token-RRC, Token-CutMix, Emb-Noise, Token-EDA와 같은 토큰 증강 방법을 제안했습니다. (3) 저자의 storage-efficient 학습 파이프라인인 Storage-efficient Vision Training (SeiT)은 적은 저장 환경에서 성능 향상을 보여줍니다. 원래 저장 용량의 1%만으로 SeiT는 ImageNet-1k에서 74.0%의 Top-1 정확도를 달성했습니다. (4) 저자는 추가적으로 SeiT가 storage-efficient 사전 학습 전략과 연속 학습 작업에 적용될 수 있음을 보여주었습니다

2. Related Works

Importance sampling for efficient training

샘플링 기반 방법들은 효율적인 모델 학습을 위해 원래의 목표를 만족시키는 컴팩트하지만 대표적인 학습 데이터셋의 부분 집합을 식별하는 것을 목표로 합니다. 이는 보통 초기 학습 단계를 탐색하거나, 프록시 모델을 구축하거나, 일관성 점수(C-score)를 활용하는  방식으로 이루어집니다. 그러나 샘플링 기반 방법과 무작위 선택의 기준 접근법 간의 성능 차이는 ImageNet-1k와 같은 대규모 데이터셋에서는 미미합니다.

Dataset distillation

Dataset distillation는 학습 데이터셋의 지식을 더 작은 데이터셋으로 전달하여 컴팩트한 데이터셋을 생성하는 것을 목표로 합니다. 최근 연구들은 합성된 데이터가 특히 연속 학습과 같은 시나리오에서 효율적인 모델 학습에 효과적일 수 있음을 보여주었습니다. 그러나 그 복잡성 때문에, 아직 ImageNet-1k와 같은 대규모 데이터셋에서는 성공적인 모습을 보여주지 못했다고 합니다.

Neural compression

이미지 압축 알고리즘은 품질의 손실을 최소화하기 위해 신경망 학습을 사용하여 개선되었습니다. 대표적인 학습된 이미지 압축 방법은 이미지를 이산적인 latent code로 인코딩하고, 이 코드를 적은 손실로 이미지로 디코딩할 수 있습니다. 최근 연구들은 self-attention mechanism을 CNN 아키텍처와 결합하여 JPEG와 같은 기존 방법에 비해 우수한 압축 능력을 입증했습니다. 그러나 학습된 이미지 압축은 복잡하고 세부적인 맥락을 가진 고품질 이미지를 목표로 하며, 이는 ImageNet 샘플과는 거리가 있습니다. 따라서 이러한 방법을 ViT 학습을 위한 ImageNet 압축에 적용하는 것은 어려운 일입니다..

Learning with frozen pre-extracted features

추출된 시각적 특징을 모델에 사용하는 것은 픽셀 기반 시각 인코더에 비해 낮은 계산 비용으로 합리적인 성능을 보여줍니다. 예를 들어, Youtube-8M 데이터셋은 원시 픽셀이 아닌 Inception에서 추출된 프레임 특징들로 구성되어, 고정된 프레임 특징을 사용하여 효율적인 비디오 모델 학습을 가능하게 합니다. 사전 추출된 특징들은 또한 픽셀 수준의 이해보다 더 높은 지식이 필요한 작업에도 널리 사용되었습니다. 예를 들어, 고정된 CNN 특징들은 visual question answering과 같이 두 가지 모달리티 간의 지식을 이해하는 비전-언어 모델에서 인기 있는 선택이 되어 왔습니다. 이러한 접근 방식들은 사전 추출된 특징 없이 원시 입력으로부터의 엔드 투 엔드 학습보다 약간 낮은 성능을 보이지만 계산 측면에서 높은 학습 효율성을 보여줍니다. 그러나 이러한 방법들은 고정된 특징을 다루기 위한 특징별 모듈과 픽셀 기반 방법의 표준 최적화 기법이 아닌 특수한 최적화 기법이 필요합니다.

3.Method

3.1 Preparing the token dataset

저자는 ImageNet에서 학습된 ViT-VQGAN 토크나이저를 사용하여 토큰을 추출합니다. 그림 1에서, 더 좋은 토크나이저(OpenImages에서 학습된 VQGAN 토크나이저)를 사용할 경우 더 나은 성능을 발휘함을 보여줍니다. 그러나 본 논문에서는 학습 데이터셋 측면에서 다른 storage-efficient 방법들과의 공정한 비교를 위해 ViT-VQGAN 토크나이저를 사용합니다.

그림 2는 데이터셋 준비 파이프라인의 개요를 보여줍니다. 먼저, 전체 ImageNet 데이터셋을 256×256 크기로 조정합니다. 그런 다음, 각 조정된 이미지를 겹치지 않는 8×8 이미지 패치로 나눕니다. 마지막으로, 각 패치를 32차원 벡터로 인코딩하고, 사전 학습된 코드북에서 가장 가까운 코드워드를 찾아 코드 인덱스를 할당합니다. 여기서 저자는 원래 8192개의 코드워드 중 391개의 코드워드만 사용합니다. 이는 ImageNet 학습 데이터셋에 대해 391개의 코드워드만 사용되기 때문이라고 합니다. 그 결과, 각 이미지는 32×32 토큰으로 변환되며, 각 토큰은 [0, …, 390] 범위에 속합니다. 또한 더 나은 성능을 위해 코드북의 지식을 재사용할 수 있도록 ViT-VQGAN의 코드북(32×391 벡터)을 저장합니다.

이론적으로 저자의 토큰 인덱스가 [0-390] 범위에 속하므로, source 코딩 정리에 따르면 토큰을 저장하는 데 필요한 최적의 비트 길이는 log2 391 = 8.611입니다. 따라서 이미지의 최적 저장 크기는 1.08 kB입니다. 그러나 실제로는 일반적으로 사용되는 데이터 유형이 최소 단위로 바이트(Byte)를 사용하므로(예: 1바이트(uint8) 또는 2바이트(uint16)), 토큰을 8.61비트로 저장할 수 없습니다. 토큰당 필요한 비트를 2바이트 이하로 압축하기 위해, 저자는 간단하지만 효율적인 인코딩 방법을 제안합니다. 먼저, 각 토큰 인덱스를 토큰의 빈도에 따라 할당합니다. 즉, 가장 빈번하게 사용되는 토큰은 인덱스 0에 할당되고, 가장 덜 빈번하게 사용되는 토큰은 인덱스 390에 할당됩니다. 그런 다음, 255보다 큰 토큰 인덱스를 다음과 같이 두 개의 요소로 분할합니다:

저자는 필요한 저장 공간을 가능한 한 줄이기 위해 파일에 여러 토큰을 저장합니다. 그러나 인코딩 과정이 각 토큰의 길이를 가변적으로 만들기 때문에 인코딩에 대한 단순한 디코딩 과정은 n개의 인코딩된 토큰에 대해 O(n) 복잡도를 필요로 합니다. 저자는 각 이미지의 시작 인덱스를 저장함으로써 이 문제를 해결합니다. 인덱스 저장은 전체 ImageNet 학습 데이터셋에 대해 9.8MB만 필요로 하지만, 디코딩 과정을 O(1)로 만들고 병렬 처리가 가능하게 합니다.

이러한 인코딩 방법을 통한 결과는 표 1에 나와 있듯이, 단순 uint16 데이터 유형에 비해 전체 저장 크기를 40% 줄입니다. 여기서 원래의 기준 저장도 JPEG와 같은 압축 알고리즘을 사용하므로(표 1의 첫 번째와 두 번째 행), 저자는 또한 간단한 압축 알고리즘인 허프만 코딩(Huffman coding)을 적용합니다. 저자의 토큰 저장에 허프만 코딩을 적용한 후, 저자는 거의 최적의 이미지당 저장 크기(1.11 kB 대 1.08 kB)를 달성했습니다. 저자는 허프만 디코딩을 포함한 전체 디코딩 과정이 거의 무시할 수 있을 정도로 작다는 것을 관찰했습니다: 전체 픽셀 처리에는 100개의 이미지당 0.84초가 필요하지만, 저자의 접근 방식은 0.07초만 필요합니다. 결과적으로, 1 에포크 학습에 전체 픽셀 방식과 SeiT는 각각 5분 40초와 5분 12초가 소요됩니다.

3.2 Training classifiers with tokens

일반적인 이미지 입력은 3×224×224 차원이고 입력 토큰은 32×32 차원이기에 토큰화된 이미지로 classifier를 학습하는 것은 간단하지 않습니다. 또한 이미지의 증(RandAugment , Gaussian blur)은 비전 classifier에서 중요하지만, 이러한 작업은 토큰에 직접 적용할 수 없습니다. 가능한 한 가지 방향은 모든 순방향 계산 중에 토큰을 픽셀 수준 이미지로 디코딩하는 것입니다. 그러나 이는 네트워크에 추가적인 계산 부담을 줄 수 있습니다.. 대신, 저자는 간단하지만 효과적인 토큰의 증강과 최소한의 수정으로 토큰에서 비전 classifier를 직접 학습할 수 있는 Stem-Adapter 모듈을 제안합니다.

3.2.1 Token Augmentations

Token-EDA

저자는 언어 모델을 위해 설계된 EDA를 사용하여 토큰 데이터를 증강합니다. EDA는 원래 네 가지 방법을 포함합니다: 동의어 대체(SR), 랜덤 삽입(RI), 랜덤 스왑(RS), 랜덤 삭제(RD). 그러나 저자는 SR과 RS만 채택했습니다. 왜냐하면 다른 방법들은 토큰의 수를 유지하지 않아 ViT 학습 전략과 호환되지 않기 때문입니다. SR의 경우, 저자는 ViT-VQGAN 코드북 공간에서 유클리드 거리가 가장 가까운 다섯 개의 토큰을 해당 토큰의 동의어로 정의합니다. 그런 다음, 학습 중에 각 토큰을 일정 확률(ps)로 동의어 중 하나로 무작위로 교체합니다. RS의 경우, 저자는 32×32 토큰에서 두 개의 동일 크기의 사각형을 무작위로 선택하여 그 안의 토큰들을 서로 교환합니다. SeiT에서는 ps와 pr을 각각 0.25로 사용합니다.

Token-RRC and Token-CutMix

EDA 외에도 저자는 토큰에 Random Resized Crop(RRC)과 CutMix를 적용합니다. RRC의 경우, 저자는 표준 ImageNet 구성과 스케일(0.08, 1) 및 종횡비(3/4, 4/3)를 적용합니다. 보간을 가능하게 하기 위해, 먼저 원본 32×32 토큰을 원-핫 형태로 변환합니다. 그런 다음, 이 원-핫 토큰에 랜덤 크롭을 적용하고, 이후 bicubic 보간법을 사용하여 이를 28×28로 크기 조정합니다. RRC 후, 원-핫 토큰은 ViT-VQGAN의 사전 학습된 코드북 벡터를 사용하여 32×28×28 텐서로 변환됩니다. 여기서 32는 사전 학습된 코드 벡터의 크기입니다. 보간법으로 인해 원-핫 형태가 아닌 토큰들은 그 값에 따라 코드북으로 변환됩니다. 그런 다음 CutMix를 이 텐서에 적용하여, 한 토큰에서 패치를 무작위로 선택하여 채널 차원을 유지하면서 다른 토큰의 패치로 교체합니다.

Adding channel-wise noise

저자는 또한 색상 변경 이미지 증강(color jittering)과 같은 이미지 증강을 모방한 토큰 증강 방법인 Emb-Noise를 개발했습니다. 이미지의 각 채널이 특정 색상을 나타낸다는 사실에 영감을 받아, 저자는 먼저 길이 32의 노이즈를 생성하여 32×28×28 크기의 변환된 텐서의 각 채널에 추가한 다음, 크기 32×28×28의 크기의 노이즈를 텐서에 적용합니다. 모든 노이즈는 정규 분포에서 샘플링됩니다. 저자는 이 방법이 그 간단함에도 불구하고 성능 향상에 크게 기여한다는 것을 실험적으로 입증했습니다. 또한, 저자가 사용한 토크나이저인 ViT-VQGAN의 토큰에 채널별 노이즈를 추가하면, 전체 차원에 가우시안 노이즈를 추가하는 것과 달리 디코딩된 이미지의 색상을 효과적으로 변경할 수 있다는 것을 발견했습니다.

3.2.2 Stem-Adapter module

토큰은 이미지보다 크기가 작기 때문에 네트워크의 입력으로 직접 사용할 수 없습니다. 저자는 증강된 텐서를 ViT/16으로 변환하여 네트워크에 최소한의 수정만으로 사용할 수 있도록 하는 Stem-Adapter를 도입합니다. 구체적으로, Stem-Adapter 모듈은 32×28×28 전처리된 토큰을 768×14×14로 변환하여, 이는 stem 계층 이후 ViT 변환기 블록의 입력과 동일합니다. 저자는 4 크기의 커널과 2의 스트라이드를 가진 합성곱 레이어로 Stem-Adapter 모듈을 구현합니다. 이를 통해 모듈은 인접한 토큰 간의 공간적 관계를 포착하고, ViT에 입력으로 사용할 수 있는 텐서를 생성할 수 있습니다.

4. Experiments

4.1. ImageNet-1k classification

ImageNet-1k 분류 성능은 표 2와 그림 1에 요약되어 있습니다. random sampling(그림 1의 노란색)은 저장 용량이 감소함에 따라 성능에 가장 큰 부정적인 영향을 미쳤습니다. 반면, C-score에 따른 샘플링(파란색)도 성능 저하를 초래했지만, 저장 용량이 원래의 10%로 감소했을 때 random sampling보다 더 나은 성능을 보였습니다. 두 샘플링 기반 방법 모두 저장 용량이 약간만 감소해도 성능이 크게 저하된 반면, JPEG 기반 압축 방법(초록색)은 저장 용량이 원래의 50%에 이를 때까지 성능을 유지했습니다. 품질을 50 이상으로 설정하면, 저장 용량이 원래의 24.3%에 도달했음에도 불구하고 성능이 거의 원래와 동일하게 유지되었습니다. 그러나 품질을 1로 설정했을 때 성능은 67.8%로 급격히 하락했습니다. 해상도 조정(보라색)은 저장 용량이 작아질수록 품질 감소보다 더 나은 결과를 얻었으며, 품질을 감소시킬 때는 상대적으로 큰 저장 용량에서 해상도를 감소시키는 것보다 더 나은 성능을 보였습니다. 전반적인 이미지 기반 방법들이 작은 저장 환경에서 성능 저하를 보였음에도 불구하고, SeiT는 원래 저장 용량의 1%만 사용하여 74.0%의 정확도를 달성했습니다. 또한, ImageNet-1k-5M을 사용하여 토큰에 더 많은 저장 용량을 할당함으로써, JPEG 기반 방법들이 75% 이하의 성능을 보였을 때 5%의 ImageNet-1k 저장 용량에서 78.6%의 정확도를 달성할 수 있었습니다.

4.2. storage-efficient 토큰 사전 학습

저자는 ImageNet-21k 데이터셋에서 토큰을 추출하고, 토큰화된 ImageNet-21k에서 ViT-B/16 모델을 사전 학습하여 사전 학습으로서의 토큰의 효과를 확인했습니다. 그런 다음, 사전 학습된 모델을 각각 토큰화된 ImageNet-1k와 픽셀 기반 ImageNet-1k로 미세 조정했습니다. 추가적으로, storage-efficient 사전 학습을 세 단계로 확장하여, 21k 토큰 사전 학습 → 1k 토큰 사전 학습 → 1k 이미지 미세 조정의 과정을 거칩니다.

대규모 토큰을 사용한 사전 학습은 토큰을 사용한 ImageNet-1k 벤치마크의 성능뿐만 아니라 전체 픽셀 이미지의 성능도 향상시켰습니다. ImageNet-21k 토큰으로 사전 학습을 하면 ImageNet-1k-5M 토큰을 사용할 때보다 2.5%의 성능 향상을 달성했으며, 저장 용량은 단지 8GB 더 사용했습니다. 또한, 저자의 사전 학습 전략은 전체 픽셀 기반 ImageNet-1k 학습에 비해 11.4% 더 많은 저장 공간을 사용하면서도 ImageNet-1k 성능을 1.0% 향상시켰습니다. 이는 유사한 정확도를 보여주는 샘플링 기반 이미지 사전 학습 전략(410%의 IN-1k 저장 공간 사용, 82.5% 정확도 달성)에 비해 27%의 저장 용량만 사용한 것입니다.

4.3. Ablation study

저자는 제안된 증강 방법, Stem-Adapter 아키텍처, 그리고 컨볼루션 네트워크에 대한 결과를 분석합니다. 표 5는 토큰을 위한 제안된 증강의 영향을 보고합니다. 저자는 Token-CutMix를 사용함으로써 전체 학습 절차가 안정화되고, 제외했을 때보다 8.1%의 가장 큰 성능 향상을 가져왔다는 것을 발견했습니다. 토큰을 위한 새롭게 제안된 Embedding-Noise와 Token-EDA도 각각 0.3%와 1.4%의 성능 향상을 보였습니다. 흥미롭게도, 이러한 방법들은 개별적으로 사용될 때뿐만 아니라 결합하여 사용될 때도 효과적으로 작동하며, 더 높은 성능(74.0%)을 달성했습니다.

또한, Stem-Adapter 아키텍처가 성능에 미치는 영향을 평가했습니다(표 6). 저자는 두 가지 다른 Stem-Adapter 아키텍쳐에 대해 비교를 합니다. 여기서 저자는 더 큰 학습률을 사용할 때 수렴이 불안정했기 때문에 선형 Stem-Adapter에 대해 0.0005의 더 작은 학습률을 사용했으며, 입력 패치 수를 컨볼루션 Stem-Adapter와 맞추기 위해 14×14의 입력 크기를 사용했습니다. 결과는 ViT 모델에 Conv 4×4를 Stem-Adapter로 사용하는 것이 고려된 후보들 중 가장 높은 성능을 제공한다는 것을 확인해줍니다.

저자는 또한 SeiT가 컨볼루션 네트워크에 적용 가능한지 조사했습니다. ImageNet-1k의 다양한 아키텍처에 대한 벤치마크 결과는 표 7에 제시되어 있습니다. 토큰 기반 학습은 픽셀 기반 학습에 비해 1.4GB 저장 용량만 필요하며, 이는 픽셀 기반 학습에 필요한 저장 공간의 1%에 불과합니다. Stem 계층 이후의 특징 크기를 맞추기 위해, 저자는 ResNet 모델에 디컨볼루션 Stem-Adapter를 사용했습니다. 저자의 연구 결과는 SeiT가 컨볼루션 모델의 storage-efficient 학습에도 사용될 수 있음을 나타냅니다.

Author: 정 의철

2 thoughts on “[CVPR 2023]SeiT: Storage-Efficient Vision Training with Tokens Using 1% of Pixel Storage

  1. 안녕하세요. 좋은 리뷰 감사합니다.

    최근에 이미지 데이터를 코드상에서 많이 다루게 되면서 저장용량을 많이 신경써야 하는 것이 내심 스트레스 였는데 이런 연구도 있다는 것을 덕분에 알게 됩니다. 읽게 되면서 드는 생각이 32×32 토큰으로 변환하여 저장하는 것 또한 참신한 생각인 것 같은데 코드북 수를 391개만 가져가기 때문에 매우 적은 용량을 가져갈 수 있는 것은 아닌가 생각이 듭니다.

    근데 리뷰를 읽다보니 391개만 가져가는 이유가 ImageNet 학습 데이터셋에 대해 391개의 코드워드만 사용되기 때문이라고 하는데, 근데 다른 데이터셋을 사용하는 경우 특히 ImageNet과 도메인이 다른 데이터셋을 사용하는 경우 391개의 코드워드만 사용할 수는 없을 것 같은데 391개 외에 다른 숫자로 가져갔을 때의 성능이나 용량 차이를 본 논문에서 따로 리포팅한 것이 있을까요? 코드 워드 수를 정하는 것도 생각보다 중요한 부분인 것 같은데 이와 관련하여서 뭔가 아쉬워서 여쭤봅니다!

    감사합니다.

  2. 안녕하세요. 리뷰 감사합니다.
    음 제가 본 논문에 대해 이해가 부족한 듯 하여 질문을 드립니다. 해당 방법이 모델을 처음부터 학습하는 방식은 아닌건가요? 1% Pixel Storage을 활용한다는 부분에서 이미 ImageNet에서 학습된 Tokenizer를 활용한다는 부분이, 이는 곧즉 다른 데이터 셋에서는 해당 방법으로 처음부터 활용할 수는 없는 방법인지, 궁금합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다