吴恩达老师DeepLearning系列课程最详细学习笔记之4—为什么深度学习会兴起?
教程是本人学习吴恩达老师DeepLearing系列课程中整理的最为详细的学习笔记。学习视频主要来自B站[双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili?,以及DeepLearning官方网站Deep Learning by deeplearning.ai | Coursera。该系列课程总共有180多个,我会将学习笔记陆续分享出来,为有兴趣深度学习的同仁提供便利。再次由衷感谢吴恩达老师的精彩讲解和无私奉献!
特别说明:图片来源于吴恩达老师视频截图。
深度学习和神经网络背后的技术理念已经存在好几十年了,为什么现在才突然流行起来呢?在这个视频,来看一些让深度学习流行起来的主要因素。这将会帮助你在自己的工作单位内发现更好机会来应用这些工具。
在过去几十年里,很多人问我“Andrew,为什么深度学习突然这么厉害了?”我回答的时候,通常给他们画个图。画一条水平轴代表完成任务的数据量,垂直轴代表机器学习算法的性能,比如垃圾邮件过滤的准确率、广告点击预测的准确率、用于无人驾驶中判断其他车辆位置的神经网络的准确率等。根据图像可以发现,把传统机器学习算法的表现(比如说支持向量机或logistic回归)作为数据量的一个函数,你可能得到这样的曲线。它的性能在开始增加数据时会上升,但过一段时间之后,它的性能会逐渐地趋于平坦,这些模型无法处理海量数据。
过去20年,在我们的社会中,我们遇到很多问题早期只有相对较少的数据量。多亏了数字化社会,现在收集海量数据轻而易举。我们人类花了很多时间在数字王国中,在电脑上,在网站上,在手机软件上,数字设备上的活动都能创造数据。同时也归功于便宜的相机,被内置的移动电话,还有加速仪,以及物联网中的各种传感器,我们收集到了越来越多的数据。
过去20年,对于很多应用,我们已经积累了非常多的(超出了传统的学习算法所能有效利用的)数据。如果使用神经网络,你训练一个小型的神经网络,那么它的性能也许看起来像这个样子(下图中黄色曲线)。训练一个稍微大一点的中等规模的神经网络,性能表现可能会更好一些(下图中蓝色的曲线)。你训练一个非常大的神经网络,性能就会是这样的(下图中绿色的曲线),还会越来越好。
注意到两点。一点是,如果你想达到这么高的性能水平,有两个条件。第一个是需要训练一个规模足够大的神经网络,以发挥数据规模量巨大的优点。另外,在x轴的这个位置,你需要非常多的数据。因此我们经常说,“规模”一直在推动深度学习的进步,说到“规模”我指的不仅是神经网络的规模(我们需要一个有许多隐藏单元的神经网络,有许多的参数,许多的连接),而且还有数据“规模”。事实上,要在神经网络上获得更好的表现,在今天最可靠的手段往往就是要么训练一个更大的神经网络,要么投入更多的数据。这只能在一定程度上起作用,因为最终你耗尽了数据,或者最终你的网络规模太大,需要训练的时间太久。但提升规模,已经让我们在深度学习的世界中获得了很大的进展。
为了使这个图从技术上更准确一点,我还要加点说明。我在x轴的下面已经写明了数据量,从技术点上说是“带标签的数据”量。带标签的数据,在训练样本时,我们有输入x和标签y。我们介绍一点符号约定,这在后面的课程中都会用到。我们使用小写字母m表示训练集的规模,或者说训练样本的数量。这个小写字母m就是水平轴。
对于训练集不大的这一块来说,各种算法的性能相对排名并不是很准确。训练集不大的时候,效果会取决于你手工设计的组件,会决定最终的表现。因此很有可能,假设有些人训练出了一个SVM,可能因为手工设计组件很厉害,在训练集不大的时候SVM可能表现更好。在这个图形区域的左边,各种算法之间的优劣并不是定义的很明确,最终的性能更多取决于手工设计组件的技能以及算法处理方面的一些细则。只有在大数据领域,非常庞大的数据集,也就是在右边m非常大时,我们才能见到神经网络稳定地领先其他算法。如果某个朋友问你,为什么神经网络这么流行,我鼓励你也给他们画这样一个图像。
可以这么说,在深度学习崛起的初期,是数据和计算能力规模的进展。训练一个特别大的神经网络的能力,无论是在CPU还是GPU上,是这些发展才让我们取得了巨大的进步。但是渐渐地,尤其是在最近几年,我们也见证了算法方面的极大创新。我们也不想忽略算法方面的巨大贡献。
有趣的是,许多算法方面的创新都为了让神经网络运行得更快。举一个具体的例子,神经网络方面的一个巨大突破是从sigmoid函数,转换到这样的ReLU函数,这个函数我们在之前的视频里提到过,形状就像这样,如果你无法理解刚才我说的某个细则,也不需要担心。使用sigmoid函数,机器学习问题是:在这两个区域sigmoid函数的斜率梯度会接近0,所以学习会变得非常缓慢(因为用梯度下降法时,梯度接近0时参数会变化的很慢,学习也会变得很慢)。而通过改变激活函数,神经网络用这个函数(修正线性单元ReLU),它的梯度对于所有为正值的输入,输出都是1,因此梯度不会逐渐趋于0。而这里的梯度,这条线的斜率在这左边是0。我们发现,只需将sigmoid函数转换成ReLU函数,便能够使得“梯度下降法”运行得更快。这就是一个例子,有点简单的算法创新的例子。但是最终算法创新所带来的影响是增加计算速度。有很多这样的例子,我们通过改变算法使得代码运行得更快。这也使得即使在数据量很大的情况下,我们也能够训练规模更大的神经网络,或者在合理的时间内完成计算。
快速计算很重要的另一个原因是训练神经网络的过程很多时候是凭直觉的。你有了新想法(关于神经网络架构的想法),然后你写代码实现你的想法,然后跑一下实验,实验结果可以告诉你你的神经网络效果有多好。知道结果之后再回去改你的神经网络中的一些细则,然后你不断重复这个循环。当你的神经网络需要很长时间去训练(需要很长时间才能走一圈循环)的话,在实现神经网络时迭代速度对你的效率影响巨大。如果你有一个想法,直接去试,10分钟之后就能看到结果,或者最多花上一天。很有可能你训练你的神经网络用了一个月的时间(有时候确实需要那么久),如果你能很快得到结果(比如10分钟或者一天内),你就可以尝试更多的想法,那你就很可能较快地发现适合你的应用的神经网络。所以计算速度的提升真的有帮助提高迭代速度,让你更快地得到实验结果。这也同时帮助了神经网络的从业人员和有关项目的研究人员在深度学习的工作中迭代得更块,也能够更快地改进你的想法。
所有这些都极大推动了整个深度学习社区的研究,快到令人难以置信。人们还一直在发明新的算法,持续不断地进步,是这些力量支持了深度学习的崛起。好消息是,这些力量还在不断发挥作用,让深度学习更进一步。我们看数据,我们的社会还在产生更多的数字化数据。我们看计算,GPU这类专用硬件还在持续发展,网络速度更快,各种硬件更快。我很有信心,我们实现超级大规模神经网络的能力,或者从计算这个角度看,也在持续进展。我们看算法,我希望深度学习研究社区能在算法上持续创新。基于这些,我们可以乐观地回答,深度学习还会继续进步很多年。让我们继续看最后一个课程视频,我们会谈到通过这门课你能学到什么。
吴恩达老师DeepLearning系列课程最详细学习笔记之4—为什么深度学习会兴起?相关推荐
- 吴恩达老师DeepLearning系列课程最详细学习笔记之23—Jupyter Ipython笔记本的快速指南
教程是本人学习吴恩达老师DeepLearing系列课程中整理的最为详细的学习笔记.学习视频主要来自B站[双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili?,以及Dee ...
- 高效“炼丹”必备技能:一文实现深度学习数学原理入门,还有吴恩达老师亲授课程...
贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 哪个程序员不想高效"炼丹"? 尤其是深度学习算法开发人员,追求模型结构优化和提高编程效率是永远的目标. 但是,如果只做 ...
- 吴恩达《机器学习系列课程》学习笔记(一)
大家都想做在线教育,结果最后,B 站反而更像中国的 YouTube. 在 B 站上看到吴恩达的<机器学习系列课程>,看了看发现挺有意思,就梳理一下在此形成学习笔记. 第一节:前言 机器学习 ...
- 吴恩达《机器学习系列课程》学习笔记(二):监督学习
吴恩达的课程会很偏于用实例来掌握理论知识,不过看着还是有些云里雾里,倒是杉山将的<图解机器学习>介绍得更易懂些. 在此进行结合学习. 杉山将是这么通俗地定义监督学习.无监督学习和强化学习, ...
- 吴恩达老师机器学习和深度学习课程文字版下载
有人把吴恩达老师的机器学习课程和深度学习课程做成了文字版,提供pdf下载,Github获得21K+12.8Kstar! 现在提供下载! 获取方式:扫码进入公众号,回复"pdf2"即 ...
- 【机器学习】吴恩达机器学习Deeplearning.ai
机器学习已经强大到可以独立成为人工智能的一个子领域. 可以通过对机器编程实现比如执行网络搜索.理解人类语言.通过x光诊断疾病,或制造自动驾驶汽车. 机器学习定义 一般来说,给一个算法学习的机会越多,它 ...
- 完课率最高 | 带学吴恩达《机器学习》课程和作业,带打Kaggle全球顶级大赛!...
机器学习算法入门哪家好?吴恩达! 你说我为什么知道?这个要从前两个月说起. 我参加了一场500人的话题讨论会,主题是「推荐适合入门机器学习的公开课」. 结果活动一开始,就被一群学算法的工程师和研究生刷 ...
- 吴恩达 老师 机器学习资料
最近有同学问我要一些 机器学习 的 资料,现分享一下,有视频,编程题,开发 下面是吴恩达 老师 的视频课程: https://pan.baidu.com/s/1EUWlqdUUneQwWMsN4C6d ...
- 有人把吴恩达老师的机器学习和深度学习做成了中文版
近年来 AI 越来越火,吴恩达是被公认的人工智能(AI)和机器学习领域国际最权威的学者,他一直致力于普及.宣传.推广 AI 教育,包括最前沿.最火爆的 AI 基础课程.深度学习课程等等.惠及全球超过 ...
最新文章
- 简单的Java处理事务
- 两道统计题(两次检测呈阳性,连续抛硬币)
- Linux认证复习题100道含答案
- debian 10安装ssh依赖openssh-client版本错误的解决办法及开启ssh远程登录设置
- 不再为 Node.js 模块自动引入 Polyfills
- hdu Robberies
- Linux操作系统基础
- java面试中的智力题
- C语言实现贪吃蛇(简易)
- NXP S32K3 RTD-MCAL快速引导
- c语言课程设计超市收银系统,C语言超市收银系统.pdf
- S7-1500PLC仿真
- 开发游戏十年,遭遇游戏开发史上最诡异事件,然而被我成功解决了!
- ftp服务器文件访问路径,ftp服务器访问路径格式
- 鸿蒙os系统使用技巧,鸿蒙OS 应用权限管理
- Vue3 Hooks 模块化抽离
- 中国大学mooc慕课题库答案怎么查,这里全有了
- 已解决java.lang.Integer cannot be cast to java.lang.String异常的正确解决方法,亲测有效!!!
- 日元对人民币汇率的大数据分析与预测
- 象棋世家 v6.0a 官方