推导神经网络前向后向传播算法的优化迭代公式

目录

[1. 定义符号](#1. 定义符号)

[2. 前向传播 (Forward Propagation)](#2. 前向传播 (Forward Propagation))

[3. 后向传播 (Backward Propagation)](#3. 后向传播 (Backward Propagation))

[3.1 关键:计算误差项](#3.1 关键:计算误差项)

[4. 优化迭代公式 (Optimization Algorithms)](#4. 优化迭代公式 (Optimization Algorithms))

[4.1 随机梯度下降 (SGD)](#4.1 随机梯度下降 (SGD))

[4.2 Momentum 动量法](#4.2 Momentum 动量法)

[4.3 Adam (Adaptive Moment Estimation)](#4.3 Adam (Adaptive Moment Estimation))


1. 定义符号

在推导之前,首先定义网络中使用的符号:

  • :神经网络的总层数。

  • :表示网络的第 层 ()。

  • :第 层的权重矩阵。其维度为,其中 是第 层的神经元数量。

  • :第层的偏置向量。其维度为

  • :第 层神经元的线性输入(加权输入和)。

  • :第层的激活函数 (如 Sigmoid, ReLU, Tanh)。

  • :第 层的激活输出,即 是网络的输入。

  • :训练样本的真实标签。

  • :神经网络的预测输出,即

  • :损失函数 (Cost Function),例如均方误差或交叉熵。

  • :学习率 (Learning Rate)。

  • :元素对应相乘 (Hadamard Product)。

2. 前向传播 (Forward Propagation)

前向传播的目标是根据输入计算出每一层的输出,直到最终得到预测值。对于网络中的第 l 层,其计算过程如下:

  • 计算线性输入:

  • 计算激活输出:

这个过程从 开始,重复计算直到最后一层 ,得到最终的预测结果

3. 后向传播 (Backward Propagation)

后向传播的核心是利用链式法则 (Chain Rule),从最后一层开始逐层反向计算损失函数对每一层参数 () 的梯度(偏导数)。

3.1 关键:计算误差项

我们定义误差项 为损失函数对第 层线性输入的偏导数:

  • 步骤 1:计算输出层的误差

    对于输出层 ,其误差项 可以直接计算。它等于损失函数对预测值的偏导与激活函数对线性输入的偏导的乘积。

  • 其中是输出层激活函数在处的导数。

  • 步骤 2:反向传播误差 (计算隐藏层误差)

    对于任意隐藏层 (从 到 1),其误差项可以通过下一层(层)的误差项推导出来:

  • 步骤 3:计算权重梯度

  • 步骤 4:计算偏置梯度

    注:在实践中,通常会对一个 mini-batch 中所有样本的梯度求平均。

4. 优化迭代公式 (Optimization Algorithms)

计算出梯度后,使用优化算法来更新网络的权重和偏置,以最小化损失函数。

4.1 随机梯度下降 (SGD)

这是最基础的优化算法。更新规则是在梯度的反方向上调整参数:

4.2 Momentum 动量法

动量法引入了一个速度向量 ,用于累积历史梯度,从而加速收敛并减少震荡。

  • 初始化

  • 计算动量:

  • 更新参数:

    其中 是动量超参数,通常取 0.9。

4.3 Adam (Adaptive Moment Estimation)

Adam 结合了 Momentum 和 RMSProp 的思想。

  • 初始化 :一阶矩估计 和二阶矩估计 为 0,迭代次数

  • 在每次迭代中 ():

    1. 计算一阶矩估计 (Momentum):

    2. 计算二阶矩估计 (RMSProp):

    3. 偏差修正 (Bias Correction):

    4. 更新参数:

    其中 (通常为 0.9), (通常为 0.999) 是超参数,是一个极小值(如 )以防止分母为零。

相关推荐
漫随流水4 分钟前
c++编程:D进制的A+B(1022-PAT乙级)
数据结构·c++·算法
tankeven8 分钟前
HJ159 没挡住洪水
c++·算法
美式请加冰15 分钟前
斐波那契数列介绍和使用
算法
paeamecium40 分钟前
【PAT】 - Course List for Student (25)
数据结构·c++·算法·pat考试
wen__xvn1 小时前
力扣洛谷模拟题刷题2
算法·leetcode·职场和发展
漫随流水1 小时前
c++编程:说反话(1009-PAT乙级)
数据结构·c++·算法
茗创科技1 小时前
Cerebral Cortex|工作记忆中α-θ跨频率耦合支持功能分离而非整合的新证据
深度学习·神经网络·脑网络
Ronaldinho Gaúch1 小时前
梯度消失与梯度爆炸
人工智能·深度学习·机器学习
查无此人byebye1 小时前
硬核深度解析:KimiDeltaAttention 源码逐行精读+公式推导+复杂度优化(完整可运行)
人工智能·深度学习·神经网络·自然语言处理
计算机安禾1 小时前
【数据结构与算法】第23篇:树、森林与二叉树的转换
c语言·开发语言·数据结构·c++·线性代数·算法·矩阵