fast.ai 深度学习笔记:第一部分第二课

原文:Deep Learning 2: Part 1 Lesson 2

作者:Hiromi Suenaga

  • 论坛
  • 笔记本

回顾上一课 [01:02]

  • 我们使用 3 行代码来构建图像分类器。
  • 为了训练模型,需要在PATH下以某种方式组织数据(在本例中为data/dogscats/ ):

image

  • 应该有train文件夹和valid文件夹,并且在每个文件夹下都有带有分类标签的文件夹(例如本例中的cats ),其中包含相应的图像。
  • 训练输出: [epoch #, training loss, validation loss, accuracy]
 [ 0\. 0.04955 0.02605 0.98975] 

学习率 [4:54]

  • 学习率的基本思想是,它将决定我们解决方案改进的速度。

image

  • 如果学习率太小,则需要很长时间才能达到最低点。
  • 如果学习率太大,它可能会在底部摆动。
  • 学习率查找器( learn.lr_find )将在每个小批量之后提高学习率。 最终,学习率太高,损失会变得更糟。 然后,我们查看学习率与损失的关系曲线,确定最低点并返回一个幅度,并选择它作为学习率(下例中为1e-2 )。
  • 小批量是我们每次查看的一组图像,因此我们有效地使用 GPU 的并行处理能力(通常一次 64 或 128 个图像)
  • 在 Python 中:

image

image

image

  • 通过调整这一个数字,你应该能够获得相当不错的结果。 fast.ai 库为你选择其余的超参数。 但随着课程的进展,我们将了解到还有一些我们可以调整的东西,可以获得更好的结果。 但学习率是我们设定的关键数字。
  • 学习率查找器位于其他优化器(例如动量,Adam 等)的上层,并根据你正在使用的调整(例如高级优化器但不限于优化器)帮助你选择最佳学习率。
  • 问题:在迭代期间改变学习率,优化器会发生什么? 这个查找器是否选择了初始学习率? [14:05] 我们稍后会详细了解优化器,但基本答案是否定的。 即使 Adam 的学习率也会除以先前的平均梯度以及最近的梯度的平方和。 即使那些所谓的“动态学习率”方法也具有学习率。
  • 使模型更好的最重要的事情是,为它提供更多数据。 由于这些模型有数百万个参数,如果你训练它们一段时间,它们就会开始所谓的“过拟合”。
  • 过拟合 - 模型开始在训练集中看到图像的具体细节,而不是学习可以传递到验证集的一般内容。
  • 我们可以收集更多数据,但另一种简单方法是数据增强。

阅读更多

你可能感兴趣的:(fast.ai 深度学习笔记:第一部分第二课)