主要内容

把最优的神经网络训练数据

这一主题提出了典型的多层网络工作流的一部分。和其他步骤的更多信息,见多层浅神经网络和反向传播训练

当训练多层网络,一般的做法是先将数据划分为三个子集。第一部分是培训集,用于计算梯度和更新网络权重和偏见。第二个是验证子集集。错误的验证集监控培训过程中。验证错误通常减少在初始阶段的训练,训练集一样的错误。然而,当网络开始overfit数据,验证集上的错误通常开始上升。网络的权值和偏差最小的保存验证设置错误。这种技术中更详细地讨论改善浅神经网络泛化,避免过度拟合

测试错误不是培训期间使用,但它是用来比较不同模型。它也是有用的情节在训练过程中测试设置错误。如果测试集上的误差达到最小,比验证不同的迭代数量设置错误,这可能表明一个贫穷的数据集。

有四个功能提供了将数据划分为训练,验证集和测试集。他们是dividerand(默认),divideblock,divideint,divideind。数据部门通常是你训练网络时自动执行。

函数

算法

dividerand

把数据随机(默认)

divideblock

把数据分成连续的块

divideint

把数据使用一个交叉选择

divideind

把数据通过索引

您可以访问或更改您的网络的业务功能与这个属性:

net.divideFcn

每个部门的函数需要的参数自定义其行为。可以更改这些值存储和使用以下网络属性:

net.divideParam

分函数时自动访问网络的训练,并用于将数据划分为训练、验证和测试的子集。如果net.divideFcn被设置为dividerand(默认),数据是使用部门随机分为三个子集的参数net.divideParam.trainRatio,net.divideParam.valRatio,net.divideParam.testRatio。的分数是放置在训练集的数据trainRatio/ (trainRatio + valRatio + testRatio),与其他两组类似的公式。的默认比例训练、测试和验证是0.7,0.15和0.15,分别。

如果net.divideFcn被设置为divideblock数据分为三个子集,然后使用三个相邻的块的原始数据集(培训第一块,验证第二和测试第三)。原始数据的分数进入每个子集是由相同的参数用于三个部门dividerand

如果net.divideFcn被设置为divideint,那么数据除以一个交叉的方法,在处理一副牌。这样做是不同百分比的数据进入三个子集。原始数据的分数进入每个子集是由相同的参数用于三个部门dividerand

net.divideFcn被设置为divideind通过索引,数据划分。的指数三个子集划分定义的参数net.divideParam.trainInd,net.divideParam.valIndnet.divideParam.testInd。这些指标的默认赋值是空数组,所以你必须设置指标在使用此选项。