吴恩达《机器学习系列课程》学习笔记(一)

大家都想做在线教育,结果最后,B 站反而更像中国的 YouTube。

在 B 站上看到吴恩达的《机器学习系列课程》,看了看发现挺有意思,就梳理一下在此形成学习笔记。

第一节:前言

机器学习早已成为我们的日常。

每当使用 Google 或 Bing 等搜索引擎时,它能给出非常满意的结果,原因之一就是 Google 或微软使用的学习算法,学会了如何给网页排序。

每当使用 Facebook 或苹果的相片分类功能,它能够识别出朋友的照片,也是机器学习。

每当阅读邮件时,垃圾邮件过滤器会帮助我们过滤大量的垃圾邮件,这也是学习算法。

吴恩达说,「我对此(机器学习)兴奋的原因之一就是梦想有一天能够建造像你我一样智能的 AI。我们离这个目标还很远,但是许多 AI 研究者相信实现这个目标的最好方法就是采用学习算法尝试模拟人类大脑的学习方式。」

为什么现在机器学习如此流行?

吴恩达:

实际上机器学习是从 AI 即人工智能发展出来的一个领域,我们想建造智能机器,然后发现我们可以通过编程让机器做一些基本的事情,比如如何找到从 A 到 B 的最短路径,但大多数情况下,我们不知道如何编写 AI 程序来做更有趣的事情,如网页搜索、相片标记、反垃圾邮件。

人们认识到做到这些事情唯一的方法,就是使机器自己学习如何去做。

因此,机器学习是为计算机开发的一项新功能,如今它涉及工业和基础科学中的诸多领域。

对我而言,我是研究机器学习的,在典型的一周中,我可能会与直升飞机飞行员、生物学家,还有一些计算机系统的人员交流,例如我在斯坦福的同事,我平均每周收到两三封来自硅谷从业者的邮件询问如何应用学习算法解决手头上的问题。

这显示了机器学习涉及的领域之广,包括自主机器人、计算生物学,硅谷的很多领域都受到机器学习的影响,还有一些其他的例子,比如数据挖掘,机器学习如此普遍的原因之一,就是网络和自动化技术的发展,这意味着我们拥有了前所未有的大量的数据集,现在大量硅谷公司收集网络点击数据(点击流数据),并试图采用机器学习算法来挖掘数据,更好地理解用户,并更好地为用户服务,目前这在硅谷占了很大一部分。医疗记录,随着自动化的出现,现在我们有了电子医疗记录,假如我们能将医疗记录转化为医疗知识,就能更好地理解疾病。

计算生物学,因为自动化,生物学家收集了关于基因序列、DNA 序列等大量数据,机器学习算法让我们更好地理解人类基因组,以及身为人类意味着什么。

同样在工程学所有的领域,我们正设法采用学习算法来理解越来越大的数据集。

机器应用的第二个领域是我们无法手动编写的程序。例如我已经在自动直升飞机领域研究了很多年,我们就是不知道如何编写程序使直升飞机自己飞行,唯一可行的就是让计算机自己学习驾驶直升飞机。

手写识别,如今在美国国内或是跨国邮寄,不再昂贵的原因之一,就是当你写好一个信封后,学习算法能够读取你的手写体,然后自动地给你的信规划路线,由此邮寄几千公里之外的信也只需要花费几分钱。事实上,假如你知道自然语言处理或计算机视觉,这些是 AI 中有关理解语言或理解图像的领域,现在大部分的自然语言处理和计算机视觉就是应用了机器学习。

学习算法还广泛应用于私人订制程序中(笔者注:推荐算法,千人千面),每当你使用亚马逊、Netflix、iTunes Genius,它就会推荐电影、产品或音乐给你,这就是学习算法,想象一下,他们有一百万的用户,不可能为一百万名用户编写一百万个不同的程序,用软件给出定制推荐的唯一方法就是让它自我学习,并根据你的偏好为你量身定制。

最后,学习算法还被用来理解人类的学习过程和大脑,我们将会讨论研究者是如何使用这些来朝着 AI 梦想前进。

几个月前,一个学生给我看了一篇关于前沿 12 种 IT 技术的文章,这些技术是最受 IT 企业 HR 欢迎的,这篇文章有点旧了,但是在这 12 种最受欢迎的 IT 技术中,机器学习位列第一,在斯坦福,联系并询问我是否认识机器学习毕业生的招聘人员数量远大于每年毕业的机器学习学生人数。我认为对这项技能的需求很大,未被满足,这是学习机器学习的绝佳时机。
吴恩达《机器学习系列课程》学习笔记(一)

第二节:机器学习的定义

吴恩达《机器学习系列课程》学习笔记(一)
即使在机器学习从业者中,也没有对机器学习的统一定义。现有的对机器学习的定义如下:

  • Arthur Samuel 对机器学习的定义: 在没有明确设置的情况下使计算机具有学习能力的研究领域。(Samuel 成名是由于在 1950 年代他编写了一个跳棋程序,这个程序的令人惊讶之处在于, Samuel 自己并不是跳棋高手,他所做的是,使程序和自己对弈几万次,通过观察哪些布局容易赢、哪些容易输,一段时间后,程序就学到了什么是好/不好的布局。最终程序学会了玩跳棋。并比 Samuel 玩得还好,这是一个引人注目的结果,Samuel 自己不是高手,但是因为计算机有耐心,与自己玩上万次对弈,没有人有这种耐心下这么多盘棋,因此计算机能获得如此丰富的跳棋经验,最终成为一个更厉害的棋手)
  • Tom Mitchell(吴恩达卡内基梅隆大学的朋友): 一个适当的学习问题定义如下,计算机程序从经验 E 中学习解决某个任务 T,进行某一性能度量 P,通过 P 测定在 T 上的表现因 E 而提高。
    对于跳棋程序,E 就是程序与自己下几万次跳棋的经验,任务 T 就是玩跳棋,P 就是与新对手玩跳棋时赢的概率。

吴恩达给的课堂作业如下图所示。
吴恩达《机器学习系列课程》学习笔记(一)

各种不同类型的学习算法

吴恩达《机器学习系列课程》学习笔记(一)
目前有各种不同类型的学习算法,最主要的两类:

  • 监督学习: 简单来说,就是我们会教计算机做某件事情
  • 无监督学习:我们让计算机自己学习
  • 其它还有:强化学习、推荐系统

吴恩达表示,相比知道这些算法、工具,更重要的是,如何去使用,因此,他会讨论应用学习算法时的实际建议。

吴恩达这样说道:「假设确实想要开发机器学习系统,如何让那些最佳实践操作指导你决定用什么方式建立自己的系统,这样当应用学习算法时,就不会像那些用其它方法做了 6 个月的人一样,别人可能一眼就能看出来他们是在做无用功。」