Prima dell'addestramento, è spesso utile scalare gli input e i target in modo che rientrino sempre in un intervallo specificato. La funzione mapminmax
scala gli input e i target in modo che rientrino nell’intervallo [–1,1]. Il codice seguente illustra come utilizzare questa funzione.
[pn,ps] = mapminmax(p);
[tn,ts] = mapminmax(t);
net = train(net,pn,tn);
Gli input e i target originali della rete sono dati nelle matrici p
e t
. Gli input e i target normalizzati pn
e tn
che vengono restituiti cadranno tutti nell’intervallo [–1,1]. Le strutture ps
e ts
comprendono le impostazioni, in questo caso i valori minimi e massimi degli ingressi e dei target originali. Dopo che la rete è stata addestrata, le impostazioni ps
dovrebbero essere utilizzate per trasformare qualsiasi input futuro che viene applicato alla rete. Diventano effettivamente una parte della rete, proprio come i pesi e i bias.
Se mapminmax
viene utilizzato per scalare i target, l’output della rete sarà addestrato per restituire output nell’intervallo [–1,1]. Per riconvertire questi input nelle stesse unità che erano state utilizzate per i target originali, utilizzare le impostazioni ts
. Il codice seguente simula la rete che è stata addestrata nel codice precedente e poi riconverte l’output della rete nelle unità originali.
an = sim(net,pn);
a = mapminmax('reverse',an,ts);
L’output an
della rete corrisponde ai target normalizzati tn
. L’output non normalizzato a
della rete è nelle stesse unità dei target originali t
.
Se mapminmax
è utilizzato per pre-elaborare i dati del set di addestramento, ogni volta che la rete addestrata viene utilizzata con nuovi input, questi dovrebbero essere pre-elaborati con i minimi e i massimi che erano stati calcolati per il set di addestramento memorizzato nelle impostazioni ps
. Il codice seguente applica un nuovo set di input alla rete già addestrata.
pnewn = mapminmax('apply',pnew,ps);
anewn = sim(net,pnewn);
anew = mapminmax('reverse',anewn,ts);
Per la maggior parte delle reti, compresa la rete feedforwardnet
, questi passaggi sono eseguiti automaticamente, per cui è sufficiente utilizzare il comando sim
.