mapminmax

Обработайте матрицы путем отображения минимального и максимального значений строк в [-1 1]

Описание

пример

Совет

Чтобы переформулировать данные для рабочих процессов глубокого обучения, используйте пару Normalization имени value для слоя входа.

[Y,PS] = mapminmax(X,YMIN,YMAX) принимает N-by- Q матрица, X и опционально минимальное и максимальное значение для каждой строки Y, YMIN и YMAX, и возвращает N-by- Q матрица, Yи настройки процесса, которые позволяют последовательно обрабатывать значения, PS.

mapminmax обрабатывает матрицы путем нормализации минимального и максимального значений каждой строки к [YMIN, YMAX].

[Y,PS] = mapminmax(X,FP) принимает параметры как struct: FP.ymin, FP.ymax.

Y = mapminmax('apply',X,PS) возвращает Y, заданные X и настройки PS.

X = mapminmax('reverse',Y,PS) возвращает X, заданные Y и настройки PS.

dx_dy = mapminmax('dx_dy',X,Y,PS) возвращает обратную производную.

Примеры

свернуть все

В этом примере показано, как форматировать матрицу так, чтобы минимальное и максимальное значения каждой строки были сопоставлены с интервалом по умолчанию [-1,+1].

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

Затем примените те же параметры обработки к новым значениям.

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

Противоположная обработка y1 чтобы получить x1 снова.

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

Входные параметры

свернуть все

Матрица, которую вы хотите обработать, заданная как N-by- Q матрица.

Минимальное значение для каждой строки выходной матрицы Y, заданный как скаляр.

Максимальное значение для каждой строки выходной матрицы Y, заданный как скаляр.

Выходные аргументы

свернуть все

Обработанная матрица, возвращенная как N-by- Q матрица.

Настройки процесса, которые позволяют последовательно обрабатывать значения, возвращенные как структура.

Подробнее о

свернуть все

Нормализуйте входы и цели с помощью mapminmax

Перед обучением часто полезно масштабировать входные параметры и цели так, чтобы они всегда попадали в заданную область. Функция mapminmax масштабирует входы и цели так, чтобы они упали в области значений [-1,1]. Следующий код иллюстрирует, как использовать эту функцию.

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

Исходные входные и целевые параметры сети приведены в матрицах p и t. Нормированные входы и цели pn и tn все возвращенные значения будут находиться в интервале [-1,1]. Структуры ps и ts содержат настройки, в этом случае минимальное и максимальное значения исходных входов и целей. После обучения сети ps настройки должны использоваться для преобразования любых будущих входов, которые применяются к сети. Они фактически становятся частью сети, как и веса и смещения сети.

Если mapminmax используется для масштабирования целевых показателей, затем выходы сети будут обучены для получения выходов в области значений [-1,1]. Чтобы преобразовать эти выходы обратно в те же модули, которые использовались для исходных целей, используйте настройки ts. Следующий код моделирует сеть, которая была обучена в предыдущем коде, а затем преобразует выход сети обратно в исходные модули.

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

Выходные данные сети an соответствует нормированным целям tn. Ненормализованный выходной a сети находится в тех же модулях измерения, что и исходные цели t.

Если mapminmax используется для предварительной обработки набора обучающих данных данных, затем всякий раз, когда обученная сеть используется с новыми входами, они должны быть предварительно обработаны с минимумами и максимумами, которые были вычислены для наборов обучающих данных, сохраненных в настройках ps. Следующий код применяет новый набор входов к уже обученной сети.

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

Для большинства сетей, включая feedforwardnet, эти шаги выполняются автоматически, так что вам нужно только использовать sim команда.

Алгоритмы

Принято, что X имеет только конечные вещественные значения, и что элементы каждой строки не все равны. (Если xmax=xmin или если xmax или xmin не являются конечными, тогда y=x и никаких изменений не происходит.)

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

См. также

| |

Введенный в R2006a