Зоровий трансформер

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Зорови́й трансфо́рмер (англ. Vision Transformer, ViT) — це трансформер, призначений для задач зорової обробки, таких як розпізнавання зображень.[1]

Зорові трансформери

[ред. | ред. код]
Архітектура Зорового трансформера для класифікування зображень

Трансформери знайшли своє початкове застосування у задачах обробки природної мови (ОПМ), що демонструють такі мовні моделі як BERT та GPT-3. На противагу цьому, типова система обробки зображень використовує згорткову нейронну мережу (ЗНМ). До відомих проєктів належать Xception[en], ResNet, EfficientNet,[2] DenseNet[3] та Inception.[1]

Трансформери вимірюють взаємозв'язки (англ. relationships) між парами токенів входу (лексем у випадку текстових стрічок), які називають увагою (англ. attention). Витратність зі зростанням числа токенів зростає експоненційно. Для зображень основною одиницею аналізу є піксель. Проте обчислення взаємозв'язків для кожної з пар пікселів у типовому зображенні є недопускним з точки зору пам'яті та обчислень. Зоровий трансформер натомість обчислює взаємозв'язки між пікселями в різних невеликих ділянках зображення (наприклад, 16×16 пікселів) за різко знижених витрат. Ці ділянки (з позиційними вкладеннями) розташовують у послідовності. Вкладення є векторами, яких можливо навчатися. Кожну з ділянок впорядковують у лінійну послідовність і множать на матрицю вкладення. Результат, із позиційним вкладенням, подають до трансформера.[1]

Як і у випадку з BERT, фундаментальну роль у задачах класифікування відіграє токен класу. Спеціальний токен, який використовують як єдиний вхід для завершальної БШП-голови, оскільки на неї вже вплинули всі інші.

Архітектура для класифікування зображень є найпоширенішою, і для трансформування різних токенів входу вона використовує лише кодувальник Трансформера. Проте існують й інші застосування, в яких використовують також і декодувальну частину традиційної архітектури Трансформера.

Історія

[ред. | ред. код]

Трансформери, спершу представлені 2017 року у відомій праці «Увага — це все, що вам потрібно»,[4] широко поширилися у сфері обробки природної мови, незабаром ставши однією з найширше використовуваних та найперспективніших архітектур у цій галузі.

2020 року, з працею «Зображення вартує 16×16 слів»,[5] для виконання завдань у комп'ютернім баченні було пристосовано Зорові трансформери. Їхня ідея полягає в тому, щоби розбивати вхідні зображення на низку фрагментів, які, перетворивши їх на вектори, розглядати як слова у звичайному трансформері.

Якщо в галузі обробки природної мови механізм уваги Трансформерів намагався вловлювати взаємозв'язки між різними словами аналізованого тексту, то в комп'ютернім баченні Зорові трансформери намагаються натомість вловлювати взаємозв'язки між різними частинами зображення.

2021 року чиста трансформерова модель продемонструвала кращу продуктивність та більшу ефективність у класифікуванні зображень, аніж ЗНМ.[1]

У дослідженні від червня 2021 року було додано трансформерову післяобробку до ResNet, що різко скоротило витрати та підвищило точність.[6][7][8]

Того ж року було запропоновано деякі важливі варіанти Зорових трансформерів. Ці варіанти здебільшого мають на меті бути ефективнішими, точнішими, або краще пристосованими до певної області. Серед найактуальніших — Swin Transformer,[9] який, завдяки деяким видозмінам механізму уваги та багатоступеневому підходу, досяг передових результатів на деяких наборах даних виявляння об'єктів, як-то COCO. Іншим цікавим варіантом є TimeSformer, розроблений для задач розуміння відео, й здатний вловлювати просторову та часову інформацію за рахунок використання розділеної просторово-часової уваги.[10][11]

Зорові трансформери вже 2021 року виявилися здатними вийти з лабораторії й потрапити до однієї з найважливіших галузей комп'ютерного бачення, автономної їзди. Інженери Тесла продемонстрували під час Дня ШІ Тесла,[12] що їхня система автопілоту насправді, серед інших систем, використовує Трансформер, який переважно використовують для правильної роботи багатокамерної системи на автомобілях.

Порівняння зі згортковими нейронними мережами

[ред. | ред. код]

Продуктивність Зорових трансформерів залежить від рішень, включно з рішеннями стосовно оптимізатора, специфічних для набору даних гіперпараметрів, та глибини мережі. Оптимізувати ЗНМ набагато простіше.

Однією з видозмін чистого трансформера є одруження трансформера зі основою/передобробкою ЗНМ. Типова основа Зорового трансформера використовує згортку 16×16 з кроком 16. На відміну від цього, згортка 3×3 із кроком 2 збільшує стабільність, а також покращує точність.[8]

ЗНМ здійснює перетворення з базового рівня пікселів до карти ознак. Токенувальник перетворює карту ознак на низку токенів, які потім подають до трансформера, який застосовує механізм уваги для створення низки токенів виходу. Проєктор, зрештою, знову з'єднує токени виходу з картою ознак. Останнє дозволяє аналізові використовувати потенційно значущі деталі на рівні пікселів. Це різко зменшує кількість токенів, необхідних для аналізу, відповідно знижуючи витрати.[6]

Відмінностей між ЗНМ та Зоровими трансформерами багато, і полягають вони головним чином у їхніх архітектурних відмінностях.

Насправді ЗНМ досягають чудових результатів навіть за тренування на основі обсягів даних, що є не настільки великими, як того вимагають Зорові трансформери.

Ця відмінність у поведінці, схоже, випливає з наявності в ЗНМ деяких індуктивних упереджень, які можуть так чи інакше використовуватися цими мережами для швидшого схоплювання особливостей аналізованих зображень, навіть якщо, з іншого боку, вони зрештою обмежують їх, ускладнюючи схоплювання ними глобальних взаємозв'язків.[13][14]

З іншого боку, Зорові трансформери є вільними від цих упереджень, що призводить до їхньої здатності схоплювати також глобальні й ширші взаємозв'язки, але ціною обтяжливішого з точки зору даних навчання.

Зорові трансформери також довели свою здатність бути набагато стійкішими до спотворень вхідних зображень, таких як змагальне затуляння або переставляння.[15]

Проте обирання однієї архітектури замість іншої не завжди наймудріший вибір, і чудові результати отримано в кількох задачах комп'ютерного бачення за допомогою гібридних архітектур, що поєднують згорткові шари з Зоровими трансформерами.[16][17][18]

Роль самокерованого навчання

[ред. | ред. код]

Значна потреба в даних на етапі тренування зробила необхідним пошук альтернативних методів для тренування цих моделей,[19] і тепер центральну роль відіграють методи самокерованого навчання. Із застосуванням цих підходів можливо тренувати нейронну мережу практично автономним чином, дозволяючи їй виводити особливості конкретної задачі без потреби у створенні великого набору даних, або надавання їй точно встановлених міток. Можливість тренувати Зоровий трансформер без необхідності мати у своєму розпорядженні величезний набір даних бачення може стати ключем до широкого розповсюдження цієї перспективної нової архітектури.

Найзначнішого результату досягли дослідники з Facebook AI із DINO,[20] методом самокерування для тренування Зорового трансформера. Із застосуванням цього підходу отримано чудові результати у задачах класифікування на важливих наборів даних, таких як ImageNet[en], але, і насамперед, вражаючі результати у сегментуванні та кластеруванні відео.[21]

Застосування

[ред. | ред. код]

Зорові трансформери використовували в багатьох задачах комп'ютерного бачення з чудовими результатами, а в деяких випадках навіть із передовими.

До найактуальніших сфер застосування належать:

Втілення

[ред. | ред. код]

Існує багато втілень Зорових трансформерів та їхніх варіантів, доступних у відкритому коді в Інтернеті. Основні версії цієї архітектури втілено в PyTorch,[22] але також зроблено доступними втілення й для Tensorflow.[23]

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. а б в г Sarkar, Arjun (20 травня 2021). Are Transformers better than CNN's at Image Recognition?. Medium (англ.). Архів оригіналу за 11 травня 2022. Процитовано 11 липня 2021. (англ.)
  2. Tan, Mingxing; Le, Quoc V. (23 червня 2021). EfficientNet V2: Smaller Models and Faster Training. arXiv:2104.00298 [cs.CV]. (англ.)
  3. Huang, Gao; Liu, Zhuang; van der Maaten, Laurens; Q. Weinberger, Kilian (28 січня 2018). Densely Connected Convolutional Networks. arXiv:1608.06993 [cs.CV]. (англ.)
  4. Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (5 грудня 2017). Attention Is All You Need. arXiv:1706.03762 [cs]. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  5. Dosovitskiy, Alexey; Beyer, Lucas; Kolesnikov, Alexander; Weissenborn, Dirk; Zhai, Xiaohua; Unterthiner, Thomas; Dehghani, Mostafa; Minderer, Matthias; Heigold, Georg; Gelly, Sylvain; Uszkoreit, Jakob (3 червня 2021). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929 [cs]. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  6. а б Synced (12 червня 2020). Facebook and UC Berkeley Boost CV Performance and Lower Compute Cost With Visual Transformers. Medium (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 11 липня 2021. (англ.)
  7. Wu, Bichen; Xu, Chenfeng; Dai, Xiaoliang; Wan, Alvin; Zhang, Peizhao; Yan, Zhicheng; Masayoshi, Tomizuka; Gonzalez, Joseph; Keutzer, Kurt; Vajda, Peter (2020). Visual Transformers: Token-based Image Representation and Processing forComputer Vision. arXiv:2006.03677 [cs.CV]. (англ.)
  8. а б Xiao, Tete; Singh, Mannat; Mintun, Eric; Darrell, Trevor; Dollár, Piotr; Girshick, Ross (28 червня 2021). Early Convolutions Help Transformers See Better. arXiv:2106.14881 [cs.CV]. (англ.)
  9. Liu, Ze; Lin, Yutong; Cao, Yue; Hu, Han; Wei, Yixuan; Zhang, Zheng; Lin, Stephen; Guo, Baining (25 березня 2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  10. Bertasius, Gedas; Wang, Heng; Torresani, Lorenzo (9 лютого 2021). Is Space-Time Attention All You Need for Video Understanding? (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  11. Coccomini, Davide (31 березня 2021). On Transformers, TimeSformers, and Attention. An exciting revolution from text to videos. Towards Data Science. Архів оригіналу за 3 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  12. Tesla AI Day на YouTube (англ.)
  13. Raghu, Maithra; Unterthiner, Thomas; Kornblith, Simon; Zhang, Chiyuan; Dosovitskiy, Alexey (19 серпня 2021). Do Vision Transformers See Like Convolutional Neural Networks?. arXiv:2108.08810 [cs, stat]. Архів оригіналу за 19 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  14. Coccomini, Davide (24 липня 2021). Vision Transformers or Convolutional Neural Networks? Both!. Towards Data Science. (англ.)
  15. Naseer, Muzammal; Ranasinghe, Kanchana; Khan, Salman; Hayat, Munawar; Khan, Fahad Shahbaz; Yang, Ming-Hsuan (21 травня 2021). Intriguing Properties of Vision Transformers (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  16. Dai, Zihang; Liu, Hanxiao; Le, Quoc V.; Tan, Mingxing (9 червня 2021). CoAtNet: Marrying Convolution and Attention for All Data Sizes (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  17. Wu, Haiping; Xiao, Bin; Codella, Noel; Liu, Mengchen; Dai, Xiyang; Yuan, Lu; Zhang, Lei (29 березня 2021). CvT: Introducing Convolutions to Vision Transformers (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  18. Coccomini, Davide; Messina, Nicola; Gennaro, Claudio; Falchi, Fabrizio (6 липня 2021). Combining EfficientNet and Vision Transformers for Video Deepfake Detection (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  19. Coccomini, Davide (24 липня 2021). Self-Supervised Learning in Vision Transformers. Towards Data Science. Архів оригіналу за 3 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  20. Caron, Mathilde; Touvron, Hugo; Misra, Ishan; Jégou, Hervé; Mairal, Julien; Bojanowski, Piotr; Joulin, Armand (29 квітня 2021). Emerging Properties in Self-Supervised Vision Transformers (англ.). Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  21. Advancing the state of the art in computer vision with self-supervised Transformers and 10x more efficient training. Facebook AI. 30 квітня 2021. Архів оригіналу за 17 жовтня 2021. Процитовано 17 жовтня 2021. (англ.)
  22. vit-pytorch на GitHub
  23. Salama, Khalid (18 січня 2021). Image classification with Vision Transformer. keras.io. Архів оригіналу за 3 жовтня 2021. Процитовано 17 жовтня 2021.

Посилання

[ред. | ред. код]