Перед обучением часто полезно масштабировать входные параметры и цели так, чтобы они всегда попадали в заданную область. Функция 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 команда.