Tensori e array, come il computer vede i dati: cosa sono?

Quando un computer guarda una foto o legge una parola, non vede nulla di simile a noi: vede numeri. E quei numeri sono organizzati in strutture chiamate array e tensori. Ecco cosa sono e perché sono la base di tutta l’intelligenza artificiale.
Immagine realizzata con IA
Le immagini di copertina possono essere realizzate o elaborate con strumenti di Intelligenza Artificiale. Questa scelta nasce anche dalla necessità di prevenire le continue contestazioni e richieste economiche improprie che ricevo relative a fotografie utilizzate che sono sempre state acquistate con regolare licenza.
Contenuti dell'articolo

Quando un computer guarda una foto, non vede un tramonto.
Quando legge una parola, non capisce un significato.

Vede solo numeri, tanti numeri, organizzati in strutture precise.

Quelle strutture si chiamano array e tensori e sono il modo in cui tutta l’intelligenza artificiale rappresenta il mondo.
In questa lezione vediamo cosa sono, come funzionano e perché sono ovunque.

Cosa sono gli array

Un array è semplicemente una fila ordinata di elementi. Può contenere numeri, ma anche parole o altri valori. L’ordine in cui sono disposti gli elementi è rilevante e conta, ed è per questo che li indichiamo come “il primo elemento”, “il terzo elemento”, “l’ultimo elemento”.

Immagina le temperature della settimana: 18, 21, 19, 22, 20, 23, 21. Messe in fila, formano un array di 7 elementi.
Per riferirsi a un valore si usa la sua posizione, chiamata indice. Nei linguaggi di programmazione si parte quasi sempre da 0, in questo modo nel nostro esempio l’indice 0 è il numero 18, l’indice 1 è il numero 21, l’indice 2 è il numero 19 e così via.

Tip: l’indice è la posizione
Pensa a una fila di case: la prima ha il numero 0, la seconda il numero 1, e così via. L’indice di un array funziona allo stesso modo, è il “numero civico” di ogni elemento.

Un array è una struttura monodimensionale: una sola fila, una sola direzione. È il mattone base da cui partono tutte le strutture più complesse.

Cosa sono i tensori

Un tensore è una generalizzazione degli array: una struttura di numeri che può avere più dimensioni. Per capirlo, conviene partire dal caso più semplice e salire un gradino alla volta.

  • Scalare (0 dimensioni): un singolo numero, come 7.
  • Vettore (1 dimensione): una fila di numeri, come le temperature della settimana.
  • Matrice (2 dimensioni): una griglia con righe e colonne, come una tabella di excel.
  • Tensore (3 dimensioni o più): una griglia di griglie, come un cubo di numeri.
Tip: cosa vuol dire “dimensione” in geometria
Un punto non ha dimensioni (0D). Una linea ne ha una (1D). Un foglio ne ha due (2D). Una scatola ne ha tre (3D). Ogni volta che aggiungi una dimensione, aggiungi una direzione in cui muoverti.
Dai numeri al tensore: scalare, vettore, matrice, tensore

Il termine tensore viene dalla matematica e dalla fisica, ma nel mondo dell’IA si usa in modo semplice: indica qualunque struttura di numeri con dimensioni multiple. Un’immagine, per esempio, è un tensore. Un intero gruppo di immagini è un tensore con una dimensione in più. Anche il testo, una volta trasformato in numeri, diventa un tensore.

La shape: il biglietto da visita di un tensore

Ogni tensore ha una shape, cioè la descrizione di quanti elementi ha lungo ogni dimensione. È il modo rapido per capire con cosa si ha a che fare, senza guardare i singoli numeri.

Un vettore di 7 temperature ha shape (7). Una matrice con 3 righe e 4 colonne ha shape (3, 4). Un’immagine di 100×80 pixel con 3 canali colore (rosso, verde, blu) ha shape (100, 80, 3). La shape dice tutto: quante dimensioni ha il tensore e quanto è grande.

Moltiplicando i valori della shape si ottiene il numero totale di elementi. Un tensore (100, 80, 3) contiene 24.000 numeri (100x80x3).

Tip: come si contano gli elementi
È come contare i quadratini di una griglia: 100 righe per 80 colonne fanno 8.000 quadratini. Se ogni quadratino ha 3 valori (rosso, verde, blu), il totale è 8.000 × 3 = 24.000 numeri.

Ogni numero occupa spazio in memoria, ed è per questo che le immagini e i modelli grandi richiedono tanta potenza di calcolo.

Come il computer vede i dati

Il punto chiave è questo: il computer non interpreta il mondo, lo converte in numeri e poi fa calcoli su quei numeri.
Quasi tutto può diventare un tensore.

  • Le immagini: ogni pixel è un gruppo di 3 numeri (quanto rosso, quanto verde, quanto blu). Una foto è un tensore tridimensionale.
  • Il testo: le parole vengono trasformate in sequenze di numeri, passando prima per i token e poi per gli embedding.
  • L’audio: il suono viene campionato migliaia di volte al secondo e ogni campione diventa un numero.
  • Le tabelle: righe e colonne di dati sono già, di fatto, matrici.
Tip: i colori si mescolano come la vernice
Rosso, verde e blu sono i tre colori base dello schermo: 0 significa “niente colore”, 255 significa “tanto colore”. Rosso 255, verde 120 e blu 30 danno un arancione scuro. Cambiando le proporzioni ottieni qualsiasi colore.
Un'immagine e un tensore: ogni pixel diventa numeri RGB

Questa conversione è il ponte tra il mondo reale e i calcoli del modello. Senza tensori, una rete neurale non avrebbe nulla da elaborare: tutto ciò che un modello di deep learning riceve in ingresso è, in ultima analisi, un tensore.

Perché i tensori sono ovunque nell’IA

Le reti neurali moderne fanno essenzialmente una cosa: ricevono tensori in ingresso, li trasformano attraverso molti strati di calcoli e producono tensori in uscita. Anche la frase che stai leggendo, quando viene elaborata da un modello, viaggia come tensore.

Per questo le GPU sono diventate fondamentali: sono progettate per fare milioni di operazioni su tensori in parallelo, molto più velocemente di un normale processore. Infatti le GPU (i processori delle schede video) sono bravissime a fare i calcoli matriciali, i calcoli su matrici (come le tabelle di excel).
E non è un caso che uno dei framework più famosi si chiami TensorFlow: i tensori sono il cuore di tutto.

Se vuoi rivedere le basi, la lezione su cosa sono i dati nell’IA e quella sulle feature nel machine learning ti danno il contesto giusto. Nelle prossime lezioni vedremo come da questi numeri nascono gli embedding e i database vettoriali.

FAQ

Che differenza c’è tra array e tensore?

Un array è una fila ordinata di elementi, una struttura a una dimensione. Un tensore è la versione generalizzata: può avere una, due, tre o più dimensioni. In pratica, ogni array è un caso particolare di tensore.

Perché il computer rappresenta tutto con i numeri?

Perché i calcoli si fanno solo sui numeri. Colori, suoni, parole e immagini vengono convertiti in valori numerici, organizzati in tensori, così che i modelli possano elaborarli con operazioni matematiche.

Cosa significa shape di un tensore?

La shape descrive quanti elementi ha il tensore lungo ogni dimensione. Per esempio (100, 80, 3) indica 100 righe, 80 colonne e 3 canali. Moltiplicando i valori si ottiene il totale di numeri contenuti.

Quanta memoria occupa un tensore?

Dipende dal numero di elementi e dalla precisione usata per ogni numero. Un’immagine (100, 80, 3) con numeri a 32 bit occupa circa 96 kilobyte. Le foto ad alta risoluzione e i modelli grandi richiedono gigabyte di memoria.

I tensori servono solo per le immagini?

No. Immagini, testo, audio, video e tabelle vengono tutti rappresentati come tensori. È il formato universale con cui i modelli di intelligenza artificiale ricevono ed elaborano i dati.

Newsletter settimanale con le ultime novità sull’intelligenza artificiale

Corso gratuito sull’Intelligenza Artificiale, dalle nozioni base ai concetti più complessi

Condividi:

Potrebbero interessarti