选择神经网络输入输出处理函数
本主题介绍典型多层网络工作流的一部分。有关详细信息和其他步骤,请参阅多层浅层神经网络与反向传播训练。
如果对网络输入和目标执行某些预处理步骤,神经网络训练会更高效。本节介绍几个您可以使用的预处理例程。(其中最常见的预处理例程是在您创建网络时自动提供的,它们成为网络对象的一部分,因此无论何时使用网络,进入网络的数据都会以相同的方式进行预处理。)
例如,在多层网络中,sigmoid 传递函数通常用于隐含层。当净输入大于 3 (exp (−3) ≅ 0.05) 时,这些函数基本饱和。如果在训练过程开始就发生这种情况,梯度将非常小,并且网络训练将非常慢。在网络的第一层,净输入是输入乘以权重的乘积加上偏置。如果输入非常大,则权重必须非常小,以防止传递函数变得饱和。标准做法是在将输入应用于网络之前对其进行归一化。
通常,对数据集中的输入向量和目标向量都应用归一化步骤。这样,网络输出始终在归一化后的范围内。然后,当网络投入实际使用时,网络输出可以反向变换回原始目标数据的单位。
对神经网络最形象的描述是:在输入和网络的第一层之间有一个预处理模块,在网络的最后一层和输出之间有一个后处理模块,如下图所示。
工具箱中的大多数网络创建函数,包括多层网络创建函数,如 feedforwardnet,会自动为您的网络输入和输出分配处理函数。这些函数将您提供的输入值和目