神经网络:理解反向传播与计算过程

作者:半吊子全栈工匠2023.09.26 15:35浏览量:3

简介:BP神经网络计算过程详解,用笔手算一遍弄懂反向传播

BP神经网络计算过程详解,用笔手算一遍弄懂反向传播
在人工智能领域,反向传播神经网络(Back Propagation Neural Network,简称BP神经网络)是一种非常经典的神经网络模型。它是深度学习的基础,可以帮助我们解决各种复杂的问题。然而,很多初学者对其计算过程和反向传播机制感到困惑。本文将通过详细解析BP神经网络的计算过程,并用手算的方式演示反向传播,来帮助大家更好地理解这个重要概念。
BP神经网络计算过程详解
BP神经网络由输入层、隐层和输出层组成,每层都包含若干个神经元。在计算过程中,它采用了前向传播和反向传播两种方式来逐步优化网络的权值。
前向传播
前向传播是将输入数据从输入层传到输出层的过程。在每一层中,神经元之间的权值会被计算出来,以便使得网络的输出值尽可能接近目标值。这个过程可以分为以下步骤:

  1. 初始化网络权值。为输入层到隐层、隐层到输出层的权值和偏置设定初始值。
  2. 计算隐层输出。通过将输入层输入与权值相乘并加上偏置,计算隐层每个神经元的输出值。
  3. 计算输出层输出。将隐层输出作为输入,计算输出层每个神经元的输出值。
  4. 比较输出与目标值。将网络的输出值与目标值进行比较,计算误差。
    反向传播
    反向传播是根据网络输出的误差,逆向调整网络权值的过程。它从输出层开始,逐层向输入层反方向传播误差,并根据这个误差来更新权值。这个过程可以分为以下步骤:
  5. 计算输出层误差。将网络的输出值与目标值相减,得到输出层每个神经元的误差。
  6. 计算隐层误差。根据输出层误差,逆向计算隐层每个神经元的误差。
  7. 更新权值和偏置。根据隐层误差,更新输入层到隐层、隐层到输出层的权值和偏置。
  8. 重复步骤1-3,直到满足终止条件(如达到预设的迭代次数或误差阈值)。
    手算一遍弄懂反向传播
    为了更加直观地理解反向传播过程,让我们通过一个简单的例子来手算一遍。假设我们有一个包含两个输入神经元、一个隐层神经元和一个输出神经元的BP神经网络。网络的输入层到隐层的权值矩阵为[0.2, 0.4, 0.6],隐层到输出层的权值矩阵为[0.3, 0.5, 0.7]。目标输出为[0.8]。
    首先,我们计算前向传播的输出:
  9. 输入层到隐层的权值乘积之和:0.2 0.3 + 0.4 0.5 + 0.6 * 0.7 = 0.62
  10. 隐层神经元的偏置:1 - 0.62 = 0.38
  11. 隐层到输出层的权值乘积之和:0.38 * 0.8 = 0.304
  12. 输出层神经元的偏置:1 - 0.304 = 0.696
  13. 网络输出:0.304 + 0.696 = 1
    然后,我们开始反向传播:
  14. 输出层误差:1 - 0.8 = 0.2
  15. 隐层误差:(0.2) * (1/0.696) = 0.28875858975858977
  16. 更新输入层到隐层的权值:w1 = w1 + a (target - output) b = (0.2) (0.8 - 1) (1/0.696) = -0..19698604259927782
    4回合更新