Vision transformer (ViT)
Čo je vision transformer?
Vision transformer (ViT) je architektúra hlbokého učenia, ktorá aplikuje princípy transformerov pôvodne vyvinutých pre spracovanie textu na úlohy počítačového videnia. Na rozdiel od konvolučných neurónových sietí (CNN), ktoré spracovávajú obrazy postupne cez lokálne filtre, ViT rozdeľuje obraz na menšie časti (patches) a spracováva ich podobne ako sekvenciu slov v texte.
Architektúra vision transformer
Základom architektúry ViT je rozdelenie vstupného obrazu na pevne veľké neprekrývajúce sa časti, typicky o rozmeroch 16×16 alebo 14×14 pixelov. Každá časť sa následne lineárne transformuje do vektorovej reprezentácie (embedding). K týmto vektorom sa pridáva pozičný embedding, ktorý modelu poskytuje informáciu o priestorovom umiestnení jednotlivých častí v pôvodnom obraze.
Takto pripravená sekvencia vstupuje do štandardného transformer encodera, ktorý využíva mechanizmus self-attention. Tento mechanizmus umožňuje modelu zachytiť vzťahy medzi vzdialenými časťami obrazu bez ohľadu na ich fyzickú vzdialenosť. Na začiatok sekvencie sa pridáva špeciálny klasifikačný token, ktorého výstupná reprezentácia sa používa pre finálnu klasifikáciu.
Princípy fungovania ViT
Kľúčovou vlastnosťou vision transformera je globálny pohľad na obraz už od prvej vrstvy. Zatiaľ čo CNN postupne rozširujú receptívne pole cez viacero vrstiev, ViT dokáže okamžite modelovať závislosti medzi ľubovoľnými dvoma časťami obrazu. Tento prístup prináša výhody pri rozpoznávaní objektov, ktoré vyžadujú pochopenie širšieho kontextu.
Pre dosiahnutie vysokej presnosti vyžaduje ViT značné množstvo tréningových dát. Pri trénovaní na menších datasetoch dosahuje horšie výsledky ako CNN, pretože mu chýba indukčný bias pre spracovanie obrazov. Tento nedostatok sa kompenzuje predtrénovaním na veľkých datasetoch a následným dolaďovaním na špecifické úlohy.
…architektúra ViT bola predstavená v roku 2020 v článku „An Image is Worth 16×16 Words“ od výskumníkov z Google Research?
Príklady použitia vision transformer
Vision transformery nachádzajú uplatnenie v klasifikácii obrazov, kde dosahujú výsledky porovnateľné alebo lepšie ako najlepšie CNN architektúry. Využívajú sa tiež v segmentácii obrazov, detekcii objektov a rozpoznávaní aktivít vo videu. V medicínskej diagnostike pomáhajú pri analýze röntgenových snímok a histologických vzoriek.
Hybridné architektúry kombinujúce CNN a ViT využívajú výhody oboch prístupov. CNN extrahuje lokálne príznaky v nižších vrstvách, zatiaľ čo transformer modeluje globálne závislosti. Tento prístup znižuje výpočtovú náročnosť a zlepšuje výkonnosť na menších datasetoch.
Zdroje a odkazy
Použité zdroje:
- Dosovitskiy et al. (2020) – An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale: https://arxiv.org/abs/2010.11929
Odporúčané zdroje:
- Google Research – Vision Transformer and MLP-Mixer Architectures: https://github.com/
- Hugging Face – Vision Transformer (ViT) documentation: https://huggingface.co/
Uvedené informácie sú orientačné a môžu sa líšiť v závislosti od verzie, implementácie a prostredia.