我最近实现了一个典型的 3 层神经网络(输入 -> 隐藏 -> 输出),我正在使用 sigmoid 函数进行激活。到目前为止,宿主程序有3种模式:
- 创造,这似乎工作正常。它创建一个具有指定数量的输入、隐藏和输出神经元的网络,将权重初始化为随机值或零。
- 训练加载数据集,计算网络的输出,然后反向传播误差并更新权重。据我所知,这行得通。在对数据集进行训练之后,权重会发生变化,但不会非常大。
- 处理,这似乎工作正常。但是,用于训练的数据集或任何其他数据集的数据输出非常糟糕。它通常只是一个连续的 1 流,偶尔会出现 0.999999,或者每个输入的每个输出值都是 0.9999,最后一个数字在输入之间是不同的。据我所知,最后 2 位数字与应该输出的内容之间没有相关性。
我应该如何去弄清楚什么是不正常的?