Skip to main content
Dreamforce si terrà a San Francisco dal 17 al 19 settembre. Registrati adesso e risparmia il 20% utilizzando il codice DF24TRAIL20

Comprendere perché sono necessarie le reti neurali

Obiettivi di apprendimento

Al completamento di questa unità, sarai in grado di:

  • Spiegare la limitazione dei modelli di IA che considerano solo gli input con peso.
  • Descrivere il ruolo delle reti neurali nel machine learning.
  • Definire i componenti principali delle reti neurali.
  • Descrivere in che modo viene aggiunta complessità alle reti neurali e definire il deep learning.
  • Spiegare perché può essere impossibile interpretare pesi e bias determinati tramite l'addestramento.

Trailcast

Se vuoi ascoltare una registrazione di questo modulo, usa il player qui sotto. Quando hai finito, ricorda di tornare a ciascuna unità, consultare le risorse e completare le valutazioni associate.

Perché sono necessarie le reti neurali

Nessuna conversazione sull'IA è completa se non si menzionano le reti neurali. Le reti neurali sono strumenti importanti per l'addestramento dei modelli di intelligenza artificiale, quindi è bene avere un'idea di cosa siano. Ma prima di entrare nei dettagli, vediamo perché abbiamo bisogno delle reti neurali.

Nell'unità precedente abbiamo imparato che è possibile addestrare un modello di intelligenza artificiale lasciandogli indovinare e controllare il peso dell'importanza di ogni input. Ma l'esempio del tragitto per comprare il latte era eccessivamente semplificato. Il nostro modello ci fornirebbe stime piuttosto approssimative. Per capire perché, prendiamo in considerazione due scenari.

  1. È martedì sera e sta piovendo. Non hai voglia di bagnarti e, come farebbero molte altre persone, decidi che puoi aspettare fino a domani per comprare il latte. In questo scenario, la pioggia è un fattore significativo.
  2. È sabato pomeriggio e sta piovendo. Per molti, questo è l'unico momento della settimana in cui si può andare a fare la spesa. Quindi il negozio sarà affollato, sia che piova o ci sia il sole. In questo scenario, la pioggia non fa molta differenza.

Il problema è che il nostro modello originale può assegnare un solo peso alla pioggia, ma sappiamo che la situazione è più complicata. C'è però una soluzione, che parte dalla rappresentazione dei due scenari in due grafici separati. Anche in questo caso, lo spessore delle linee indica l'importanza. Nel primo, "weekend" e "tempo" sono deboli, mentre "pioggia" è forte. Nel secondo, "weekend" è forte, mentre "tempo" e "pioggia" sono deboli.

Due diagrammi, ciascuno dei quali collega "weekend", "tempo" e "pioggia" a stime separate. (grigio, blu, giallo)

Sappiamo che questi due scenari sono significativi perché siamo intelligenti e abbiamo esperienza nell'acquisto del latte. Ma un computer che ha appena imparato che si deve andare a comprare il latte non sa ancora nulla! Deve considerare diversi scenari: weekend-sera-pioggia, weekend-mattina-sole e così via. Otto grafici anziché due potrebbero rappresentare meglio i tipi di scenario che si incontrano.

Otto grafici molto simili, ciascuno con tre nodi collegati a un singolo nodo.

Sono molti grafici molto simili tra loro. Poiché i tre input rappresentano sempre "weekend", "tempo" e "pioggia", è possibile sovrapporli. Se si spostano gli output in modo che non si tocchino, si ottiene un grafico combinato che ha questo aspetto.

Un grafico con tre nodi su un lato e otto sull'altro. Ogni nodo è collegato con una linea.

L'importanza di ogni scenario dipende dagli input specifici. Ma conoscerne l'importanza è solo una metà dell'opera. Ogni scenario deve influire sulla stima finale in modo diverso.

Ad esempio, il tragitto verso il negozio nello scenario weekend-pomeriggio-sole dovrebbe richiedere molto più tempo. Facciamo un adeguamento dello scenario assegnandogli un +5. Quando facciamo i calcoli per elaborare una stima, il risultato è un numero maggiore. Già che ci siamo, diamo allo scenario giorno feriale-mattina-pioggia un adeguamento di -4, poiché sappiamo che i tragitti per comprare il latte a quell'ora sono più brevi.

Ogni scenario ha il proprio adeguamento, che è ciò che chiamiamo bias. In questo caso, il bias è utile perché ci aiuta a ottenere una stima più accurata. Ridisegniamo il nostro grafico per includere il bias di ogni scenario.

Un grafico con tre nodi su un lato e otto sull'altro, ciascuno con un proprio numero positivo o negativo. Ogni nodo è collegato con una linea.

Cosa fare quindi con questi otto scenari e i relativi bias? Con un po' di matematica intelligente, possiamo combinarli in una stima finale. Alcuni scenari dovrebbero contribuire più di altri, quindi, come avrai immaginato, abbiamo bisogno di più pesi. Possiamo aggiornare il nostro grafico per mostrare come gli scenari si collegano alla stima finale con forze diverse.

Un grafico con tre nodi a sinistra, otto al centro e uno a destra. Le linee collegano la sinistra al centro e il centro alla destra.

Questo è il nostro nuovo modello. Si spera che più connessioni significhino stime migliori. Questa rete di connessioni, basata su pesi e bias, è un esempio di rete neurale. La chiamiamo così perché le connessioni, forgiate dall'esperienza (dati), ricordano il modo in cui sono collegati i neuroni di un cervello.

E anche se la parola scenario inizialmente va bene per descrivere una combinazione univoca di fattori, in realtà dovremmo usare la parola nodo per esprimere lo stesso concetto. È la parola che usano gli esperti, quindi d'ora in poi la useremo anche noi.

Aggiungere complessità alle reti neurali

Il nostro nuovo modello di tragitto al negozio del latte è un esempio piuttosto elementare di rete neurale. Nella pratica il modello può diventare molto complesso. Vediamo alcuni dei modi in cui i ricercatori configurano le reti neurali per ottenere risultati migliori per compiti specifici.

Innanzitutto, potresti chiederti perché abbiamo scelto otto nodi tra gli input e gli output. In realtà questo numero può essere flessibile. Sappiamo che in assenza di nodi le stime saranno approssimative. Allo stesso modo, un numero troppo basso di nodi potrebbe non cogliere tutte le sfumature del sistema che stiamo cercando di modellare. Ma anche avere troppi nodi è un problema. Non vogliamo che il computer debba fare più calcoli del necessario. Esiste quindi un punto di equilibrio per il numero di nodi che ci permette di ottenere buoni risultati con il minimo sforzo. La scelta del numero giusto fa parte della progettazione di una buona rete neurale.

C'è un'altra cosa che possiamo fare per rendere le reti neurali artificiali più simili alle nostre reti organiche. Si tratta del modo in cui le nostre menti spesso saltano da un'idea all'altra per trovare connessioni tra due cose che non sono collegate in modo ovvio. Alcune delle intuizioni più brillanti sono il risultato di diversi salti. E se potessimo creare una rete neurale in grado di fare più salti? Possiamo! Lo facciamo aggiungendo altri nodi come livelli, collegando ogni nodo al nodo adiacente.

Diagramma di una rete neurale con due livelli di nodi tra input e output.

L'addestramento dell'IA eseguito aggiungendo ulteriori livelli per trovare un significato nascosto nei dati è ciò che chiamiamo deep learning. Grazie alla grande di potenza di calcolo disponibile, molte reti neurali sono progettate per avere più livelli. Anche in questo caso, il numero ottimale di livelli è un compromesso tra il numero di calcoli richiesti e la qualità dei risultati prodotti.

Più che matematica mentale, è matematica delle reti neurali

E ora parliamo dei calcoli. Finora abbiamo sorvolato sulla parte dell'addestramento delle reti neurali che riguarda i calcoli. Lo abbiamo fatto per diversi motivi. Per prima cosa, i calcoli possono diventare rapidamente molto complessi. Ad esempio, ecco un frammento di una ricerca sulle reti neurali.

Schermata di un documento molto tecnico su una ricerca sulle reti neurali

Sì, è una cosa molto impegnativa.

In secondo luogo, i calcoli esatti dipenderanno dal tipo di operazione per cui si sta addestrando la rete neurale. In terzo luogo, ogni nuovo lavoro di ricerca aggiorna i calcoli man mano che si capisce cosa funziona meglio per l'addestramento di modelli diversi.

Quindi, la progettazione di una rete neurale implica la scelta del numero di nodi, dei livelli e dei calcoli appropriati per l'operazione per cui si effettua l'addestramento. Una volta preparata l'architettura del modello, devi lasciare che il computer usi quei calcoli sofisticati per eseguire la sua routine di ipotesi e verifica. Alla fine capirà quali sono i pesi e i bias migliori per fornire stime ottimali.

E questo ci porta a un aspetto un po' inquietante delle reti neurali artificiali. Immagina un talent scout esperto che sta cercando un futuro campione di baseball. "Lo riconoscerò quando lo vedrò", potrebbe dire. Non può spiegare come lo riconoscerà, lo farà e basta. Allo stesso modo, la nostra rete neurale non può spiegare perché certi fattori sono importanti. Certo, possiamo osservare i valori attribuiti a ciascun peso e bias, ma la rilevanza di un numero che è il risultato di una diverse connessioni nidificate ci sfugge.

Proprio come la mente del talent scout, anche la nostra rete neurale è una scatola nera. Poiché non osserviamo i livelli tra input e output, facciamo riferimento agli stessi come a livelli nascosti.

Conclusioni

Per riassumere, le reti neurali sono un insieme di nodi, livelli, pesi, bias e un mucchio di calcoli. Tutti questi elementi, insieme, imitano le nostre reti neurali organiche. Ogni rete neurale è accuratamente regolata per un compito specifico. Forse è in grado di prevedere la pioggia, forse classifica le piante o forse mantiene la tua auto al centro della corsia in autostrada. Qualunque sia l'operazione da svolgere, le reti neurali sono una parte importante di ciò che fa sembrare magica l'intelligenza artificiale. E ora ne sai un po' di più su come funziona il trucco.

Risorse