在设计神经网络时,预处理是最难处理的问题之一。一是预处理有许多种类,二是预处理有许多种实现方法。大多数神经网络通常需要归一化的输入,即每个输入的值要始终在0和l之间,或者每个输入向量的长度要为常量(如1),前者用于反向传播网络,而后者用于自组织网络。虽然对BP网络输入归一化的必要性看法不一,但对多数应用来说归一化是一种好的做法。
数据归一化通常有两种情况:第一种常见的情况是,输入BP网络各个输入节点的原始数据同源,常常代表了时间间隔的取样。例如,电压波形以一定的频率采样得到一定数目的采样值成组地输入网络。在这种情况下,归一化必须在所有的通道上统一进行。如果数据分布在最大值(Xmax)与最小值(Xmin)之间,则首先把所有的值加上-Xmin ,使它们分布于0和(Xmax-Xmin )之间,然后再用每个值除以Xmax-Xmin。这样所有的值被归一化成0和1之间的数。Xmax和Xmin,很可能从不同的通道上获得,所以又称为交叉通道归一化。第二种常见的情况是,用不同种类的参数作为输入,如电压、持续时间、波形的尖峰参数等更有可能是一些统计参数,如标准方差、相关系数和K方检验参数等。在这种情况下,跨所有通道的归一化会使网络的训练失败。例如,某些通道表示波形尖锐度,它们只能从-0.1~+0.1变化。其他通道表示波形振幅,能从-50~+50之间变化,显然归一化后尖锐度将被振幅所淹没。每种类型通道中若存在0.1个单位的偏差,归一化后将变为0.001单位的偏差。0.1%的动态范同在振幅通道里可能很容易接受,然而在波形尖锐度中,0.1的偏差代表了50%的动态变化,所以会严重影响网络训练或测试时对尖锐度参数的分辨能力。当输入为不同种类的参数时,对每个通道单独归一化的优点是每个通道可在0~1区间反映其动态变化范同,缺点是任意两个通道之间的关系偏离了一个偏移量和多重因素的范围,因此每个通道单独归一化有时会在训练网络时造成困难。例如,用从生物电位波形中提取的参数训练网络,其中两个参数是振幅,3个是宽度,3个是尖锐度,另一个参数是斜率。振幅的测量单位是伏特,宽度是秒,而尖锐度是度数。对于宽度参数,把其中两个相加成为过零点间半波的宽度,第三个是半波二阶导数的两点间宽度。在原始数据中,前两个宽度之和总是大于第三个宽度,而其中任意一个小于第三个宽度。这一类关系以及在两个宽度或3个尖锐度参数之间存在的类似的其他关系,在单独通道的归一化处理中就被遮掩。(www.xing528.com)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。