旭峰 2019-04-19
以前,吴恩达的机器学习课程和深度学习课程会介绍很多概念与知识,虽然也会有动手实验,但它们主要是为了帮助理解。在这一份 Coursera 新课中,吴恩达与谷歌大脑的 Laurence Moroney 从实践出发介绍了使用 TensorFlow 的正确姿态。
这一个专项课程目前主要包含两门课,即 TensorFlow 简介与 TensorFlow 中的卷积神经网络。第一课目前已经有很多 Coursera 学员留言,他们表示 TensorFlow 简介是一份极好的入门课程(TensorFlow/Keras),除了编程,它还会介绍机器学习与深度学习的基本概念。
但可能也是因为比较简单,很多学员希望在高级课程中了解更多的 TensorFlow 特性,尤其是 TensorFlow 2.0 的一些开发教程。此外,TensorFlow 中的卷积神经网络课程也今日已经开放注册,它是 TensorFlow 的提升课程。
可能读者最关心的一点是,它到底教的是 TF 1.x 还是 2.0?机器之心在免费注册旁听后发现一些比较吸引人的特点,例如所有练习都是在 Colab 上完成的、代码在 TF 1.x 和 2.0 之间是通用的等。如下图所示为课程练习题页面,代码放在贼好用的 Colab 上都不需要本地计算力。
注意上图是直接导入 TensorFlow,因此当前版本为 1.13.1。不过该课程表示代码足够通用,因此 TF 2.0 alpha 也可以直接使用,只要在导入前先要用 pip 安装 2.0 alpha 就行了。所以说,这个课程介绍的是 TF 1.x 与 2.0。
专项课程简介
如果你是软件开发者,想要试一试深度学习 APP,那么你可以上这门课;如果你是机器学习入门者,除了众多的理论公开课外还想学一学怎样搭个模型,那么这门课可以补足你的动手能力。
这一系列专项课程旨在提供最好的 TensorFlow 实现,我们可以逐步学会如何搭建深度学习模型,并将其应用于实际应用和真实问题中。目前 TensorFlow 仍然是最流行的框架,如果学会了用它做 DL 模型与应用,那么学其它框架就简单多了。
如果你准备搞一搞该系列专项课程,那么你将学习到:
总体而言,在第一项课程中,我们将学习到如何用 TensorFlow 构建基本的神经网络,并将其应用到计算机视觉任务中,同时我们也会了解如何用卷积神经网络提升基本网络的性能。在第二项课程中,我们可以学到更多的高级技巧,例如怎样做数据增强、Dropout 及正则化、迁移学习等等。这些模块或技巧能提升标准模型的性能,并打造实用的新应用。
目前这两个课程在 Coursera 上分别都需要花四周完成,每一周大概 4-5 的学时左右。它们都属于 deeplearning.ai 的专项课程,该系列的其它高级主题暂时还没有放出,可能需要过几月才会放出来。
如下所示为第二项课程的前两周课时,我们可以在 Coursera 上免费注册「旁听」,也就是完全获取课程材料,只不过拿不到成绩证明。当然如果想要认真学一学的话,注册每一门课程需要 194 人民币。
背景知识
学习这个专项课程并不要求对 DL 理论有多了解,相反我们需要知道 Python 编程与高中水平的数学基础。因为整个课程主要是面向开发者与初学者,所以 Python 基础还是要好好打的。
学习 Python 编程有很多路径,例如早一段时间的 Python 官方中文文档 ,这里提供几篇 Python(+NumPy)入门文章:
至于其它理论基础,有的话更好,没有的话也没关系。不过从机器学习到深度学习,吴恩达已经为你准备好了全套学习资料。最经典的机器学习课程不必说,肯定是最为优质的入门课程。虽然我们可能会感觉这门课介绍的很多模型在教程或文献中见得比较少,但很多知识点都是 DL 的基本概念。
机器学习:https://www.coursera.org/learn/machine-learning
对于深度学习,吴恩达近来也推出了深度学习专项课程,我们可以在 Coursera 或网易公开课上了解到相关资源。这个月,斯坦福也开放了 CS230 2018 秋季课程的视频,它会和 Coursera 上的深度学习专项课程有一些重叠。不过 CS230 2018 还是有更多的新知识,包括对抗样本或聊天机器人等等。
视频列表:https://www.youtube.com/playlist?list=PLoROMvodv4rOABXSygHTsbvUz4G_YQhOb
讲师
整个 TensorFlow 系列课程的讲师是吴恩达与谷歌大脑的 Laurence Moroney,前面两课的主讲都是 Laurence Moroney。
吴恩达老师我们都比较熟悉,就不做过多介绍了。另一位讲师 Laurence Moroney 是谷歌的 Developer Advocate,致力于使用 TensorFlow 来开发并构建人工智能相关的应用。他发表了很多编程书籍,现在在视频培训领域与 deeplearning.ai 和 Coursera 展开合作。
此外,Laurence 还是美国科幻作家协会成员,创作了一些科幻小说、剧本和漫画书,包括克里斯蒂安·贝尔主演电影《撕裂的末日》(Equilibrium)的前传。
嗯,确实是很有才了~
专项课程一:TensorFlow 简介
第一个专项课程是关于 TensorFlow 的简介。你会学到如何构建计算机视觉的基础神经网络以及使用卷积改进神经网络。如下是每周的学习主题:
第一周简要介绍机器学习和深度学习,了解它们提供了什么样的新编程范式,为什么又提供一个可以打开新开发场景的工具集。学习这一部分,你只需要了解一些基础的编程技巧。
第二周开始学习使用几行代码来解决计算机视觉问题,并搭建一个简单的视觉模型。
前面搭建的朴素模型确实非常简单,那么在第三周里,我们将学会使用卷积网络处理视觉问题。
如果图像变大了或者特征总是不在同一个地方,怎么办?这个问题的讨论为第四周的学习内容做好准备:处理复杂图像。
专项课程二:TensorFlow 中的卷积神经网络
第二个专项课程主要讲如何改进你在第一个课程中搭建的计算机视觉模型,其中包含一些高级技巧。你将学习如何应对真实世界中形状、大小各异的图像、可视化对图像进行卷积操作的过程,以理解计算机如何「看见」信息、计算损失函数和准确率、探索避免过拟合的策略等。最后,该课程还将介绍迁移学习以及如何从模型中提取学习到的信息。
第一周的课程将从探索一个更大的数据集——猫狗数据集开始,这也是 Kaggle 图像分类挑战赛的赛题之一。
第二周课程的主题是图像增强。增加训练数据可以提高模型的泛化能力,虽然这虽然这并不总是有效的,但我们还是可以选择数据增强来提升模型潜力。在这周的课程中,你将会学到如何调整训练集,以增加其多样性。
第三周的主题是迁移学习。自己构建模型固然很好,但有时会受到手头数据和计算力的限制。并非所有人都掌握着大量的数据和足够的算力,因此我们需要迁移学习。利用迁移学习,你可以直接把别人在大型数据集上训练的模型拿来用,或者只用他们学到的特征。
第四周的主题是多类别分类。之前的课程只讲了二分类,即如何区分马和人、猫和狗等。本周的课程将介绍如何进行多类别分类以及其中涉及的编程知识。
最后,学 TensorFlow 这种实战框架肯定需要大量练习,即便查阅已有的模型代码,我们最好不直接复制粘贴,手写代码也是一种很好的思考过程。