Artificial intelligence 如何知道反向传播训练是否成功?

Artificial intelligence 如何知道反向传播训练是否成功?,artificial-intelligence,backpropagation,Artificial Intelligence,Backpropagation,我有一个人工智能项目,它使用反向传播神经网络 培训时间约为1小时,从所有100个输入中培训了60-70个输入。我的意思是,在反向传播条件下,60-70个输入是正确的。(经过培训的输入数量在60到70之间移动) 目前,已经完成了10000多个历元,每个历元大约需要0.5秒 如果我长时间离开神经网络,如何知道它是否能成功训练?(或者它不能训练得更好?查看我对这个问题的回答: 您应该使用3组数据: 训练 验证 测试 验证数据集告诉您何时应该停止(正如我在另一个答案中所说的): 验证数据集用于最小化

我有一个人工智能项目,它使用反向传播神经网络

培训时间约为1小时,从所有100个输入中培训了60-70个输入。我的意思是,在反向传播条件下,60-70个输入是正确的。(经过培训的输入数量在60到70之间移动)

目前,已经完成了10000多个历元,每个历元大约需要0.5秒


如果我长时间离开神经网络,如何知道它是否能成功训练?(或者它不能训练得更好?

查看我对这个问题的回答:

您应该使用3组数据:

  • 训练
  • 验证
  • 测试
验证数据集告诉您何时应该停止(正如我在另一个答案中所说的):

验证数据集用于最小化过拟合。你不是 使用此数据集调整网络的权重,您只需 验证训练数据集的准确性是否有所提高 事实上,与未使用的数据集相比,该数据集的准确性有所提高 以前向网络显示过,或者至少网络没有 接受it培训(即验证数据集)如果精度超过 训练数据集增加,但准确性超过验证 数据集保持不变或减少,则说明您过度拟合了数据集 神经网络,你应该停止训练。

验证的一个好方法是使用。此外,还有一些特定的“策略”用于将数据集拆分为培训、验证和测试。这本身就是一门科学,所以你也应该仔细阅读

更新 关于您对错误的评论,我想向您指出一些可以让您更好地理解神经网络的资源(它有点数学化,但更多信息请参见下文):

  • 最能描述它的是:

    反向错误传播公式:
    使用以下公式计算神经网络输出处的误差值:

    Error = (Output - Desired);  // Derived from: Output = Desired + Error;
    
    神经元体内的误差累积根据神经元体的输出和输出误差(由连接到神经元体的链接指定)进行调整。 每个输出错误值以以下方式构成错误累加器:

    ErrorAccumulator += Output * (1 - Output) * OutputError;
    

    谢谢,但我有一个问题:什么是训练集错误和验证集错误值?如何计算它们?@Mahdi,你在使用神经网络库吗?如果是,那么库在训练神经网络时会自动计算错误。不过,我已经更新了上面的问题,提供了有关错误通常如何计算的更多信息和详细信息。我询问的是通常在图表中显示的错误函数,它必须在epoches之后变为0。此图像的Y轴:。它是什么以及如何计算它?正如我在更新中所述,该图中显示的错误是输出神经元与您试图从训练实例估计的实际值之间的差异。您可能永远不会将错误降到0,事实上,在大多数实际应用程序中,它永远不会降到0。如果你使用的是神经网络库,那么所有这些计算都已经为你完成了。输出神经元和哪个输入的实际值之间的差异?或者是输出神经元和实际值之差的总和?或者是平均水平???