Perché l'improvviso fascino per i tensori?


171

Ho notato ultimamente che molte persone stanno sviluppando equivalenti tensoriali di molti metodi (fattorizzazione tensoriale, kernel tensoriale, tensori per la modellazione di argomenti, ecc.) Mi chiedo, perché il mondo è improvvisamente affascinato dai tensori? Ci sono documenti recenti / risultati standard che sono particolarmente sorprendenti, che hanno portato a questo? Computazionalmente è molto più economico di quanto si sospettasse in precedenza?

Non sto facendo lo scemo, sinceramente sono interessato, e se ci sono indicazioni su articoli su questo, mi piacerebbe leggerli.


25
Sembra che l'unica caratteristica che i "tensori dei big data" condividano con la solita definizione matematica sia che sono matrici multidimensionali. Quindi direi che i tensori dei big data sono un modo commerciabile di dire "array multidimensionale", perché dubito fortemente che le persone di machine learning si prenderanno cura delle simmetrie o delle leggi di trasformazione di cui godono i soliti tensori di matematica e fisica, in particolare la loro utilità nel formare equazioni libere da coordinate.
Alex R.,

2
@AlexR. senza invarianza alle trasformazioni non ci sono tensori
Aksakal,

2
@Aksakal Ho sicuramente familiarità con l'uso dei tensori in fisica. Il mio punto sarebbe che le simmetrie nei tensori della fisica provengono dalla simmetria della fisica, non qualcosa di essenziale nella definizione del tensore.
aginensky,

3
@aginensky Se un tensore non era altro che un array multidimensionale, allora perché le definizioni dei tensori presenti nei libri di matematica sembrano così complicate? Da Wikipedia: "I numeri nell'array multidimensionale sono noti come componenti scalari del tensore ... Proprio come i componenti di un vettore cambiano quando cambiamo le basi dello spazio vettoriale, anche i componenti di un tensore cambiano in base a un tale trasformazione. Ogni tensore è dotato di una legge di trasformazione che specifica in che modo i componenti del tensore rispondono a un cambio di base. " In matematica, un tensore non è solo un array.
littleO

4
Solo alcune considerazioni generali su questa discussione: penso che, come per i vettori e le matrici, l'applicazione effettiva spesso diventi un'istanza molto semplificata di una teoria molto più ricca. Sto leggendo questo documento in modo più approfondito: epubs.siam.org/doi/abs/10.1137/07070111X?journalCode=siread e una cosa che mi colpisce davvero è che gli strumenti "rappresentativi" per le matrici (autovalori e scomposizioni di valori singolari) avere generalizzazioni interessanti in ordini superiori. Sono sicuro che ci sono anche molte altre belle proprietà, oltre a un semplice contenitore per più indici. :)

Risposte:


89

I tensori offrono spesso rappresentazioni più naturali dei dati, ad esempio, considerano il video, che consiste nel tempo di immagini ovviamente correlate. È possibile trasformare questo in una matrice, ma è solo non è naturale o intuitivo (che cosa fa una fattorizzazione di una certa matrice rappresentazione del video di dire?).

I tensori sono di tendenza per diversi motivi:

  • la nostra comprensione dell'algebra multilinea sta migliorando rapidamente, in particolare in vari tipi di fattorizzazioni, il che a sua volta ci aiuta a identificare nuove potenziali applicazioni (ad es. analisi di componenti multi-via )
  • stanno emergendo strumenti software (ad esempio, Tensorlab ) e sono i benvenuti
  • Le applicazioni di Big Data possono spesso essere risolte utilizzando tensori, ad esempio i sistemi di raccomandazione , e i Big Data stessi sono caldi
  • aumenta il potere computazionale, poiché alcune operazioni tensore possono essere pesanti (questo è anche uno dei motivi principali per cui l'apprendimento profondo è così popolare ora)

9
Per quanto riguarda la potenza computazionale: penso che la cosa più importante sia che l'algebra lineare possa essere molto veloce sulle GPU, e recentemente hanno ottenuto memorie più grandi e più veloci, che è il limite più grande quando si elaborano dati di grandi dimensioni.
Davidmh,

6
La risposta di Marc Claesen è buona. David Dunson, illustre professore di statistica alla Duke, è stato uno dei principali esponenti degli approcci alla modellazione basati sui tensori come in questa presentazione, Bayesian Tensor Regression . icerm.brown.edu/materials/Slides/sp-f12-w1/…
Mike Hunter

Come menzionato da David, gli algoritmi Tensor spesso si prestano bene al parallelismo, a cui l'hardware (come gli acceleratori GPU) sta migliorando sempre di più.
Thomas Russell,

1
Supponevo che le migliori capacità di memoria / CPU avessero un ruolo, ma la recente esplosione di attenzione era interessante; Penso che debba essere dovuto a molti recenti successi sorprendenti con i sistemi di raccomandazione, e forse anche ai kernel per SVM, ecc. Grazie per i collegamenti! ottimi posti per iniziare a conoscere queste cose ...

5
Se memorizzi un video come un array multidimensionale, non vedo come questo array multidimensionale avrebbe alcuna delle proprietà di invarianza che dovrebbe avere un tensore. Non sembra che la parola "tensore" sia appropriata in questo esempio.
littleO

73

Penso che la tua domanda dovrebbe essere abbinata a una risposta che sia ugualmente libera e aperta come la domanda stessa. Quindi, ecco le mie due analogie.

Innanzitutto, a meno che tu non sia un puro matematico, probabilmente ti è stato insegnato prima probabilità e statistiche univariate. Ad esempio, molto probabilmente il tuo primo esempio OLS è stato probabilmente su un modello come questo: Molto probabilmente, hai passato a derivare le stime minimizzando effettivamente la somma dei minimi quadrati: Quindi scrivi i FOC per i parametri e ottieni la soluzione:

yi=a+bxi+ei
TSS=i(yia¯b¯xi)2
T T S
TTSa¯=0

Poi più tardi ti viene detto che esiste un modo più semplice per farlo con la notazione vettoriale (matrice):

y=Xb+e

e il TTS diventa:

TTS=(yXb¯)(yXb¯)

I FOC sono:

2X(yXb¯)=0

E la soluzione è

b¯=(XX)1Xy

Se sei bravo con l'algebra lineare, ti atterrai al secondo approccio dopo averlo appreso, perché in realtà è più facile che annotare tutte le somme nel primo approccio, soprattutto quando entri nelle statistiche multivariate.

Quindi la mia analogia è che il passaggio ai tensori dalle matrici è simile al passaggio dai vettori alle matrici: se conosci i tensori alcune cose sembreranno più facili in questo modo.

Secondo, da dove vengono i tensori? Non sono sicuro dell'intera storia di questa cosa, ma le ho imparate nella meccanica teorica. Certamente, avevamo un corso sui tensori, ma non capivo quale fosse l'accordo con tutti questi modi fantasiosi per scambiare gli indici in quel corso di matematica. Tutto ha avuto un senso nel contesto dello studio delle forze di tensione.

Quindi, in fisica iniziano anche con un semplice esempio di pressione definita come forza per unità di area, quindi: Ciò significa che puoi calcolare il vettore di forza moltiplicando la pressione (scalare) per l'unità di area (vettore normale). Questo è quando abbiamo solo una superficie piana infinita. In questo caso c'è solo una forza perpendicolare. Un grande pallone sarebbe un buon esempio.

F=pdS
FpdS

Tuttavia, se stai studiando la tensione all'interno dei materiali, hai a che fare con tutte le direzioni e le superfici possibili. In questo caso hai forze su qualsiasi data superficie che tira o spinge in tutte le direzioni, non solo perpendicolari. Alcune superfici sono divise da forze tangenziali "lateralmente" ecc. Quindi, l'equazione diventa: La forza è ancora un vettore e l'area della superficie è ancora rappresentata dal suo normale vettore , ma è un tensore ora, non uno scalare.

F=PdS
FdSP

Ok, anche uno scalare e un vettore sono tensori :)

Un altro posto in cui i tensori si presentano naturalmente è la covarianza o le matrici di correlazione. Basti pensare a questo: come trasformare una volta la matrice di correlazione in un'altra ? Ti rendi conto che non possiamo semplicemente farlo in questo modo: dove perché abbiamo bisogno di mantenere tutto semi-definito positivo.C0C1

Cθ(i,j)=C0(i,j)+θ(C1(i,j)C0(i,j)),
θ[0,1]Cθ

Quindi, dovremmo trovare il percorso tale che , dove è un piccolo disturbo per una matrice. Esistono molti percorsi diversi e potremmo cercare quelli più brevi. È così che entriamo nella geometria riemanniana, nelle varietà e ... nei tensori.δCθC1=C0+θδCθδCθ

AGGIORNAMENTO: che cos'è il tensore, comunque?

@amoeba e altri hanno iniziato una vivace discussione sul significato del tensore e se è lo stesso di un array. Quindi, ho pensato che un esempio fosse in ordine.

Diciamo, andiamo in un bazar per comprare generi alimentari e ci sono due tizi mercantili, e . Abbiamo notato che se paghiamo dollari a e dollari a allora ci vende libbre di mele e ci vende arance. Ad esempio, se paghiamo entrambi 1 dollaro, ovvero , allora dobbiamo ottenere 1 chilo di mele e 1,5 di arance.d1d2x1d1x2d2d1y1=2x1x2d2y2=0.5x1+2x2x1=x2=1

Possiamo esprimere questa relazione sotto forma di matrice :P

 2   -1
-0.5  2 

Quindi i commercianti producono così tante mele e arance se paghiamo loro dollari: x

y=Px

Funziona esattamente come una matrice per moltiplicazione vettoriale.

Ora, diciamo invece di acquistare le merci da questi commercianti separatamente, dichiariamo che ci sono due fasci di spesa che utilizziamo. O paghiamo entrambi 0,71 dollari, oppure paghiamo 0,71 dollari e chiediamo 0,71 dollari da indietro. Come nel caso iniziale, andiamo in un bazar e spendiamo nel pacchetto uno e nel pacchetto 2.d1d2z1z2

Quindi, diamo un'occhiata a un esempio in cui spendiamo solo nel pacchetto 1. In questo caso, il primo commerciante riceve dollari e il secondo commerciante ottiene lo stesso . Quindi, dobbiamo ottenere le stesse quantità di prodotti come nell'esempio sopra, no?z1=2x1=1x2=1

Forse sì forse no. Hai notato che la matrice non è diagonale. Ciò indica che per qualche motivo l'importo di un commerciante per i suoi prodotti dipende anche da quanto abbiamo pagato l'altro commerciante. Devono farsi un'idea di quanto li paga, forse attraverso le voci? In questo caso, se iniziamo ad acquistare in bundle, sapranno con certezza quanto paghiamo ciascuno di essi, perché dichiariamo i nostri bundle al bazar. In questo caso, come facciamo a sapere che la matrice dovrebbe rimanere la stessa?PP

Forse con le informazioni complete sui nostri pagamenti sul mercato anche le formule dei prezzi cambieranno! Questo cambierà la nostra matrice e non c'è modo di dire esattamente.P

Questo è dove entriamo in tensori. In sostanza, con i tensori diciamo che i calcoli non cambiano quando iniziamo a fare trading in bundle anziché direttamente con ciascun commerciante. Questo è il vincolo, che imporrà regole di trasformazione su , che chiameremo tensore.P

In particolare, possiamo notare che abbiamo una base ortonormale , dove significa un pagamento di 1 dollaro a un commerciante e niente all'altro. Possiamo anche notare che i fasci formano anche una base ortonormale , che è anche una semplice rotazione della prima base di 45 gradi in senso antiorario. È anche una decomposizione per PC della prima base. quindi, stiamo dicendo che il passaggio ai bundle è semplice un cambio di coordinate e non dovrebbe cambiare i calcoli. Si noti che questo è un vincolo esterno che abbiamo imposto al modello. Non proveniva da proprietà matematiche pure delle matrici.d¯1,d¯2diid¯1,d¯2

Ora, i nostri acquisti possono essere espressi come un vettore . Anche i vettori sono tensori, a proposito. Il tensore è interessante: può essere rappresentato come e la spesa come . Con generi alimentari significa libbra di prodotti dal commerciante , non i dollari pagati.x=x1d¯1+x2d¯2

P=ijpijd¯id¯j
y=y1d¯1+y2d¯2yii

Ora, quando abbiamo cambiato le coordinate in bundle, l'equazione del tensore rimane la stessa:

y=Pz

È carino, ma i vettori di pagamento sono ora nelle diverse basi: , mentre possiamo mantenere i vettori di produzione nella vecchia base . Anche il tensore cambia: . È facile capire come deve essere trasformato il tensore, sarà , dove la matrice di rotazione è definita come . Nel nostro caso è il coefficiente del pacchetto.

z=z1d¯1+z2d¯2
y=y1d¯1+y2d¯2
P=ijpijd¯id¯j
PAd¯=Ad¯

Possiamo elaborare le formule per la trasformazione del tensore e produrranno lo stesso risultato degli esempi con e .x1=x2=1z1=0.71,z2=0


2
Mi sono confuso qui: in 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.precedenza hai detto che il primo gruppo è che noi pay both 0.71 dollars. Quindi spendere 1,42 per il primo pacchetto dovrebbe ottenere 0,71 ciascuno e non 1, no?
ameba,

@ameba, l'idea è che un bundle 1 sia , quindi con bundle 1 ottieni , ovvero 1 $ ciascunod¯1/2+d¯2/22d¯1+d¯2
Aksakal

2
@Aksakal, so che questa discussione è piuttosto vecchia, ma non capisco neanche (anche se ci stavo davvero provando). Da dove viene l'idea che un bundle 1 sia ? Potresti elaborare? In che modo quando paghi 1,42 per il pacchetto entrambi i commercianti ottengono 1? d¯1/2+d¯2/2
Matek,

@Aksakal Questo è fantastico, grazie! Penso che tu abbia un refuso sull'ultima riga, dove dici x1 = x2 = 1 (corretto) e z1 = 0.71, z2 = 0. Presumendo di aver capito tutto correttamente, z1 dovrebbe essere 1,42 (o 1,41, che è leggermente più vicino a 2 ^ 0,5).
Mike Williamson,

71

Questa non è una risposta alla tua domanda, ma un commento esteso sulla questione che è stata sollevata qui nei commenti di persone diverse, vale a dire: i "tensori" dell'apprendimento automatico sono la stessa cosa dei tensori in matematica?

Ora, secondo Cichoki 2014, Era of Big Data Processing: A New Approach via Tensor Networks and Tensor Decompositions , e Cichoki et al. 2014, decomposizioni tensoriali per applicazioni di elaborazione del segnale ,

Un tensore di ordine superiore può essere interpretato come un array a più vie, [...]

Un tensore può essere pensato come un array numerico multi-indice, [...]

Tensori (ovvero array a più vie) [...]

I cosiddetti tensori nell'apprendimento automatico

Quindi nell'apprendimento automatico / elaborazione dei dati un tensore sembra essere semplicemente definito come un array numerico multidimensionale. Un esempio di tale tensore 3D sarebbe fotogrammi video di dimensioni . Una normale matrice di dati è un esempio di un tensore 2D secondo questa definizione.1000640×480n×p

Non è così che vengono definiti i tensori in matematica e fisica!

Un tensore può essere definito come un array multidimensionale che obbedisce a determinate leggi di trasformazione sotto il cambio di coordinate ( vedi Wikipedia o la prima frase nell'articolo di MathWorld ). Una definizione migliore ma equivalente ( vedi Wikipedia ) afferma che un tensore nello spazio vettoriale è un elemento di . Si noti che questo significa che, quando rappresentati come array multidimensionali, tensori sono di dimensioni o ecc, dove è la dimensionalità .VVVp×pp×p×ppV

Tutti i tensori ben noti in fisica sono così: il tensore d'inerzia in meccanica è , il tensore elettromagnetico nella relatività speciale è , il tensore di curvatura di Riemann nella relatività generale è . Curvatura e tensori elettromagnetici sono in realtà campi tensoriali, che sono sezioni di fibrati tensoriali (vedi esempio qui ma ottiene tecnico), ma tutto questo è definita su uno spazio vettoriale .3×34×44×4×4×4 V

Naturalmente si può costruire un prodotto tensore di una dimensionale e dimensionale ma i suoi elementi di solito non sono chiamati "tensori", come affermato ad esempio qui su Wikipedia :VWpVqW

In linea di principio, si potrebbe definire un "tensore" semplicemente per essere un elemento di qualsiasi prodotto tensore. Tuttavia, la letteratura matematica di solito riserva il termine tensore per un elemento di un prodotto tensore di un singolo spazio vettoriale e il suo doppio, come sopra.V

Un esempio di un vero tensore nelle statistiche sarebbe una matrice di covarianza. È e trasforma in modo particolare quando il sistema di coordinate nel dimensionale spazio caratteristica viene modificato. È un tensore. Ma una matrice di dati non lo è.p×ppVn×pX

Ma possiamo almeno pensare a come un elemento del prodotto tensore , dove è -dimensionale e è -dimensionale? Per concretezza, lascia che le righe in corrispondano alle persone (soggetti) e alle colonne ad alcune misurazioni (caratteristiche). Un cambio di coordinate in corrisponde alla trasformazione lineare delle caratteristiche, e ciò avviene sempre in statistica (si pensi al PCA). Ma un cambio di coordinate in non sembra corrispondere a qualcosa di significativo (e esorto chiunque abbia un contro-esempio a farmelo sapere nei commenti)XWVWnVpXVW. Quindi non sembra che ci sia qualcosa maturata da considerare come elemento di .XWV

E in effetti, la notazione comune è scrivere , dove è un insieme di tutte le matrici (che, a proposito, sono definito come array rettangolari di numeri, senza alcuna proprietà di trasformazione assunta).XRn×pRn×pn×p

La mia conclusione è: (a) i tensori dell'apprendimento automatico non sono tensori di matematica / fisica e (b) per lo più non è utile vederli come elementi dei prodotti tensoriali.

Sono invece generalizzazioni multidimensionali di matrici. Sfortunatamente, non esiste un termine matematico stabilito per questo, quindi sembra che questo nuovo significato di "tensore" sia ora qui per rimanere.


19
Sono un puro matematico e questa è un'ottima risposta. In particolare, l'esempio di una matrice di covarianza è un modo eccellente per comprendere le "proprietà di trasformazione" o le "simmetrie" che sembravano causare confusione sopra. Se cambiate coordinate sul vostro spazio caratteristica dimensionale, la matrice di covarianza si trasforma in un modo particolare e forse sorprendente ; se facessi la trasformazione più ingenua delle tue covarianze, finiresti con risultati errati. p
Tom Church,

10
Grazie, @Tom, apprezzo che ti sia registrato su CrossValidated per lasciare questo commento. È da tanto tempo che studiavo la geometria differenziale, quindi sono contento se qualcuno conferma ciò che ho scritto. È un peccato che in matematica non vi siano termini stabiliti per "matrici multidimensionali"; sembra che "tensore" rimarrà nella comunità dell'apprendimento automatico come un termine per questo. Come pensi che si dovrebbe piuttosto chiamarlo però? La cosa migliore che mi viene in mente è -matrici (ad esempio -matrix per riferirsi a un oggetto video), in qualche modo analogamente alle -categorie. n3n
ameba,

4
@amoeba, nel programmare le matrici multidimensionali sono generalmente chiamate matrici , ma alcuni linguaggi come MATLAB le chiamerebbero matrici . Ad esempio, in FORTRAN le matrici possono avere più di 2 dimensioni. In linguaggi come C / C ++ / Java gli array sono monodimensionali, ma puoi avere array di array, facendoli funzionare anche come array multidimensionali. MATLAB supporta 3 o più array dimensionali nella sintassi.
Aksakal,

3
È molto interessante. Spero che sottolineerai questo punto. Ma fai attenzione a non confondere un set con uno spazio vettoriale che determina, perché la distinzione è importante nelle statistiche. In particolare (per prendere uno dei tuoi esempi), sebbene una combinazione lineare di persone sia priva di significato, una combinazione lineare di funzioni a valore reale su un insieme di persone è significativa e importante. È la chiave per risolvere la regressione lineare, per esempio.
whuber

8
Per T. Kolda, B, Bada, "Decomposizioni e applicazioni del tensore" SIAM Review 2009, epubs.siam.org/doi/pdf/10.1137/07070111X 'Un tensore è un array multidimensionale. Più formalmente, un tensore N-way o Nth-order è un elemento del prodotto tensoriale di N spazi vettoriali, ognuno dei quali ha il proprio sistema di coordinate. Questa nozione di tensori non deve essere confusa con i tensori in fisica e ingegneria (come i tensori da stress), che sono generalmente indicati come campi tensoriali in matematica "
Mark L. Stone

14

Come qualcuno che studia e costruisce reti neurali e ha ripetutamente posto questa domanda, sono giunto alla conclusione che prendiamo in prestito aspetti utili della notazione tensoriale semplicemente perché rendono la derivazione molto più semplice e mantengono i nostri gradienti nelle loro forme native. La regola della catena tensoriale è uno degli strumenti di derivazione più eleganti che abbia mai visto. Ulteriori notazioni tensoriali incoraggiano semplificazioni computazionalmente efficienti che sono semplicemente da incubo da trovare quando si utilizzano versioni estese comuni del calcolo vettoriale.

Nel calcolo Vector / Matrix, ad esempio, ci sono 4 tipi di prodotti matrix (Hadamard, Kronecker, Ordinary ed Elementwise) ma nel calcolo tensoriale esiste un solo tipo di moltiplicazione ma copre tutte le moltiplicazioni di matrice e altro. Se vuoi essere generoso, interpreta il tensore nel senso di un array multidimensionale per il quale intendiamo usare il calcolo basato sul tensore per trovare derivati, non che gli oggetti che stiamo manipolando siano tensori .

In tutta onestà probabilmente chiamiamo i nostri tensori di array multidimensionali perché la maggior parte degli esperti di machine learning non si preoccupano molto di aderire alle definizioni di matematica o fisica di alto livello. La realtà è che stiamo solo prendendo in prestito convenzioni e calcoli di sommatoria di Einstein ben sviluppati che sono tipicamente usati quando descriviamo i tensori e non vogliamo ripetere il calcolo basato sulla convenzione di sommatoria di Einstein. Forse un giorno potremmo sviluppare una nuova serie di notazioni e convenzioni che rubano solo ciò di cui hanno bisogno dal calcolo tensore specificamente per l'analisi delle reti neurali, ma come un campo giovane che richiede tempo.


Per favore registrati e / o unisci i tuoi account (puoi trovare informazioni su come farlo nella sezione Il mio account del nostro centro assistenza ), quindi sarai in grado di modificare e commentare le tue risposte.
gung

10

Ora sono effettivamente d'accordo con la maggior parte del contenuto delle altre risposte. Ma ho intenzione di interpretare l'avvocato del Diavolo su un punto. Ancora una volta, scorrerà liberamente, quindi scuse ...

Google ha annunciato un programma chiamato Tensor Flow per l'apprendimento profondo. Questo mi ha fatto domandare cosa fosse il "tensore" dell'apprendimento profondo, dato che non riuscivo a stabilire il collegamento con le definizioni che avevo visto.

inserisci qui la descrizione dell'immagine

I modelli di apprendimento profondo riguardano la trasformazione di elementi da uno spazio all'altro. Ad esempio, se consideriamo due livelli di qualche rete, potresti scrivere la coordinata di una variabile trasformata come una funzione non lineare del livello precedente, usando la notazione di somma fantasia:iy

yi=σ(βijxj)

Ora l'idea è quella di mettere insieme un mucchio di tali trasformazioni per arrivare a una rappresentazione utile delle coordinate originali. Quindi, ad esempio, dopo l'ultima trasformazione di un'immagine una semplice regressione logistica produrrà un'eccellente precisione di classificazione; mentre sull'immagine grezza non lo farebbe sicuramente.

Ora, la cosa che sembra essersi persa alla vista sono le proprietà di invarianza ricercate in un tensore appropriato. Soprattutto quando le dimensioni delle variabili trasformate possono essere diverse da strato a strato. [Ad esempio, alcune delle cose che ho visto sui tensori non hanno senso per i giacobini non quadrati - potrei mancare alcuni metodi]

Ciò che è stato mantenuto è la nozione di trasformazioni di variabili e che certe rappresentazioni di un vettore possono essere più utili di altre per compiti particolari. Analogia se ha più senso affrontare un problema nelle coordinate cartesiane o polari.


EDIT in risposta a @Aksakal:

Il vettore non può essere perfettamente conservato a causa delle variazioni del numero di coordinate. Tuttavia, in un certo senso, almeno le informazioni utili possono essere conservate durante la trasformazione. Ad esempio con PCA potremmo abbandonare una coordinata, quindi non possiamo invertire la trasformazione ma la riduzione della dimensionalità può essere comunque utile. Se tutte le trasformazioni successive fossero invertibili, è possibile mappare indietro dal penultimo strato allo spazio di input. Così com'è, ho visto solo modelli probabilistici che lo consentono (RBM) campionando.


1
Nel contesto delle reti neurali avevo sempre supposto che i tensori agissero proprio come array multidimensionali. Puoi approfondire come le proprietà di invarianza stanno aiutando la classificazione / rappresentazione?

Forse non ero chiaro sopra, ma mi sembra - se l'interpretazione è corretta - l'obiettivo delle proprietà invarianti è stato abbandonato. Ciò che sembra essere stato mantenuto è l'idea di trasformazioni variabili.
congetture il

@conjectures, se hai un vettore in coordinate cartesiane, quindi convertilo in coordinate polari, il vettore rimane lo stesso, ovvero punta ancora dallo stesso punto nella stessa direzione. Stai dicendo che nell'apprendimento automatico la trasformazione delle coordinate cambia il vettore iniziale? r¯
Aksakal,

ma non è una proprietà della trasformazione più del tensore? Almeno con trasformazioni lineari e di tipo saggio, che sembrano più popolari nelle reti neurali, sono ugualmente presenti con vettori e matrici; quali sono i vantaggi aggiuntivi dei tensori?

1
@conjectures, PCA è solo una rotazione e una proiezione. È come ruotare lo spazio N-dimensionale su PC, quindi proiettare nello spazio secondario. I tensori sono usati in situazioni simili in fisica, ad esempio quando si osservano forze sulle superfici all'interno dei corpi ecc.
Aksakal,

7

Ecco un estratto leggermente modificato (per il contesto) dalla fattorizzazione tensoriale non negativa con applicazioni di statistica e visione computerizzata, A. Shashua e T. Hazan che arriva al cuore del perché almeno alcune persone sono affascinate dai tensori.

Qualsiasi problema n-dimensionale può essere rappresentato in forma bidimensionale concatenando dimensioni. Pertanto, ad esempio, il problema di trovare una decomposizione non negativa di basso livello di un insieme di immagini è una 3-NTF (fattorizzazione tensoriale non negativa), con le immagini che formano le fette di un cubo 3D, ma possono anche essere rappresentate come un problema NMF (non-negative Matactor Factorization) vettorializzando le immagini (immagini che formano colonne di una matrice).

Esistono due motivi per cui una rappresentazione matriciale di una raccolta di immagini non sarebbe appropriata:

  1. La ridondanza spaziale (pixel, non necessariamente vicini, con valori simili) viene persa nella vettorializzazione, quindi ci aspetteremmo una fattorizzazione meno efficiente, e
  2. Una decomposizione NMF non è unica quindi, anche se esiste un modello generativo (di parti locali), la NMF non si muoverà necessariamente in quella direzione, che è stata verificata empiricamente da Chu, M., Diele, F., Plemmons, R., & Ragni, S. "Ottimalità, calcolo e interpretazione di fattorizzazioni di matrici non negative" SIAM Journal on Matrix Analysis, 2004. Ad esempio, parti invarianti sul set di immagini tenderebbero a formare fantasmi in tutti i fattori e contaminare l'effetto di scarsità. Un NTF è quasi sempre unico, quindi ci aspetteremmo che lo schema NTF si muova verso il modello generativo e in particolare non venga influenzato da parti invarianti.

6

[EDIT] Ho appena scoperto il libro di Peter McCullagh, Tensor Methods in Statistics .

I tensori mostrano proprietà di interesse nell'identificazione di miscele sconosciute in un segnale (o un'immagine), in particolare attorno alla nozione di decomposizione tensoriale poliarica canonica (CP), vedere ad esempio Tensori: una breve introduzione , P. Comon, 2014. Il campo è noto sotto il nome "blind source separazione (BSS)":

Le decomposizioni tensoriali sono al centro di molti algoritmi di separazione cieca (BSS), esplicitamente o implicitamente. In particolare, la decomposizione tensoriale poliadica (CP) canonica svolge un ruolo centrale nell'identificazione di miscele indefinite. Nonostante alcune somiglianze, CP e Singular Value Decomposition (SVD) sono abbastanza diversi. Più in generale, tensori e matrici godono di proprietà diverse, come sottolineato in questa breve introduzione.

Alcuni risultati di unicità sono stati recentemente derivati ​​per i tensori di terzo ordine: Sull'unicità della decomposizione poliadica canonica dei tensori di terzo ordine ( parte 1 , parte 2 ), I. Domanov et al. , 2013.

Le decomposizioni tensoriali sono nodaway spesso collegate a decomposizioni sparse, ad esempio imponendo la struttura sui fattori di decomposizione (ortogonalità, Vandermonde, Hankel) e rango basso, per adattarsi alla non unicità.

Con la crescente necessità di analisi dei dati incomplete e determinazione di misurazioni complesse da array di sensori, i tensori vengono sempre più utilizzati per il completamento della matrice, l'analisi delle variabili latenti e la separazione della sorgente.

Nota aggiuntiva: apparentemente, la decomposizione poliadica canonica equivale anche alla decomposizione Waring di un polinomio omogeneo come somma di potenze di forme lineari, con applicazioni nell'identificazione del sistema (blocchi strutturati, Wiener-Hammerstein paralleli o modelli di spazio di stato non lineari).


3

Vorrei raccomandare rispettosamente il mio libro: Kroonenberg, PM Applied Multiway Data Analysis e Smilde et al. Analisi a più vie. Applicazioni nelle scienze chimiche (entrambe Wiley). Di interesse potrebbe anche essere il mio articolo: Kroonenberg, PM (2014). Storia dell'analisi dei componenti a più vie e dell'analisi della corrispondenza a tre vie. In Blasius, J. e Greenacre, MJ (Eds.). Visualizzazione e verbalizzazione dei dati (pagg. 77–94). New York: Chapman & Hall / CRC. ISBN 9781466589803.

Questi riferimenti parlano di dati multway anziché di tensori, ma si riferiscono alla stessa area di ricerca.


-1

È vero che le persone in Machine Learning non vedono i tensori con la stessa cura di matematici e medici. Ecco un documento che può chiarire questa discrepanza: Comon P., "Tensori: una breve introduzione" Sig. IEEE. Proc. Magazine , 31 maggio 2014


5
La distinzione tra un tensore in matematica / fisica e un tensore nell'apprendimento automatico è davvero una "cura"? Sembra che la gente dell'apprendimento automatico utilizzi "tensore" come termine generico per matrici di numeri (scalare, vettore, matrice e matrici con 3 o più assi, ad esempio in TensorFlow), mentre "tensore" in un contesto matematico / fisico ha un diverso senso. Suggerire che la domanda riguardi la "cura" è, a mio avviso, quello di caratterizzare erroneamente l'uso come "errato" nella capacità di apprendimento automatico, quando in realtà il contesto di apprendimento automatico non ha intenzione di replicare con precisione l'utilizzo di matematica / fisica.
Sycorax,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.