Vision Transformer (ViT)

Vision Transformer (ViT) je architektura, která na obrazová data aplikuje transformer bez jakékoli konvoluce. Snímek se rozdělí na mřížku neprolínajících se dlaždic, například šestnáct krát šestnáct pixelů, každá dlaždice se lineárně promítne do vektoru a vzniklá posloupnost se – doplněná pozičním kódováním a zvláštním klasifikačním tokenem – zpracuje jako věta. Klíčovým rozdílem proti konvolučním sítím je globální receptivní pole už v první vrstvě: mechanismus pozornosti umí vztáhnout dva protilehlé rohy snímku okamžitě, kdežto konvoluce k tomu potřebuje mnoho vrstev. Cenou je absence vestavěných předpokladů o lokalitě a invarianci vůči posunu, které konvoluci umožňují učit se z malých datasetů. ViT proto na středně velkých datech konvolučním sítím podléhá, avšak při předtrénování na stovkách milionů snímků je předčí – jde tedy o typický projev zákonů škálování. Kvadratická složitost pozornosti vůči počtu dlaždic vedla k hierarchickým variantám jako Swin Transformer. ViT je dnes standardní obrazový enkodér multimodálních modelů.


Konvoluční síť je jako člověk, který obrázek zkoumá lupou a postupně z drobných detailů skládá celkovou představu – nejprve hrany, potom oči, nakonec tvář. Vision Transformer je jako člověk, který obrázek rozstříhá na sto kartiček, rozloží je před sebe na stůl a hned od začátku porovnává každou s každou: „tahle kartička s uchem patrně souvisí s tou vzdálenou kartičkou s druhým uchem.“ Je to velmi silný postup, ale má jednu podmínku: takový člověk musí předem vidět obrovské množství obrázků, protože mu na rozdíl od toho s lupou nikdo neřekl, že věci, které spolu souvisí, bývají obvykle blízko sebe.

Je pro vás článek užitečný a čerpáte z něj? Zkopírujte si citaci