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.