内容简介:好消息,又有新课程推荐!国外最受好评、理论+实践相结合、完全免费的 AI 课程——“给程序员的实践深度学习课”,刚刚上线了全新的 2019 版!课程出品方、fast.ai 创始人 Jeremy Howard 介绍说,这次的课程,内容 100% 全新,还包括之前从未介绍过的一些新成果,以及它们的现实应用。
好消息,又有新课程推荐!
国外最受好评、理论+实践相结合、完全免费的 AI 课程——“给 程序员 的实践深度学习课”,刚刚上线了全新的 2019 版!
课程出品方、fast.ai 创始人 Jeremy Howard 介绍说,这次的课程,内容 100% 全新,还包括之前从未介绍过的一些新成果,以及它们的现实应用。
其中有些成果,甚至新到论文都还没发表。比如说,用迁移学习训练 GAN,训练时间从几天缩短到了几小时。
整个课程一共 7 节,带你从理论到应用学成深度学习,计算机视觉、NLP、推荐系统等等一课打尽。
Jeremy 发推宣布不到半天,600 多人转发推荐,连机器学习顶会 ICML 官推都转了。
前两期课程的学生和各路网友都跑出来花式赞美,甚至有不少人直接说它是“最好的深度学习课程”。
web 框架 Django 的开发者之一 Simon Willison 就曾经在博客上分享过自己学了一节课,训练最厉害的图像分类模型的经历。
还有学生上课成瘾,愿意一次又一次地回炉再深造。一位名叫 ScoutOrgo 的网友就是这么干的。他在极客扎堆儿的 HackerNews 社区评论说:
fast.ai 课程每次迭代我都上,每次都觉得很值。最新的 2019 课程也好优秀,虽然里边的很多概念我都学过了,还是每节课都能学到一大堆东西。
课如其名,这套课程的核心是“实践”。前半部分,几乎完全集中在实战技巧上,对于理论只提到了实践中绕不开的那些;到了后半部分,才逐步深入地探讨了理论。
课程地址:
https://course.fast.ai/
更贴心的论坛,可搜索的视频
随着新版课程一起上线的,还有更国际化的课程社区。
Jeremy 介绍说,他们为课程论坛添加了新功能,能按照时区、地点、语言给话题分类,想创建或者 寻找同一地区、用母语讨论的学习小组 更容易了。
不过现在,这个功能似乎出了点小 bug,暂时没上线。Jeremy 也说正在修复,欢迎有同学试用成功了告诉我们。
参与到社区中,跟同学们讨论本来就是好好学习的一个重要环节,现在,连“让你和同胞用母语讨论”这样贴心的功能都来了,还有什么理由不好好学习呐?
论坛地址:
https://forums.fast.ai/c/part1-v3
除了各国人民跨语言跨时区讨论之外,可能两小时的视频也会成为很多同学的学习障碍。
因此,新版课程的播放器也是更新过的,非常强大,可以搜索课程内容,并直接跳转到你要找的视频部分。
△ 有可检索时间线的课程视频
图像、文本、协同过滤全精通
这套课程总共有七节,每节课除了上课两小时视频之外,课后还需要花大约 10 个小时完成作业。
从头到尾好好学习需要大约 84 小时。如果留到春节假期一天一节,就是一天 12 小时扑在学习上,比打麻将积极进取多了,还能避开询问你为何单身的亲戚。
上课前就要会的基础知识也不多:要有一年的编程经验,而且具有高中数学知识(课程中可能穿插了一些大学数学)。
因为是用 PyTorch 库教学,所以最好是 Python 上的编程经验。
84 小时看起来很长,但如果你看看课程涉及的内容,会觉得这个时间,简直太“速成”了。
课程涉及的应用有四大类,从计算机视觉、NLP、到根据表格数据做预测、推荐系统都要学。具体是这样的:
-
计算机视觉(例如按品种分类宠物照片)
图像分类
图像定位(分割和激活图)
图像关键点
-
NLP(例如电影评论情绪分析)
语言建模
文件分类
-
表格数据(例如销售预测)
分类数据
连续数据
-
协同过滤(例如电影推荐)
这些内容覆盖的基础概念也很多,包括参数和激活、随机初始化和迁移学习、卷积、Dropout、权重衰减等等:
△ 课程涵盖的基础
这七节课,可以分为纯实践部分和比较深入的理论部分。
前四节课特别重实践。
第一课用迁移学习方法训练图像分类器;第二课开始自己请洗数据构建数据集;第三课从原来的单标签数据集过渡到多标签数据集,还要学习图像分割;第四课学习 NLP 和协同过滤,练习用算法给电影评论分类,再推荐电影。
后三节课相比之下就稍微重理论一点点。
第五课要从头开始搭建自己的神经网络,在这个过程中理解反向传播;第六课要学习各种改进训练防止过拟合的技术、理解卷积,还要讨论数据伦理;第七课要从头开始构建更复杂的 ResNet 和U-Net,研究各种损失函数,还要进入 GAN 的领域。
每一节课的具体内容是这样的:
第一课:图像分类
新人第一课,要训练一个图像分类器,能够以最高的准确度识别宠物品种。其中的关键是使用迁移学习,这也是本课程大部分内容的基础。
△ 训练和分析宠物品种分类器
我们将看到如何分析模型以了解其失效模式。在这一部分,我们会发现模型出错的地方与宠物育种专家可能犯错的地方相同。
最后,本节课还讨论了在训练神经网络时如何设置最重要的超参数:学习率。我们将看看标签这一重要但很少讨论的话题,并了解 fastai 提供的一些功能,这些功能可以轻松地将标签添加到图像中。
要注意的是,训练分类器需要连接到云 GPU 提供商,或者自己搭建一个合适 GPU 计算机,还需熟悉 Jupyter Notebook 环境的基础知识。
第二课:数据集的创建和清理、从头开始 SGD
这部分内容是教授用户学习如何使用自己的数据搭建图像分类模型,包括以下主题:
-
图片集
-
并行下载
-
创建验证集
-
数据清理
Jeremy 会教我们创建一个模型,用来区分泰迪熊和灰熊。
△ 图像分类器
这节课的后半部分,将从头开始训练一个简单的模型,创建我们自己的梯度下降回路。
△ 梯度下降
第三课:数据块、多标签分类、分割
我们从第 3 课开始研究一个有趣的数据集:Planet 的从太空了解亚马逊。
为了将这些数据转化为我们需要用于建模的形式,我们将使用 fastai 最强大的唯一工具:数据块 API。这个 API 以后还要用很多次。
学完本课后,如果你准备学习更多关于数据块 API 的知识,请查看这篇文章:Wayde Gilliam 的《Finding Data Block Nirvana》:
https://blog.usejournal.com/finding-data-block-nirvana-a-journey-through-the-fastai-data-block-api-c38210537fe4
Planet 数据集是一个多标签数据集。也就是说:每个 Planet 图像可以包含多个标签,而我们看过的先前数据集每个图像只有一个标签。我们将看看我们需要对多标签数据集进行哪些更改。
△ 图像分割
接下来,我们将看一下图像分割。我们将使用与早期图像分类模型类似的技术,并进行一些调整。fastai 使图像分割建模和解释与图像分类一样简单,因此不需要太多的调整。
本课程的这一部分使用的是 CamVid 数据集,它的误差远远低于其他任何学术论文中的模型。
第四课:NLP、表格数据、协同过滤、嵌入
在这节课中,Jeremy 给我们制定的目标是,预测电影评论是积极的还是消极的,称之为情绪分析。我们将使用 IMDb 电影评论数据集深入研究自然语言处理(NLP)。
Jeremy 将使用最初在 2018 年课程期间开发的 ULMFiT 算法,他说这是当今最准确的情绪分析算法。
创建情绪分析模型的基本步骤是:
1、创建语言模型,在大型语料库(例如维基百科)上训练,这里的“语言模型”是学习预测句子的下一个单词的任何模型
2、使用目标语料库(IMDb 电影评论)微调此语言模型
3、删除这个微调语言模型中的编码器,并用分类器替换它。然后,针对最终的分类任务微调这个情绪分析模型。
在进入 NLP 学习之后,我们将通过覆盖表格数据以及 协同过滤 来完成编码器深度学习的实际应用。
对于表格数据,我们将看到如何使用分类变量和连续变量,以及如何使用 fastai.tabular 模块来设置和训练模型。
然后,我们将看到如何使用类似于表格数据的想法来构建协同过滤模型。
在进入 NLP 学习之后,我们将通过覆盖表格数据以及 协同过滤 来完成编码器深度学习的实际应用。
对于表格数据,我们将看到如何使用分类变量和连续变量,以及如何使用 fastai.tabular 模块来设置和训练模型。
然后,我们将看到如何使用类似于表格数据的想法来构建协同过滤模型。
进入课程的中段,我们已经研究了如何在每个关键应用领域中创建和解释模型。在课程的后半部分,我们将了解这些模型是如何工作的,以及如何从头开始创建它们。
下面,我们将接触到以下概念:
-
激活
-
参数
-
图层
-
损失函数
第五课:反向传播、加速 SGD、从头开始搭神经网络
在第 5 课中,我们将所有训练组合在一起,以便准确理解反向传播时发生了什么,并利用这些知识从头开始创建和训练一个简单的神经网络。
△ 从头开始训练的神经网络
我们还将看到如何查看嵌入层的权重,以找出电影评论解读模型对从分类变量中学到了什么,让我们避开那些烂片。
尽管嵌入在 NLP 的单词嵌入环境中最为广为人知,但它们对于一般的分类变量也同样重要,例如表格数据或协同过滤。它们甚至可以与非神经模型一起使用,并取得了巨大成功。
△ 常见的有嵌入和无嵌入模型性能比较
第六课:正规化、卷积、数据伦理
这节课将讨论一些改进训练和避免过度拟合的强大技术:
-
Dropout:在训练期间随机删除激活,使模型正规化
-
数据增强:在训练期间修改模型输入,有效地增加数据大小
-
批量标准化:调整模型的参数化,使损失表面更平滑。
△ 单个图像的数据增强示例
接下来,我们将学习卷积的所有知识,卷积可以被认为是矩阵乘法的一种变型,并且是现代计算机视觉模型的核心。
我们将利用这些知识创建一个类激活图,这是一个热图,显示图像的哪些部分在做出预测时最重要。
△ 卷积如何运作
最后,我们将讨论一个许多学生告诉我们的主题,这是课程中最有趣也是最令人惊讶的部分: 数据伦理 。
我们将了解模型可能出错的一些方式,特别关注反馈回路、它们导致问题的原因以及如何避免这些问题。
我们还将研究数据偏差会导致算法偏差的方式,并讨论数据科学家可以也应该提出的问题,以帮助确保他们的工作不会导致意外的负面结果。
△ 美国司法系统中算法出现偏差的例子
第七课:从头构建 ResNet 和U-Net、生成(对抗)网络
最后一节课了,要学习的第一项内容也是“现代架构中最重要的技术之一”:跳跃连接。
关于跳跃连接,这节课会讲到 ResNet 和U-Net 架构。
ResNet 是跳跃连接最知名的应用,整套课程讲图像识别时也是从头到尾都在用 ResNet。
而U-Net 用的是另一种跳跃连接,它的作用是优化分割结果,以及其他输出和输入结构差不多的任务。
△ ResNet 跳跃连接对损失表面的影响
学习了U-Net 之后,就要用它训练一个超分辨率模型。这个模型不仅能把渣图变清晰,同时还能清除 jpeg 图片上的伪迹和文字水印。
为了让模型结果更好,这节课还会带着学生们结合特征损失(feature loss,或者叫感知损失 perceptual loss)和 gram 损失,创建自定义的损失函数。这是图像上色等生成任务中常用的技术。
△ 用特征损失和 gram 损失得到的超分辨率结果
接下来,就要学习 GAN 里使用的生成对抗损失了,有些情况下它能牺牲一些速度,增强生成模型的质量。
这节课展示的一些技术来自未发表的研究,包括:
-
用迁移学习更快更可靠地训练 GAN;
-
将架构创新和损失函数以前所未有的方式结合。
Jeremy 在课程介绍中保证:结果惊艳,训练只需几小时,再也不用像以前一样花上好几天。
△ 一个循环神经网络
最后,这节课还要教你从头开始构建一个循环神经网络,也就是整套课程 NLP 内容都在用的基础模型。实际上,RNN 是规则的多层神经网络的一个简单重构。
嫌吴恩达老气的另类“慈善机构”
这门课背后的 fast.ai,在深度学习界算是独树一帜。
fast.ai 由 Kaggle 大神 Jeremy Howard、后悔读了博的数学博士 Rachel Thomas、原本在巴黎教了 7 年书的 Sylvain Gugger 联合创办。
他们是真正的实践派,课程以“教实用的东西、高效解决问题”为核心追求,非常重视工程实现细节。
在去年发布更基础的“程序员的机器学习入门”课程(Introduction to Machine Learning for Codes)时,他们赞扬了吴恩达老师的入门课 worderful 之后就接了个“但是”:但是,它现在有显得太老气了,特别是作业还得拿 Matlab 写。
fast.ai 的课程就非常紧跟程序员的实践潮流,用 Python 编程,用交互式的 Jupyter Notebooks 学习。
同时,他们也非常鼓励学生去参加 Kaggle 竞赛,检验自己的能力。
fast.ai 不仅课程内容上新潮,还堪称“慈善组织”:
课程全都免费,连个“收费领取证书”的设定都没有。
Jeremy 曾经说:“我们的商业模式就是:花自己个人的钱做点事情,帮人使用深度学习。”有人担心“商业模式”不可持续的时候,Jeremy 还硬怼了回去:
Why not?我有足够的钱。
“完全独立,连捐款都不收”的 fast.ai 积攒了大量“自来水”。
学生们经常总结、分享课程经验。比如说,曾经学生总结了“称霸 Kaggle 的十大深度学习技巧”,广为流传。
写笔记总结经验还不是自来水的最高级形态,自古以来,“为母校争光”都是要做出新成就的。
fast.ai 的学生 Andrew Shaw 就做到了。他和 Jeremy 老师、美国国防部的 Yaroslav Bulatov 就一起实现了低成本 18 分钟训练完 ImageNet。
和那些大厂的“X分钟训练完 ImageNet”不一样,他们的方法并没有堆积计算资源,用的云服务器成本还不到 300 块,称得上人人可用。
这个另类机构的其他成就还有:
-
配合 PyTorch 使用,一个 API 包揽常见深度学习应用的库:fastai;
https://docs.fast.ai/
-
打响 NLP 迁移学习狂欢第一枪的 ULMFiT;
http://nlp.fast.ai/category/classification.html
One More Thing
如果你达到了这门课的基本要求,有一年编程经验和高中数学基础,那么,挡在你和它之间的,可能就只剩一大障碍了:
英语。
这事儿靠自身努力也好解决。先看看前阿里人于江水的这份 程序员的英语学习指南 吧,GitHub 上已经 5000 多星了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- cinatra发布新版本
- 如何阅读OpenStack源码(更新版)
- 新版任你发,我用Java 8!
- Zabbix 新版微信告警 [2017]
- [ Laravel 5.7 文档 ] 序言 —— 新版特性
- 新版本react的context使用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。