特别注意:我们将于2017年10月30日起,在USF数据研究院现场授课为期七周,内容为全面更新的第一部分课程。详情及报名表请参阅课程页面。
当我们推出course.fast.ai时,我们曾表示希望提供优质的深度学习教育。目前,该课程的第一部分已被数万名学生观看,向他们介绍了当今深度学习的几乎所有最佳实践,并提供了许多小时的动手实践编程练习。我们已在学员评价页面收集了一些第一部分毕业生的故事。
今天,我们发布了第二部分课程:面向程序员的前沿深度学习。这15小时的课程将带你从第一部分的最佳实践,一直深入到前沿研究。你将学到如何
- 阅读并实现最新的研究论文(即使你没有数学背景)
- 构建一个最先进的神经翻译系统
- 创建用于艺术、超分辨率、图像分割等的生成模型(包括生成对抗网络)
- 将深度学习应用于结构化数据和时间序列(例如用于物流、市场营销、预测性维护和欺诈检测)
- ……等等。
我们相信我们已经创建了一条通往深度学习专业知识的独特路径,并且我们的许多学生已经展示了其可能性,例如
- Sara Hooker,她在两年前才开始学习编程,现在是精英Google Brain Residency项目的一员
- Tim Anglade,他使用Tensorflow为HBO电视剧《硅谷》创建了“不是热狗”应用,这让Google CEO发推文称“我们的工作完成了”
- Gleb Esman,他利用课程中学到的工具为Splunk创建了一个新的欺诈检测产品,并被Splunk博客专题报道
- Jacques Mattheij,他构建了一个机器人系统来分拣两吨乐高积木
- Karthik Kannan,letsenvision.com的创始人,他告诉我们:“今天,我积攒了足够的动力,能够自信地开展自己的计算机视觉初创公司,而这个想法的种子是fast.ai通过第一部分和第二部分课程播下的。”
- Matthew Kleinsmith和Brendon Fortuner,他们在24小时内构建了一个系统,能够为视频的背景和前景添加滤镜,这让他们在2017年深度学习黑客松中获胜。
本课程的先决条件是:你已完成课程第一部分,或者你已是一位自信的深度学习实践者,能够熟练实现和使用
- CNNs(包括残差网络)
- RNNs(包括LSTM和GRU)
- SGD/Adam等
- 批量归一化
- 数据增强
- Keras和numpy
内容涵盖
本课程涵盖了大量领域——以下是每节课你将学到内容的简要总结
第8课:艺术风格
我们首先讨论了与第一部分相比的一项重大变化:从Theano转向Tensorflow。你将了解Tensorflow中一些令人兴奋的新进展,这些进展促使我们做出了这一改变。我们还将讨论一个强烈推荐的重要项目:构建你自己的深度学习主机!
我们还将探讨如何应对本课程中的一个最大挑战:阅读学术论文。别担心,它不像听起来那么可怕——特别是当你掌握了我们的一些小技巧后。
接着,我们将深入探讨创意和生成式应用,首先是艺术风格迁移。即使你的艺术天赋像Jeremy一样有限,你也能创作出美丽有趣的图像…… :)
第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课中所学到的,因此那里的许多基本思想在这里同样适用。