我从吴恩达深度学习课程中学到的21个心得:加拿大银行首席分析师“学霸“笔记分享

今年8月,吴恩达的深度学习课程正式上线,并即刻吸引了众多深度学习粉丝的“顶礼膜拜”。一如吴恩达此前在Coursera上的机器学习课程,这几门深度学习课程也是好评如潮。

在诸多粉丝中,加拿大国家银行金融市场的首席分析师Ryan J. Shrott从前三门深度学习课程中总结出了21点心得,总结了该系列课程的诸多精华。

今天,文摘菌就带大家一起来读一读这份“学霸“笔记。

首先来看一下Ryan对该课程的总体评价:

吴恩达先生(Andrew Ng)的3门课程都超级有用,教会了我许多实用的知识。吴教授擅长过滤掉流行词汇,用一种清晰简洁的方式解释了一切。比如他阐明了监督式深度学习(supervised deep learning)只不过是一个多维的曲线拟合程序,而其他任何具有代表性的理解,如人类神经系统的通用参照,则有些太过玄乎了。

官方介绍说只需要有一些基本的线性代数和Python编程知识就可以听懂这些课程。然而我认为你还应该懂得矢量微积分(vector calculus),有助于懂得优化过程的内部机理。如果你不关心内部如何运行,只是关注获取更高层面的信息,你可以跳过那些微积分的视频。

下面,就是Ryan在学习完该系列课程后的心得。

心得1:为什么深度学习得以迅速发展

我们人类当今拥有的90%的数据都是于最近2年内收集的。深度神经网络(DNN’s)可以更好地利用大规模的数据,从而超越较小的网络及传统学习算法。

此外,还有好多算法方面的革新使DNN‘s的训练变得非常快。比如将Sigmoid激活函数转换成ReLU激活函数已经对梯度下降等优化过程产生了巨大的影响。这些算法的优化使得研究者们的“创意-编码-验证”循环迭代速度越来越快,从而引导了更多的创新。

心得2:深度学习内的矢量化(vectorization)

在上这门课之前,我从没有意识到一个神经网络可以不用for循环来搭建。吴恩达很好地传达了矢量化代码设计的重要性。在作业中,他还提供了一个标准化的矢量代码设计样本,这样你就可以很方便的应用到自己的应用中了。

心得3:DNN的深层理解

在第一个课程中,我学会了用NumPy库实现前向和反向传播过程,我因而对诸如TensorFlow和Keras这些高级别框架的内部工作机理产生了更深层次的理解。吴恩达通过解释计算图(comptation graph)背后的原理,让我懂得TensorFlow是如何执行“神奇的优化”的。

心得4:为什么需要深度表征(Deep Representations)

吴恩达对DNN‘s的分层方面有着直观的理解。比如,在面部识别方面,他认为先前的分层用于将脸部边缘分组,后续的分层将这些分好的组形成五官(如鼻子、眼睛、嘴等等),再接下来的分层把这些器官组合在一起用以识别人像。他还解释了回路理论(circuit theory),即存在一些函数,需要隐藏单元的指数去匹配浅层网络的数据。可以通过添加有限数量的附加层来简化这个指数问题。

心得5:处理偏差(bias)和方差(variance)的工具

吴教授解释了识别和修缮偏差和方差相关问题的步骤。下图显示了解决这些问题系统性的方法。

机器学习的基本“秘诀” 解决偏差和方差的“秘诀”

他还解决了偏差和方差之间被普遍引用的“权衡”(tradeoff)问题。他认为在深度学习的时代,我们拥有独立解决每个问题的能力,所以这种“权衡”问题将不再存在。

心得6:正则化的直观解释

为什么向成本函数中加入一个惩罚项会降低方差效应?在上这门课之前我对它的直觉是它使权重矩阵接近于零,从而产生一个更加“线性”的函数。吴教授则给出了另一个关于tanh激活函数的解释。他认为更小的权重矩阵产生更小的输出,这些输出集中围绕在tanh函数的线性区域。

tanh激活函数

他还为dropout给出了一个直观的解释。之前我认为dropout仅仅在每个迭代中消灭随机神经元,就好比一个越小的网络,其线性程度就越强一样。而他的观点是从单个神经元的角度来看这一做法。

单个神经元的角度

因为dropout随即消灭连接,使得神经元向父系神经元中更加均匀地扩散权重。以至于更倾向于缩减权重的L2范数(squared norm)的效果。他还解释了dropout只不过是L2正则化的一种自适应形式,而这两种的效果类似。

心得7: 为什么归一化(normalization)有效?

吴恩达展示了为什么归一化可以通过绘制等高线图(contour plots)的方式加速优化步骤。他详细讲解了一个案例,在归一化和非归一化等高线图上梯度下降样本进行迭代。

心得8: 初始化的重要性

吴恩达展示了不好的参数初始化将导致梯度消失或爆炸。他认为解决这个问题的基本原则是确保每一层的权重矩阵的方差都近似为1。他还讨论了tanh激活函数的Xavier初始化方法。

心得9: 为什么使用小批量(mini-batch)梯度下降?

吴教授使用等高线图解释了减小和增加小批量尺寸的权衡。基本原则是较大的尺寸每次迭代会变慢,而较小的尺寸则可以加快迭代过程,但是无法保证同样的收敛效果。最佳方法就是在二者之间进行权衡,使得训练过程比立即处理整个数据集要快,又能利用向量化技术的优势。

心得10: 高级优化技术的直观理解

吴恩达解释了动量(momentum)和RMSprop等技术是如何限制梯度下降逼近极小值的路径。他还用球滚下山的例子生动地解释了这一过程。他把这些方法结合起来以解释著名的Adam优化过程。

心得11: 基本TensorFlow后端进程的理解

吴恩达解释了如何使用TensorFlow实现神经网络,并阐明了在优化过程中使用的后端进程。课程作业之一就是鼓励你用TensorFlow来实现dropout和L2正则化,加强了我对后端进程的理解。

心得12: 正交化

吴恩达讨论了机器学习策略中正交化的重要性。基本思想是执行一些控件,这些控件一次只作用于算法性能的单一组件。例如为了解决偏差问题,你可以使用更大的网络或更多的鲁棒优化技术。你希望这些控件只影响偏差而不会影响其他如较差泛化等问题。一个缺少正交化的控件过早停止了优化过程。因为这会同时影响模型的偏差和方差。

心得13:建立单一数字评估指标的重要性

吴恩达强调选择单一数字评估指标来评估算法的重要性。在模型开发过程中,如果你的目标改变,那么随后才可以更改评估度量标准。 Ng给出了在猫分类应用程序中识别色情照片的例子!

心得14:测试集/开发集的分布情况

始终确保开发集和测试集具有相同的分布。这可确保你的团队在迭代过程中瞄准正确的目标。这也意味着,如果你决定纠正测试集中错误标记的数据,那么你还必须纠正开发集中错误标记的数据。

心得15:处理训练集和测试集/开发集处于不同分布的情况

吴恩达给出了为什么一个团队会对具有不同分布的训练集和测试集/开发集感兴趣的原因。原因在于,你希望评估标准是根据你真正关心的例子计算出来的。例如,你也许想使用与你的问题不相关的示例作为训练集,但是,你别指望使用这些示例对你的算法进行评估。你可以使用更多的数据训练你的算法。经验证明,这种方法在很多情况下会给你带来更好的性能。缺点是你的训练集和测试集/开发集有着不同的分布。解决方案是留出一小部分训练集,来单独确定训练集的泛化能力。然后,你可以将此错误率与实际的开发集错误率进行比较,并计算出“数据不匹配”度量标准。吴恩达随后解释了解决这个数据不匹配问题的方法,如人工数据合成。

心得16:训练集/开发集/测试集的大小

在深度学习时代,建立训练集/开发集/测试集划分的参考标准发生了巨大的变化。在上课之前,我知道通常的60/20/20划分。 Ng强调,对于一个非常大的数据集,你应该使用大约98/1/1甚至99 / 0.5 / 0.5的划分。这是因为开发集和测试集只需足够大,以确保你的团队提供的置信区间即可。如果你正在使用10,000,000个训练集示例,那么也许有100,000个示例(或1%的数据)已经很大了,足以确保在你的开发集和/或测试集具有某些置信界限。

心得17:逼近贝叶斯最优误差

吴恩达解释了在某些应用中,人类水平的表现如何被用作贝叶斯误差的代表。例如,对于诸如视觉和音频识别的任务,人的水平误差将非常接近贝叶斯误差。这可以让你的团队量化你的模型中可以避免的偏差。没有贝叶斯误差等基准,将很难理解网络中的方差和可避免的偏差问题。

心得18:错误分析

吴恩达展示了一个效果比较明显的技术,即通过使用错误分析,来显著提高算法性能的有效性。基本思想是手动标记错误分类的示例,并将精力集中在对错误分类数据贡献最大的错误上。

识别猫的应用程序错误分析

例如,在识别猫的应用中,吴恩达判定模糊图像对错误贡献最大。这个灵敏度分析可以让你看到,在减少总的错误方面,你的努力是值得的。通常可能是这样的情况,修复模糊图像是一个非常艰巨的任务,而其他错误是明显的,且容易解决。因此敏感性和模糊工作都将被纳入决策过程。

心得19:何时使用迁移学习?

迁移学习允许你将知识从一个模型迁移到另一个模型。例如,你可以将图像识别知识从识别猫的应用程序迁移到放射诊断。实现迁移学习涉及到用更多的数据重新训练用于类似应用领域的最后几层网络。这个想法是,网络中较早的隐单元具有更广泛的应用,通常不是专门针对你正在使用的网络中的特定任务。总而言之,当两项任务具有相同的输入特征时,而且当你尝试学习的任务比你正在尝试训练的任务有更多的数据时,迁移学习是有效的。

心得20:何时使用多任务学习?

多任务学习迫使一个单一的神经网络同时学习多个任务(而不是每个任务都有一个单独的神经网络)。Ng解释说,如果一组任务可以从共享较低级别的特征中受益,并且每个任务的数据量在数量级上相似,则该方法可以很好地工作。

心得21:何时使用端到端的深度学习?

端到端的深度学习需要多个处理阶段,并将其组合成一个单一的神经网络。这使得数据能够自己说话,而不会存在人们在优化过程中手动显示工程步骤出现的偏差。相反,这种方法需要更多的数据,可能会排除可能手动设计的组件。

总结

Ryan总结道,虽然吴恩达的深度学习课程不能让你成为真正的深度学习专家,但可以让你对深度学习模型的发展过程有了基本的直觉了解。当然,这21点心得也远远不能涵盖该系列课程的全部信息,要想入门深度学习,还是的自己亲自学习这系列课程。

那么,学霸对这门课程有什么负面评价么?

没错,也还是有的。Ryan认为,这门课的作业实在太过简单——并顺手收过了文摘菌的膝盖。

原文发布时间为:2017-12-7

本文作者:文摘菌

时间: 2024-09-20 05:33:09

我从吴恩达深度学习课程中学到的21个心得:加拿大银行首席分析师“学霸“笔记分享的相关文章

吴恩达深度学习课程笔记之卷积神经网络基本操作详解

卷积层 CNN中卷积层的作用: CNN中的卷积层,在很多网络结构中会用conv来表示,也就是convolution的缩写. 卷积层在CNN中扮演着很重要的角色--特征的抽象和提取,这也是CNN区别于传统的ANN或SVM的重要不同. 对于图片而言,图片是一个二维度的数据,我们怎样才能通过学习图片正确的模式来对于一张图片有正确的对于图片分类呢?这个时候,有人就提出了一个观点,我们可以这样,对于所有的像素,全部都连接上一个权值,我们也分很多层,然后最后进行分类,这样也可以,但是对于一张图片来说,像素点

吴恩达的21节Deeplearning.ai课程学习经验总结

截止到2017年10月25日,吴恩达在Coursera上目前有3门新的深度学习课程: 1.神经网络和深度学习(Neural Networks and Deep Learning) 2.改善深度神经网络:调优超参数,正则化和优化(Improving Deep Neural Networks: Hyperparamater tuning, Regularization and Optimization) 3.构建机器学习项目(Structuring Machine Learning Projects

谷歌大脑之父吴恩达加盟百度 主攻深度学习

中介交易 SEO诊断 淘宝客 云主机 技术大厅 5月16日,<第一财经日报>记者获悉,百度今日在内部公布了Google Brain项目创始人Andrew Ng(中文名吴恩达)加入百度的内部邮件.邮件显示,吴恩达出任百度首席科学家职务,向百度高级副总裁王劲汇报.据了解,他将负责百度深度学习研究院工作,尤其是Baidu Brain计划. 公开资料显示,吴恩达是斯坦福大学人工智能实验室主任,人工智能和机器学习领域国际上最权威的学者之一.此前,吴恩达与谷歌合作研究深度学习,并领导谷歌X实验室团队斥巨资

吴恩达 NIPS 2016:利用深度学习开发人工智能应用的基本要点(含唯一的中文版PPT)

雷锋网按:为了方便读者学习和收藏,雷锋网(公众号:雷锋网)特地把吴恩达教授在NIPS 2016大会中的PPT做为中文版,由三川和亚峰联合编译并制作. 今日,在第 30 届神经信息处理系统大会(NIPS 2016)中,百度首席科学家吴恩达教授发表演讲:<利用深度学习开发人工智能应用的基本要点(Nuts and Bolts of Building Applications using Deep Learning)>. 此外,吴恩达教授曾在今年 9 月 24/25 日也发表过同为<Nuts a

深度学习前瞻:吴恩达 + 百度 &gt; 谷歌吗?

导读:百度是中国网民上网时的常用工具,它致力于成为影响全球的力量.作为世界上人工智能领域的顶尖研究员,吴恩达先生能否助其成功挑战硅谷最大的互联网公司? 百老汇音乐厅位于旧金山北海岸,是新古典主义建筑,已拥有95年历史,历经岁月磨蚀,四周环绕数不清的脱衣舞俱乐部.从Blondie(金发女郎)到Ramones(莱蒙斯),曾有许多朋克乐队在此演出.但今年六月某个明亮的早晨,一位完全不同类型的"摇滚明星"在此登场.一小撮参加科技创业会议的人群簇拥着一位身穿蓝色礼服衬衫和深蓝套装.个子高高.说话

从吴恩达看深度学习,一定要做好这五件事!

文章讲的是从吴恩达看深度学习,一定要做好这五件事!自吴恩达从百度离职之日起,他的去向就一直备受关注.近日,有消息传出,吴恩达妇唱夫随加入了其妻子所在的初创公司Drive.ai.同时,随着他的加入,该公司还获得了5000万美元的B轮融资. ▲图源网络,侵权可删! 作为百度前首席科学家,吴恩达加入该公司显然很合适.据悉,该公司主要专注于无人驾驶软件技术的研究,主要是运用深度学习技术,这与吴恩达的研究方向相符.现在,很多科技圈的大佬都瞄准了深度学习,都认为其在未来会给人类的生活带来很大价值.所以,入深

吴恩达团队最新成果:用深度学习预测死亡概率,改善临终关怀

用过去1年的医疗记录就能预测一个人未来1年中的死亡概率?这听起来像是<黑镜>中才有的可怕黑科技,但是这对于疗养院和临终关怀工作者,意义重大. 在美国,超过60%的死亡发生在重症监护病房,多数人在弥留之际仍接受侵入性的治疗.进入重症监护病房的病人通常会提前记录自己的临终心愿,"再和爱人吃一顿晚餐","参加子女的婚礼".而提前知道临终日才能让他们在仍然有行动能力的时候达成心愿,更有尊严的过完最后的日子. 近期,吴恩达团队用深度学习建立了一个项目,利用病人的电

吴恩达导师Michael I. Jordan刚去清华手写版书讲了三天课,这有一份他的课程笔记

被称为"机器学习之父"的Michael I. Jordan教授上周(9月12-14日)在清华进行了为期三天的校内公开课,面对清华同学分享了他在伯克利AMP Lab和RISE Lab的最新研究成果. Jordan教授本次亲自上阵授课实属难得,为保证教学质量,本次系列课程也只面向清华学生开放,且不设录像直播,颇为珍贵.据大数据文摘了解,Jordan教授授课风格颇传统,全程抛弃多媒体设备,手写版书公式.本次讲座内容由机器学习方法和系统组成,主要涉及概率图模型.统计推断和模型评判,以及大规模机

深度丨吴恩达团队最新论文:用CNN算法识别肺炎影像,准确率超过人类医生

吴恩达团队又有新动态!北京时间11月16日,吴恩达连发两条推文,称"放射科医生应该担心他们会丢掉工作了!最新突破--利用胸部X光片,我们可以用深度学习方法诊断肺炎,在这点上,算法做得比人类医生好.论文已发布在arXiv上." 关注大数据文摘微信公众号,在后台对话框内回复"肺炎",即可下载这篇论文拜读啦! 论文中用到了CheXNet算法,它可以诊断14种病症,在肺炎诊断方面,比放射科专家单独诊断的准确率更高. 图:放射科医生Matthew Lungren(左)与研究生