Pourquoi cette soudaine fascination pour les tenseurs?


171

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.


25
Il semble que la seule caractéristique de conservation que les "tenseurs de données volumineuses" partagent avec la définition mathématique habituelle est qu’il s’agit de tableaux multidimensionnels. Donc, je dirais que les tenseurs volumineux sont un moyen commercial de dire «tableau multidimensionnel», car je doute fort que les personnes apprenantes en machine se soucient des symétries ou des lois de transformation que les tenseurs habituels des mathématiques et de la physique apprécient, en particulier de leur utilité. pour former des équations sans coordonnées.
Alex R.

2
@AlexR. sans invariance aux transformations il n'y a pas de tenseurs
Aksakal

2
@Aksakal Je suis certes un peu familier avec l'utilisation des tenseurs en physique. Mon point de vue serait que les symétries en physique des tenseurs proviennent de la symétrie de la physique, et non de quelque chose d'essentiel dans la définition du tenseur.
Aginensky

3
@aginensky Si un tenseur n'est rien d'autre qu'un tableau multidimensionnel, alors pourquoi les définitions de tenseurs trouvées dans les manuels de mathématiques paraissent-elles si compliquées? From Wikipedia: "Les nombres dans le tableau multidimensionnel sont connus comme les composants scalaires du tenseur ... Tout comme les composants d'un vecteur changent lorsque nous modifions la base de l'espace vectoriel, les composants d'un tenseur changent transformation. Chaque tenseur est équipé d’une loi de transformation qui précise la manière dont les composants du tenseur répondent à un changement de base. " En mathématiques, un tenseur n'est pas simplement un tableau.
littleO

4
Quelques réflexions générales sur cette discussion: je pense que, comme pour les vecteurs et les matrices, l’application réelle devient souvent une instanciation beaucoup plus simplifiée d’une théorie beaucoup plus riche. Je lis cet article plus en profondeur: epubs.siam.org/doi/abs/10.1137/07070111X?journalCode=siread et une chose qui m'impressionne vraiment est que les outils "de représentation" pour les matrices (décompositions de valeurs propres et de valeurs singulières) avoir des généralisations intéressantes dans les ordres supérieurs. Je suis sûr qu'il existe beaucoup plus de belles propriétés, au-delà d'un joli conteneur pour plus d'indices. :)
YS

Réponses:


89

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:

  • notre compréhension de l'algèbre multilinéaire s'améliore rapidement, en particulier dans divers types de factorisations, ce qui nous aide à identifier de nouvelles applications potentielles (par exemple, l' analyse multi-composantes )
  • des outils logiciels font leur apparition (par exemple, Tensorlab ) et sont les bienvenus
  • Les applications Big Data peuvent souvent être résolues à l'aide de tenseurs, par exemple des systèmes de recommandation , et le Big Data lui-même est très populaire.
  • augmentation de la puissance de calcul, car certaines opérations de tenseurs peuvent être lourdes (c'est aussi l'une des principales raisons pour lesquelles l'apprentissage en profondeur est si populaire maintenant)

9
Pour ce qui est de la puissance de calcul: je pense que le plus important est que l’algèbre linéaire peut être très rapide sur les GPU, et qu’ils ont récemment des mémoires plus grandes et plus rapides, c’est la plus grande limitation lors du traitement de données volumineuses.
Davidmh

6
La réponse de Marc Claesen est bonne. David Dunson, professeur distingué de statistique à Duke, a été l'un des principaux représentants des approches de modélisation basées sur le tenseur, comme dans cette présentation, Bayesian Tensor Regression . icerm.brown.edu/materials/Slides/sp-f12-w1/…
Mike Hunter

Comme mentionné par David, les algorithmes Tensor se prêtent souvent bien au parallélisme, auquel le matériel (comme les accélérateurs GPU) s'améliore de plus en plus.
Thomas Russell

1
Je pensais que les meilleures capacités mémoire / processeur jouaient un rôle, mais la récente vague d’attention était intéressante; Je pense que cela doit être dû à beaucoup de succès surprenants récents avec les systèmes de recommandation, et peut-être aussi aux noyaux pour les SVM, etc. Merci pour les liens! d'excellents endroits pour commencer à apprendre ce genre de choses ...
YS

5
Si vous stockez une vidéo sous forme de tableau multidimensionnel, je ne vois pas comment ce tableau multidimensionnel aurait l'une des propriétés d'invariance qu'un tenseur est supposé avoir. Il ne semble pas que le mot "tenseur" soit approprié dans cet exemple.
littleO

73

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(yia¯b¯xi)2
T T S
TTSa¯=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=(yXb¯)(yXb¯)

Les FOC sont:

2X(yXb¯)=0

Et la solution est

b¯=(XX)1Xy

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=pdS
FpdS

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=PdS
FdSP

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.C0C1

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.d1d2x1d1x2d2d1y1=2x1x2d2y2=0.5x1+2x2x1=x2=1

On peut exprimer cette relation sous la forme d'une matrice :P

 2   -1
-0.5  2 

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.d1d2z1z2

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=2x1=1x2=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?PP

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¯2diid¯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¯2yii

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=ijpijd¯id¯j
PAd¯=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=1z1=0.71,z2=0


2
Je suis confus ici: plus 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 nous pay both 0.71 dollars. Donc, dépenser 1,42 pour le premier paquet devrait avoir 0,71 pièce et non pas 1, non?
amibe

@ameba, le paquet 1 est , donc avec paquet 1, vous obtenez , soit 1 $ chacund¯1/2+d¯2/22d¯1+d¯2
Aksakal

2
@Aksakal, je sais que cette discussion est assez ancienne, mais je ne comprends pas non plus (bien que j'essayais vraiment de). D'où vient cette idée qu'un paquet 1 est ? Pourriez-vous élaborer? Comment se fait-il que vous payiez 1,42 € pour le forfait que les deux marchands reçoivent 1? d¯1/2+d¯2/2
Matek

@Aksakal C'est super, merci! Je pense que vous avez une faute de frappe sur la toute dernière ligne, où vous dites x1 = x2 = 1 (correct) et z1 = 0,71, z2 = 0. En supposant que j'ai tout compris correctement, z1 devrait être 1,42 (ou 1,41, ce qui est légèrement plus proche à 2 ^ 0,5).
Mike Williamson

71

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 ,

Un tenseur d'ordre supérieur peut être interprété comme un tableau à plusieurs voies, [...]

Un tenseur peut être considéré comme un tableau numérique multi-index, [...]

Tenseurs (c.-à-d., Tableaux à plusieurs voies) [...]

Les soi-disant tenseurs dans l'apprentissage automatique

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.1000640×480n×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 .VVVp×pp×p×ppV

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×34×44×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 :VWpVqW

En principe, on pourrait définir un "tenseur" simplement comme un élément de tout produit tenseur. Cependant, la littérature mathématique réserve généralement le terme tenseur à un élément d'un produit tenseur d'un seul espace vectoriel et de son dual, comme ci-dessus.V

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×ppVn×pX

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)XWVWnVpXVW. Donc , il ne semble pas qu'il y ait rien gagné en considérant comme un élément de .XWV

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).XRn×pRn×pn×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.


19
Je suis un pur mathématicien et c'est une très bonne réponse. En particulier, l'exemple d'une matrice de covariance est un excellent moyen de comprendre les "propriétés de transformation" ou les "symétries" qui semblaient semer la confusion ci-dessus. Si vous modifiez les coordonnées sur votre espace de fonction dimensionnel, la matrice de covariance se transforme de manière particulière et peut - être surprenante ; Si vous réalisiez la transformation plus naïve de vos covariances, vous obtiendriez des résultats incorrects. p
Tom Church

10
Merci, @ Tom, j'apprécie que vous vous soyez inscrit sur CrossValidated pour laisser ce commentaire. Je n’étudiais pas la géométrie différentielle depuis très longtemps et je suis heureux si quelqu'un confirme ce que j’ai écrit. Il est dommage qu’il n’existe aucun terme établi en mathématiques pour «matrices multidimensionnelles»; il semble que "tenseur" va rester dans la communauté de l'apprentissage automatique en tant que terme. Comment pensez-vous que l'on devrait plutôt l'appeler cependant? La meilleure chose qui me vienne à l’esprit est matrices (par exemple matrice pour faire référence à un objet vidéo), de manière analogue à catégories. n3n
amibe

4
@amoeba, dans la programmation des matrices multidimensionnelles sont généralement appelées des tableaux , mais certains langages tels que MATLAB les appellent des matrices . Par exemple, dans FORTRAN, les tableaux peuvent avoir plus de 2 dimensions. Dans des langages tels que C / C ++ / Java, les tableaux sont unidimensionnels, mais vous pouvez également avoir des tableaux de tableaux, ce qui les fait fonctionner également comme des tableaux multidimensionnels. MATLAB prend en charge la syntaxe de tableaux à 3 dimensions ou plus.
Aksakal

3
C'est très intéressant. J'espère que vous insisterez sur ce point. Mais faites attention de ne pas confondre un ensemble avec un espace vectoriel qu’il détermine, car la distinction est importante dans les statistiques. En particulier (pour reprendre l'un de vos exemples), bien qu'une combinaison linéaire de personnes n'ait pas de sens, une combinaison linéaire de fonctions à valeurs réelles sur un ensemble de personnes est à la fois significative et importante. C'est la clé pour résoudre la régression linéaire, par exemple.
whuber

8
Pour T. Kolda, B, Bada, "Décompositions de tenseur et applications", Revue SIAM 2009, epubs.siam.org/doi/pdf/10.1137/07070111X 'Un tenseur est un tableau multidimensionnel. Plus formellement, un tenseur d'ordre N ou d'ordre n est un élément du produit tenseur de N espaces vectoriels, chacun ayant son propre système de coordonnées. Cette notion de tenseurs ne doit pas être confondue avec les tenseurs en physique et en ingénierie (tels que les tenseurs de contraintes), qui sont généralement appelés champs de tenseurs en mathématiques "
Mark L. Stone

14

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.


Veuillez enregistrer et / ou fusionner vos comptes (vous pouvez trouver des informations sur la procédure à suivre dans la section Mon compte de notre centre d'aide ). Vous pourrez ensuite modifier et commenter vos propres réponses.
gung

10

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.

entrez la description de l'image ici

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:iy

yi=σ(βijxj)

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.


1
Dans le contexte des réseaux de neurones, j'avais toujours supposé que les tenseurs agissaient comme des tableaux multidimensionnels. Pouvez-vous préciser en quoi les propriétés d'invariance facilitent la classification / représentation?
YS

Peut-être que je n'étais pas clair ci-dessus, mais il me semble - si l'interprétation est correcte - que l'objectif des propriétés invariantes a été abandonné. Ce qui semble avoir été conservé, c'est l'idée de transformations variables.
conjectures

@conjectures, si vous avez un vecteur en coordonnées cartésiennes, puis le convertissez en coordonnées polaires, le vecteur reste identique, c'est-à-dire qu'il pointe toujours du même point dans la même direction. Voulez-vous dire que dans l'apprentissage automatique, la transformation de coordonnées change le vecteur initial? r¯
Aksakal

mais n'est-ce pas une propriété de la transformation plus que le tenseur? Au moins avec les transformations de type linéaire et élémentaire, qui semblent plus populaires dans les réseaux de neurones, elles sont également présentes avec les vecteurs et les matrices; Quels sont les avantages supplémentaires des tenseurs?
YS

1
@conjectures, PCA n’est qu’une rotation et une projection. C'est comme faire pivoter l'espace N-dimensionnel sur une base PC, puis projeter vers un sous-espace. Les tenseurs sont utilisés dans des situations similaires en physique, par exemple pour observer les forces exercées sur les surfaces internes des corps, etc.
Aksakal

7

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.

Tout problème à n dimensions peut être représenté sous une forme à deux dimensions en concaténant des dimensions. Ainsi, par exemple, le problème de la décomposition non négative de rangs bas d’un ensemble d’images est une 3-NTF (factorisation non négative du tenseur), les images formant les tranches d’un cube 3D, mais pouvant également être représentée sous forme de un problème NMF (factorisation de matrice non négative) en vectorisant les images (images formant des colonnes d'une matrice).

Une représentation matricielle d'une collection d'images ne serait pas appropriée pour deux raisons:

  1. La redondance spatiale (les pixels, pas nécessairement voisins, ayant des valeurs similaires) est perdue dans la vectorisation; on pourrait donc s'attendre à une factorisation moins efficace, et
  2. Une décomposition de NMF n’est pas unique. Par conséquent, même s’il existe un modèle génératif (de parties locales), le NMF n’évoluerait pas nécessairement dans cette direction, ce qui a été vérifié empiriquement par Chu, M., F., Diele, F., Plemmons, R., & Ragni, S. "Optimalité, calcul et interprétation des factorisations matricielles non négatives", Revue SIAM sur l'analyse matricielle, 2004. Par exemple, les parties invariantes de l'ensemble d'images tendent à former des fantômes dans tous les facteurs et à contaminer l'effet d'économie. Un fichier NTF est presque toujours unique. Nous nous attendons donc à ce que le système NTF évolue vers le modèle génératif et ne soit spécifiquement pas influencé par des parties invariantes.

6

[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)":

Les décompositions de tenseurs sont au cœur de nombreux algorithmes de séparation de sources aveugles (BSS), de manière explicite ou implicite. En particulier, la décomposition du tenseur canonique polyadique (CP) joue un rôle central dans l'identification des mélanges sous-déterminés. Malgré certaines similitudes, la décomposition de la valeur singulière et la valeur singulière sont très différentes. Plus généralement, les tenseurs et les matrices ont des propriétés différentes, comme indiqué dans cette brève introduction.

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).


3

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.


-1

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


5
La distinction entre un tenseur en mathématique / physique et un tenseur en apprentissage automatique est-elle vraiment un "soin"? Il semble que les personnes apprenantes en machine utilisent le terme "tenseur" pour désigner des tableaux de nombres (scalaires, vectoriels, matriciels et des tableaux à 3 axes ou plus, par exemple dans TensorFlow), alors que "tenseur" dans un contexte mathématique / physique sens. Je pense que suggérer que la question concerne les «soins» revient à sous-estimer l’utilisation comme «incorrecte» dans la capacité d’apprentissage automatique, alors que le contexte d’apprentissage automatique n’a pas l’intention de reproduire précisément l’utilisation mathématique / physique.
Sycorax
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.