主要内容

配置浅神经网络输入输出

本主题是中描述的设计工作流的一部分神经网络设计工作流

在神经网络被创建之后,它肯定是配置。配置步骤包括检查输入和目标数据,设置网络的输入和输出大小以匹配数据,并选择能够实现最佳网络性能的输入和输出处理设置。配置步骤通常是在调用训练函数时自动完成的。但是,它可以通过使用配置功能手动完成。例如,要配置之前创建的网络以近似正弦函数,请发出以下命令:

p = 2: .1:2;t =罪(π* p / 2);net1 =配置(净、p、t);

您已经为网络提供了输入和目标的示例集(期望的网络输出)。有了这个信息配置函数可以设置网络输入和输出的大小来匹配数据。

在配置之后,如果你再看一层和二层之间的重量,你可以看到重量的尺寸是1乘20。这是因为这个网络的目标是一个标量。

net1。layerWeights{2,1}神经网络权重延迟:0 initFcn: (none) initConfig: .inputSize learn: true learnFcn: 'learngdm' learnParam: .lr, .mc size: [1 10] weightFcn: 'dotprod' weightParam: (none) userdata: (your custom info)

除了为权重设置适当的维度外,配置步骤还定义输入和输出处理的设置。输入处理可以位于输入子对象:

net1。Input {1} Neural Network Input name: 'Input' feedbackOutput: [] processFcns: {'removeconstantrows', mapminmax} processParams: {1x2 cell array of 2 params} processSettings: {1x2 cell array of 2 settings} processedRange: [1x2 double] processedSize: 1 range: [1x2 double] size: 1 userdata: (your custom info)

在将输入应用到网络之前,将通过两个函数进行处理:removeconstantrowsmapminmax.这些都在多层浅层神经网络和反向传播训练这里我们就不讲细节了。这些处理功能可能会有一些处理参数,这些参数包含在子对象中net1.inputs {1} .processParam.它们具有可以覆盖的默认值。处理功能也可以配置依赖于示例数据的设置。这些都包含在net1.inputs {1} .processSettings,在配置过程中进行设置。例如,mapminmax处理功能对数据进行规范化,使所有输入都落在[−1,1]范围内。它的配置设置包括示例数据中的最小值和最大值,它需要这些值来执行正确的规范化。我们将更深入地讨论这个问题多层浅层神经网络和反向传播训练

作为一般规则,我们使用术语“参数”,如过程参数、训练参数等,来表示具有默认值的常量,这些值是在网络创建时由软件分配的(并且您可以重写)。我们使用术语“配置设置”,就像在过程配置设置中一样,来表示软件从对样本数据的分析中分配的常数。这些设置没有默认值,一般不应重写。

有关更多信息,请参见理解浅层网络数据结构