[EViT] Not All Patches Are What You Need: Expediting ViTs via Token Reorganizations
Pruning ICLR 2022
Youwei Liang, Chongjian Ge, Zhan Tong, Yibing Song, Jue Wang, Pengtao Xie · UC San Diego / HKU / Tencent AI Lab
한 줄 요약. CLS attention으로 중요한(attentive) 토큰만 top-k 유지하고, 나머지 덜 중요한(inattentive) 토큰은 버리지 않고 1개로 fusion한다. 추가 파라미터·teacher 없이 학습에 녹여, DeiT-S를 +50% 빠르게(−0.3%).
배경
ViT는 모든 패치를 토큰으로 self-attention하지만, 모든 토큰이 예측에 기여하는 건 아니다. 배경·distractive 영역 토큰은 기여가 작다.
- (Fig.1) 배경 토큰을 지워도 ViT 예측은 멀쩡하지만, 객체 토큰을 지우면 틀린다.
- 그렇다고 학습된 ViT에서 inattentive 토큰을 그냥 제거하면 정확도가 급락한다 (DeiT-S, 4·7·10층에서 CLS attention 기준 제거): keep 0.7 → 78.5(−1.3), keep 0.5 → 73.8(−6.0).
즉, “덜 중요한 토큰”을 단순히 버리는 건 위험하다. 버리되 정보를 어떻게 남길 것인가가 관건.
핵심 아이디어
학습 과정에 token reorganization(재구성)을 통합한다. 매 forward마다 CLS attention으로 중요 토큰을 식별해 attentive는 보존, inattentive는 하나로 fusion → 네트워크가 깊어질수록 토큰 수가 줄어 연산 감소. 추가 파라미터가 전혀 없고, DynamicViT와 달리 pretrained ViT(teacher)가 필요 없다.
방법
1) Attentive token identification (중요 토큰 식별)
- self-attention의 attention map 첫 행 = CLS → 모든 토큰 attention. 이 값 aᵢ가 i번째 토큰의 중요도.
- 여러 head의 CLS attention을 평균(ā)내고, 상위 k개(top-k) 를 attentive token으로 유지. keep rate κ = k/n (하이퍼파라미터).
- (DINO 관찰처럼 CLS는 객체 영역 토큰에 더 큰 attention을 준다 → 합리적 기준.)
2) Inattentive token fusion (덜 중요한 토큰 융합)
- 나머지 inattentive 토큰 N개를 attention 가중 평균으로 단 하나의 토큰으로 합침:
- 이 fused token을 attentive token들 뒤에 붙여 다음 layer로 전달. 연산 비용은 무시할 수준.
- 단순 제거 대비 장점: ① 배경/객체 일부 정보 보존, ② inattentive 토큰으로도 gradient가 흘러 식별 학습이 좋아지고 ③ 학습이 더 안정적(정확도 분산↓).
3) 학습 설정
- 삽입 위치: DeiT-S/B는 4·7·10층, LV-ViT-S는 5·9·13층. keep rate를 1 → target으로 cosine warmup.
- 추가 파라미터 없음, 원 DeiT/LV-ViT 학습 레시피 그대로, scratch 300 epoch. (DynamicViT와 달리 teacher·distillation 불필요.)
결과
- DeiT-S, keep 0.7: throughput +50%, MACs −35%, top-1 −0.3% (79.5).
- fusion이 약간 더 좋고 더 안정적 — 제거만 한 버전보다 정확도·표준편차 모두 우수, 추가 연산 없음.
- 반대 방향 활용: 같은 연산으로 더 많은 토큰(고해상도) 입력 → 정확도 향상. DeiT-S +1%, LV-ViT-S@448 finetune → 84.7(@384보다 +0.3).
- DynamicViT 대비 우위: 같은 연산에서 정확도↑·파라미터↓. 특히 scratch 학습 시 격차 큼 (keep 0.7, 300ep: EViT 79.5 vs DynamicViT 77.6, +1.9) — DynamicViT는 teacher 의존.
- 더 길게 학습하면 계속 향상(300→600ep: 79.5 → 81.0), oracle ViT 사용 시 80.8.
시각화 & ablation
- 마스크 품질 = 정확도 (keep 0.5): top-k 78.5 > random 77.3 > min-k 75.2. CLS attention 기준 선택이 핵심.
- 삽입 위치: 얕은 층에 두면 정확도 급락(초기 attention은 신뢰도 낮음), 깊은 층들 사이에선 영향 미미.
한 줄 정리 & 의의
- “버릴 건 버리되 나머지를 1개로 fuse“라는, pruning에 merging 감각을 더한 접근. 추가 파라미터·teacher 없이 CLS attention만으로 동작하는 게 DynamicViT와의 결정적 차이.
- 한계 / 이후. CLS attention에 의존(없는 ViT는 token-to-token 변형 필요). 이후 연구는 fusion/merging을 더 정교화(ToMe·MCTF)하거나 pruning·merging을 통합(ToFu·DiffRate)하는 쪽으로 발전. → Token Reduction 개요