Main Content

mapminmax

Elabora le matrici mappando i valori minimi e massimi della riga su [-1 1]

Descrizione

esempio

Suggerimento

Per ridimensionare i dati per i workflow di Deep Learning, utilizzare la coppia di valori del nome per il livello di input.

[Y,PS] = mapminmax(X,YMIN,YMAX) considera una matrice N per Q, X e facoltativamente un valore minimo e massimo per ciascuna riga di Y, YMIN e YMAX e restituisce una matrice N per Q, Y e delle impostazioni del processo che consentono un’elaborazione coerente dei valori PS.

mapminmax elabora le matrici normalizzando i valori minimi e massimi di ciascuna riga su [YMIN, YMAX].

[Y,PS] = mapminmax(X,FP) considera i parametri come una struttura: FP.ymin, FP.ymax.

Y = mapminmax('apply',X,PS) restituisce Y, dato X e le impostazioni PS.

X = mapminmax('reverse',Y,PS) restituisce X, dato Y e le impostazioni PS.

dx_dy = mapminmax('dx_dy',X,Y,PS) restituisce la derivata inversa.

Esempi

comprimi tutto

Questo esempio mostra come formattare una matrice in modo che i valori minimi e massimi di ciascuna riga siano mappati nell’intervallo predefinito [-1,+1].

x1 = [1 2 4; 1 1 1; 3 2 2; 0 0 0]
[y1,PS] = mapminmax(x1)

Successivamente, applicare le stesse impostazioni di elaborazione ai nuovi valori.

x2 = [5 2 3; 1 1 1; 6 7 3; 0 0 0]
y2 = mapminmax('apply',x2,PS)

Invertire l’elaborazione di y1 per ottenere nuovamente x1.

x1_again = mapminmax('reverse',y1,PS)

Argomenti di input

comprimi tutto

Matrice che si desidera elaborare, specificata come una matrice N per Q.

Valore minimo per ciascuna riga della matrice di output Y, specificata come scalare.

Valore massimo per ciascuna riga della matrice di output Y, specificata come scalare.

Argomenti di output

comprimi tutto

Matrice elaborata, restituita come una matrice N per Q.

Impostazioni del processo che consentono un'elaborazione coerente dei valori, restituiti come una struttura.

Ulteriori informazioni

comprimi tutto

Normalizzazione degli input e dei target utilizzando mapminmax

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.

Algoritmi

Si assume che X abbia solo valori reali finiti e che gli elementi di ciascuna riga non siano tutti uguali. (Se xmax=xmin o se xmax o xmin sono non-finiti, allora y=x e non si verifica alcun cambiamento).

y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;

Cronologia versioni

Introdotto in R2006a