当前位置:首页 > 宠物知识 > 正文

资源|程序员有用深度学习免费课程:从入门到实践

选自Course

机器之心编译

参加:李泽南、曹瑞

欢迎来到为期 7 周的「程序员有用深度学习课程,第 1 部分」。这一部分课程由 Jeremy Howard(Kaggel 开端两届比赛冠军选手;Enlitic 的创始人)教学。在课程中,即便你没有研讨生水平的数学布景,也可以学习怎么树立最先进的模型,当然这个进程并不简略。最终,最重要的是,这些课程全部都是免费的!

  • 课程官网:http://course.fast.ai/

做好预备:怎么设置亚马逊云服务 (AWS) 深度学习服务器

  • 视频链接:https://www.youtube.com/watch?v=8rjRfW4JM2I

在你开端榜首节课之前,你需求一台可以深度学习的机器(也就是说,带有 Nvidia GPU 的核算机)。这部分的课程傍边叙述的大部分内容都是以运用亚马逊云服务 (AWS) 为例。

这个视频具体介绍了设置深度学习服务器的各个过程,运用最近发布的一个叫做「P2」的亚马逊云服务 (AWS) 产品,带有十分强壮的 GPU,还有超大内存。

这个视频以及咱们大多数的内容,都将 us-west-2 (Oregon) 设置为了默许区域。假如你在欧洲,可以运用 eu-east-1 (Ireland),运用 setup_p2_ireland.sh,而不是 setup_p2.sh。现在,AWS 的 p2 只在 3 个区域可以运用,假如你在美国或是欧洲以外的其他当地,你还可以运用这些区域的 Amazon 体系映像 (AMI),可是或许会有延时。

留意:AWS 需求承认用户信息真实性,所以假如你是 AWS 新用户的话,你需求对进入 P2 提出特别的恳求。视频中现已对怎么发送这一恳求做出了展现,可是要留意的是现在有一点改变:现在你可以直接在表格傍边进行恳求,在视频中没有显现出来。运用视频中的「use case description」,在你的恳求被处理之前,不能设置 P2 服务器。

PS:假如你有 Azure 账户的话,可以用新的 GPU 服务器来替代,它们的运作办法简直彻底相同。假如你期望选用这种办法的话,维基和论坛上面有相关的细节。

0、为什么要研讨深度学习?卷积简介

  • 视频链接:https://www.youtube.com/watch?v=ACU-T9L4_lI

这个课程分为两部分:

  • 榜首部分为深度学习的高度概述

  • 第二部分将扼要介绍卷积运算(convolution operation)和随机梯度下降法(Stochastic Gradient Descent)算法

本课的音质的画质与其他课程比较稍差一些。别的,本课傍边涉及到的资料在其他的课程傍边将会有愈加具体地叙述。你在看完第 1 课和第 2 课的视频之后,就会发现事前看这个视频的用途。

1、辨认猫和狗

  • 视频链接:https://www.youtube.com/watch?v=kzt3-FHdAeM

在课程开端之前,请承认已做好深度学习服务器设置,请参阅 AWS 课程:http://course.fast.ai/lessons/aws.html。

在课程开端前,请阅览入门 http://course.fast.ai/start.html。

概论

  • 视频链接:https://www.youtube.com/watch?v=Th_ckFbc6bI

课程对深度学习进行了扼要介绍。随后,咱们将展现怎么发动、中止和办理 AWS 实例,怎么将数据复制到其间(假如你现已了解 AWS,那么你可以快速完结这一部分)。

下一部分的评论的是怎么为本课程(以及咱们即将处理的全部核算机视觉项目)的数据进行结构化。这是最重要的过程——假如你的数据有问题,你将无法练习任何模型。

然后进入榜首个深度学习模型。咱们将学习怎么从很多图片中区别猫和狗。咱们无需了解数学细节,而是经过学习运用核算机完结使命,运用「微调」,这也许是任何深度学习实践者最重要的技能。一旦咱们构建了一个可以从很多猫图中找出狗图的模型,咱们就会退后一步,了解开端的「预练习」模型,并验证它在未经任何微调的情况下可以做什么。

2、卷积神经网络

  • 视频链接:https://www.youtube.com/watch?v=e3aM6XTekJc

在上节课后,你的方针是在区别猫狗的比赛中到达排名前 50%。在这节课上,Jeremy 将会展现他处理这一使命的著作。

在展现一个成功的模型之后,咱们接下来会学到关于分类使命中最常用的丢失函数的一些要害信息,一同学习怎么运用可视化来了解你的模型的成功和失利之处。

在课程的下半部分,咱们将深化了解 CNN 的细节和微调。咱们将首要评论为何一般需求从与练习网络(而不是随机权重)开端,调查微调怎么让模型坚持层次化,并调理权重以使各层和谐。咱们将学习为何需求微调,这包含神经网络的三大要素:

  • 细密层(或全衔接层)

  • 随机梯度下降(SGD)

  • 激活功用(或非线性)

3、欠拟合与过拟合

  • 视频链接:https://www.youtube.com/watch?v=6kwQEBMandw

咱们现已学到构建 CNN 的几种办法——现在需求全面了解它是怎么作业的了。在本节咱们具体介绍了卷积的效果,以及它是怎么与最大池化(max pooling)一同构建 CNN 的。咱们还将了解 softmax 激活函数,它关于在分类模型中取得杰出成果是至关重要的(分类模型是规划用于将数据项分为不同类,即离散组的任何模型)。

假如你关于卷积操作不太了解,你可以先跳到第四课的最初。

随后,咱们将深化了解创立一个有用模型所需的最重要技能:处理欠拟合与过拟合。首要构建一个过拟合模型(这样咱们就会知道咱们的模型满足有用,可以被练习),然后逐步运用一些战略来削减过拟合。在本节中,最重要的部分是应对过拟合的技能列表。咱们主张你可以把这份列表抄写到一个便利的当地,随时参阅运用,一同保证自己了解其间全部办法的含义。

咱们将展现两种应对过拟合最为有用的技能:dropout 和 data augmentation。咱们还会评论预核算卷积层技能。

4、协同过滤、嵌入

  • 视频链接:https://www.youtube.com/watch?v=V2h3IOBDvrA

卷积是学生最难以了解的概念之一,因而咱们将从具体介绍卷积运算开端本节课程,在电子表格中完结一对卷积层和过滤器。接下来,咱们对 SGD(和它的新变种)进行相同的介绍,你会看到加快 SGD 办法十分易用。

随后,咱们将进一步研讨防止过拟合,并学习一些应对含有很多未符号数据,少数已符号数据的数据集(半监督学习使命)的技巧:「伪符号(pseudo-labeling)」与「常识蒸馏(knowledge distillation)」。

最终,咱们将脱离核算机视觉,对引荐体系(特别是协同过滤)展开评论,这是一种有用的技能,一同也是了解嵌入概念的好办法。

5. 自然语言处理和循环神经网络入门

  • 视频链接:https://www.youtube.com/watch?v=qvRL74L81lg

咱们将开端结合咱们之前所学过的东西,看咱们能从中做出什么东西:咱们发现咱们得到了一个可以在 Kaggle 上取胜的成果!要点来了:在这个课程中,咱们为 VGG 加入了批规范化(batch normalization),并且在本来的教室环境中,咱们直接运用这个新完结更新了 VGG16 班。可是,在 MOOC 中,由于每个人都有自己的学习节奏,所以没有供给这个挑选——假如你想运用这个版别的批规范化(强烈引荐),咱们还创立了一个独自的 Vgg16BN 班。

接下来,让咱们回到协同过滤(collaborative filtering),然后咱们可以发现咱们可以快速轻松地构建一个能极大逾越一点快速查找所能得到的全部基准的模型。然后咱们将咱们留意力转向了对这些模型所发明的隐要素(latent factor)的可视化。

咱们还介绍了一下 Keras 功用 API,后边咱们会很多用到它,由于其对架构的构建供给了很好的支撑和灵活性。

现在咱们总算预备好开端自然语言处理(NLP)了,首要咱们会了解前面咱们开发的嵌入(embedding)可以怎么协助咱们了解自然语言。咱们在这个课程中所关注特定 NLP 使命是情感剖析(sentiment analysis),但也有了解咱们在这里学到的全部也适用于其它 NLP 分类使命(比方:废物信息过滤、诈骗检测或假新闻分类、在法令发现中寻觅相关文档等)。咱们也将了解 NLP 领域中搬迁学习的等效技能,即预练习的词向量(pre-trained word vectors)的运用。这个东西能让模型完结更快的练习、削减数据需求、提高泛化才能。

最终咱们将介绍循环神经网络(RNN),其间包含了解神经网络架构的「视觉词汇(visual vocabulary)」——后续的课程会用到它们。

6、构建循环网络

  • 视频链接:https://www.youtube.com/watch?v=ll9y1U0SoVY

本课程首要介绍一个新东西 MixIterator,它答应咱们彻底完结在前几个课程里学到的伪符号技能(pseudo-labeling technique)。MixIterator 乃至可以进一步改善咱们最好的 MNIST 模型,它已进入「学术排行榜」的前五。

然后咱们再次在嵌入体系中检查,运用电子表格来显现它们怎么在「暗地」作业。咱们在嵌入中检查协同过滤(collaborative filterings),就像检查自然语言处理(NLP)那样。

在完结这些较短的使命后,咱们就预备开端今日首要的使命,即构建循环神经网络。咱们检查循环神经网络各种不同的模型,然后运用根本的 Keras 构建块从头开端创立每个模型。

最终,咱们初次检查 Theano,它是 Keras 用来完结核算的库。为了更好地了解 Theano 和循环神经网络的作业原理,咱们在朴实的 Theano 中创立自己的循环神经网络完结。学习 Theano 关于每个人都不是必需的,可是当你发现需求完结在 Keras 中还不存在的东西时,或为你的特定项目修改些什么的时分,Theano 或许就变得至关重要了。它有助于咱们了解深度学习真实的运转办法。

7、卷积神经网络架构;循环神经网络参数推导

  • 视频链接:https://www.youtube.com/watch?v=Q0z-l2KRYFY

这一课是榜首部分课程的最终一课!本节分为两个部分:

  1. 咱们将一同来学习一些新式的卷积神经网络架构,学习怎么处理多输入和多输出,怎么生成热图,怎么处理更大的图画。这些架构都是依赖于 Keras 的 functional API,这咱们在上一节课中现已进行了学习,所以在这节课之前一定要保证把握了这一东西。

  2. 咱们运用纯 Python 或者是 numpy 树立一个循环神经网络,包含自己进行梯度运算和随机梯度下降(SGD)的更新。之后咱们会在 Theano 中树立一个门控循环单元(Gated Recurrent Unit,GRU)。

这些较高档的论题都是进入第 2 部分课程学习的必需内容,第 2 部分课程将于 2017 年 2 月 27 日在旧金山大学数据中心开课,网络课程大约会在 2017 年 3 月更新。之后,咱们将会持续对深度学习进行愈加全面和深化的讨论,期望这些课程能让你从中获益!

发表评论

最新文章