PyTorch - Nozioni di base sulla rete neurale
Il principio principale della rete neurale include una raccolta di elementi di base, vale a dire, neurone artificiale o perceptron. Include diversi ingressi di base come x1, x2… .. xn che produce un'uscita binaria se la somma è maggiore del potenziale di attivazione.
La rappresentazione schematica del neurone campione è menzionata di seguito:
L'output generato può essere considerato come la somma ponderata con potenziale di attivazione o bias.
$$ Output = \ sum_jw_jx_j + Bias $$
La tipica architettura di rete neurale è descritta di seguito:
I livelli tra input e output sono indicati come livelli nascosti e la densità e il tipo di connessioni tra i livelli è la configurazione. Ad esempio, una configurazione completamente connessa ha tutti i neuroni dello strato L collegati a quelli di L + 1. Per una localizzazione più pronunciata, possiamo collegare solo un quartiere locale, diciamo nove neuroni, allo strato successivo. La Figura 1-9 illustra due livelli nascosti con connessioni dense.
I vari tipi di reti neurali sono i seguenti:
Reti neurali feedforward
Le reti neurali feedforward includono unità di base della famiglia di reti neurali. Il movimento dei dati in questo tipo di rete neurale è dal livello di input al livello di output, attraverso gli attuali livelli nascosti. L'output di un livello funge da livello di input con restrizioni su qualsiasi tipo di loop nell'architettura di rete.
Reti neurali ricorrenti
Le reti neurali ricorrenti si verificano quando il modello di dati cambia di conseguenza in un periodo. In RNN, lo stesso layer viene applicato per accettare i parametri di input e visualizzare i parametri di output nella rete neurale specificata.
Le reti neurali possono essere costruite utilizzando il pacchetto torch.nn.
È una semplice rete feed-forward. Prende l'input, lo alimenta attraverso diversi livelli uno dopo l'altro e infine fornisce l'output.
Con l'aiuto di PyTorch, possiamo utilizzare i seguenti passaggi per la tipica procedura di addestramento per una rete neurale:
- Definisci la rete neurale che ha alcuni parametri (o pesi) apprendibili.
- Itera su un set di dati di input.
- Elaborare l'input attraverso la rete.
- Calcola la perdita (quanto è lontano l'output dall'essere corretto).
- Propaga i gradienti nei parametri della rete.
- Aggiorna i pesi della rete, in genere utilizzando un semplice aggiornamento come indicato di seguito
rule: weight = weight -learning_rate * gradient