差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| 深度学习:正则化技术 [2026/03/02 21:54] – [1.4 L1与L2的比较] 张叶安 | 深度学习:正则化技术 [2026/03/02 22:00] (当前版本) – [4. 答案与解析] 张叶安 | ||
|---|---|---|---|
| 行 137: | 行 137: | ||
| **Dropout的最佳实践:** | **Dropout的最佳实践:** | ||
| - | - 输入层:保留概率0.8 | + | |
| - | - 隐藏层:保留概率0.5 | + | - 隐藏层:保留概率0.5 |
| - | - 通常与其他正则化技术结合使用 | + | - 通常与其他正则化技术结合使用 |
| ==== 1.6 早停法(Early Stopping) ==== | ==== 1.6 早停法(Early Stopping) ==== | ||
| 行 148: | 行 148: | ||
| 1. 将数据分为训练集、验证集和测试集 | 1. 将数据分为训练集、验证集和测试集 | ||
| + | |||
| 2. 在每个训练周期(epoch)结束时,在验证集上评估模型性能 | 2. 在每个训练周期(epoch)结束时,在验证集上评估模型性能 | ||
| + | |||
| 3. 记录验证集上的最佳性能 | 3. 记录验证集上的最佳性能 | ||
| + | |||
| 4. 当验证集性能在连续多个周期内不再提升时,停止训练 | 4. 当验证集性能在连续多个周期内不再提升时,停止训练 | ||
| + | |||
| 5. 恢复验证集性能最佳时的模型参数 | 5. 恢复验证集性能最佳时的模型参数 | ||
| 行 158: | 行 162: | ||
| ** patience参数**: | ** patience参数**: | ||
| - | - 定义在验证集性能不再提升后等待的周期数 | + | |
| - | - 较大的patience可能导致过拟合 | + | - 较大的patience可能导致过拟合 |
| - | - 较小的patience可能导致欠拟合 | + | - 较小的patience可能导致欠拟合 |
| **早停法的优势:** | **早停法的优势:** | ||
| - | - 实现简单,计算开销小 | + | |
| - | - 自动确定训练迭代次数 | + | - 自动确定训练迭代次数 |
| - | - 有效防止过拟合 | + | - 有效防止过拟合 |
| ==== 1.7 数据增强(Data Augmentation) ==== | ==== 1.7 数据增强(Data Augmentation) ==== | ||
| 行 197: | 行 201: | ||
| **文本数据增强:** | **文本数据增强:** | ||
| - | - 同义词替换 | + | |
| - | - 随机插入/ | + | - 随机插入/ |
| - | - 回译(Back-translation) | + | - 回译(Back-translation) |
| **音频数据增强:** | **音频数据增强:** | ||
| - | - 时间拉伸/ | + | |
| - | - 音调变换 | + | - 音调变换 |
| - | - 添加背景噪声 | + | - 添加背景噪声 |
| **数据增强的理论基础:** | **数据增强的理论基础:** | ||
| 行 219: | 行 223: | ||
| 1. **计算均值和方差**: | 1. **计算均值和方差**: | ||
| - | $$\mu_B = \frac{1}{m} \sum_{i=1}^m x_i$$ | + | |
| - | | + | $$\mu_B = \frac{1}{m} \sum_{i=1}^m x_i$$ |
| + | |||
| + | $$\sigma_B^2 = \frac{1}{m} \sum_{i=1}^m (x_i - \mu_B)^2$$ | ||
| 2. **标准化**: | 2. **标准化**: | ||
| - | $$\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}$$ | + | |
| + | $$\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}$$ | ||
| 3. **缩放和平移**: | 3. **缩放和平移**: | ||
| - | $$y_i = \gamma \hat{x}_i + \beta$$ | + | |
| + | $$y_i = \gamma \hat{x}_i + \beta$$ | ||
| **正则化效果:** | **正则化效果:** | ||
| 行 241: | 行 249: | ||
| 直接限制权重的范数,而非通过惩罚项: | 直接限制权重的范数,而非通过惩罚项: | ||
| - | - 最大范数约束(Max-norm):$||\theta||_2 \leq c$ | + | |
| - | - L1范数约束:$||\theta||_1 \leq c$ | + | - L1范数约束:$||\theta||_1 \leq c$ |
| **1.9.2 标签平滑(Label Smoothing)** | **1.9.2 标签平滑(Label Smoothing)** | ||
| 将硬标签(one-hot)替换为软标签: | 将硬标签(one-hot)替换为软标签: | ||
| + | |||
| $$y_{smooth} = (1 - \epsilon) y_{hard} + \epsilon / K$$ | $$y_{smooth} = (1 - \epsilon) y_{hard} + \epsilon / K$$ | ||
| 行 276: | 行 285: | ||
| 1. **基础组合**:L2 + Dropout + Early Stopping | 1. **基础组合**:L2 + Dropout + Early Stopping | ||
| + | |||
| 2. **图像任务**:Data Augmentation + Dropout + Batch Norm | 2. **图像任务**:Data Augmentation + Dropout + Batch Norm | ||
| + | |||
| 3. **小数据集**:Strong Data Augmentation + Dropout + L2 | 3. **小数据集**:Strong Data Augmentation + Dropout + L2 | ||
| + | |||
| 4. **大模型**:Dropout + Label Smoothing + Various Augmentations | 4. **大模型**:Dropout + Label Smoothing + Various Augmentations | ||
| 行 357: | 行 369: | ||
| **关键因素1:验证集划分** | **关键因素1:验证集划分** | ||
| - | - 验证集应足够大以可靠估计泛化性能 | + | |
| - | - 通常使用10-20%的数据作为验证集 | + | - 通常使用10-20%的数据作为验证集 |
| - | - 对于小数据集,使用交叉验证 | + | - 对于小数据集,使用交叉验证 |
| **关键因素2:监控指标选择** | **关键因素2:监控指标选择** | ||
| - | - 分类任务:验证准确率或验证损失 | + | |
| - | - 回归任务:验证MSE或MAE | + | - 回归任务:验证MSE或MAE |
| - | - 注意:训练损失持续下降时,验证损失可能已经开始上升 | + | - 注意:训练损失持续下降时,验证损失可能已经开始上升 |
| **关键因素3:Patience参数** | **关键因素3:Patience参数** | ||
| Patience定义了性能不提升时等待的周期数: | Patience定义了性能不提升时等待的周期数: | ||
| - | - **小patience(5-10)**: | + | |
| - | - 优点:快速停止,节省计算资源 | + | - 优点:快速停止,节省计算资源 |
| - | - 缺点:可能因验证波动过早停止 | + | - 缺点:可能因验证波动过早停止 |
| | | ||
| - | - **大patience(20-50)**: | + | |
| - | - 优点:容忍验证波动,捕获长期趋势 | + | - 优点:容忍验证波动,捕获长期趋势 |
| - | - 缺点:可能过拟合,浪费计算资源 | + | - 缺点:可能过拟合,浪费计算资源 |
| - | - **自适应patience**: | + | |
| - | - 初期使用小patience快速收敛 | + | - 初期使用小patience快速收敛 |
| - | - 后期使用大patience精细调整 | + | - 后期使用大patience精细调整 |
| **关键因素4:模型恢复机制** | **关键因素4:模型恢复机制** | ||
| 实现方式: | 实现方式: | ||
| - | ``` | + | |
| 1. 保存验证性能最佳时的模型状态 | 1. 保存验证性能最佳时的模型状态 | ||
| + | |||
| 2. 包括权重、优化器状态、轮次等 | 2. 包括权重、优化器状态、轮次等 | ||
| + | |||
| 3. 停止训练后恢复最佳状态 | 3. 停止训练后恢复最佳状态 | ||
| + | |||
| 4. 避免使用最终(可能过拟合)的模型 | 4. 避免使用最终(可能过拟合)的模型 | ||
| - | ``` | + | |
| **关键因素5:与其他正则化的配合** | **关键因素5:与其他正则化的配合** | ||
| 早停法与其他技术的交互: | 早停法与其他技术的交互: | ||
| - | - **与L2正则化**:两者都限制模型复杂度,可能产生叠加效果 | + | |
| - | - **与Dropout**:早停法可补偿Dropout的训练-测试差异 | + | - **与Dropout**:早停法可补偿Dropout的训练-测试差异 |
| - | - **与学习率调度**:应协调patience与学习率衰减周期 | + | - **与学习率调度**:应协调patience与学习率衰减周期 |
| - | - **与数据增强**:数据增强延长训练时间,需要更大的patience | + | - **与数据增强**:数据增强延长训练时间,需要更大的patience |
| ===== 3. 训练题 ===== | ===== 3. 训练题 ===== | ||
| 行 458: | 行 473: | ||
| 1. **答案:C** | 1. **答案:C** | ||
| - | 解析:L1正则化由于其绝对值函数的几何特性,会产生稀疏解,许多参数会被压缩到精确的零值。 | + | |
| + | 解析:L1正则化由于其绝对值函数的几何特性,会产生稀疏解,许多参数会被压缩到精确的零值。 | ||
| 2. **答案:B** | 2. **答案:B** | ||
| - | 解析:保留概率$p$直接表示期望保留的比例,因此$p=0.7$表示70%的神经元被保留。 | + | |
| + | 解析:保留概率$p$直接表示期望保留的比例,因此$p=0.7$表示70%的神经元被保留。 | ||
| 3. **答案:B** | 3. **答案:B** | ||
| - | 解析:L2正则化在统计学中称为Ridge回归,L1正则化称为Lasso回归。 | + | |
| + | 解析:L2正则化在统计学中称为Ridge回归,L1正则化称为Lasso回归。 | ||
| 4. **答案:C** | 4. **答案:C** | ||
| - | 解析:增加网络层数会增加模型复杂度,不属于正则化或数据增强方法。其他选项都是图像数据增强技术。 | + | |
| + | 解析:增加网络层数会增加模型复杂度,不属于正则化或数据增强方法。其他选项都是图像数据增强技术。 | ||
| 5. **答案:B** | 5. **答案:B** | ||
| - | 解析:标签平滑将硬标签替换为软标签,防止模型对预测过于自信,从而提高泛化能力。 | + | |
| + | 解析:标签平滑将硬标签替换为软标签,防止模型对预测过于自信,从而提高泛化能力。 | ||
| **二、填空题答案:** | **二、填空题答案:** | ||
| 6. **答案:**$\theta_i^2$ | 6. **答案:**$\theta_i^2$ | ||
| - | 解析:L2正则化使用参数的平方和作为惩罚项。 | + | |
| + | 解析:L2正则化使用参数的平方和作为惩罚项。 | ||
| 7. **答案:**$1/ | 7. **答案:**$1/ | ||
| - | 解析:Dropout在训练时需要缩放以保持一致期望值,测试时使用完整网络。 | + | |
| + | 解析:Dropout在训练时需要缩放以保持一致期望值,测试时使用完整网络。 | ||
| 8. **答案:**验证(或validation) | 8. **答案:**验证(或validation) | ||
| - | 解析:早停法通过监控验证集性能来防止过拟合。 | + | |
| + | 解析:早停法通过监控验证集性能来防止过拟合。 | ||
| 9. **答案:**L1;L2(或Lasso;Ridge) | 9. **答案:**L1;L2(或Lasso;Ridge) | ||
| - | 解析:弹性网络同时包含L1和L2惩罚项。 | + | |
| + | 解析:弹性网络同时包含L1和L2惩罚项。 | ||
| 10. **答案:**标准化(或减去均值除以标准差) | 10. **答案:**标准化(或减去均值除以标准差) | ||
| - | | + | |
| + | 解析:批归一化的核心步骤包括:计算统计量、标准化、学习缩放和平移。 | ||
| **三、计算题答案:** | **三、计算题答案:** | ||
| 行 493: | 行 518: | ||
| 11. **解答:** | 11. **解答:** | ||
| | | ||
| - | | + | |
| - | $$\tilde{J} = \frac{1}{2}\sum_{i=1}^n (y_i - \hat{y}_i)^2 + \lambda(w_1^2 + w_2^2)$$ | + | L2正则化后的损失函数: |
| + | |||
| + | $$\tilde{J} = \frac{1}{2}\sum_{i=1}^n (y_i - \hat{y}_i)^2 + \lambda(w_1^2 + w_2^2)$$ | ||
| | | ||
| - | | + | 对$w_1$求偏导: |
| - | $$\frac{\partial \tilde{J}}{\partial w_1} = -\sum_{i=1}^n (y_i - \hat{y}_i)x_{i1} + 2\lambda w_1$$ | + | |
| + | $$\frac{\partial \tilde{J}}{\partial w_1} = -\sum_{i=1}^n (y_i - \hat{y}_i)x_{i1} + 2\lambda w_1$$ | ||
| | | ||
| - | | + | 梯度下降更新: |
| - | $$w_1^{new} = w_1^{old} - \eta\left[-\sum_{i=1}^n (y_i - \hat{y}_i)x_{i1} + 2\lambda w_1^{old}\right]$$ | + | |
| - | $$= w_1^{old}(1 - 2\eta\lambda) + \eta\sum_{i=1}^n (y_i - \hat{y}_i)x_{i1}$$ | + | $$w_1^{new} = w_1^{old} - \eta\left[-\sum_{i=1}^n (y_i - \hat{y}_i)x_{i1} + 2\lambda w_1^{old}\right]$$ |
| + | |||
| + | $$= w_1^{old}(1 - 2\eta\lambda) + \eta\sum_{i=1}^n (y_i - \hat{y}_i)x_{i1}$$ | ||
| | | ||
| - | | + | 其中$(1 - 2\eta\lambda)$体现了" |
| 12. **解答:** | 12. **解答:** | ||
| | | ||
| - | | + | 训练时:期望激活神经元数 = $100 \times p = 100 \times 0.5 = 50$个 |
| | | ||
| - | | + | 测试时:使用所有神经元,不应用Dropout,因此100个神经元全部激活。 |
| | | ||
| - | | + | 注意:如果使用Inverted Dropout,训练时保留的神经元输出会乘以$1/ |
| 13. **解答:** | 13. **解答:** | ||
| | | ||
| - | | + | 正则化项 = $0.01(|\theta_1| + |\theta_2|)$ |
| | | ||
| - | | + | $= 0.01(|3| + |-4|)$ |
| | | ||
| - | | + | $= 0.01(3 + 4)$ |
| | | ||
| - | | + | $= 0.01 \times 7$ |
| | | ||
| - | | + | $= 0.07$ |
| | | ||
| - | | + | 因此,正则化项的值为0.07。 |