Cosa sono i tensori?
In ambito AI diventa estremamente importante imparare a maneggiare e gestire i dati sotto forma di tensori. Bisogna tener presente che nel deep learning, infatti, i dati vengono trattati esclusivamente come Tensori. Ma cosa sono?
Una definizione formale potrebbe essere la seguente: un tensore è un oggetto matematico definito in spazio vettoriale e quindi non dipendente da un particolare sistema di riferimento. Ok ma che significa? Possiamo provare a semplificare dicendo che i tensori sono la naturale generalizzazione del concetto di vettore ovvero di un oggetto che ha dimensioni e direzioni. Interessante ma cosa significa? potrei andare avanti così 🙂 Proverò a dare una spiegazione approcciandola esclusivamente dal punto di vista informatico.
Un array in informatica, indica una struttura dati complessa, statica e omogenea, ed un vettore è definibile come un array monodimenzionale 1D ovvero una lista di numeri.
V = [1 3 5 8]
I vettori possono a loro volta essere suddivisi in componenti più semplici gli elementi a cui si fa riferimeto con gli indici. Dunque con si indica l’elemento i-esimo.
Una matrice invece è un array bidimensionale 2D:
In una matrice indica l’elemento della riga i-esima e della colonna j-esima.
Così facendo, aggiungendo una dimensione, potremmo disegnare una “matrice cubica” etc etc … per analogia si arriva così alla definizione di tensore.
Il tensore è un array multidimensionale, pertanto sia il vettore che la matrice sono esempi di tensori a dimensione rispettivamente 1 e 2.
A questo punto possiamo introdurre due proprietà fondamentali dei tensori, di cui avremo modo di sentirne parlare anche in ambito AI.
- Rank indica il numero di dimensioni del Tensore (Una matrice cubica ad es. ha grado 3, una matrice ha grado 2).
- Shape rappresenta la forma del tensore e viene espresso nel seguente formato n x m x k nel caso di una matrice cubica. (ad esempio una matrice cubica può avere forma 1x1x1 o 2x5x7).
Facciamo qualche esempio:
Un Tensore con Rank=2 e Shape=2×4 è una matrice con 2 righe e 4 colonne
Un Tensore con Rank=2 e Shape=4×2 è una matrice di 4 righe e 2 colonne.
Un tensore di 5 elementi ad una sola dimensione è un vettore V = [1 , 3 , 5, 8]
Come si può rappresentare ed usare un vettore in python? la via più semplice è di usare numpy una libreria matematica molto interessante.
Pertanto rifacendoci all’esempio precedente del vettore V in Python dobbiamo scrivere qualcosa del genere:
import numpy as np v=np.array([1,3,5,8])
A questo punto possiamo utilizzare python per calcolare ad esempio shape e rank di v
np.shape(v)
il cui risultato è (4,) ovvero un tesnore con un sola dimensione a 4 elementi
np.rank(v)
il cui risultato è 1 dimensione.
Facciamo un altro esempio; ragioniamo su una matrice :
In Python avremo:
>>> M = np.array([[1,2,3],[3,4,5]]) >>> np.shape(M) (2, 3) >>> np.rank(M) 2 >>>
In questo caso dunque avremo :
shape= 2 x 3 rank = 2
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments