计算梯度:网络的前向与反向传播
一、前馈网络(Feedforward Neural Network)
1. 什么是前馈网络
前馈网络是最简单的神经网络,其典型特征是一个单向的多层结构,数据从输入层进入,经过隐藏层,最后通过输出层输出,只能前行,无法后退。[pdf_12]
2. 网络结构组成
|
|
|
|---|---|
| 输入层 |
|
| 隐藏层 |
|
| 输出层 |
|
★神经元之间的连线表示节点之间的权重(weight),通过权重可知道每个节点的重要程度。[pdf_12]
3. 前馈网络的核心思想
数据从输入层到隐藏层的第一层,再传播到第二层、第三层……一直到最后通过输出层输出。数据的传播是单向的,无法后退,只能前行。[pdf_12]
二、导数(Derivative)
1. 导数的定义
导数也叫导函数值,表示函数在某一点的变化率。
当函数值增量 Δy 与变量 x 的增量 Δx 的比值,在 Δx 趋近于 0 时,如果极限 a 存在,就称 a 为函数 F(x) 在 x 处的导数:
★高中数学中的斜率就是一种特殊情况下的导数。[pdf_12]
三、偏导数(Partial Derivative)
1. 什么是偏导数
当一个函数有多个变量时(如 ),需要偏导数。偏导数是保持一个变量变化,而所有其他变量恒定不变的求导过程。[pdf_12]
2. 偏导数公式
示例:对于函数
-
—— 函数 z 在 x 上的导数 -
—— 函数 z 在 y 上的导数[pdf_12]
四、梯度(Gradient)
1. 梯度的定义
函数所有偏导数构成的向量就叫做梯度。一般用 来表示:
2. 核心结论(务必牢记)
★梯度向量的方向即为函数值增长最快的方向。
这是贯穿整个深度学习全过程的核心结论。模型要学习知识,就要用最快最好的方式来完成,这正是借助梯度来实现的。[pdf_12]
五、链式法则(Chain Rule)
1. 为什么需要链式法则
损失函数 中, 表示第 i 层第 j 个节点的权重。梯度向量为:
问题在于: 与 之间隔了很多层,无法直接求导。这时就需要链式法则。
2. 链式法则的定义
★两个函数组合起来的复合函数,导数等于里面函数代入外函数值的导数,乘以里面函数之导数。
两种形式:
3. 计算示例
假设函数 ,分解为:
-
,导数 -
,导数
则:
相当于各自求导后再相乘。[pdf_12]
六、反向传播(Backpropagation)
1. 核心定义
反向传播算法是目前训练神经网络最常用且最有效的算法。模型就是通过反向传播的方式来不断更新自身的参数,从而实现了"学习"知识的过程。[pdf_12]
2. 三步骤流程
|
|
|
|---|---|
| ① 前向传播 |
|
| ② 计算误差并传播 |
|
| ③ 迭代 |
|
3. 两个最重要的环节
-
通过某种方式反向传播 -
根据误差不断地调整模型的参数值
这两个环节统称为优化方法,一般多采用梯度下降的方法,会用到导数、梯度和链式法则等相关知识。[pdf_12]
4. 关于"深度学习都是基于反向传播的么?"
不完全是。训练权重的方法主要有两种:
|
|
|
|
|---|---|---|
| 基于数值微分(如梯度下降) |
|
|
| 基于反向传播 |
|
|
★实际工程中,会比较数值微分和反向传播的结果(两者结果应非常接近),以确定反向传播逻辑的正确性,这称为梯度确认。[pdf_12]
★另外,只有在训练时才会有反向传播。验证集和测试集测试模型不存在训练过程,也就不存在反向传播。此外,一些非梯度下降的二阶优化算法(如拟牛顿法)也存在,但计算代价非常大,使用较少。[pdf_12]
七、模型学习的关键总结
★模型通过梯度下降的方式,在梯度方向的反方向上不断减小损失函数值,从而进行学习。
知识串联图
|
|
|
|---|---|
| 损失函数 |
|
| 导数/偏导数 |
|
| 梯度 |
|
| 链式法则 |
|
| 反向传播 |
|
| 梯度下降 |
|
八、每课一练
问题:深度学习都是基于反向传播的么?
解答:
不是。
-
训练权重的方法有两种:基于数值微分(如梯度下降,实现简单但耗时)和基于反向传播(效率高但实现复杂)。 -
实际工程中常用梯度确认来验证反向传播逻辑的正确性:比较数值微分和反向传播的结果,两者应非常接近。 -
只有在训练时才有反向传播,验证集和测试集不存在训练过程。 -
还存在一些非梯度下降的二阶优化算法(如拟牛顿法),但计算代价大,使用较少。[pdf_12]
九、小结
-
前馈网络:最简单神经网络,数据单向传播,只能前行。 -
导数:函数值的变化率,斜率是特殊情况。 -
偏导数:多变量函数中,保持其他变量不变,对一个变量求导。 -
梯度:所有偏导数构成的向量,方向为函数值增长最快的方向(核心结论)。 -
链式法则:复合函数求导方法——各自求导后再相乘。 -
反向传播:目前训练神经网络最常用且最有效的算法,三步骤——前向传播、计算误差反向传播、迭代更新参数。 -
核心原则:模型通过梯度下降方式,在梯度反方向上不断减小损失函数值,从而进行学习。

