18: 加速随机梯度下降与残差网络

在本课程中,我们深入探讨了各种加速随机梯度下降 (SGD) 的方法,例如动量、RMSProp 和 Adam。我们首先在 Microsoft Excel 中实验这些技术,创建一个简单的线性回归问题并应用不同的方法来解决它。我们还介绍了学习率退火并展示了如何在 Excel 中实现它。接下来,我们探索 PyTorch 中的学习率调度器,重点介绍余弦退火以及如何使用 PyTorch 优化器。我们创建了一个带有单个批次回调的 learner 并拟合模型以获得优化器。然后我们探索优化器的属性并解释参数组的概念。

我们接着实现 PyTorch 中的 OneCycleLR 调度器,它在训练过程中调整学习率和动量。我们还讨论了如何通过加深和加宽神经网络来改进其架构,介绍了残差网络 (ResNets) 和残差连接的概念。最后,我们探索了 PyTorch Image Models (timm) 库中的各种 ResNet 架构,并实验了数据增强技术,例如随机擦除和测试时增强。

讨论的概念

  • 随机梯度下降 (SGD) 加速方法
    • 动量
    • RMSProp
    • Adam
  • 学习率退火
  • PyTorch 学习率调度器
    • 余弦退火
    • OneCycleLR
  • 使用 PyTorch 优化器
  • 神经网络架构改进
    • 更深更宽的网络
    • 残差网络 (ResNets)
    • 残差连接
  • 数据增强技术
    • 随机擦除
    • 测试时增强
  • 创建自定义调度器并实验模型性能

视频

课程资源