Transformador de visió (aprenentatge automàtic)

De la Viquipèdia, l'enciclopèdia lliure
Arquitectura del transformador de visió per a la classificació d'imatges.

Un transformador de visió (amb acrònim anglès ViT) és un transformador destinat a tasques de processament de visió com ara el reconeixement d'imatges.[1]

Els transformadors van trobar les seves aplicacions inicials en tasques de processament del llenguatge natural (NLP), tal com demostren models de llenguatge com BERT i GPT-3. Per contra, el sistema típic de processament d'imatges utilitza una xarxa neuronal convolucional (CNN). Els projectes coneguts inclouen Xception, ResNet, EfficientNet,[2] DenseNet,[3] i Inception.[4]

Els transformadors mesuren les relacions entre parells de fitxes d'entrada (paraules en el cas de cadenes de text), anomenades atenció. El cost és quadrat quant al nombre de fitxes. Per a les imatges, la unitat bàsica d'anàlisi és el píxel. Tanmateix, les relacions de càlcul per a cada parell de píxels d'una imatge típica és prohibitiva en termes de memòria i càlcul. En canvi, ViT calcula les relacions entre píxels en diverses petites seccions de la imatge (per exemple, 16x16 píxels), a un cost dràsticament reduït. Les seccions (amb incrustacions posicionals) es col·loquen en una seqüència. Les incrustacions són vectors aprendre. Cada secció s'ordena en una seqüència lineal i es multiplica per la matriu d'incrustació. El resultat, amb la incrustació de posició s'alimenta al transformador.[5]

Com en el cas de BERT, el token de classe té un paper fonamental en les tasques de classificació. Un testimoni especial que s'utilitza com a única entrada del cap MLP final, ja que ha estat influenciat per tots els altres.

L'arquitectura per a la classificació d'imatges és la més comuna i utilitza només el codificador Transformer per transformar les diferents fitxes d'entrada. Tanmateix, també hi ha altres aplicacions en què també s'utilitza la part descodificadora de l'arquitectura tradicional del transformador.

Comparació amb xarxes neuronals convolucionals:

El rendiment de ViT depèn de les decisions, incloses les de l'optimitzador, els hiperparàmetres específics del conjunt de dades i la profunditat de la xarxa. CNN són molt més fàcils d'optimitzar.

Una variació d'un transformador pur és casar un transformador amb una tija/front de CNN. Una tija ViT típica utilitza una convolució de 16x16 amb una gambada de 16. Per contra, una convolució 3x3 amb pas 2, augmenta l'estabilitat i també millora la precisió.[6]

La CNN es tradueix del nivell de píxels bàsic a un mapa de característiques. Un tokenitzador tradueix el mapa de característiques en una sèrie de fitxes que després s'alimenten al transformador, que aplica el mecanisme d'atenció per produir una sèrie de fitxes de sortida. Finalment, un projector torna a connectar els fitxes de sortida al mapa de funcions. Aquest últim permet que l'anàlisi exploti detalls potencialment significatius a nivell de píxels. Això redueix dràsticament el nombre de fitxes que cal analitzar, reduint els costos en conseqüència.[7]

Els transformadors de visió s'han utilitzat en moltes tasques de visió per ordinador amb excel·lents resultats i, en alguns casos, fins i tot l'estat de la tècnica.

Entre les àrees d'aplicació més rellevants es troben:

Hi ha moltes implementacions de Vision Transformers i les seves variants disponibles en línia de codi obert. Les versions principals d'aquesta arquitectura s'han implementat a PyTorch [8] però també s'han fet implementacions disponibles per a TensorFlow.[9]

Referències[modifica]

  1. Sarkar, Arjun. «Are Transformers better than CNN's at Image Recognition?» (en anglès). Medium, 20-05-2021. [Consulta: 11 juliol 2021].
  2. Tan, Mingxing. EfficientNet V2: Smaller Models and Faster Training. 
  3. Huang, Gao. Densely Connected Convolutional Networks. 
  4. Sarkar, Arjun. «Are Transformers better than CNN's at Image Recognition?» (en anglès). Medium, 20-05-2021. [Consulta: 11 juliol 2021].
  5. Sarkar, Arjun. «Are Transformers better than CNN's at Image Recognition?» (en anglès). Medium, 20-05-2021. [Consulta: 11 juliol 2021].
  6. Xiao, Tete. Early Convolutions Help Transformers See Better. 
  7. Synced. «Facebook and UC Berkeley Boost CV Performance and Lower Compute Cost With Visual Transformers» (en anglès). Medium, 12-06-2020. [Consulta: 11 juliol 2021].
  8. Transformador de visió a Github
  9. Salama, Khalid. «Image classification with Vision Transformer» (en anglès). keras.io, 18-01-2021.