神经网络似乎工作得很好,直到用于处理数据(所有的结果几乎是相同的)

Neural Network seems to work fine until used for processing data (all of the results are practically the same)

本文关键字:结果 处理 很好 工作 神经网络 用于 数据      更新时间:2023-10-16

我最近实现了一个典型的3层神经网络(输入->隐藏->输出),我使用sigmoid函数进行激活。目前,主机程序有3种模式:

  1. 创建,似乎工作得很好。它创建一个具有指定数量的输入、隐藏和输出神经元的网络,将权重初始化为随机值或零。
  2. 训练,加载数据集,计算网络的输出,然后反向传播误差并更新权重。据我所知,这是可行的。在数据集上训练后,权重会发生变化,但不是非常大。
  3. 正在处理,似乎工作正常。然而,用于训练的数据集或任何其他数据集的数据输出都非常糟糕。它通常只是一个连续的1流,偶尔有0.999999,或者每个输入的每个输出值都是0.9999,输入之间的最后一位数字不同。据我所知,最后两位数与应该输出的内容之间没有关联。

我应该如何去找出什么是不正常的工作?

您需要找到一组参数(神经元数量、学习率、训练迭代次数),这些参数可以很好地用于分类以前未见过的数据。人们通常通过将数据分为三类来实现这一目标:训练、验证和测试。

无论你决定做什么,只要记住,在你训练的相同数据上进行测试是没有意义的,因为任何接近合理的分类方法都应该在这样的设置下获得100%的正确。