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

目录

[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) 是超参数,是一个极小值(如 )以防止分母为零。

相关推荐
江畔柳前堤19 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore21 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考1 天前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX1 天前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面1 天前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号1 天前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽1 天前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI1 天前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者1 天前
征程6工具链模型X86推理方式说明
算法
地平线开发者1 天前
【征程6】校准量化中HistogramObserver解析
算法