Rete Neurale
Una rete neurale è un modello di intelligenza artificiale che insegna ai computer a elaborare i dati modellandoli sul funzionamento del cervello umano. Si tratta di un tipo di processo di apprendimento automatico (ML), chiamato apprendimento profondo, che utilizza nodi o neuroni interconnessi in una struttura a strati che ricorda il cervello umano. Crea un sistema adattivo che i computer utilizzano per imparare dai propri errori e migliorare continuamente. Le reti neurali artificiali tentano quindi di risolvere problemi complessi.
Come lavora una Rete Neurale
L'architettura di una rete neurale trae ispirazione dal cervello umano. Le cellule cerebrali umane, chiamate neuroni, formano una rete complessa e altamente interconnessa e si inviano segnali elettrici tra loro per aiutare gli esseri umani a elaborare le informazioni. Allo stesso modo, una rete neurale artificiale è composta da neuroni artificiali che collaborano per risolvere un problema. I neuroni artificiali sono moduli software, chiamati nodi, e le reti neurali artificiali sono programmi software o algoritmi che essenzialmente utilizzano l'informatica per risolvere calcoli matematici.
Una rete neurale di base è composta da neuroni artificiali interconnessi a tre strati:
Strato Input
Le informazioni provenienti dal mondo esterno entrano nella rete neurale a strato di input. I nodi di input elaborano i dati, li analizzano o li categorizzano e li trasmettono al strato successivo.
Strato Nascosto
I strati nascosti ricevono l'input dal strato di input o da altri strati nascosti. Le reti neurali artificiali possono avere un gran numero di strati nascosti. Ogni strato nascosto analizza l'output del strato precedente, lo elabora ulteriormente e lo passa al strato successivo.
Strato Output
Il strato di output restituisce il risultato finale di tutte le elaborazioni dei dati tramite la rete neurale artificiale. Può avere uno o più nodi. Ad esempio, se abbiamo un problema di classificazione binaria (sì/no), il strato di output avrà un singolo nodo di output, che restituirà 1 o 0. Se, invece, abbiamo un problema di classificazione multi-classe, il strato di output potrebbe essere costituito da più nodi di output.
Architettura di una Rete Neurale Profonda
Le reti neurali profonde, o reti di apprendimento profondo, presentano molteplici strati nascosti con milioni di neuroni artificiali connessi tra loro. Un numero, chiamato peso, rappresenta le connessioni tra ciascun nodo. Il peso è positivo se un nodo stimola un altro nodo, negativo se lo sopprime. I nodi con valori di peso più elevati esercitano una maggiore influenza sugli altri.
Teoricamente, le reti neurali profonde possono mappare qualsiasi tipo di input su qualsiasi tipo di output. Tuttavia, richiedono un addestramento maggiore rispetto ad altri metodi di apprendimento automatico. Richiedono milioni di esempi di dati di addestramento, rispetto alle centinaia o migliaia di cui una rete più semplice ha bisogno.
Funzione di Attivazione
Ogni strato definisce una funzione matematica chiamata Funzione di Attivazione. Questa funzione riceve l'input dal strato precedente moltiplicato per il peso e produce l'output per il strato successivo.
Addestramento
L'addestramento di una rete neurale consiste nell'assegnare i valori migliori a tutti i pesi per ridurre al minimo la differenza tra la previsione del modello e il valore target effettivo.
Funzione di Perdita
Una funzione di perdita (chiamata anche funzione di costo o funzione di errore) misura la differenza tra le previsioni di un modello e i valori target effettivi. Quantifica l'efficacia della rete e guida il processo di apprendimento fornendo una misura numerica dell'"errore". L'obiettivo durante l'addestramento è minimizzare la funzione di perdita, il che significa che le previsioni del modello dovrebbero avvicinarsi ai valori effettivi.
Configurare una Rete Neurale
L'input di una rete neurale è una tupla di numeri chiamata caratteristica, quindi specifica il nome di ciascuna caratteristica nel campo Caratteristiche come stringa di nomi separati da virgole.
L'output è una delle possibili categorie specificate come stringa di opzioni separate da virgole nel campo Categorie.
Il campo Batch rappresenta il numero di campioni restituiti dall'iteratore dei campioni durante l'addestramento.
Seme è un numero utilizzato come seme per il generatore interno di numeri casuali.
Schema di Inizializzazione dei Pesi è l'algoritmo da utilizzare per assegnare il valore iniziale a tutti i pesi.
Nel selettore Funzione di Perdita, si indica quale funzione utilizzare per misurare l'errore dei valori previsti.
Il selettore Funzione di Attivazione indica semplicemente la funzione predefinita da utilizzare per i strati.
Sul lato destro del pannello, si definiscono tutti gli strati, assegnando una funzione di attivazione specifica per ciascuno di essi.
Valutazione
La valutazione consente di testare la rete su un sottoinsieme casuale dello stesso set di dati di addestramento, per avviare il processo scegliere la voce Inizia la valutazione dal menu contestuale e al termine guardare i risultati nella scheda Valutazione.
Matrice di confusione
La matrice di confusione è una rappresentazione sintetica delle prestazioni della rete neurale.
Ecco una scomposizione di ciò che mostra una matrice di confusione:
- Righe: rappresentano le etichette di classe effettive (reali) dei dati
- Colonne: rappresentano le etichette di classe previste dal modello
- Celle: ogni cella della matrice rappresenta una combinazione specifica di etichette effettive e previste, con il numero nella cella che indica quante istanze rientrano in quella categoria