trainlm
Retropropagazione di Levenberg-Marquardt (da rimuovere)
trainlm sarà rimossa in una prossima release. Per ulteriori informazioni, vedere Transition Legacy Neural Network Code to dlnetwork Workflows.
Per suggerimenti sull'aggiornamento del codice, vedere Version History (Storico della versione).
Descrizione
net.trainFcn = 'trainlm' visualizza la proprietà della rete trainFcn.
[ addestra la rete con trainedNet,tr] = train(net,...)trainlm.
trainlm è una funzione di addestramento della rete che aggiorna i valori di pesi e bias secondo l'ottimizzazione di Levenberg-Marquardt.
trainlm è spesso l’algoritmo di retropropagazione più veloce nella toolbox ed è vivamente consigliato come algoritmo supervisionato di prima scelta, sebbene richieda più memoria rispetto ad altri algoritmi.
L’addestramento avviene secondo i parametri di addestramento trainlm, 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.max_fail— Errori di convalida massimi. Il valore predefinito è6.net.trainParam.min_grad— Gradiente di performance massimo. Il valore predefinito è1e-7.net.trainParam.mu—muiniziale. Il valore predefinito è 0,001.net.trainParam.mu_dec— Fattore di decremento permu. Il valore predefinito è 0,1.net.trainParam.mu_inc— Fattore di incremento permu. Il valore predefinito è 10.net.trainParam.mu_max— Valore massimo permu. Il valore predefinito è1e10.net.trainParam.show— Epoche tra visualizzazioni (NaNper 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.
I vettori di convalida sono usati per interrompere l’addestramento in anticipo se la performance della rete sui vettori di convalida non riesce a migliorare o se resta uguale per max_fail epoche in una riga. I vettori di test sono usati come ulteriore controllo della corretta generalizzazione della rete, ma non hanno alcun effetto sull’addestramento.
Esempi
Argomenti di input
Argomenti di output
Limitazioni
Questa funzione utilizza i calcoli jacobiani, che presuppongono che la performance sia una media o una somma degli errori quadratici. Quindi, le reti addestrate con questa funzione devono utilizzare la funzione di performance mse o sse.
Ulteriori informazioni
Algoritmi
trainlm supporta l’addestramento con i vettori di convalida e di test se la proprietà NET.divideFcn della rete è impostata su una funzione di divisione dei dati. I vettori di convalida sono usati per interrompere l’addestramento in anticipo se la performance della rete sui vettori di convalida non riesce a migliorare o se resta uguale per max_fail epoche in una riga. I vettori di test sono usati come ulteriore controllo della corretta generalizzazione della rete, ma non hanno alcun effetto sull’addestramento.
trainlm può addestrare qualsiasi rete, a condizione che le funzioni di peso, input netto e trasferimento abbiano funzioni derivate.
La retropropagazione viene utilizzata per calcolare la matrice jacobiana jX della performance perf rispetto alle variabili di pesi e bias X. Ogni variabile viene regolata secondo il metodo di Levenberg-Marquardt,
jj = jX * jX je = jX * E dX = -(jj+I*mu) \ je
dove E indica tutti gli errori e I indica la matrice di identità.
Il valore adattivo mu aumenta di mu_inc fino a quando la modifica sopra non produce un valore di performance ridotto. La modifica viene poi apportata alla rete e mu diminuisce di mu_dec.
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.musuperamu_max.La performance di convalida (errore di convalida) è aumentata di oltre
max_failvolte dall’ultima riduzione (usando la convalida).
Cronologia versioni
Introduzione prima di R2006aVedi anche
Time Series Modeler | fitrnet (Statistics and Machine Learning Toolbox) | fitcnet (Statistics and Machine Learning Toolbox) | trainnet | trainingOptions | dlnetwork
