1
反向传播技术之间的差异
只是为了好玩,我正在尝试开发一个神经网络。 现在,对于反向传播,我看到了两种技术。 第一个是用在这里和其他许多地方。 它的作用是: 它计算每个输出神经元的误差。 它将其反向传播到网络中(计算每个内部神经元的错误)。 它使用以下公式更新权重:(其中权重的变化,学习速度,神经元从突触接收输入并作为在突触上发送的输出的错误)。 对于数据集的每个条目,它会重复多次。 但是,本教程中提出的神经网络(也可以在GitHub上获得)使用另一种技术: 它使用错误函数(另一种方法确实具有错误函数,但未将其用于训练)。 它具有另一个功能,可以从权重开始计算最终误差。 它将功能最小化(通过梯度下降)。 现在,应该使用哪种方法? 我认为第一个是最常用的(因为我看到了使用它的不同示例),但是它也能正常工作吗? 特别是,我不知道: 它不是更受局部最小值约束(因为它不使用二次函数)吗? 由于每个权重的变化都受其输出神经元的输出值的影响,因此恰好在神经元中产生较高值的数据集的条目(不仅仅是输出的)不比其他条目对权重的影响更大吗? 现在,我确实更喜欢第一种技术,因为我发现它更易于实现且更易于考虑。 但是,如果确实存在我提到的问题(我希望没有),那么是否有实际理由在第二种方法上使用它?