神经网络中反向传播的困惑

时间:2021-07-27 17:11:26

标签: python neural-network backpropagation concept

我已经开始研究神经网络的正向和反向传播。我也对它进行了编码并且也能正常工作。但我对算法本身感到困惑。我是神经网络的新手。 那么神经网络的前向传播是用给定的权重找到正确的标签吗? 和反向传播是使用前向传播通过最小化成本函数来找到最无错误的参数,并使用这些参数来帮助对其他训练示例进行分类?这叫做训练有素的神经网络? 我觉得我的概念有很大的错误,如果有请让我知道我错在哪里以及为什么我错了。

1 个答案:

答案 0 :(得分:0)

我会尽力以详细但易于理解的方式解释前向传播和反向传播,尽管这不是一个容易做的话题。

前向传播

前向传播是神经网络中的过程,在网络运行期间,值被馈送到神经网络的前端(输入)。您可以想象这些值随后会经过权重,这些权重将来自输入的原始值与它们自身相乘。然后它们到达隐藏层(神经元)。基于不同类型的网络,神经元差异很大,但这里是一种解释方式。当这些值到达神经元时,它们会通过一个函数,在该函数中,输入神经元的每个值都被求和,然后输入激活函数。根据用例的不同,此激活函数可能会有很大不同,但让我们以线性激活函数为例。它本质上是获取输入的值,然后将其四舍五入为 0 或 1。然后通过更多的权重输入它,然后将其输出到输出中。这是进入网络的最后一步。

你可以用这张图来想象这个网络。

Neural Network Diagram

反向传播

反向传播就像前向传播一样,只是我们从前向传播的位置向后工作。

反向传播的目的是减少训练阶段的误差(试图让神经网络尽可能准确)。这样做的方法是向后遍历权重和层。计算每个权重的误差,并使用优化算法单独调整每个权重;优化算法正是它听起来的样子。它优化权重并调整它们的值以使神经网络更准确。

一些优化算法包括梯度下降和随机梯度下降。我不会详细介绍这个答案中的细节,因为我已经在我的其他一些答案(链接如下)中进行了解释。

计算权重误差并相应调整它们的过程是反向传播过程,通常会重复多次以使网络尽可能准确。您执行此操作的次数称为 epoch count。了解如何管理时期和批量大小(另一个主题)的重要性是很好的,因为这些会严重影响网络的效率和准确性。

我知道这个答案可能很难理解,但不幸的是,这是我可以解释的最好方法。预计您第一次阅读时可能不会理解这一点,但请记住,这是一个复杂的主题。我在下面链接了更多资源,包括一个视频(不是我的),它比简单的文本解释更好地解释了这些过程。但我也希望我的回答可以解决您的问题并祝您有美好的一天!

更多资源:

Link 1 - 反向传播的详细解释。

Link 2 - 随机/梯度下降的详细解释。

Youtube Video 1 - 传播类型的详细说明。 学分归 Sebastian Lague

相关问题