mozzicone Cos'è la retropropagazione? - Unite.AI
Seguici sui social
Corso di perfezionamento sull'intelligenza artificiale:

AI 101

Cos'è la retropropagazione?

mm
aggiornato on

Cos'è la retropropagazione?

I sistemi di deep learning sono in grado di apprendere modelli estremamente complessi e lo fanno regolando i loro pesi. Come vengono regolati esattamente i pesi di una rete neurale profonda? Sono regolati attraverso un processo detto retropropagazione. Senza la propagazione all’indietro, le reti neurali profonde non sarebbero in grado di svolgere compiti come riconoscere le immagini e interpretare il linguaggio naturale. Comprendere come funziona la backpropagation è fondamentale per comprendere le reti neurali profonde in generale, quindi discutiamo della backpropagation e vediamo come viene utilizzato il processo per regolare i pesi di una rete.

La backpropagazione può essere difficile da comprendere e i calcoli utilizzati per eseguirla possono essere piuttosto complessi. Questo articolo cercherà di darti una comprensione intuitiva della propagazione all'indietro, utilizzando poco in termini di matematica complessa. Tuttavia, è necessaria una discussione sui calcoli dietro la propagazione inversa.

L'obiettivo della retropropagazione

Iniziamo definendo l'obiettivo della retropropagazione. I pesi di una rete neurale profonda sono la forza delle connessioni tra le unità di una rete neurale. Quando la rete neurale viene stabilita, vengono fatte ipotesi su come le unità in uno strato sono collegate agli strati uniti ad essa. Man mano che i dati si spostano attraverso la rete neurale, vengono calcolati i pesi e vengono fatte delle ipotesi. Quando i dati raggiungono il livello finale della rete, viene effettuata una previsione su come le funzionalità sono correlate alle classi nel set di dati. La differenza tra i valori previsti e i valori effettivi è la perdita/errore e l'obiettivo della retropropagazione è quello di ridurre la perdita. Ciò si ottiene regolando i pesi della rete, rendendo le ipotesi più simili alle vere relazioni tra le caratteristiche di input.

Formazione di una rete neurale profonda

Prima che la backpropagation possa essere eseguita su a rete neurale, deve essere eseguito il regolare/forward training pass di una rete neurale. Quando viene creata una rete neurale, viene inizializzato un insieme di pesi. Il valore dei pesi verrà modificato man mano che la rete viene addestrata. Il passaggio di addestramento in avanti di una rete neurale può essere concepito come tre fasi distinte: attivazione del neurone, trasferimento del neurone e propagazione in avanti.

Quando si addestra una rete neurale profonda, è necessario utilizzare più funzioni matematiche. I neuroni in una rete neurale profonda sono costituiti dai dati in entrata e da una funzione di attivazione, che determina il valore necessario per attivare il nodo. Il valore di attivazione di un neurone viene calcolato con più componenti, essendo una somma ponderata degli input. I pesi ei valori di input dipendono dall'indice dei nodi utilizzati per calcolare l'attivazione. Un altro numero deve essere preso in considerazione quando si calcola il valore di attivazione, un valore di polarizzazione. I valori di bias non fluttuano, quindi non vengono moltiplicati insieme al peso e agli input, vengono semplicemente sommati. Tutto ciò significa che la seguente equazione potrebbe essere utilizzata per calcolare il valore di attivazione:

Attivazione = sum(weight * input) + bias

Dopo che il neurone è stato attivato, viene utilizzata una funzione di attivazione per determinare quale sarà l'output dell'output effettivo del neurone. Diverse funzioni di attivazione sono ottimali per diversi compiti di apprendimento, ma le funzioni di attivazione comunemente utilizzate includono la funzione sigmoidea, la funzione Tanh e la funzione ReLU.

Una volta calcolate le uscite del neurone eseguendo il valore di attivazione attraverso la funzione di attivazione desiderata, viene eseguita la propagazione in avanti. La propagazione in avanti consiste semplicemente nel prendere gli output di un livello e renderli gli input del livello successivo. I nuovi input vengono quindi utilizzati per calcolare le nuove funzioni di attivazione e l'output di questa operazione viene passato al livello successivo. Questo processo continua fino alla fine della rete neurale.

Backpropagation nella rete

Il processo di backpropagation prende le decisioni finali del passaggio di addestramento di un modello e quindi determina gli errori in queste decisioni. Gli errori sono calcolati confrontando gli output/decisioni della rete e gli output attesi/desiderati della rete.

Una volta calcolati gli errori nelle decisioni della rete, queste informazioni vengono propagate all'indietro attraverso la rete ei parametri della rete vengono modificati lungo il percorso. Il metodo utilizzato per aggiornare i pesi della rete si basa sul calcolo, in particolare, si basa sulla regola della catena. Tuttavia, non è necessaria una comprensione del calcolo per comprendere l'idea della propagazione alle spalle. Sappi solo che quando un valore di output viene fornito da un neurone, la pendenza del valore di output viene calcolata con una funzione di trasferimento, producendo un output derivato. Quando si esegue la retropropagazione, l'errore per un neurone specifico viene calcolato in base a quanto segue formula:

errore = (output_previsto – output_effettivo) * pendenza del valore di output del neurone

Quando si opera sui neuroni nel livello di output, il valore della classe viene utilizzato come valore atteso. Dopo che l'errore è stato calcolato, l'errore viene utilizzato come input per i neuroni nello strato nascosto, il che significa che l'errore per questo strato nascosto è costituito dagli errori ponderati dei neuroni trovati all'interno dello strato di output. I calcoli degli errori viaggiano all'indietro attraverso la rete lungo la rete dei pesi.

Dopo aver calcolato gli errori per la rete, i pesi nella rete devono essere aggiornati. Come accennato, il calcolo dell'errore comporta la determinazione della pendenza del valore di uscita. Dopo aver calcolato la pendenza, è possibile utilizzare un processo noto come discesa del gradiente per regolare i pesi nella rete. Un gradiente è un pendio, il cui angolo/pendenza può essere misurato. La pendenza viene calcolata tracciando la "y sopra" o la "salita" sulla "corsa". Nel caso della rete neurale e del tasso di errore, la “y” è l'errore calcolato, mentre la “x” sono i parametri della rete. I parametri della rete hanno una relazione con i valori di errore calcolati e, man mano che i pesi della rete vengono modificati, l'errore aumenta o diminuisce.

La "discendente del gradiente" è il processo di aggiornamento dei pesi in modo che il tasso di errore diminuisca. La retropropagazione viene utilizzata per prevedere la relazione tra i parametri della rete neurale e il tasso di errore, che imposta la rete per la discesa del gradiente. L'addestramento di una rete con gradiente discendente comportava il calcolo dei pesi attraverso la propagazione in avanti, la retropropagazione dell'errore e quindi l'aggiornamento dei pesi della rete.

Blogger e programmatore con specialità in machine Learning ed Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.