去年我们宣布正在基于 Pytorch(以及我们构建的一个名为 fastai 的新库)开发一门新的深度学习课程,目标是让更多学生能够通过深度学习取得世界一流的成果。今天,我们在通过我们的多元化奖学金、国际奖学金以及数据学院面授课程让 600 名学生完成了课程预览版后,首次普遍开放这门课程,即程序员实用深度学习 2018。唯一的先决条件是一年的编程经验和高中数学(理解材料所需的数学知识将在课程中按需引入)。
该课程包含约 15 小时的课程和多个交互式 notebook,现已在 course.fast.ai 免费提供(无广告)。今年约 80% 的材料是全新的,包括
- 所有模型的训练速度都比去年同类模型快得多,准确率高得多,并且所需的代码行数更少
- 极大简化了对基于云的 GPU 服务器的访问,包括 Crestle、Paperspace 和 AWS
- 展示了如何超越所有之前的文本分类学术基准,以及如何在协同过滤、时间序列和结构化数据分析中达到最先进水平
- 利用 Pytorch 的动态编译特性,更深入地理解模型设计和训练的内部机制
- 涵盖了 Resnet 和 ResNeXt 等近期网络架构,包括从头开始构建带有批量归一化的 Resnet。
结合研究与教育
fast.ai 首先是一个研究实验室。我们的研究重点是如何让实用有价值的深度学习更广泛地普及。我们经常发现,目前最先进的 (SoTA) 方法在实践中不够好用,因此我们必须想办法改进它们。这意味着我们的课程与众不同,尽管它的设计只需要最少的先决条件(只需高中数学和一年编程经验),但我们展示了如何在计算机视觉、自然语言处理 (NLP)、时间序列和结构化数据分析以及协同过滤中达到或超越 SoTA 方法。因此,我们发现我们的学生背景差异很大,包括 14 岁的高中生、统计学终身教授、成功的硅谷初创公司 CEO(以及奶农、会计师、佛教僧侣和产品经理)。
我们希望我们的学生能够解决他们最具挑战性和最重要的问题,改变他们的行业和组织,我们相信这是深度学习的潜力所在。我们不仅仅是教人们如何在现有领域找到工作——而是要远远超越这一点。因此,自从我们首次开设深度学习课程以来,我们一直在不断整理最佳实践,并对许多技术进行基准测试和开发,将它们与 Kaggle 排行榜和学术最先进结果进行对比。
2018 年课程展示了如何(所有这些都只需一块 GPU 和几秒到几小时的计算时间): - 用少至 3 行代码构建世界一流的图像分类器(在预览课期间进行的 Kaggle 竞赛中,排名前 20 的选手中,有 17 名是 fast.ai 学生!) - 在 NLP 情感分析中大大超越学术 SoTA - 构建与最佳高度专业化模型具有竞争力的电影推荐系统 - 在结构化数据分析问题中复制顶尖的 Kaggle 解决方案 - 从头开始构建 2015 年 imagenet 获胜的 resnet 架构和批量归一化层
独特的方法
我们之前的 2017 年课程非常成功,许多学生发展了深度学习技能,使他们能够做以下事情
- Sara Hooker,两年前才开始编程,现在是精英的谷歌大脑住院项目成员
- Tim Anglade,他使用 Tensorflow 为 HBO 的硅谷剧集创建了 Not Hot Dog 应用,这让谷歌 CEO 推特说“我们的工作完成了”
- Gleb Esman,他使用课程中学习的工具为 Splunk 创建了一个新的欺诈检测产品,并在Splunk 的博客上被专题报道
- Jacques Mattheij,他构建了一个机器人系统来分类两吨乐高积木
- Karthik Kannan,letsenvision.com 的创始人,他告诉我们“今天我积累了足够的动力,可以自信地开展我自己的计算机视觉初创公司,其种子是 fast.ai 通过 Pt.1 和 Pt.2 播下的”
- Matthew Kleinsmith 和 Brendon Fortuner,他们在 24 小时内构建了一个系统,为视频的背景和前景添加滤镜,使他们在 *2017 年深度学习编程马拉松*中获胜。
新课程有 80% 的新材料,反映了该领域过去 12 个月发生的重大进展。然而,关键的教学方法没有改变:一种独特的、自上而下、代码优先的深度学习教学方法。我们教授“整个游戏”——首先展示如何使用一个完整、可用、非常好用、最先进的深度学习网络来解决现实世界的问题,使用简单、富有表现力的工具。然后逐渐深入挖掘,理解这些工具是如何制造的,以及制造这些工具的工具是如何制造的,等等……我们总是通过例子来教学:确保有一个可以直观理解的背景和目的,而不是从代数符号操作开始。更多信息,请参阅提供优质的深度学习教育,这是我们在 fast.ai 启动后写的第一批内容之一。
这种方法的一个很好的例子可以在文章小图像数据集的乐趣中看到,其中一名 fast.ai 学生展示了如何利用第一课的教导,使用少于 20 张训练图像构建接近完美的分类器。
特别的社区
也许最有价值的资源是蓬勃发展的论坛,成千上万的学生和校友正在讨论课程、他们的项目、最新的研究论文等等。这个社区构建了许多有价值的资源,例如 Reshama Shaikh 提供的有益笔记和指南,包括:- AWS 上的GPU 镜像设置 - fast.ai 初学者常见问题解答 - 深度学习术语
一些论坛主题已成为重要的信息来源,例如 构建自己的服务器,该主题现在有超过 500 条帖子,包含宝贵信息,以及 实现 Mask R-CNN,该主题已被数千名对此前沿分割方法感兴趣的人浏览。
一个新的深度学习库
新课程基于 Pytorch 构建,并使用我们开发的一个新库(称为 fastai),旨在使 Pytorch 更强大、更易于使用。我现在不会详细介绍太多,因为我们在fast.ai 介绍 Pytorch 中详细讨论了动机,并将很快提供更多关于实现和 API 的信息。但为了让学生了解它的意义,这里有一些 fastai 的实际应用示例
- fastai 是第一个实现学习率查找器(Smith 2015)的库,该查找器解决了为模型选择良好学习率这一具有挑战性的问题
- 找到合适的学习率后,您可以通过使用带重启的随机梯度下降 (SGDR) 更快、更可靠地训练模型——fastai 再次成为第一个提供此功能的库
- 模型训练完成后,您会想要查看模型出错的图像——fastai 只需一行代码即可提供此功能
- 同一 API 只需少量修改即可用于训练任何类型的模型——这里是训练图像分类器和推荐系统的示例
该课程也展示了如何使用 Keras 与 Tensorflow,尽管在这种情况下需要更多代码和计算时间才能获得低得多的准确率。然而,基本步骤非常相似,因此学生可以通过课程中培养的概念理解在库之间快速切换。
让你的学习更进一步
2018 年课程的第二部分将于 3 月 19 日起在旧金山进行,为期 7 周。如果您有兴趣参加,请查看面授课程网站上的详细信息。
要在 Hacker News 上讨论这篇帖子,请点击此处。