Main Content

traingdx

Discesa del gradiente con momento e retropropagazione della velocità di apprendimento adattivo

Descrizione

net.trainFcn = 'traingdx' visualizza la proprietà della rete trainFcn.

[trainedNet,tr] = train(net,...) addestra la rete con traingdx.

traingdx è una funzione di addestramento della rete che aggiorna i valori di peso e bias in base al momento di discesa del gradiente e alla velocità di apprendimento adattivo.

L’addestramento avviene secondo i parametri di addestramento traingdx, mostrati qui con i relativi valori predefiniti:

  • net.trainParam.epochs — Numero massimo di epoche per l’addestramento. Il valore predefinito è 1000.

  • net.trainParam.goal — Obiettivo di performance. Il valore predefinito è 0.

  • net.trainParam.lr — Velocità di apprendimento. Il valore predefinito è 0,01.

  • net.trainParam.lr_inc — Rapporto per aumentare la velocità di apprendimento. Il valore predefinito è 1,05.

  • net.trainParam.lr_dec — Rapporto per diminuire la velocità di apprendimento. Il valore predefinito è 0,7.

  • net.trainParam.max_fail — Errori di convalida massimi. Il valore predefinito è 6.

  • net.trainParam.max_perf_inc — Aumento massimo della performance. Il valore predefinito è 1.04.

  • net.trainParam.mc — Costante di momento. Il valore predefinito è 0.9.

  • net.trainParam.min_grad — Gradiente di performance massimo. Il valore predefinito è 1e-5.

  • net.trainParam.show — Epoche tra visualizzazioni (NaN per nessuna visualizzazione). Il valore predefinito è 25.

  • net.trainParam.showCommandLine — Generazione di output della riga di comando. Il valore predefinito è false.

  • net.trainParam.showWindow — Visualizzazione dell’interfaccia grafica di addestramento. Il valore predefinito è true.

  • net.trainParam.time — Tempo massimo di addestramento in secondi. Il valore predefinito è inf.

Argomenti di input

comprimi tutto

Rete di input, specificata come un oggetto di rete. Per creare un oggetto di rete, utilizzare ad esempio feedforwardnet o narxnet.

Argomenti di output

comprimi tutto

Rete addestrata, restituita come un oggetto network.

Record di addestramento (epoch e perf), restituito come una struttura i cui campi dipendono dalla funzione di addestramento della rete (net.NET.trainFcn). Può comprendere campi quali:

  • Funzioni e parametri di addestramento, divisione dei dati e performance

  • Indici di divisione dei dati per i set di addestramento, convalida e test

  • Maschere di divisione dei dati per i set di addestramento, convalida e test

  • Numero di epoche (num_epochs) ed epoca migliore (best_epoch).

  • Un elenco dei nomi degli stati di addestramento (states).

  • Campi per ciascun nome di stato che registrano il suo valore durante l'addestramento

  • Performance della rete migliore (best_perf, best_vperf, best_tperf)

Ulteriori informazioni

comprimi tutto

Utilizzo della rete

È possibile creare una rete standard che utilizza traingdx con feedforwardnet o cascadeforwardnet. Per preparare una rete personalizzata da addestrare con traingdx,

  1. Impostare net.trainFcn su 'traingdx'. Questa operazione imposta net.trainParam sui parametri predefiniti di traingdx.

  2. Impostare le proprietà di net.trainParam sui valori desiderati.

In entrambi i casi, chiamare train con la rete che si ottiene addestra la rete con traingdx.

Per gli esempi, vedere help feedforwardnet e help cascadeforwardnet.

Algoritmi

La funzione traingdx combina la velocità di apprendimento adattivo con l'addestramento con momento. Viene invocato allo stesso modo di traingda, ad eccezione del fatto che presenta il coefficiente di momento mc come ulteriore parametro di addestramento.

traingdx può addestrare qualsiasi rete, a condizione che le funzioni di peso, input netto e trasferimento abbiano funzioni derivate.

La retropropagazione viene utilizzata per calcolare le derivate della performance perf rispetto alle variabili di peso e bias X. Ciascuna variabile viene regolata in base alla discesa del gradiente con momento,

dX = mc*dXprev + lr*mc*dperf/dX

dove dXprev è la modifica precedente di peso o di bias.

Per ciascuna epoca, se la performance diminuisce verso l'obiettivo, la velocità di apprendimento viene incrementata del fattore lr_inc. Se la performance aumenta più del fattore max_perf_inc, la velocità di apprendimento viene regolata del fattore lr_dec e la modifica che ha aumentato la performance non viene applicata.

L’addestramento si interrompe quando si verifica una delle condizioni seguenti:

  • Viene raggiunto il numero massimo di epochs (ripetizioni).

  • Viene superata la quantità massima di time.

  • La performance è minimizzata al goal.

  • Il gradiente di performance massimo scende al di sotto di min_grad.

  • La performance di convalida (errore di convalida) è aumentata di oltre max_fail volte dall’ultima riduzione (usando la convalida).

Cronologia versioni

Introduzione prima di R2006a