J'ai remarqué récemment que beaucoup de gens développent des équivalents tenseurs de nombreuses méthodes (factorisation des tenseurs, noyaux des tenseurs, tenseurs pour la modélisation de sujets, etc.) Je me demande pourquoi le monde est soudainement fasciné par les tenseurs? Existe-t-il des articles / résultats standard récents particulièrement surprenants qui ont provoqué ce problème? Est-il beaucoup moins cher en termes de calcul qu'on ne le pensait auparavant?
Je ne suis pas désinvolte, cela m'intéresse sincèrement, et s'il y a des indications sur des articles à ce sujet, j'aimerais les lire.
Réponses:
Les tenseurs offrent souvent des représentations plus naturelles des données, par exemple, considérons la vidéo, qui consiste en des images manifestement corrélées dans le temps. Vous pouvez transformer cela en une matrice, mais ce n'est tout simplement pas naturel ou intuitif (que signifie une factorisation d'une représentation matricielle de la vidéo?).
Les tenseurs sont à la mode pour plusieurs raisons:
la source
Je pense que votre question devrait être associée à une réponse qui est tout aussi fluide et ouverte d'esprit que la question elle-même. Donc, les voici, mes deux analogies.
Premièrement, à moins que vous ne soyez un pur mathématicien, vous avez probablement appris d’abord les probabilités et les statistiques univariées. Par exemple, très probablement votre première OLS exemple était probablement sur un modèle comme celui - ci: Très probablement, vous êtes allé dans le calcul des estimations en minimisant effectivement la somme des moindres carrés: Ensuite, écrivez les FOC pour les paramètres et récupérez la solution:yi=a+bxi+ei TSS=∑i(yi−a¯−b¯xi)2 ∂ T T S∂TTS∂a¯=0
Ensuite, on vous dit plus tard qu'il existe un moyen plus simple de faire cela avec la notation vectorielle (matrice):y=Xb+e
et le TTS devient:TTS=(y−Xb¯)′(y−Xb¯)
Les FOC sont:2X′(y−Xb¯)=0
Et la solution estb¯=(X′X)−1X′y
Si vous êtes doué en algèbre linéaire, vous vous en tiendrez à la deuxième approche une fois que vous l'aurez apprise, car il est en fait plus facile que d'écrire toutes les sommes de la première approche, en particulier une fois que vous obtenez des statistiques multivariées.
Par conséquent, mon analogie est la suivante: passer de matrices à tenseurs ressemble à un déplacement de matrices à vecteurs: si vous connaissez les tenseurs, certaines choses auront l'air plus faciles de cette façon.
Deuxièmement, d'où viennent les tenseurs? Je ne suis pas sûr de toute l'histoire de cette chose, mais je les ai appris en mécanique théorique. Certes, nous avions un cours sur les tenseurs, mais je ne comprenais pas quel était le problème avec tous ces moyens fantaisistes d’échanger des indices dans ce cours de mathématiques. Tout a commencé à avoir un sens dans le contexte de l’étude des forces de tension.
Ainsi, en physique, ils commencent également par un exemple simple de pression défini comme force par unité de surface, d'où: Cela signifie que vous pouvez calculer le vecteur de force en multipliant la pression (scalaire) par l'unité de surface. (vecteur normal). C'est à ce moment que nous n'avons qu'une seule surface plane infinie. Dans ce cas, il n'y a qu'une seule force perpendiculaire. Un grand ballon serait un bon exemple.F=p⋅dS F p dS
Cependant, si vous étudiez la tension à l'intérieur des matériaux, vous devez gérer toutes les directions et surfaces possibles. Dans ce cas, vous exercez des forces sur toutes les surfaces, en tirant ou en poussant dans toutes les directions, pas seulement perpendiculaires. Certaines surfaces sont déchirées par des forces tangentielles "de côté", etc. Ainsi, votre équation devient: La force est toujours un vecteur et la surface est toujours représentée par son vecteur normal , mais est un tenseur maintenant, pas un scalaire.F=P⋅dS F dS P
Ok, un scalaire et un vecteur sont aussi des tenseurs :)
Les matrices de covariance ou de corrélation sont un autre endroit où les tenseurs apparaissent naturellement. Pensez simplement à ceci: comment transformer une fois la matrice de corrélation en une autre matrice ? Vous réalisez que nous ne pouvons pas simplement le faire de cette façon: où car nous devons garder tous les positifs comme semi-définis.C0 C1 Cθ(i,j)=C0(i,j)+θ(C1(i,j)−C0(i,j)), θ∈[0,1] Cθ
Il faudrait donc trouver le chemin tel que , où est une petite perturbation de la matrice. Il y a beaucoup de chemins différents, et nous pourrions rechercher les plus courts. C'est ainsi que nous entrons dans la géométrie riemannienne, les variétés et ... les tenseurs.δCθ C1=C0+∫θδCθ δCθ
UPDATE: qu'est-ce que tenseur, de toute façon?
@ amoeba et d’autres ont eu une discussion animée sur la signification de tenseur et sur la question de savoir si c’est la même chose qu’un tableau. Alors, j'ai pensé qu'un exemple est en ordre.
Dis, on va dans un bazar pour faire l'épicerie, et il y a deux types de marchands, et . Nous avons remarqué que si nous payons dollars pour et dollars pour alors nous vend livres de pommes et nous vend oranges. Par exemple, si nous payons les deux dollars, c.-à-d. , nous devons obtenir 1 livre de pommes et 1,5 livre d'oranges.d1 d2 x1 d1 x2 d2 d1 y1=2x1−x2 d2 y2=−0.5x1+2x2 x1=x2=1
On peut exprimer cette relation sous la forme d'une matrice :P
Ensuite, les marchands produisent autant de pommes et d’oranges si nous les payons dollars:x y=Px
Cela fonctionne exactement comme une matrice par multiplication vectorielle.
Supposons maintenant qu'au lieu d'acheter les marchandises de ces marchands séparément, nous déclarons utiliser deux groupes de dépenses. Nous payons soit 0,71 dollar, soit nous payons 0,71 dollar et demandons 0,71 dollar à retour. Comme dans le cas initial, nous allons dans un bazar et pour le premier lot et pour le deuxième.d1 d2 z1 z2
un exemple où nous ne dépensons que sur le paquet 1. Dans ce cas, le premier commerçant gagne dollar et le deuxième commerçant reçoit le même . Par conséquent, nous devons obtenir les mêmes quantités de produits que dans l'exemple ci-dessus, n'est-ce pas?z1=2 x1=1 x2=1
Peut-être peut-être pas. Vous avez remarqué que la matrice n'est pas en diagonale. Cela indique que, pour une raison quelconque, combien un marchand facture pour ses produits dépend également de ce que nous avons payé à l'autre marchand. Ils doivent avoir une idée de combien les payer, peut-être par des rumeurs? Dans ce cas, si nous commençons à acheter des paquets, ils sauront avec certitude combien nous payons chacun d'eux, car nous déclarons nos paquets au bazar. Dans ce cas, comment savons-nous que la matrice devrait rester la même?P P
Peut-être qu'avec une information complète sur nos paiements sur le marché, les formules de tarification changeraient aussi! Cela changera notre matrice , et il n'y a aucun moyen de dire comment exactement.P
C'est ici que nous entrons dans les tenseurs. Essentiellement, avec les tenseurs, nous disons que les calculs ne changent pas lorsque nous commençons à négocier en lots plutôt que directement avec chaque commerçant. C'est la contrainte qui imposera des règles de transformation à , que nous appellerons un tenseur.P
En particulier, nous pouvons remarquer que nous avons une base orthonormale , où signifie un paiement de 1 dollar à un commerçant et rien à l’autre. Nous pouvons également remarquer que les paquets forment également une base orthonormale , ce qui correspond également à une simple rotation de la première base de 45 degrés dans le sens anti-horaire. C'est aussi une décomposition en PC de la première base. par conséquent, nous disons que le passage aux ensembles est un simple changement de coordonnées et que cela ne devrait pas modifier les calculs. Notez qu'il s'agit d'une contrainte externe que nous avons imposée au modèle. Cela ne venait pas des propriétés mathématiques pures des matrices.d¯1,d¯2 di i d¯′1,d¯′2
Nos achats peuvent maintenant être exprimés sous la forme d'un vecteur . Les vecteurs sont aussi des tenseurs, d'ailleurs. Le tenseur est intéressant: on peut le représenter sous la forme , et l'épicerie sous la forme . Avec l' épicerie signifie livre de produits du marchand , pas les dollars payés.x=x1d¯1+x2d¯2 P=∑ijpijd¯id¯j y=y1d¯1+y2d¯2 yi i
Maintenant, quand nous avons changé les coordonnées en faisceaux, l'équation du tenseur reste la même:y=Pz
C'est bien, mais les vecteurs de paiement sont maintenant dans des bases différentes: , alors que nous pouvons conserver les vecteurs dans l'ancienne base . Le tenseur change aussi: . Il est facile de déterminer comment le tenseur doit être transformé, ce sera , où la matrice de rotation est définie comme . Dans notre cas, c'est le coefficient du paquet.z=z1d¯′1+z2d¯′2 y=y1d¯1+y2d¯2 P=∑ijp′ijd¯′id¯′j PA d¯′=Ad¯
Nous pouvons élaborer les formules pour la transformation tensor et obtenir le même résultat que dans les exemples avec et .x1=x2=1 z1=0.71,z2=0
la source
So, let's look at an example where we spend just z1=1.42 on bundle 1. In this case, the first merchant gets x1=1 dollars, and the second merchant gets the same x2=1.
tôt, vous dites que le premier paquet est que nouspay both 0.71 dollars
. Donc, dépenser 1,42 pour le premier paquet devrait avoir 0,71 pièce et non pas 1, non?Ce n'est pas une réponse à votre question, mais un commentaire étendu sur la question qui a été soulevée ici par différentes personnes, à savoir: les "tenseurs" d'apprentissage automatique sont-ils la même chose que les tenseurs en mathématiques?
Aujourd'hui, selon Cichoki 2014, Ère du traitement de données volumineuses: une nouvelle approche via les réseaux de tenseurs et les décompositions de tenseurs, et Cichoki et al. 2014, Décompositions tenseur pour les applications de traitement du signal ,
Ainsi, dans l'apprentissage machine / traitement de données, un tenseur semble être simplement défini comme un tableau numérique multidimensionnel. Un exemple d'un tel tenseur 3D serait images vidéo de taille. Une matrice de données usuelle est un exemple de tenseur 2D selon cette définition.1000 640×480 n×p
Ce n'est pas ainsi que sont définis les tenseurs en mathématiques et en physique!
Un tenseur peut être défini comme un tableau multidimensionnel obéissant à certaines lois de transformation sous le changement de coordonnées ( voir Wikipedia ou la première phrase de l' article de MathWorld ). Une définition meilleure mais équivalente ( voir Wikipedia ) dit qu’un tenseur sur l’espace vectoriel est un élément de . Notez que cela signifie que, lorsqu'il est représenté sous forme de tableaux multidimensionnels, tenseurs sont de taille ou etc., où est la dimensionnalité de .V V⊗…⊗V∗ p×p p×p×p p V
Tous les tenseurs bien connus en physique sont ainsi: le tenseur d'inertie en mécanique est , le tenseur électromagnétique en relativité spéciale est , le tenseur de courbure de Riemann en relativité générale est . Et tenseurs électromagnétiques Courbure sont en fait des champs de tenseurs, qui sont des sections de faisceaux de tenseur (voir par exemple ici , mais il obtient technique), mais tout cela est défini sur un espace vectoriel .3×3 4×4 4×4×4×4 V
Bien sûr , on peut construire un produit tenseur d'un -dimensionnelle et de dimension mais ses éléments ne sont généralement pas appelés « tenseurs », comme indiqué par exemple ici sur Wikipedia :V⊗W p V q W
Un exemple de tenseur réel en statistique serait une matrice de covariance. Il s'agit de et se transforme de manière particulière lorsque le système de coordonnées de l' espace de fonctions dimensionnel est modifié. C'est un tenseur. Mais matrice de données n'est pas.p×p p V n×p X
Mais pouvons-nous au moins penser que est un élément du produit tenseur , où est dimensionnel et est dimensionnel? Pour être concret, laissez les lignes en correspondant aux personnes (sujets) et les colonnes à certaines mesures (caractéristiques). Un changement de coordonnées en correspond à une transformation linéaire des entités, et cela se fait en statistique tout le temps (pensez à PCA). Mais un changement de coordonnées dans ne semble correspondre à rien de significatif (et j'exhorte tous ceux qui ont un contre-exemple à me le faire savoir dans les commentaires)X W⊗V W n V p X V W . Donc , il ne semble pas qu'il y ait rien gagné en considérant comme un élément de .X W⊗V
Et en effet, la notation courante consiste à écrire , où est un ensemble de toutes les matrices (qui sont d'ailleurs définis comme des tableaux rectangulaires de nombres, sans aucune propriété de transformation supposée).X∈Rn×p Rn×p n×p
Ma conclusion est la suivante: (a) les tenseurs d’apprentissage automatique ne sont pas des tenseurs mathématiques / physique, et (b) il n’est généralement pas utile de les voir comme des éléments de produits tensoriels.
Au lieu de cela, ce sont des généralisations multidimensionnelles des matrices. Malheureusement, il n’ya pas de terme mathématique établi pour cela, alors il semble que cette nouvelle signification de «tenseur» soit maintenant là pour rester.
la source
En tant que personne qui étudie et construit des réseaux de neurones et a posé cette question à plusieurs reprises, je suis parvenue à la conclusion que nous empruntons des aspects utiles de la notation tenseur simplement parce qu'ils facilitent beaucoup la dérivation et permettent de garder nos gradients dans leurs formes natives. La règle de la chaîne du tenseur est l’un des outils de dérivation les plus élégants que j’ai jamais vu. D'autres notations de tenseurs encouragent les simplifications informatiques efficaces qu'il est tout simplement cauchemardesque de trouver lors de l'utilisation de versions étendues communes du calcul vectoriel.
Dans le calcul vectoriel / matriciel, par exemple, il existe 4 types de produits matriciels (Hadamard, Kronecker, Ordinary et Elementwise), mais dans le calcul tensoriel, il n'y a qu'un seul type de multiplication, mais il couvre toutes les multiplications matricielles et plus. Si vous voulez être généreux, interprétez tenseur comme un ensemble multidimensionnel pour lequel nous avons l'intention d'utiliser un calcul basé sur le tenseur pour trouver des dérivées, sans que les objets que nous manipulons soient des tenseur .
En toute honnêteté, nous appelons probablement nos tableaux multidimensionnels tenseurs car la plupart des experts en apprentissage automatique se soucient peu de respecter les définitions des mathématiques ou de la physique de haut niveau. La réalité est que nous empruntons simplement des conventions et des calculs de sommation Einstein bien développés qui sont généralement utilisés pour décrire des tenseurs et ne veulent pas répéter le calcul basé sur la convention de sommation Einstein. Peut-être qu'un jour nous pourrions développer un nouvel ensemble de notations et de conventions qui ne volent que ce dont ils ont besoin du calcul tensoriel spécifiquement pour l'analyse de réseaux neuronaux, mais en tant que jeune domaine qui prend du temps.
la source
Maintenant, je suis d’accord avec la majeure partie du contenu des autres réponses. Mais je vais me faire l'avocat du diable sur un point. Encore une fois, ce sera fluide, alors excuses-toi ...
Google a annoncé un programme appelé Tensor Flow pour l'apprentissage en profondeur. Cela m'a fait me demander ce qui était «tenseur» de l'apprentissage en profondeur, car je ne pouvais pas faire le lien avec les définitions que j'avais vues.
Les modèles d'apprentissage en profondeur concernent tous la transformation d'éléments d'un espace à un autre. Par exemple, si nous considérons deux couches d'un réseau, vous pouvez écrire la coordonnée d'une variable transformée tant que fonction non linéaire de la couche précédente, en utilisant la notation de synthèse de fantaisie:i y
Maintenant, l’idée est d’enchaîner un tas de telles transformations afin d’obtenir une représentation utile des coordonnées originales. Ainsi, par exemple, après la dernière transformation d’une image, une régression logistique simple produira une excellente précision de classification; alors que sur l'image brute, ce ne serait certainement pas.
Ce qui semble avoir été perdu de vue, ce sont les propriétés d’invariance recherchées dans un tenseur approprié. En particulier lorsque les dimensions des variables transformées peuvent être différentes d’une couche à l’autre. [Par exemple, certaines des choses que j'ai vues sur les tenseurs n'ont aucun sens pour les jacobiens non carrés - il se peut que certaines méthodes me manquent]
Ce qui a été retenu est la notion de transformations de variables et que certaines représentations d'un vecteur peuvent être plus utiles que d'autres pour des tâches particulières. L'analogie étant de savoir s'il est plus logique de s'attaquer à un problème en coordonnées cartésiennes ou polaires.
EDIT en réponse à @Aksakal:
Le vecteur ne peut pas être parfaitement conservé à cause des changements dans le nombre de coordonnées. Cependant, dans un certain sens au moins, les informations utiles peuvent être préservées lors de la transformation. Par exemple, avec PCA, nous pouvons laisser tomber une coordonnée, nous ne pouvons donc pas inverser la transformation, mais la réduction de la dimensionnalité peut néanmoins être utile. Si toutes les transformations successives étaient inversibles, vous pouvez relier l’avant-dernier calque à l’espace en entrée. En l'état actuel des choses, je n'ai vu que des modèles probabilistes qui permettent cela (RBM) par échantillonnage.
la source
Voici un extrait légèrement édité (pour le contexte) de A. Shashua et T. Hazan de la factorisation du tenseur non négatif avec applications à la statistique et à la vision par ordinateur, qui explique pourquoi certaines personnes sont fascinées par les tenseurs.
la source
[EDIT] Vient de découvrir le livre de Peter McCullagh, Tensor Methods in Statistics .
Les tenseurs affichent des propriétés d'intérêt dans l'identification d'un mélange inconnu dans un signal (ou une image), en particulier autour de la notion de décomposition du tenseur polyadique canonique (CP), voir par exemple Tenseurs: une brève introduction , P. Comon, 2014. Le champ est connu. sous le nom "blind source separation (BSS)":
Certains résultats d'unicité ont récemment été obtenus pour les tenseurs du troisième ordre: Sur l'unicité de la décomposition polyadique canonique des tenseurs du troisième ordre ( partie 1 , partie 2 ), I. Domanov et al. 2013.
Les décompositions de tenseurs sont des formes nodaways souvent liées à des décompositions éparses, par exemple en imposant une structure aux facteurs de décomposition (orthogonalité, Vandermonde, Hankel) et de bas rang, pour tenir compte de la non-unicité.
Face à la nécessité croissante d’une analyse incomplète des données et de la détermination de mesures complexes à partir de matrices de capteurs, les tenseurs sont de plus en plus utilisés pour l’achèvement de la matrice, l’analyse des variables latentes et la séparation des sources.
Note complémentaire: apparemment, la décomposition polyadique canonique équivaut également à la décomposition de Waring d'un polynôme homogène sous la forme d'une somme de puissances de formes linéaires, avec des applications dans l'identification de système (structures en blocs, parallèles Wiener-Hammerstein ou non linéaires).
la source
Est-ce que je recommande Respectueusement mon livre: Kroonenberg, PM Applied multivoie analyse des données et Smilde et al. Analyse à plusieurs voies. Applications en sciences chimiques (Wiley). Mon article peut également présenter un intérêt: Kroonenberg, PM (2014). Historique de l'analyse multi-composantes et de l'analyse de la correspondance à trois voies. Dans Blasius, J. et Greenacre, MJ (Eds.). Visualisation et verbalisation des données (pp. 77–94). New York: Chapman & Hall / CRC. ISBN 9781466589803.
Ces références parlent de données multway plutôt que de tenseurs, mais font référence au même domaine de recherche.
la source
Il est vrai que, dans Machine Learning, les tenseurs ne sont pas traités avec autant d'attention que les mathématiciens et les médecins. Voici un document qui peut clarifier cette différence: Comon P., "Tenseurs: une brève introduction", IEEE Sig. Proc. Magazine , 31 mai 2014
la source