# Tensor (aprenentatge automàtic)

En l'aprenentatge automàtic, la paraula tensor fa referència informalment a dos conceptes diferents que organitzen i representen dades. Les dades es poden organitzar en una matriu multidimensional (matriu M-way) que informalment es coneix com a "tensor de dades"; tanmateix, en el sentit matemàtic estricte, un tensor és un mapeig multilineal sobre un conjunt d'espais vectorials de domini a un espai vectorial d'interval. Les observacions, com ara imatges, pel·lícules, volums, sons i relacions entre paraules i conceptes, emmagatzemades en una matriu M-way ("tensor de dades") es poden analitzar mitjançant xarxes neuronals artificials o mètodes tensoris.
Els mètodes de tensor poden factoritzar els tensors de dades en tensors més petits. Les operacions sobre tensors de dades es poden expressar en termes de multiplicació de matrius i el producte de Kronecker. El càlcul de gradients, un aspecte important de l'algorisme de retropropagació, es pot realitzar mitjançant PyTorch i TensorFlow.
Sovint, els càlculs es realitzen en unitats de processament gràfic (GPU) mitjançant CUDA i en maquinari dedicat com ara la Unitat de processament Tensor de Google o el nucli Tensor de Nvidia. Aquests desenvolupaments han accelerat molt les arquitectures de xarxes neuronals i han augmentat la mida i la complexitat dels models que es poden entrenar.

## Història

Un tensor és per definició un mapa multilineal. En matemàtiques, això pot expressar una relació multilineal entre conjunts d'objectes algebraics. En física, els camps de tensors, considerats com a tensors en cada punt de l'espai, són útils per expressar mecàniques com ara l'esforç o l'elasticitat. En l'aprenentatge automàtic, l'ús exacte dels tensors depèn de l'enfocament estadístic que s'utilitzi.
L'any 2001, el camp del processament del senyal i les estadístiques utilitzaven mètodes tensorals. Pierre Comon estudia l'adopció primerenca de mètodes tensoris en els camps de les telecomunicacions, la radiovigilància, la quimiometria i el processament de sensors. Els mètodes de classificació de tensors lineals (com ara Parafac/CANDECOMP) van analitzar matrius M-way ("tensors de dades") compostes d'estadístiques d'ordre superior que es van utilitzar en problemes de separació de fonts cegues per calcular un model lineal de les dades. Va assenyalar diverses limitacions primerenques en la determinació del rang tensor i la descomposició eficient del rang tensor.
A principis dels anys 2000, els mètodes de tensors multilineals es van creuar cap a la visió per ordinador, els gràfics per ordinador i l'aprenentatge automàtic amb articles de Vasilescu o en col·laboració amb Terzopoulos, com Human Motion Signatures, TensorFaces TensorTexures i Projecció Multilineal. L'àlgebra multilineal, l'àlgebra dels tensors d'ordre superior, és un marc adequat i transparent per analitzar l'estructura multifactorial d'un conjunt d'observacions i per abordar el difícil problema de desenredar els factors causals basats en estadístiques de segon ordre o d'ordre superior associades. amb cada factor causal. L'anàlisi factorial tensor (multilineal) desenreda i redueix la influència de diferents factors causals amb l'aprenentatge subespai multilineal. Quan es tracten una imatge o un vídeo com una matriu de 2 o 3 vies, és a dir, "matriu de dades/tensor", els mètodes de tensor redueixen les redundàncies espacials o temporals tal com van demostrar Wang i Ahuja.
Yoshua Bengio, Geoff Hinton i els seus col·laboradors discuteixen breument la relació entre les xarxes neuronals profundes i l'anàlisi del factor tensor més enllà de l'ús de matrius M-way ("tensors de dades) com a entrades. Un dels primers usos dels tensors per a xarxes neuronals va aparèixer en el processament del llenguatge natural. Una sola paraula es pot expressar com a vector mitjançant Word2vec. Així, una relació entre dues paraules es pot codificar en una matriu. Tanmateix, per a relacions més complexes com ara subjecte-objecte-verb, és necessari construir xarxes de dimensions superiors. El 2009, el treball de Sutsekver va introduir la factorització de tensors agrupats bayesians per modelar conceptes relacionals alhora que reduïa l'espai de paràmetres. Del 2014 al 2015, els mètodes tensoris es tornen més habituals a les xarxes neuronals convolucionals (CNN). Els mètodes de tensor organitzen els pesos de la xarxa neuronal en un "tensor de dades", analitzen i redueixen el nombre de pesos de la xarxa neuronal. Lebedev et al. xarxes CNN accelerades per a la classificació de caràcters (el reconeixement de lletres i dígits a les imatges) mitjançant l'ús de tensors del nucli 4D.

## Definició

Sigui $\mathbb {F}$ un camp com els nombres reals $\mathbb {R}$ o els nombres complexos $\mathbb {C}$. Un tensor ${\mathcal {A}}$ és una matriu $I_{0}\times I_{1}\times \cdots I_{C}$ a sobre $\mathbb {F}$ :
${\mathcal {A}}\in {\mathbb {F} }^{I_{0}\times I_{1}\times \ldots \times I_{C}}.$
Aquí, $C$ i $I_{1},I_{2},\ldots ,I_{C}$ són nombres enters positius i $C$ és el nombre de dimensions, el nombre de maneres o el mode del tensor.
Un enfocament bàsic (no l'única manera) d'utilitzar tensors en l'aprenentatge automàtic és incrustar directament diversos tipus de dades. Per exemple, una imatge en escala de grisos, representada habitualment com una funció 2D discreta $f(x,y)$ amb resolució $N\times M$ pot estar incrustat en un tensor de mode-2 com
$f(x,y)\mapsto {\mathcal {A}}\in \mathbb {R} ^{N\times M}.$
Una imatge en color amb 3 canals per a RGB es pot incrustar en un tensor mode-3 amb tres elements en una dimensió addicional:
$f_{RGB}(x,y)\mapsto {\mathcal {A}}\in \mathbb {R} ^{N\times M\times 3}.$
En el processament del llenguatge natural, una paraula es pot expressar com a vector $v$ mitjançant l'algorisme Word2vec. Així $v$ es converteix en un tensor de mode 1
$v\mapsto {\mathcal {A}}\in \mathbb {R} ^{N}.$

## Maquinari

Els tensors proporcionen una manera unificada d'entrenar xarxes neuronals per a conjunts de dades més complexos. Tanmateix, l'entrenament és car per calcular amb el maquinari de la CPU clàssic.
El 2014, Nvidia va desenvolupar cuDNN, CUDA Deep Neural Network, una biblioteca per a un conjunt de primitives optimitzades escrites en el llenguatge paral·lel CUDA. CUDA i, per tant, cuDNN funcionen amb GPU dedicades que implementen un paral·lelisme massiu unificat al maquinari. Aquestes GPU encara no eren xips dedicats per a tensors, sinó un maquinari existent adaptat per a la computació paral·lela en l'aprenentatge automàtic.
En el període 2015-2017 Google va inventar la Unitat de Processament de Tensor (TPU). Les TPU són unitats de maquinari dedicades i de funció fixa que s'especialitzen en les multiplicacions de matrius necessàries per als productes tensorials. Concretament, implementen una matriu de 65.536 unitats multiplicadores que poden realitzar un producte suma matricial de 256 x 256 en un sol cicle d'instrucció global.
Més tard, el 2017, Nvidia va llançar el seu propi Tensor Core amb l'arquitectura GPU Volta. Cada nucli Tensor és una microunitat que pot realitzar un producte suma de matriu 4x4. Hi ha vuit nuclis de tensor per a cada bloc de memòria compartida (SM). La primera targeta GPU GV100 té 108 SM que donen com a resultat 672 nuclis de tensor. Aquest dispositiu va accelerar l'aprenentatge automàtic 12 vegades respecte a les anteriors GPU de Tesla. El nombre de nuclis tensoris augmenta a mesura que el nombre de nuclis i unitats SM segueix creixent en cada nova generació de targetes.
El desenvolupament del maquinari de la GPU, combinat amb l'arquitectura unificada dels nuclis de tensor, ha permès l'entrenament de xarxes neuronals molt més grans. El 2022, la xarxa neuronal més gran va ser el PaLM de Google amb 540.000 milions de paràmetres après (pesos de xarxa) (el model de llenguatge GPT-3 més antic té més de 175.000 milions de paràmetres après que produeixen text semblant a l'ésser humà; la mida no ho és tot, segons Stanford). El model d'Alpaca del 2023, molt més petit, afirma ser millor, després d'haver après del model LLaMA del 2023 de Meta/Facebook, la variant més petita de 7.000 milions de paràmetres). El popular chatbot ChatGPT es construeix a la part superior de GPT-3.5 (i després d'una actualització GPT-4) mitjançant aprenentatge supervisat i de reforç.

## Referències

* ↑ Vasilescu, MAO; Terzopoulos, D IEEE Signal Processing Magazine, 24, 6, pàg. 118–123.
* ↑ Kolda, Tamara G.; Bader, Brett W. (en anglès) SIAM Review, 51, 3, 06-08-2009, pàg. 455–500. Bibcode: 2009SIAMR..51..455K. DOI: 10.1137/07070111X. ISSN: 0036-1445.
* ↑ Sidiropoulos, Nicholas D.; De Lathauwer, Lieven; Fu, Xiao; Huang, Kejun; Papalexakis, Evangelos E. IEEE Transactions on Signal Processing, 65, 13, 01-07-2017, pàg. 3551–3582. arXiv: 1607.01668. Bibcode: 2017ITSP...65.3551S. DOI: 10.1109/TSP.2017.2690524. ISSN: 1053-587X.
* ↑ Vasilescu, MAO; Terzopoulos, D IEEE Signal Processing Magazine, 24, 6, pàg. 118–123.
* ↑ Sidiropoulous, N IEEE Transactions on Signal Processing, 65, 13, 2016.
* ↑ Grout, I Electronics, 7, 320, 2018, pàg. 320. DOI: 10.3390/electronics7110320 [Consulta: free].
* ↑ Paszke, A Proceedings of the 33rd International Conference on Neural Information Processing Systems, 2019, pàg. 8026–037. arXiv: 1912.01703.
* ↑ Adabi, M Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation, 2016. arXiv: 1605.08695.
* ↑ Vasilescu, MAO; Terzopoulos, D IEEE Signal Processing Magazine, 24, 6, pàg. 118–123.
* 1 2 Vasilescu, M.A.O.. Multilinear Analysis of Image Ensembles: TensorFaces (en anglès). Springer, Berlin, Heidelberg, 2002 (Lecture Notes in Computer Science 2350; (Presented at Proc. 7th European Conference on Computer Vision (ECCV'02), Copenhagen, Denmark)). DOI 10.1007/3-540-47969-4_30. ISBN 978-3-540-43745-1. Arxivat 2022-12-29 a Wayback Machine.
* ↑ Bengio, Yoshua; Courville, Aaron Handbook on Neural Information Processing, 2013, pàg. 1–28.
* ↑ Tang, Yichuan; Salakhutdinov, Ruslan; Hinton, Geoffrey 30 Th International Conference on Machine Learning, 2013.
* ↑ Memisevic, Roland; Hinton, Geoffrey Neural Computation, 22, 6, 2010, pàg. 1473–1492. DOI: 10.1162/neco.2010.01-09-953. PMID: 20141471.
* ↑ Vasilescu, M.A.O.. Multilinear Analysis of Image Ensembles: TensorFaces (en anglès). Springer, Berlin, Heidelberg, 2002 (Lecture Notes in Computer Science 2350; (Presented at Proc. 7th European Conference on Computer Vision (ECCV'02), Copenhagen, Denmark)). DOI 10.1007/3-540-47969-4_30. ISBN 978-3-540-43745-1. Arxivat 2022-12-29 a Wayback Machine.
* ↑ Sutskever, I Advances in Neural Information Processing Systems, 22, 2009.
* ↑ Serrano, Jerome. «Nvidia Introduces cuDNN, a CUDA-based library for Deep Neural Networks» (en anglès).
* ↑ Jouppi, Norman; Young; Patil; Patterson IEEE Micro, 38, 3, 2018, pàg. 10–19. DOI: 10.1109/MM.2018.032271057.
* ↑ Hemsoth, Nicole The Next Platform, 2017.
* ↑ «NVIDIA Tesla V100 GPU Architecture» (en anglès).
* ↑ Armasu, Lucian. «On Tensors, Tensorflow, And Nvidia's Latest 'Tensor Cores'» (en anglès).
* ↑ «Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance» (en anglès). ai.googleblog.com. [Consulta: 29 març 2023].
* ↑ «Alpaca: A Strong, Replicable Instruction-Following Model» (en anglès). crfm.stanford.edu. [Consulta: 29 març 2023].