主要内容

创建、配置和初始化多层浅层神经网络

本主题介绍了典型的多层浅网络工作流程的一部分。有关更多信息和其他步骤,请参阅多层浅神经网络和背部训练

收集数据后,训练网络的下一步是创建网络对象。这个函数feedforwardnet创建多层前馈网络。如果没有输入参数调用此函数,则会创建尚未配置的默认网络对象。然后可以配置生成的网络配置命令。

以该文件为例bodyfat_dataset.mat包含预定义的输入和目标向量集。输入向量定义了关于人物物理属性的数据,目标值定义人民的百分比。使用以下命令加载数据:

加载bodyfat_dataset.

加载此文件将创建两个变量。输入矩阵BodyfatInpuls.由252个专栏向量为13个物理属性变量,有252个不同的人。目标矩阵bodyfatTargets由相应的252个体脂百分比组成。

下一步是创建网络。下面是对feedforwardnet创建一个两层网络,隐藏层中有10个神经元。(在配置步骤中,将输出层的神经元数量设置为1,即每个目标向量中元素的数量。)

网= feedforwardnet;net = configure(net, bodyfatInputs, bodyfatTargets);

可以提供可选的参数feedforwardnet.例如,第一个参数是一个数组,其中包含每个隐藏层中的神经元数量。(默认设置是10,这意味着一个隐藏层有10个神经元。一个隐藏层通常产生优秀的结果,但如果一个隐藏层的结果不充分,你可能想尝试两个隐藏层。增加隐层神经元的数量会增加网络的功率,但需要更多的计算,而且更有可能产生过拟合。)第二个参数包含要使用的训练函数的名称。如果不提供参数,则默认层数为2,默认隐层神经元数为10,默认训练函数为Trainlm..隐藏图层的默认传输函数是田樱输出层的默认值是purelin

配置命令配置网络对象,并初始化网络的权重和偏差;因此,网络已准备好进行培训。有时您可能想要重新初始化权重,或执行自定义初始化。初始化权重(init)解释初始化过程的详细信息。您也可以跳过配置步骤,直接进行网络培训。的火车命令将自动配置网络并初始化权重。

其他相关的架构

两层前馈网络实际上可以学习任何输入输出关系,而多层前馈网络可以更快地学习复杂关系。对于大多数问题,最好从两层开始,然后增加到三层,如果两层的性能不令人满意。

这个函数cascadeforwardnet创建cascade-forward网络。这些网络类似于前馈网络,但包括从输入到每一层,以及从每一层到后续层的权值连接。例如,一个三层网络具有从一层到二层、二层到三层、一层到三层的连接。三层网络也有从输入到所有三层的连接。额外的连接可能会提高网络学习所需关系的速度。

这个函数patternnet创建一个非常相似的网络feedforwardnet,除了它使用了田樱传递函数在最后一层。该网络通常用于模式识别。其他网络可以学习动态或时间序列关系。

初始化权重(init)

在培训前馈网络之前,必须初始化权重和偏差。的配置命令自动初始化权重,但您可能需要重新初始化它们。你这样做初始化命令。该函数以一个网络对象作为输入,并返回一个具有所有权重和偏差初始化的网络对象。下面是网络初始化(或重新初始化)的方法:

网= init(净);