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