神经网络-前向传播与反向传播

一、前言

这是一场以误差(Error)为主导的反向传播(Back Propagation)运动,旨在得到最优的全局参数矩阵,进而将多层神经网络应用到分类或者回归任务中去。

前向传递输入信号直至输出产生误差,反向传播误差信息更新权重矩阵。这两句话很好的形容了信息的流动方向,权重得以在信息双向流动中得到优化,其实就类似一个带反馈校正循环的电子信号处理系统。

我们知道梯度下降可以应对带有明确求导函数的情况,或者说可以应对那些可以求出误差的情况,比如逻辑回归(Logistic Regression),我们可以把它看做没有隐层的网络;但对于多隐层的神经网络,输出层可以直接求出误差来更新参数,但其中隐层的误差是不存在的,因此不能对它直接应用梯度下降,而是先将误差反向传播至隐层,然后再应用梯度下降,其中将误差从末层往前传递的过程需要链式法则(Chain Rule)的帮助,因此反向传播算法可以说是梯度下降在链式法则中的应用

二、完整流程

上边的栗子从直观角度了解了反向传播,接下来就详细的介绍其中两个流程前向传播与反向传播,在介绍之前先统一一下标记。

3.1 数学标记

1552808297353453.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
BP神经网络的训练过程包括前向传播反向传播两个阶段。下面将分别介绍这两个过程的具体步骤: 1. 前向传播(Forward Propagation): 在前向传播过程中,输入数据从输入层经过隐藏层传递到输出层,得到网络的预测结果。 - 从输入层开始,将输入样本传递给隐藏层的每个神经元。 - 对于每个隐藏层神经元,计算其输入值 z_j^l 和激活值 a_j^l: - 输入值计算:z_j^l = ∑(w_{jk}^l * a_k^{l-1}) + b_j^l,其中 w_{jk}^l 表示第 l 层的第 k 个神经元与第 l+1 层的第 j 个神经元之间的权重,b_j^l 表示第 l+1 层的第 j 个神经元的偏置。 - 激活值计算:a_j^l = σ(z_j^l),其中 σ 表示激活函数。 - 将隐藏层的输出结果传递给输出层的每个神经元,并计算输出层神经元的激活值。 2. 反向传播(Backward Propagation): 在反向传播过程中,通过计算损失函数对权重和偏置的偏导数,更新网络中的权重和偏置,以最小化损失函数。 - 计算输出层神经元的误差项 δ_j^L: - δ_j^L = ∂C/∂a_j^L * σ'(z_j^L),其中 ∂C/∂a_j^L 表示损失函数对输出层激活值的偏导数,σ' 表示激活函数的导数。 - 逐层计算隐藏层的误差项 δ_j^l: - δ_j^l = ∑(δ_k^{l+1} * w_{jk}^{l+1}) * σ'(z_j^l),其中 δ_k^{l+1} 表示第 l+1 层的第 k 个神经元的误差项。 - 计算损失函数对偏置的偏导数 ∂C/∂b_j^l 和权重的偏导数 ∂C/∂w_{jk}^l: - ∂C/∂b_j^l = δ_j^l - ∂C/∂w_{jk}^l = a_k^{l-1} * δ_j^l - 使用梯度下降法或其他优化算法,根据计算得到的偏导数更新网络中的权重和偏置。 通过反复进行前向传播反向传播,不断更新网络参数,直到达到预定的训练轮数或收敛条件,完成BP神经网络的训练。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值