2

我打算使用经过反向传播训练的多层感知器网络(一个隐藏层,输入用作包含图像中黑白像素的 8x8 位矩阵)。出现以下问题:

  1. 我应该使用哪种类型的学习:批量学习还是在线学习?
  2. 我如何估计隐藏层中正确的节点数?我打算处理英文字母的26个字母。
  3. 我怎样才能停止训练过程,以避免过度拟合?
  4. (不太相关)是否有另一个比 MLP 表现更好的 NN?我知道 MLP 会陷入局部最小值、过度拟合等问题,那么是否有更好的(基于软计算的)方法?

谢谢

4

2 回答 2

5

这些问题中的大多数都是您需要尝试不同的选项以查看最有效的问题。这就是人工神经网络的问题。几乎没有“最好”的方式来做任何事情。您需要找出对您的特定问题有效的方法。不过,我会就你的问题给出我的建议。

1)我更喜欢增量学习。我认为在每个模式之后更新网络权重很重要。

2)这是一个棘手的问题。这实际上取决于您的网络的复杂性。有多少输入节点、输出节点和训练模式。对于您的问题,我可能会从 100 开始,然后尝试从 100 上下范围,看看是否有改进。

3)我通常在每个 epoch 之后计算网络在应用于测试集(而不是训练集)时的总误差。如果该误差增加了大约 5 个 epoch,我将停止训练,然后使用在增加之前创建的网络。在决定停止训练时不要使用训练集的误差,这一点很重要。这就是会导致过拟合的原因。

4) 如果您将输出表示为 26 个节点,每个节点代表字母表中的一个字母,您也可以尝试使用概率神经网络。这种网络架构适用于分类问题。同样,尝试几种不同的架构以查看最适合您的问题的架构可能是一个好主意。

于 2009-03-28T19:19:18.130 回答
2

关于第 3 点,找出 ANN 何时开始过度拟合的一种方法是绘制网络在训练数据和测试数据上的准确度与执行的 epoch 数的关系图。在某些时候,随着您的训练准确度继续提高(趋于 100%),您的测试准确度实际上可能会开始下降,因为 ANN 对训练数据过度拟合。查看开始发生的时代,并确保不要训练超过那个时代。

如果您的数据非常规律且一致,那么它可能直到游戏的后期才过拟合,或者根本不会过拟合。如果您的数据非常不规则,那么您的 ANN 将更早开始过度拟合。

此外,测试数据的规律性的一种方法是执行k-fold cross validation 之类的操作。

于 2009-06-12T13:29:20.133 回答