일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Stable Diffusion
- Segment Anything 리뷰
- 컴퓨터비전
- iclr 논문 리뷰
- 논문 리뷰
- Prompt Tuning
- VLM
- deep learning
- Segment Anything 설명
- CVPR
- contrastive learning
- Data-centric AI
- 자기지도학습
- cvpr 논문 리뷰
- ssl
- Computer Vision 논문 리뷰
- object detection
- cvpr 2024
- iclr 2024
- Multi-modal
- Self-supervised learning
- ai 최신 논문
- Prompt란
- Data-centric
- 논문리뷰
- active learning
- Meta AI
- Computer Vision
- Segment Anything
- deep learning 논문 리뷰
- Today
- Total
Study With Inha
[Paper Review] ICLR 2023 Spotlight, SparK: Designing BERT for Convolutional Networks: Sparse and Hierarchical Masked Modeling 논문 리뷰 본문
[Paper Review] ICLR 2023 Spotlight, SparK: Designing BERT for Convolutional Networks: Sparse and Hierarchical Masked Modeling 논문 리뷰
강이나 2024. 8. 6. 14:28ICLR 2023 Spotlight (notable-top-25%),
(SparK) Designing BERT for Convolutional Networks:
Sparse and Hierarchical Masked Modeling
논문 링크: https://openreview.net/forum?id=NRxydtWup1S
GitHub: https://github.com/keyu-tian/SparK
1. Introduction
BERT나 GPT와 같은 NLP 모델에서 large scale의 unlabeled data를 활용한 Masked Language Modeling 방법론들이 큰 성능 향상을 이뤄냈다.
여기서 Self-supervised Learning 중 하나인 Masked Language Modeling이란 문장에서 랜덤한 단어(semantic unit)들에 mask 처리를 해준 후 이를 예측하도록 pretraining을 시킨 이후 downstream task를 위한 fine-tuning을 하는 방법이다.
하지만 Computer Vision 분야에서 이를 적용하려 했을 때, Computer Vision에서 많이 사용되었던 Convolutional Network가 가진 특성으로 인해 Masked Modeling을 적용할 때 아래와 같은 몇 가지 문제점들이 발생했다.
- token 단위의 입력을 받는 transformer 모델에서는 semantic 단위의 mask 처리가 용이했으나, convolutional network에서는 object가 각기 다른 사이즈로 존재하므로 semantic 단위의 mask를 적용하는 것이 쉽지 않았음
- Convolutional Network에서는 다양한 scale에 대한 feature를 학습하기 위해 multi-scale (hierarchical) 구조를 가지는 경우가 많은데, NLP에서 유래된 masked modeling은 single-scale algorithm이었기에 그대로 적용할 시 큰 성능 향상이 존재하지 않았음.
하지만 이후 ViT의 등장으로 Computer Vision 분야에서도 Transformer 모델이 좋은 성능을 내기 시작하자 BEiT나 MAE(Masked AutoEncoder)와 같은 논문들이 등장할 수 있었다.
하지만 저자는 "BERT의 masked modeling 방법을 Convnet 구조에 효과적으로 적용할 수는 없을까?"라는 의문을 가지고 본 연구를 시작했다고 한다.
가장 간단하게는 랜덤한 픽셀들을 0으로 채워 넣어 mosaic 효과를 주는 zero-outing을 생각할 수 있는데,
이는 아래 Figure 1의 (b)에서 볼 수 있듯 데이터셋의 distribution의 shift를 야기하므로 적절하지 않았다고 한다.
이를 해결하기 위해 본 논문에서는 Sparse masKed modeling with hierarchy라는 SparK 모델을 제안한다.
SparK는 Figure 1의 (c)에서 볼 수 있듯, patch-wise로 이미지에 mask를 적용한 뒤 mask가 적용되지 않은 이미지 패치들을 flatten 3D point cloud이라 간주하여 sparse convolutional network를 통과시키는 방식을 말한다.
Sparse CNN을 통해서 mask modeling의 아이디어를 활용하는 동시에 multi-scale feature를 사용하는 convnet의 장점도 가져갈 수 있었다.
⭐ Contribution ⭐
1. BERT-style의 pre-training 기법을 convolutional network의 backbone 수정 없이 적용한 첫 번째 방법론이며, ResNet이나 ConvNeXT 등 다양한 CNN 기반 모델에 적용할 수 있음을 증명했다.
2. SparK는 transformer 기반 masked modeling보다 비슷하거나 더 좋은 성능을 보이며 SoTA를 달성했고, 이는 convnet에 대한 새로운 insight를 제시하는 것이다.
3. Approach
위에서도 언급했듯, SparK는 hierarchical 구조를 가진 convolutional network의 encoder에 masked image modeling을 적절히 적용시켜, mask 처리된 부분을 reconstruct하는 법을 익히는 것을 목표로 한다.
3.1. Sparsely Gathering Unmasked Patches
이전 transformer-based masked modeling의 경우, transformer 자체가 irregular (variable-length) input이나 non-overlapping image patch들을 다루기 위한 구조이므로 이미지 패치 일부를 제거하는 것이 용이했다.
하지만 Convnet에서 masked modeling을 위해 랜덤한 픽셀을 0으로 채워 넣을 경우 아래와 같은 단점이 존재한다.
- masked 영역에 대해서 불필요한 computation이 일어나므로 효율적이지 않음
- data의 distribution이 크게 변경되는 shift가 발생함 (위의 Figure 1 참고)
- convnet들은 hierarchy 구조를 가지기 때문에 layer가 깊어질수록 mask 영역이 vanish되는 문제 발생함 (아래 Figure 3 참고)
하지만 sparse convolution을 사용할 경우 아래와 같은 이유로 vanishing 문제를 쉽게 해결할 수 있었다.
- spare convolution의 경우 masking되지 않은 영역에 대한 정보가 누락되는 것을 방지할 수 있음
- convnet backbone을 수정할 필요 없이 바로 적용할 수 있는 방법임
- mask된 영역 외의 이미지 패치들에 대해서만 convolution 연산을 수행하므로 효율적임
- sparse convolution은 mask된 영역에 대해서는 연산을 수행하지 않으므로, 이전에 언급된 'pixel distribution shift'와 'mask pattern vanishing' 문제를 해결하여 consistent한 masking effect를 보장함.
- 이후 Fine-tuning 시에는 이미지 전체가 입력되는데, 이는 mask된 영역이 없는 spare convolution의 특수한 경우로 처리될 수 있기 때문에 downstream task들을 학습할 수 있게 됨.
3.2. Hierarchical Encoding and Decoding
Convnet 모델들은 이미지의 resolution을 변화시킴으로써 scale을 다양하게 하여 feature를 추출하게 되기 때문에 hierarchical encoding을 수행한다고 말할 수 있다.
예를 들어 ResNet-style model의 Encoder에서는 4개의 stage를 거치면서 각 stage마다 downsampling을 수행한다.
Decoder는 기본적인 UNet 구조를 따르나 upsampling을 포함하는 block을 3개 이어 붙인 비교적 가벼운 구조를 사용했다.
Figure 2에 적혀있는 Densifying이란, masked image로부터 dense image를 출력하기 위해 sparse feature map에 mask 처리가 된 이미지 패치에 대해서 empty position을 채워주는 과정을 뜻한다.
예를 들어 가장 작은 sparse feature $S_4$의 empty position에 대해서는 mask embedding $[M_4]$가 적용되어 $S^{'}_4$를 얻을 수 있고, 이것이 projection layer $\phi_4$를 통과하고 나면 $D_4$가 된다.
이와 같은 방법으로 모든 encoder block에 대한 decoder block 결과를 얻을 수 있다.
3.3. Optimization Target and Transferring to Downstream
Deocder의 최종 feature map인 $D_1$으로 부터 dense image로 reconstruct하기 위해서는 두 개 이상의 upsampling layer를 가진 head module $h$가 필요하다.
head module $h$를 거친 이후에는 기존 이미지 resolution인 $H \times W$과 같아지게 된다.
Reconstruction 시에는 $L^2$-loss를 이미지 patch별로 적용하여 normalized pixel을 구했으며,
MAE에서와 같이 masked된 영역의 reconstruct error에 대해서만 학습에 반영했다고 한다.
Pre-training 이후 downstream을 위한 Fine-tuning 시에는 empty로 채워진 부분 없이 모든 position이 활성화 되어 있는 특수한 경우의 sparse conv로 치부될 수 있기 때문에,
pre-trained sparse encoder가 곧바로 dense image들에 대한 generalization을 위해 활용될 수 있다고 한다.