2019程序员深度学习实践

今天启动,2019年版程序员的实用深度学习,课程的第三次迭代,是100%的新材料,包括以前从未被深度学习入门课程覆盖的应用程序(包括一些甚至尚未在学术论文中发表的技术)。有七个教训,每个大约2小时,你应该计划每节课花大约10个小时做作业。manbetx官网手机登录谷歌云微软Azure已将课程所需的一切集成到其基于gpu的平台中,还有“一键式”平台,如Crestle梯度.

本课程假设您至少有一年的编码经验(最好是Python语言,虽然有经验的程序员将能够在他们前进的过程中学习Python;我们有一个列表python学习资源可用),高中数学(课程中会根据需要引入一些大学水平的数学)。很多修完这门课的人告诉我们这需要很多努力,但这是他们做过的最有意义的事情之一;我们强烈建议你参加这门课程活跃的在线社区帮助你完成你的旅程。

在第一课之后,您将能够训练您自己的数据上的最先进的图像分类模型。在完成这一课之后,一些学生从这门课程的亲自版本(在那里这些材料被记录)在不同的领域发表了新的最先进的结果!课程前半部分的重点是实用的技术,只显示了理论需要在实践中实际使用这些技术。然后,在课程的后半部分,我们对这个理论的研究越来越深入,在最后一堂课之前,我们将从头开始构建和训练一个接近最先进精确度的“resnet”神经网络。

课程中的一些应用例子
课程中的一些应用例子

主要应用包括:

我们还将介绍这些应用程序的所有必要基础。

课程涵盖基础知识
课程涵盖基础知识

我们使用PyTorch图书馆,这是最现代化和最灵活的广泛使用的图书馆,我们也会用fastaiPyTorch包装,这样就可以更容易地访问用于培训深度学习模型的推荐最佳实践(同时也可以直接使用所有底层PyTorch功能)。我们认为法赛很棒,但我们有偏见,因为我们做了。但这是pytorch.org上唯一的通用深度学习工具包,拥有超过10000颗GitHub星,并用于许多比赛的胜利,学术论文,以及顶尖的大学课程,所以不只是我们喜欢它!请注意,您所学的概念将同样适用于您想要使用Tensorflow/keras进行的任何工作,CNTK,MXNet,或任何其他深度学习图书馆;重要的是概念。如果你能很好地理解新图书馆的概念,学习新图书馆只需要几天时间。

今年一个特别有用的新功能是我们现在有了一个超级充电的视频播放器,的伟大工作扎克卡塞雷斯.它允许你搜索课程记录,直接跳到你找到的视频部分。它还显示了其他课程的链接,课程总结和资源,在可折叠的窗格中(但在移动设备上还不能很好地工作,如果你想在手机上看,你可以用这个Youtube播放列表)。还要特别感谢Sylvain贵港市,他在这门课程和fastai图书馆的发展中都发挥了重要作用——我们非常感谢亚马逊网络服务公司赞助Sylvain的工作。

manbetx登陆fast.ai's video player with searchable timeline
manbetx登陆fast.ai's video player with searchable timeline

如果你有兴趣尝试一下,点击这里去课程网站。现在让我们更详细地看看每一课。

第一课:图像分类

第一课最重要的结果是,我们将训练一个图像分类器,它可以识别宠物品种在最先进的准确性。这种成功的关键在于使用转移学习,这将是本课程的基本平台。我们还将看到如何分析该模型,以了解其故障模式。在这种情况下,我们会发现模型出错的地方和育种专家出错的地方是一样的。

一种宠物品种分类器的训练与分析
一种宠物品种分类器的训练与分析

我们将讨论这门课的总体方法,这在某种程度上是不寻常的自顶向下而不是自底向上.与其从理论出发,在实际应用中,我们从实际应用开始,然后慢慢地挖得越来越深,根据需要学习理论。这种方法需要教师做更多的工作来发展,但它被证明对学生有很大帮助,例如在哈佛大学教育研究由大卫帕金斯。

我们还讨论了如何设置最重要的hyper-parameter神经网络训练时:学习速率,利用莱斯利·史密斯的神奇学习速率仪方法。最后,我们来看看这个重要但很少被讨论的话题标签,并了解fastai提manbetx官网手机登录供的一些特性,这些特性允许您轻松地将标签添加到图像中。

请注意,随着课程的进行,您需要连接到安装了fastai库的云GPU提供商(推荐;只需要5分钟左右,及每小时费用少于$0.50),或者自己安装一台有合适GPU的电脑(如果你不熟悉这个过程,可能需要几天才能开始工作,所以我们不推荐它直到后来)。您还需要熟悉……的基础知识Jupyter笔记本我们用来进行深度学习实验的环境。有关这些内容的最新教程和建议可从课程网站.

教训2:数据清理和生产;SGD从头开始

我们从学习如何使用自己的数据建立自己的图像分类模型开始今天的课程,包括以下主题:

在创建一个模型时,我将演示所有这些步骤,该模型可以承担区分泰迪熊和灰熊的重要任务。一旦我们整理好了数据集,然后我们将学习如何生产我们的tedy -finder,并在网上提供。

把你的模型投入生产
把你的模型投入生产

自从这节课被记录下来之后,我们有了一些很棒的补充,所以一定要检查:

在本课的下半部分,我们将从头开始训练一个简单的模型,创建我们自己的梯度下降法循环。在这个过程中,我们会学到很多新术语,所以要确保你有一个记笔记的好地方,因为我们会在整个课程中提到这个新术语(从现在开始每节课都会有更多的介绍)。

实际梯度下降
实际梯度下降

第三课:数据块;多标记分类;分割

今天要讲的内容很多!我们从第三课开始看一个有趣的数据集:行星的从太空了解亚马逊.为了把这些数据变成我们建模所需要的形状,我们将使用fastai最强大(也最独特)的工具之一数据块的API.在接下来的课程中,我们会多次回到这个API,掌握它将使你成为一个真正的法赛超级明星!一旦你完成了这一课,如果您准备了解更多关于数据块API的信息,manbetx官网手机登录看看这篇伟大的文章:寻找数据块的天堂,Wayde Gilliam。

行星数据集的一个重要特征是它是一个多标记数据集。即:每个卫星图像可以包含多个标签,而之前我们看到的数据集每个图像只有一个标签。我们将了解在使用多标签数据集时需要进行哪些更改。

我们的图像分割模型的结果
我们的图像分割模型的结果

接下来,我们来看看图像分割,这是一种将图像中的每个像素标记为一个类别的过程,该类别显示该像素所描绘的对象的类型。我们将使用与早期图像分类模型相似的技术,做了一些调整。fastai使得图像分割建模和解释就像图像分类一样简单,所以不需要太多的调整。

在本节课的这一部分中,我们将使用流行的CamVid数据集。在未来的课程,我们还会回来,展示一些额外的技巧。我们最终的CamVid模型比我们在学术文献中找到的任何模型的误差都要小得多!

如果因变量是一个连续值,而不是一个类别?我们接下来回答这个问题,看一个关键点数据集,并建立了一个精确预测人脸关键点的模型。

第四课:NLP;表格数据;协同过滤;嵌入的

我们将在第四课深入学习自然语言处理(NLP),使用IMDb电影评论数据集。在这个任务中,我们的目标是预测电影评论是正面的还是负面的;这就是所谓的情绪分析.我们会用ULMFiT算法,which was originally developed during the manbetx登陆fast.ai 2018 course,并在2018年成为了NLP革命的一部分这使得《纽约时报》宣布新的系统开始破解自然语言的密码.ULMFiT是目前已知最准确的情绪分析算法。

概述ULMFiT
概述ULMFiT

基本步骤如下:

  1. 创建(或,优先考虑,下载一个pre-trained)语言模型在大型语料库(如Wikipedia)上进行培训(“语言模型”是学习预测句子下一个单词的任何模型)
  2. 使用您的语言模型对该语言模型进行微调目标语料库(在这种情况下,IMDb影评)
  3. 删除编码器在这个优化的语言模型中,代入a分类器.然后为最终的分类任务(在本例中,情绪分析)。

在我们进入NLP之后,我们将通过覆盖表格数据(如电子表格和数据库表)来完成编程人员实际深度学习的实际应用程序,和协同过滤(推荐系统)。

表格数据,我们来看看如何使用分类连续变量,以及如何使用fastai.tabular模块建立和训练一个模型。

然后我们将看到如何使用类似于表格数据的思想来构建协作过滤模型,但通过一些特殊的技巧来获得更高的准确性和更丰富的模型解释。

这就把我们带到了课程的中途,我们研究了如何在这些关键的应用领域中构建和解释模型:

课程的后半部分,我们将学习manbetx官网手机登录如何这些模型确实有效,以及如何从头开始创建它们。在这节课中,我们将把到目前为止我们接触过的一些关键部分放在一起:

在剩下的课程中,我们将更详细地讨论这些问题。我们还会学习一种对NLP很重要的层manbetx官网手机登录,协同过滤,和表格模型嵌入层.我们会发现,“嵌入”仅仅是一种特定类型矩阵乘法(a乘以a)的计算捷径在一个炎热的编码矩阵)。

第5课:反向传播;加速SGD;从头开始的神经网络

在第5课中,我们把所有的训练片段放在一起,以准确地理解我们谈论的内容manbetx官网手机登录反向传播.我们将使用这些知识从头开始创建和训练一个简单的神经网络。

从头开始的神经网络
从头开始的神经网络

我们还会看到如何查看嵌入层的权重,找出我们的模型对分类变量的理解。manbetx官网手机登录这将让我们了解到我们应该不惜一切代价避免哪些电影。

解释电影评论的嵌入
解释电影评论的嵌入

虽然嵌入式在NLP的word嵌入式上下文中最为人熟知,对于一般的分类变量,如表格数据或协同过滤。它们甚至可以成功地用于非神经模型。

普通模型与不嵌入模型的性能比较
普通模型与不嵌入模型的性能比较

第六课:正规化;旋转;数据伦理

今天我们来讨论一些有效的技巧来改善训练和避免过度配合:

单个图像的数据增强示例
单个图像的数据增强示例

接下来,我们会学到很多manbetx官网手机登录曲线玲珑,它可以被认为是带束缚权的矩阵乘法的一种变体,是现代计算机视觉模型的核心操作(以及,越来越多的还有其他类型的模型)。

我们将使用这些知识来创建a类激活映射,这是一幅热图,它显示了图像的哪些部分在预测中是最重要的。

卷积是如何工作的
卷积是如何工作的

最后,我们将讨论一个许多学生告诉我们的课程中最有趣和最令人惊讶的话题:数据伦理。我们会学到模型出错的一些manbetx官网手机登录方式,特别关注反馈回路,为什么会产生问题,以及如何避免它们。我们还会研究数据中的偏差是如何导致偏差算法的,讨论数据科学家能够也应该提出的问题,以帮助确保他们的工作不会导致意外的负面结果。

美国司法系统中算法偏见的例子
美国司法系统中算法偏见的例子

第七课:从头再来;U-net;生成(对抗)网络

在程序员实践深度学习的最后一课中,我们将学习现代架构中最重要的技术之一跳过连接.最著名的用法是resnet,这是我们在这门课中使用的图像分类体系结构,并出现在许多前沿成果中。我们还会看看U-net架构,它使用了一种不同类型的跳转连接,极大地提高了分割结果(也适用于输出结构类似于输入的类似任务)。

对resnet箕斗连接的损失表面的影响
对resnet箕斗连接的损失表面的影响

然后我们将使用U-net体系结构来培训a超分辨率模型。这种模型可以提高低质量图像的分辨率。我们的模型不仅可以提高分辨率,还可以删除jpeg工件和不需要的文本水印。

为了使我们的模型产生高质量的结果,我们将需要创建一个包含自定义损失函数的函数功能丧失(也称为知觉损失),随着克的损失.这些技术可以用于许多其他类型的图像生成任务,如图像着色。

超分辨率结果使用特征损失和克损失
超分辨率结果使用特征损失和克损失

我们将学习最近的损失函数manbetx官网手机登录生成对抗损失(用于生成对抗网络,或甘斯),在某些情况下可以提高生成模型的质量,以速度为代价。

我们在这节课中展示的技术包括一些未发表的研究:

结果是惊人的,训练只需几个小时(与之前的方法相比,需要几天)。

递归神经网络
递归神经网络

最后,我们将学习如何从头创建一个递归神经网络(RNN)。这是我们在整个课程中使用的NLP模型的基础,事实证明,它们是对常规多层网络的简单重构。

感谢你的阅读!如果你走了这么远,那么你应该去course.manbetx登陆fast.ai开始看第一个视频吧!