Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Data fitting con l’app Neural Net Fitting

Questo esempio mostra come addestrare una rete neurale superficiale al data fitting con l’app Neural Net Fitting.

Apri l’app Neural Net Fitting tramite nftool.

nftool

Selezione dei dati

L’app Neural Net Fitting contiene dei dati esemplificativi che ti aiuteranno ad iniziare ad addestrare una rete neurale.

Per importare i dati esemplificativi sul grasso corporeo, seleziona Import > Import Body Fat Data Set (Importare > Importare set di dati grasso corporeo). È possibile utilizzare questi dati per addestrare una rete neurale a eseguire la stima del grasso corporeo di un soggetto a partire da una serie di misure. Se si importano dati propri da un file o da workspace, occorre specificare i predittori e le risposte, e se le osservazioni siano distribuite in righe o colonne.

Le informazioni sui dati importati compaiono nel Model Summary (Riepilogo modello). Questo set di dati contiene 252 osservazioni, con 13 feature ciascuna. Le risposte contengono la percentuale di grasso corporeo per ogni osservazione.

Suddividi i dati in set di addestramento, convalida e prova. Mantieni le impostazioni predefinite. I dati si suddividono in:

  • 70% per l’addestramento.

  • 15% per convalidare che la rete stia generalizzando e per interrompere l’addestramento prima di un overfitting.

  • 15% per testare in maniera indipendente la generalizzazione della rete.

Per ulteriori informazioni sulla suddivisione dei dati, vedere Divide Data for Optimal Neural Network Training.

Creazione della rete

La rete è una rete feed-forward a due livelli con funzione di trasferimento sigmoidale nel livello nascosto e una funzione di trasferimento lineare nel livello di output. Il valore delle Layer size (Dimensioni del livello) definisce il numero di neuroni nascosti. Mantieni le dimensioni di livello predefinite, 10. È possibile vedere l’architettura di rete nel pannello Network. Il grafico della rete si aggiorna in base ai dati di input. In questo esempio, i dati contengono 13 input (feature) e un output.

Addestramento della rete

Per addestrare la rete, seleziona Train > Train with Levenberg-Marquardt (Addestrare > Addestrare con Levenberg-Marquardt). Questo è l’algoritmo di addestramento predefinito ed equivale alla pressione del tasto Train (Addestrare).

L’addestramento con il metodo di Levenberg-Marquardt (trainlm) è consigliato per la maggior parte dei problemi. Per problemi piccoli o in presenza di rumore, la regolarizzazione bayesiana (trainbr) può ottenere una soluzione migliore, anche se richiede tempi maggiori. Per problemi più grandi si consiglia l’impostazione Gradiente coniugato scalato (trainscg) in quanto utilizza i calcoli dei gradienti che sono più efficienti sotto il profilo della memoria rispetto ai calcoli jacobiani utilizzati dagli altri due algoritmi.

Nel pannello Training (Addestramento) si possono vedere i progressi dell’addestramento. L’addestramento continua fino al raggiungimento di uno dei criteri di arresto. In questo esempio, l’addestramento continua fino a quando l’errore di convalida aumenta consecutivamente per sei iterazioni consecutive (“Criterio di convalida soddisfatto”).

Analisi dei risultati

Il Model Summary (Riepilogo modello) contiene informazioni sull’algoritmo di addestramento e i risultati dell’addestramento per ogni set di dati.

È possibile analizzare ulteriormente i risultati generando dei grafici. Per tracciare la regressione lineare, nella sezione Plots (Grafici), fai clic su Regression (Regressione). Il grafico della regressione mostra le previsioni della rete (output) rispetto alle risposte (target) per i set di addestramento, convalida e test.

Per un fit perfetto, i dati dovrebbero ricadere sulla linea a 45 gradi, in cui gli output della rete sono uguali alle risposte. Per questo problema il fit è ragionevolmente buono per tutti i set di dati. Nel caso siano necessari risultati più accurati, è possibile riaddestrare la rete facendo nuovamente clic su Train (Addestrare). Ogni addestramento ha pesi e bias iniziali della rete diversi e può produrre una rete migliore a seguito del riaddestramento.

Visualizza l’istogramma degli errori per una ulteriore verifica della prestazione della rete. Nella sezione Plots (Grafici), fai clic su Error Histogram (Istogramma errori).

Le barre blu rappresentano i dati di addestramento, le barre verdi i dati di convalida e le barre rosse rappresentano i dati di test. L’istogramma fornisce un’indicazione degli outlier, ovvero punti di dati in cui il fit è notevolmente peggiore rispetto alla maggioranza dei dati. Conviene verificare gli outlier per stabilire se i dati siano di scarsa qualità o se i punti di dati siano diversi dal resto del set di dati. Se gli outlier sono punti di dati validi, ma sono diversi dal resto dei dati, significa che la rete sta estrapolando questi punti. È opportuno raccogliere più dati simili agli outlier e riaddestrare la rete.

Se non si è soddisfatti delle prestazioni della rete, si può procedere in uno dei seguenti modi:

  • Addestrare nuovamente la rete.

  • Aumentare il numero di neuroni nascosti.

  • Usare un set più ampio di dati di addestramento.

Se la performance sul set di addestramento è buona ma la performance sul set di test è scarsa, questo può indicare un overfitting del modello. Ridurre il numero di neuroni può ridurre l’overfitting.

Si può anche valutare la performance della rete su un ulteriore set di test. Per caricare ulteriori dati di test con cui valutare la rete, nella sezione Test, fai clic su Test. Il Model Summary (Riepilogo modello) mostra i risultati di test aggiuntivi. È possibile generare anche dei grafici per analizzare i risultati dei dati di test aggiuntivi.

Generazione di codice

Seleziona Generate Code > Generate Simple Training Script (Generare codice > Generare script di addestramento semplice) per creare un codice MATLAB in grado di riprodurre le fasi precedenti dalla riga di comando. La creazione di codice MATLAB può essere utile se si desidera imparare come utilizzare la funzionalità della riga di comando del toolbox per personalizzare il processo di addestramento. In Data fitting con le funzioni della riga di comando, potrai esaminare più dettagliatamente gli script generati.

Esportazione della rete

Una volta addestrata, la rete può essere esportata nel workspace o in Simulink®. È anche possibile distribuire la rete con gli strumenti di MATLAB Compiler™ e altri strumenti di generazione di codice MATLAB. Per esportare la rete addestrata e i risultati, seleziona Export Model > Esport to Workspace (Esportare modello > Esportare in Workspace).

Vedi anche

| | | | |

Argomenti complementari