在培训之前,对输入和目标进行缩放通常是有用的,以便它们总是落在指定的范围内。这个函数mapminmax
缩放输入和目标,使它们落在范围[- 1,1]。下面的代码演示了如何使用这个函数。
(pn, ps) = mapminmax (p);(tn, ts) = mapminmax (t);网=火车(网,pn, tn);
在矩阵中给出了原始网络输入和目标p
和t
.的标准化输入和目标pn
和tn
返回的数据都在区间[-1,1]内。的结构ps
和ts
包含设置,在本例中是原始输入和目标的最小值和最大值。在网络被训练之后,ps
设置应用于转换应用于网络的任何未来输入。它们有效地成为了网络的一部分,就像网络的权重和偏见一样。
如果mapminmax
用于缩放目标,则训练网络的输出产生在[- 1,1]范围内的输出。要将这些输出转换回用于原始目标的相同单位,请使用设置ts
.下面的代码模拟在前面的代码中训练的网络,然后将网络输出转换回原始单元。
一个= sim(网络,pn);一个= mapminmax(“反向”、一个ts);
网络的输出一个
对应归一化目标tn
.非规范化的网络输出一个
和原来的目标在同一个单位吗t
.
如果mapminmax
用于预处理训练集数据,那么无论何时训练网络与新的输入一起使用,它们都应该用存储在设置中的训练集计算的最小值和最大值进行预处理ps
.下面的代码将一组新的输入应用到已经训练过的网络。
pnewn = mapminmax(“应用”,pnew、ps);anewn = sim(净,pnewn);重新= mapminmax(“反向”、anewn ts);
对于大多数网络,包括feedforwardnet
,这些步骤是自动完成的,因此您只需要使用sim卡
命令。