Abstract
- 구글 딥마인드에서 제안한 기존 Perceiver의 단점을 보완한 모델입니다.
- Perceiver 모델은 어떠한 데이터 형태도 처리할 수 있으면서 계산과 메모리 사용이 입력 사이즈에 선형적으로 작동하지만(기존의 transformer는 데이터가 클 수록 느려짐) 간단한 output 형태만 출력이 가능했습니다.
- Perceiver IO 모델은 output도 latent space를 decoding 과정을 거쳐서 임의의 형태를 출력할 수 있도록 한 모델입니다.
- NLP, Vision, Audio나 Multi-modal 영역에서도 좋은 결과를 보였습니다.
Perceiver IO Architecture
논문에서 제시하는 Architecture를 대략적인 과정을 설명하겠습니다. 크게 Encoding, Processing, Decoding의 3개 파트로 나누어져 있습니다.
- Perceiver IO는 Network 구조의 작은 변경으로도 다양한 영역의 데이터들을 처리할 수 있는 기존의 Perceiver 구조로부터 시작합니다.
- Perceiver는 먼저 Input array를 Cross Attention을 이용하여 데이터를 고정된 크기의 latent space로 mapping합니다. 이러한 latent space는 이후 fully attentional network를 여러번(L) 통과하게 됩니다.
- Perceiver IO는 fully attentional read-process-write 구조입니다. 이 구조는 입력은 latent space로 encode(read)되고 latent space는 다시 output으로 decode(write)됩니다.
- Perceiver IO의 decoding 과정은 기존의 Perceiver와 차별되는 과정입니다. Cross-attention을 이용하여 latents에서 다시 임의의 구조화된 output으로 맵핑합니다.
- 다양한 형태의 output array를 얻기 위해서 output array와 같은 형태(O)를 갖는 Output query array를 정의하여 모델 추론시 같이 입력됩니다. 이러한 query array는 manual하게 설정하거나 학습하는 embedding 또는 입력에 대한 간단한 함수로 정의될 수 있으며 핵심은 latents로부터 output array의 크기를 가지도록 하기 위해서 사용된다는 점입니다.
Encoding, Processing, Decoding
[Encoding]
Encoding은 Inpuat Array를 latent space로 맵핑합니다. Latent array는 Query로, Input array는 Key와 Value로 들어가서 Cross-Attention을 한 뒤 Latent Array로 나오게 됩니다.
[Processing]
Processing은 latents를 연속된 Attention Module을 이용하여 처리합니다. Q, K, V를 모두 Latent array로 갖는 self-attention 모듈을 연속으로 적용합니다.
[Decoding]
Decoding은 Processing 단계의 마지막에 나온 latent array와 주어진 output query array를 이용하여 Output Array를 출력합니다. 위에 적혀있듯이 Output Query array의 Dimension과 같은 크기의 Ouput array가 나오게 됩니다. 다양한 output query array를 이용하면 다양한 domain의 출력에 이용할 수 있습니다. Query array는 downstream task에 대한 적절한 정보를 담고있어야하며 학습될 수 있습니다.
Conclusion
결과적으로는 Perceiver IO 모델은 Nlp, Vision, Starcaft II 등 다양한 영역에서 기존의 모델에 비해 나쁘지 않은 결과를 보여주면서 또한 Input과 Output의 사이즈와 관계없이 Linear하게 작동합니다. 이러한 특성은 General Purpose neural Network를 담당할 수 있다고 생각됩니다.
Perceiver IO 모델은 기존의 어떤 영역에 특화된 모델과는 달리 어떤 형태의 Input이든 일단 Latent space로 맵핑하여 어떠한 형태로도 다시 변환하여 출력할 수 있는 Architecture를 가지고 있습니다. 인공지능 기술이 General AI에 조금 더 가까워졌다고 생각하게 되는 논문입니다.
'AI' 카테고리의 다른 글
Donut : Document Understanding Transformer without OCR 논문리뷰 (0) | 2021.12.06 |
---|---|
YOLO v5 Pretrained Pytorch 모델 사용하기 (7) | 2021.03.26 |
SEER - Pretrainig of Visual Features in the Wild 논문 리뷰 (0) | 2021.03.23 |
Lambda Networks 논문 리뷰 (0) | 2021.03.02 |
TransUNet - Transformer를 적용한 Segmentation Model 논문 리뷰 (0) | 2021.02.25 |