Main Content

mapminmax

Transformer des matrices en mappant des valeurs de ligne minimales et maximales sur [-1 1]

Description

exemple

Conseil

Pour remettre à l’échelle des données pour des workflows de Deep Learning, utilisez la paire nom-valeur de normalisation pour la couche d’entrée.

[Y,PS] = mapminmax(X,YMIN,YMAX) prend une matrice X de dimension N x Q, et en option une valeur minimale et une valeur maximale pour chaque ligne de Y, YMIN et YMAX, et renvoie une matrice Y de dimension N x Q, et des paramètres de processus qui permettent un traitement cohérent des valeurs, PS.

mapminmax traite des matrices en normalisant les valeurs minimales et maximales de chaque ligne sur [YMIN, YMAX].

[Y,PS] = mapminmax(X,FP) prend des paramètres comme une struct : FP.ymin, FP.ymax.

Y = mapminmax('apply',X,PS) renvoie Y, selon X et des paramètres PS.

X = mapminmax('reverse',Y,PS) renvoie X, selon Y et des paramètres PS.

dx_dy = mapminmax('dx_dy',X,Y,PS) renvoie la dérivée inverse.

Exemples

réduire tout

Cet exemple montre comment formater une matrice afin que les valeurs minimales et maximales de chaque ligne soient mappées dans l’intervalle par défaut [-1,+1].

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

Ensuite, appliquez les mêmes paramètres de traitement aux nouvelles valeurs.

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

Inversez le traitement de y1 pour retrouver x1.

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

Arguments d'entrée

réduire tout

Matrice que vous souhaitez traiter, définie par une matrice N x Q.

Valeur minimale pour chaque ligne de la matrice de sortie Y, définie par un scalaire.

Valeur maximale pour chaque ligne de la matrice de sortie Y, définie par un scalaire.

Arguments de sortie

réduire tout

Matrice traitée, renvoyée comme une matrice N x Q.

Paramètres de processus qui permettent le traitement cohérent de valeurs, renvoyés comme une structure.

En savoir plus

réduire tout

Normaliser des entrées et cibles avec mapminmax

Avant l’apprentissage, il est souvent utile de mettre à l’échelle les entrées et cibles afin qu’elles se trouvent toujours dans une plage donnée. La fonction mapminmax met à l’échelle les entrées et cibles afin qu’elles se trouvent dans la plage [–1,1]. Le code suivant illustre comme utiliser cette fonction.

[pn,ps] = mapminmax(p);
[tn,ts] = mapminmax(t);
net = train(net,pn,tn);

Les entrées et cibles d’origine du réseau sont données dans les matrices p et t. Les entrées et cibles normalisées pn et tn qui sont renvoyées se trouveront toutes dans l’intervalle [–1,1]. Les structures ps et ts contiennent les paramètres, dans ce cas les valeurs minimales et maximales des entrées et cibles d’origine. Une fois que le réseau a été entraîné, il faut utiliser les paramètres ps pour transformer les futures entrées qui seront appliquées au réseau. En effet, ils deviennent un élément du réseau, tout comme les poids et biais du réseau.

Si mapminmax est utilisé pour mettre à l’échelle les cibles, la sortie du réseau sera entraînée pour produire des sorties dans la plage [–1,1]. Pour convertir de nouveau ces sorties normalisées dans les unités utilisées pour les cibles d’origine, utilisez les paramètres. ts. Le code suivant simule le réseau qui a été entraîné dans le code précédent, puis convertit de nouveau la sortie du réseau dans les unités d’origine.

an = sim(net,pn);
a = mapminmax('reverse',an,ts);

La sortie du réseau an correspond aux cibles normalisées tn. La sortie du réseau non normalisée a a les mêmes unités que les cibles d’origine t.

Si mapminmax est utilisé pour le prétraitement des données du jeu d’apprentissage, chaque fois que le réseau entraîné est utilisé avec de nouvelles entrées, celles-ci doivent être prétraitées avec les valeurs minimales et maximales qui ont été calculées pour le jeu d’apprentissage enregistré dans les paramètres ps. Le code suivant applique un nouveau jeu d’entrées au réseau déjà entraîné.

pnewn = mapminmax('apply',pnew,ps);
anewn = sim(net,pnewn);
anew = mapminmax('reverse',anewn,ts);

Pour la plupart des réseaux, notamment feedforwardnet, ces étapes sont effectuées automatiquement, de sorte que vous devez seulement utiliser la commande sim.

Algorithmes

On suppose que X a uniquement des valeurs réelles finies et que les éléments de chaque ligne ne sont pas tous égaux. (Si xmax=xmin, ou si xmax ou xmin sont non finis, y=x et aucun changement n’a lieu.)

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

Historique des versions

Introduit dans R2006a