差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| 深度学习:反向传播算法 [2026/03/02 21:24] – [3.1.3 学习率调度] 张叶安 | 深度学习:反向传播算法 [2026/03/02 21:37] (当前版本) – [计算题答案] 张叶安 | ||
|---|---|---|---|
| 行 128: | 行 128: | ||
| **输入**:训练样本$(\mathbf{x}, | **输入**:训练样本$(\mathbf{x}, | ||
| + | |||
| **输出**:各参数的梯度 | **输出**:各参数的梯度 | ||
| 行 192: | 行 193: | ||
| 优点: | 优点: | ||
| - | - 加速收敛,特别是在一致梯度方向 | + | |
| - | - 减少震荡 | + | - 减少震荡 |
| - | - 有助于逃离局部最优和鞍点 | + | - 有助于逃离局部最优和鞍点 |
| ==== 3.4.2 AdaGrad ==== | ==== 3.4.2 AdaGrad ==== | ||
| 行 234: | 行 235: | ||
| **Adam的优势**: | **Adam的优势**: | ||
| - | - 自适应学习率 | + | |
| - | - 动量加速 | + | - 动量加速 |
| - | - 偏差校正帮助早期训练 | + | - 偏差校正帮助早期训练 |
| - | - 对超参数选择相对鲁棒 | + | - 对超参数选择相对鲁棒 |
| ==== 3.4.5 优化算法选择建议 ==== | ==== 3.4.5 优化算法选择建议 ==== | ||
| - | - **SGD + Momentum**:收敛后泛化性能可能更好,适合需要最优泛化性能的场景 | + | |
| - | - **Adam**:训练速度快,适合大多数情况,特别是稀疏梯度或噪声大的场景 | + | - **Adam**:训练速度快,适合大多数情况,特别是稀疏梯度或噪声大的场景 |
| - | - **AdamW**:Adam的改进版本,解耦权重衰减,泛化性能更好 | + | - **AdamW**:Adam的改进版本,解耦权重衰减,泛化性能更好 |
| - | - **LARS/ | + | - **LARS/ |
| ===== 3.5 梯度消失与梯度爆炸 ===== | ===== 3.5 梯度消失与梯度爆炸 ===== | ||
| 行 271: | 行 272: | ||
| 1. **使用ReLU激活函数**:正区间梯度恒为1 | 1. **使用ReLU激活函数**:正区间梯度恒为1 | ||
| + | |||
| 2. **残差连接(Residual Connections)**:引入跳跃连接 | 2. **残差连接(Residual Connections)**:引入跳跃连接 | ||
| + | |||
| 3. **批归一化(Batch Normalization)**:稳定每层的分布 | 3. **批归一化(Batch Normalization)**:稳定每层的分布 | ||
| + | |||
| 4. **更好的初始化**:如He初始化 | 4. **更好的初始化**:如He初始化 | ||
| + | |||
| 5. **门控架构**:如LSTM中的门控机制 | 5. **门控架构**:如LSTM中的门控机制 | ||
| 行 291: | 行 296: | ||
| **题目**:考虑以下简单网络: | **题目**:考虑以下简单网络: | ||
| - | - 输入:$x = 2$ | + | |
| - | - 权重:$w_1 = 0.5$,$w_2 = 0.3$ | + | - 权重:$w_1 = 0.5$,$w_2 = 0.3$ |
| - | - 计算:$z_1 = w_1 \cdot x$,$a_1 = \text{ReLU}(z_1)$,$\hat{y} = w_2 \cdot a_1$ | + | - 计算:$z_1 = w_1 \cdot x$,$a_1 = \text{ReLU}(z_1)$,$\hat{y} = w_2 \cdot a_1$ |
| - | - 真实值:$y = 1$ | + | - 真实值:$y = 1$ |
| - | - 损失函数:$\mathcal{L} = \frac{1}{2}(y - \hat{y})^2$ | + | - 损失函数:$\mathcal{L} = \frac{1}{2}(y - \hat{y})^2$ |
| 请计算$\frac{\partial \mathcal{L}}{\partial w_1}$和$\frac{\partial \mathcal{L}}{\partial w_2}$。 | 请计算$\frac{\partial \mathcal{L}}{\partial w_1}$和$\frac{\partial \mathcal{L}}{\partial w_2}$。 | ||
| 行 330: | 行 335: | ||
| **Sigmoid**: | **Sigmoid**: | ||
| - | - $\sigma(2) = \frac{1}{1+e^{-2}} \approx 0.881$ | + | |
| - | - $\sigma(-2) = \frac{1}{1+e^{2}} \approx 0.119$ | + | - $\sigma(-2) = \frac{1}{1+e^{2}} \approx 0.119$ |
| - | - $\sigma' | + | - $\sigma' |
| - | - $\sigma' | + | - $\sigma' |
| **Tanh**: | **Tanh**: | ||
| - | - $\tanh(2) \approx 0.964$ | + | |
| - | - $\tanh(-2) \approx -0.964$ | + | - $\tanh(-2) \approx -0.964$ |
| - | - $\tanh' | + | - $\tanh' |
| - | - $\tanh' | + | - $\tanh' |
| **ReLU**: | **ReLU**: | ||
| - | - $\text{ReLU}' | + | |
| - | - $\text{ReLU}' | + | - $\text{ReLU}' |
| **分析**: | **分析**: | ||
| 1. **Sigmoid**:在$|x|$较大时,梯度约为0.1,深层网络中多次相乘会迅速衰减 | 1. **Sigmoid**:在$|x|$较大时,梯度约为0.1,深层网络中多次相乘会迅速衰减 | ||
| + | |||
| 2. **Tanh**:梯度更小(约0.07),梯度消失问题更严重 | 2. **Tanh**:梯度更小(约0.07),梯度消失问题更严重 | ||
| + | |||
| 3. **ReLU**:正区间梯度恒为1,有效缓解梯度消失;负区间梯度为0,可能导致神经元死亡 | 3. **ReLU**:正区间梯度恒为1,有效缓解梯度消失;负区间梯度为0,可能导致神经元死亡 | ||
| 行 401: | 行 408: | ||
| ==== 填空题 ==== | ==== 填空题 ==== | ||
| - | 6. 梯度下降中,参数更新公式为$\theta_{t+1} = \theta_t - \eta$______。 | + | 6. 梯度下降中,参数更新公式为$\theta_{t+1} = \theta_t - \eta$$\_\_$。 |
| - | 7. 在反向传播中,$\boldsymbol{\delta}^{(l)} = \frac{\partial \mathcal{L}}{\partial \mathbf{z}^{(l)}}$被称为______项。 | + | 7. 在反向传播中,$\boldsymbol{\delta}^{(l)} = \frac{\partial \mathcal{L}}{\partial \mathbf{z}^{(l)}}$被称为$\_\_$项。 |
| - | 8. Sigmoid函数的导数可以表示为$\sigma' | + | 8. Sigmoid函数的导数可以表示为$\sigma' |
| - | 9. Momentum优化中,动量系数$\gamma$通常设为______。 | + | 9. Momentum优化中,动量系数$\gamma$通常设为$\_\_$。 |
| + | |||
| + | 10. 梯度裁剪的两种主要方式是$\_\_$裁剪和$\_\_$裁剪。 | ||
| - | 10. 梯度裁剪的两种主要方式是______裁剪和______裁剪。 | ||
| ==== 计算题 ==== | ==== 计算题 ==== | ||
| 行 433: | 行 441: | ||
| 1. **答案:B** | 1. **答案:B** | ||
| - | 解析:反向传播基于链式法则高效计算梯度。 | + | |
| + | 解析:反向传播基于链式法则高效计算梯度。 | ||
| 2. **答案:C** | 2. **答案:C** | ||
| - | 解析:ReLU在负区间梯度为0,仍可能出现" | + | |
| + | 解析:ReLU在负区间梯度为0,仍可能出现" | ||
| 3. **答案:A** | 3. **答案:A** | ||
| - | 解析:$\mathbf{m}_t$是一阶矩(梯度均值),$\mathbf{v}_t$是二阶矩(梯度方差)。 | + | |
| + | 解析:$\mathbf{m}_t$是一阶矩(梯度均值),$\mathbf{v}_t$是二阶矩(梯度方差)。 | ||
| 4. **答案:C** | 4. **答案:C** | ||
| - | 解析:ReLU主要解决梯度消失问题,对梯度爆炸影响不大。 | + | |
| + | 解析:ReLU主要解决梯度消失问题,对梯度爆炸影响不大。 | ||
| 5. **答案:B** | 5. **答案:B** | ||
| - | 解析:小批量通常为32-512,平衡计算效率和梯度准确性。 | + | |
| + | 解析:小批量通常为32-512,平衡计算效率和梯度准确性。 | ||
| ==== 填空题答案 ==== | ==== 填空题答案 ==== | ||
| 行 463: | 行 476: | ||
| 11. **解答**: | 11. **解答**: | ||
| | | ||
| - | | + | **前向传播**: |
| - | $$z = 0.5 \times 1 + (-0.3) \times 2 = 0.5 - 0.6 = -0.1$$ | + | |
| - | $$\hat{y} = \sigma(-0.1) = \frac{1}{1 + e^{0.1}} \approx \frac{1}{1.105} \approx 0.475$$ | + | $$z = 0.5 \times 1 + (-0.3) \times 2 = 0.5 - 0.6 = -0.1$$ |
| + | |||
| + | $$\hat{y} = \sigma(-0.1) = \frac{1}{1 + e^{0.1}} \approx \frac{1}{1.105} \approx 0.475$$ | ||
| | | ||
| - | | + | **反向传播**: |
| - | $$\frac{\partial \mathcal{L}}{\partial \hat{y}} = -\frac{y}{\hat{y}} + \frac{1-y}{1-\hat{y}} = -\frac{1}{0.475} \approx -2.105$$ | + | |
| + | $$\frac{\partial \mathcal{L}}{\partial \hat{y}} = -\frac{y}{\hat{y}} + \frac{1-y}{1-\hat{y}} = -\frac{1}{0.475} \approx -2.105$$ | ||
| | | ||
| - | | + | $$\frac{\partial \hat{y}}{\partial z} = \sigma(-0.1)(1-\sigma(-0.1)) = 0.475 \times 0.525 \approx 0.249$$ |
| | | ||
| - | | + | $$\frac{\partial z}{\partial w_1} = x_1 = 1, \quad \frac{\partial z}{\partial w_2} = x_2 = 2$$ |
| | | ||
| - | | + | $$\frac{\partial \mathcal{L}}{\partial w_1} = -2.105 \times 0.249 \times 1 \approx -0.524$$ |
| - | $$\frac{\partial \mathcal{L}}{\partial w_2} = -2.105 \times 0.249 \times 2 \approx -1.048$$ | + | |
| + | $$\frac{\partial \mathcal{L}}{\partial w_2} = -2.105 \times 0.249 \times 2 \approx -1.048$$ | ||
| 12. **解答**: | 12. **解答**: | ||
| | | ||
| - | | + | **计算一阶矩**: |
| - | $$\mathbf{m}_t = 0.9 \times [0.1, 0.1] + 0.1 \times [0.2, -0.3]$$ | + | |
| - | $$= [0.09, 0.09] + [0.02, -0.03] = [0.11, 0.06]$$ | + | $$\mathbf{m}_t = 0.9 \times [0.1, 0.1] + 0.1 \times [0.2, -0.3]$$ |
| + | |||
| + | $$= [0.09, 0.09] + [0.02, -0.03] = [0.11, 0.06]$$ | ||
| | | ||
| - | | + | **计算二阶矩**: |
| - | $$\mathbf{v}_t = 0.999 \times [0.01, 0.01] + 0.001 \times [0.04, 0.09]$$ | + | |
| - | $$= [0.00999, 0.00999] + [0.00004, 0.00009] = [0.01003, 0.01008]$$ | + | $$\mathbf{v}_t = 0.999 \times [0.01, 0.01] + 0.001 \times [0.04, 0.09]$$ |
| + | |||
| + | $$= [0.00999, 0.00999] + [0.00004, 0.00009] = [0.01003, 0.01008]$$ | ||
| | | ||
| - | | + | **偏差校正**: |
| - | $$1 - \beta_1^t = 1 - 0.9^{10} = 1 - 0.349 = 0.651$$ | + | |
| - | $$1 - \beta_2^t = 1 - 0.999^{10} = 1 - 0.990 = 0.010$$ | + | $$1 - \beta_1^t = 1 - 0.9^{10} = 1 - 0.349 = 0.651$$ |
| + | |||
| + | $$1 - \beta_2^t = 1 - 0.999^{10} = 1 - 0.990 = 0.010$$ | ||
| | | ||
| - | | + | $$\hat{\mathbf{m}}_t = \frac{[0.11, |
| - | $$\hat{\mathbf{v}}_t = \frac{[0.01003, | + | |
| + | $$\hat{\mathbf{v}}_t = \frac{[0.01003, | ||
| - | --- | ||
| - | **本章完** | ||