面向程序员的前沿深度学习:发布深度学习第二部分

课程
作者

Jeremy Howard

发布日期

2017年7月28日

特别注意:我们将于2017年10月30日起,在USF数据研究院现场授课为期七周,内容为全面更新的第一部分课程。详情及报名表请参阅课程页面

当我们推出course.fast.ai时,我们曾表示希望提供优质的深度学习教育。目前,该课程的第一部分已被数万名学生观看,向他们介绍了当今深度学习的几乎所有最佳实践,并提供了许多小时的动手实践编程练习。我们已在学员评价页面收集了一些第一部分毕业生的故事。

今天,我们发布了第二部分课程:面向程序员的前沿深度学习。这15小时的课程将带你从第一部分的最佳实践,一直深入到前沿研究。你将学到如何

我们相信我们已经创建了一条通往深度学习专业知识的独特路径,并且我们的许多学生已经展示了其可能性,例如

《硅谷》电视剧中“不是热狗”应用的作者是如何被描绘的

本课程的先决条件是:你已完成课程第一部分,或者你已是一位自信的深度学习实践者,能够熟练实现和使用

内容涵盖

本课程涵盖了大量领域——以下是每节课你将学到内容的简要总结

第8课:艺术风格

我们首先讨论了与第一部分相比的一项重大变化:从Theano转向Tensorflow。你将了解Tensorflow中一些令人兴奋的新进展,这些进展促使我们做出了这一改变。我们还将讨论一个强烈推荐的重要项目:构建你自己的深度学习主机!

我们还将探讨如何应对本课程中的一个最大挑战:阅读学术论文。别担心,它不像听起来那么可怕——特别是当你掌握了我们的一些小技巧后。

接着,我们将深入探讨创意和生成式应用,首先是艺术风格迁移。即使你的艺术天赋像Jeremy一样有限,你也能创作出美丽有趣的图像…… :)

fast.ai学员Brad Kenstler的风格迁移示例

第9课:生成模型

超分辨率示例(底部)

我们将学习异常强大且广泛有用的生成模型技术。这些模型不仅仅是输出一个分类结果,而是能够创建全新的图像、声音等。例如,它们可以用于图像方面,以

  • 改善照片(色彩化、去噪、提高分辨率等)
  • 创作艺术作品
  • 查找和分割(定位)物体
  • 以及更多……

我们将尝试使用这种方法进行超分辨率(即提高图像分辨率),然后你可以尝试构建自己的系统,快速将任何艺术家的风格添加到你的照片中。看看右边的图片——上面非常低分辨率的图像(例如可以看到非常像素化的手指)被输入到算法中,而下面的图像是自动创建的!

第10课:多模态与GANs

深度学习中一个令人惊讶的结果是,由完全不同类型的数据(如文本和图像)创建的模型可以学习共享一个一致的特征空间。这意味着我们可以创建多模态模型;也就是说,可以结合多种类型数据的模型。我们将展示如何使用一种称为DeVISE的技术将文本和图像结合在一个模型中,并用它来创建各种搜索算法

  • 文本到图像(也将处理多词文本描述)
  • 图像到文本(包括处理我们未训练过的图像类型)
  • 甚至图像到图像!

这样做需要使用完整的ImageNet竞赛数据集来训练模型,这个数据集比我们之前使用的都要大。因此,我们将研究一些技术,使这比你预期的更快更容易。

我们将通过研究生成对抗网络(GANs)来结束对生成模型的学习,GANs是一种在最近几个月迅速流行起来的工具,它可能具有为深度学习创造全新应用领域的潜力。我们将使用它们从零开始创建全新的图像。

第11课:记忆网络

在本课程中,我们涵盖了许多不同的架构、训练算法以及各种其他CNN技巧——因此你可能想知道:我应该在什么时候使用什么?好消息是其他人也想过这个问题,并对各种技术的实际优缺点进行了精彩分析。今天我们将重点介绍其中几篇论文。

然后我们将学习如何利用PyTorch对算法进行GPU加速,PyTorch提供了一个与numpy非常相似的接口,通常只需一两个小时就能将你的算法迁移到GPU上。特别是,我们将尝试创建均值漂移聚类(mean-shift clustering)的第一个(据我们所知)GPU实现,这是一个非常有用的算法,值得更广泛地了解。

在本课结束时,我们将实现备受关注的“记忆网络”算法,并回答一个问题:它是否名副其实?

创建聚类

第12课:注意力模型

事实证明,记忆网络为我们理解过去一两年中最重要进展之一——注意力模型——提供了许多关键基础。这些模型使我们能够构建专注于当前任务中最重要输入部分的系统,例如,在创建翻译系统(我们将在下一课中介绍)中,它们至关重要。

第13课:神经翻译

在过去几年中,深度学习的一个应用领域进步可能超过其他任何领域,那就是神经机器翻译。2016年末,Google实现了这一技术,被《纽约时报》称为“人工智能大觉醒”。要达到Google那样的翻译能力水平需要许多技巧,因此本课我们将深入探讨,学习最先进系统使用的几乎所有技巧。

接下来,我们将学习Densenets。Densenets在2017年7月获得了CVPR最佳论文奖,并在计算机视觉领域展现了最先进的结果,尤其是在小型数据集上。它们与残差网络非常相似,但有一个关键区别:每个部分的支路通过拼接而不是相加来组合。这个看似微小的改变对其学习方式产生了巨大影响。我们还将在下一课中使用这项技术创建一个最先进的图像分割系统。

第14课:时间序列与分割

深度学习通常与非结构化数据相关联,例如图像、语言和音频。然而事实证明,数据库表或电子表格列中发现的结构化数据,其中每列可以以不同方式表示不同类型的信息(例如,美元计价的销售额、作为邮政编码的区域、产品ID等),也可以被神经网络非常有效地使用。如果数据可以表示为时间序列(即行表示不同的时间点或时间段),这一点同样适用。

特别是,我们在第一部分学到的关于嵌入的知识,不仅可以用于协同过滤和词编码,还可以用于表示产品、地点、渠道等的任意分类变量。这一点已由采用这种方法的团队赢得的两次Kaggle竞赛结果突出证明。本课我们将研究这两个数据集和竞赛获胜策略。

最后,我们将看看上一课中学习的Densenet架构如何用于图像分割——即精确指定图像中每个物体的位置。这是另一种类型的生成模型,正如我们在第9课中所学到的,因此那里的许多基本思想在这里同样适用。