阅读新闻

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

发布日期:2019-08-09 02:36   来源:未知   阅读:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  两位顶尖的微软/谷歌数据科学家,直播互动分享珍贵学习经验,并详细讲解前沿实战案例!GPU云实验平台提供便捷的操作环境。还有原著大作免费送!

  Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有...博文来自:weixin_34341117的博客

  大数据文摘作品编译:党晓芊、元元、龙牧雪等待吴恩达放出深度学习第5课的时候,你还能做什么?今天,大数据文摘给大家带来了加拿大银行首席分析师RyanShrott的吴恩达深度学习第4课学习笔记,一共11个...博文来自:大数据文摘

  这周是十六周,专业课在这周末之前就都结课了。大二上学期的专业课比大一明显多了不少,随着专业知识的增多,我似乎也慢慢接受了计算机这个专业,曾经对计算机丝毫不感兴趣的我,竟然渴望成为一名优秀的IT女。  ...博文来自:Niki2222的博客

  完整实现多层神经网络识别图片中的猫原coursera课程主页,在网易云课堂中也有课程资源不过没有编程练习。本次编程利用上次作业中完成的各个函数,完整实现一个多层神经网络,进过训练来识别图片中是否有猫。...博文来自:小小屁孩007

  引言过去2年,我一直积极专注于深度学习领域。我对深度学习的兴趣始于2015年初,那个时候Google刚刚开源Tensorflow。我根据Tensorflow的文档快速地尝试了几个例程,当时的感觉是深度...博文来自:张肖的博客

  为了理解和应用机器学习技术,你需要学习 Python 或者 R。这两者都是与 C、Java、PHP 相类似的编程语言。但是,因为 Python 与 R 都比较年轻,而且更加“远离”CPU,所以它们显得...博文来自:starsliu

  (本文转自“格物课堂”:)从技术角度来看,目前人工智能领域所使用的主要技术就是深度网络,同时辅以某些传统机器学习方法以及预处...博文来自:流动的空气

  1、信息在物理学领域的概念:信息不是一个单纯的数学概念,而是与物质和能量一样基本的物理概念。2、量子纠缠的概念:如果两个微观粒子的整体波函数不能够被写成各部分的直积,那么它们之间就存在纠缠。3、本文的...博文来自:的博客

  设备踢出可以用长连接来做;个推也是服务器筛选出的userID;博文来自:cola_wh的博客

  今天学习了一天的ps,对于我这个菜鸟来说,刚开始确实有点摸不着头脑,但通过练习,我发现ps也没那么难。总结下今天我学的一些知识:PS常用的快捷键   ctrl+c—复制   ctrl+v—粘贴   c...博文来自:u011541292的博客

  记录这三年,关于项目管理上的一些心得体会–概述篇大抵是在12年,承蒙外企老板的厚待,给我了一个机会让我开始接触项目管理,踏入这扇大门。既然是概述篇,具体的知识细节点一笔带过,只描述一下概要即可,对应的...博文来自:minminzhe520的博客

  从去年学习王小草机器学习,从小白开始,不知在不觉中已经转变成人工智能工程师,从事深度学习,研究tensorflow以及其源代码,对深度学习的理解不断深入,成为真正的深度学习工程师,算法工程师。令人高兴...博文来自:欢迎来到最伟大的操作系统官方博客

  对于开发工作者的世界,不管是开发讨论会上还是学习交流会上,更或者面试的时候,当提及设计模式,都会或多或少的让别人高看你一眼。为什么它会有这么强大的魅力呢!...博文来自:爱测未来团队博客

  在Tensorflow中,无论是占位符还是变量,它们实际上都是Tensor,从Tensorflow的名字中,就可以看出Tensor在整个系统中处于核心地位。Tensorflow中的Tensor并不是具...博文来自:Dan的专栏

  课程:Linux操作系统与应用参考书:Linux从入门到精通、unix环境高级编程 学习linux之前必须要做好心理准备: 第一,要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在...博文来自:的博客

  如何处理借钱的事情?1.你是为好东西借钱吗——问问未来的自己,还钱时会不会得到足够的会报?原则:借钱成本lt;带给你的收益1.借鸡下蛋2.职场考证:提薪3.结婚自主的房子(情感上的需求也很重...博文来自:diyinqian的博客

  就在全民热议中国选手在国际数学大赛上“全军覆没”之际,全国政协委员、中国联合网络通信集团有限公司研究院院长、党委副书记张云勇向全国政协十三届二次会议提交了题为《加快培养数......博文来自:算法与数学之美

  Tensorflow中数据读取的基本机制。事实上,必须先读入数据后才能进行计算,假设读入用时0.1s,计算用时0.9秒,那么没过1s,GPU都会有0.1s无事可做,大大降低了运算的效率。解决这个问题的...博文来自:Dan的专栏

  不断进步,不断前进!第一课老师介绍了androidstudio的安装和环境配置,再环境搭建好之后给出了一个DEMO,介绍了工程中的:                1.Activity:一个页面   ...博文来自:青铜的博客

  从初学STM32到现在已经有数十天了,说起学到了什么的话那肯定也是学到了东西的。至少说能用STM32点亮一个LED灯了,可能你们听起来会觉得搞笑,我觉得也是。你说现在让我用单片机点亮一个LED...博文来自:guiwukejiBGG的博客

  清华学霸尹成Python基础+爬虫视频教程 清华学霸尹成Python基础+爬虫视频教程 清华学霸尹成Python基础+爬虫视频教程 下载地址:百度网盘 ...博文来自:hh7256124532的博客

  这几天刚好有环境,打算学习一下深度学习看了一圈介绍,发现优达学城的深度学习课程作为入门课程还是不错的今天看了第一章节的视频,顺便做了任务1任务1难度不大,按照网站上的说明可以完成下载、打包等工作Pro...博文来自:wds2006sdo的专栏

  1现在的技术发展真的日新月异,开发人员在技术的浪潮中很容易迷失自己,那么作为一个开发人员究竟该怎样学习技术了? 我听到比较多得一种说法是当你需要某种技能时,才去学习他,而不是提前获得,的确,我自己...博文来自:知识焦虑咨询师,帮你1周内解决【知识焦虑】

  背景我是小菜鸡球球,一所西南985学校EE专业的学生。最近因为实验室接了一个国防项目,涉及机器学习/深度学习,王中王开奖结果,头大的我开始尝试。看了各种书,什么西瓜书花书,然后是各种视频,但是这个东西真的是很难入门的...博文来自:的博客

  首先引用下该书的原话内如如下,针对DeepDream的概念的:DeepDream是Google公司在2015年公布的一顶高趣的技术。在训练好的卷积神经网络中, 只需要设定几个参数,就可以通过这项技术生...博文来自:c20081052的专栏

  第一节ps的课程,就了只解到了一些图片的打开方式,第一种通过复制,粘贴这两个过程,第二种方式是通过拖拉的方式,第三种方式通过ps种的打开方式找到图片存储的位置进行打开。还教了我几个ps中的几个快捷键,...博文来自:qiaochuang的博客

  一个好的框架对应于一个完整的工程,学习Easy-PR框架现阶段收获如下:1、如何读取一个文件路径下所有图片的路径这里使用的是lt;io.hgt;中的_finddata_t 结构体,...博文来自:sinat_31425585的博客

  优达学城-深度学习笔记(一)标签:机器学习优达学城-深度学习笔记一一神经网络简介最大似然概率交叉熵Crossentropy1交叉熵代码实现2多类别交叉熵对数几率回归的误差函数costfunction梯...博文来自:allen_li123的博客

  俗话说:“宝剑不磨要生锈,人不学习要落后”,在这个竞争激烈的社会中,我们需要坚持每天学习来提高自己,今天分享四个学霸都在用的APP,每天学习一个小时一个月下来绝对有效果。1.每日英语听力安卓手机上的一...博文来自:weixin_33908217的博客

  在c的编译器中”,”运算符是不能做为左值的,但是在c++中解决了这个问题,她可以做左值。...博文来自:Robins Log

  吴恩达深度学习专项课程Deeplearning.ai共开设五门课,目前已经学了大半,想起来忘了整理课程笔记,这几天抽空补上。1.基础概念神经网络:输入一些数据,经过隐藏层,最终得到输出,圆形节点为神经...博文来自:深度学习——从入门到放弃

  l  第一范式(1NF):(字段不可再分)数据库表中的字段都是单一属性的,不可再分。原表1应修改成如下:修改后的表l   第二范式(2NF):(消除部分函数依赖)在满足第一范式的基础上,数据库表中不存...博文来自:暴风君的博客

  早在16年就听过团队同学分享过GrowthHacker的实战经验,觉得很奇妙,一直想系统的学习增长黑客的方法论,直到今年6月份才慢慢阅读完了两本增长黑客的相关书籍,一本是范冰老师的《增长黑客》...博文来自:pilongjiao的博客

  哪个班里没学霸,哪个班里没学渣,如果不是天赋异禀更需要后天的努力(不是今天、明天、后天的那个后天啊),平时的就要比别人多花一些功夫才行。今天给大家带来7款学霸都在偷偷用的高质量APP,每天看一看帮你省...博文来自:weixin_34234721的博客

  1、深度学习是什么?是机器学习的一个分支,用大量数据解决机器感知问题,包括图像理解、语音理解、机器与世界交互等。维基百科对深度学习的解释:英文,中文2、课程概览课程分为四个部分。第一部分,用彻底的端到...博文来自:徐子尧的博客

  人类有史以来最强悍的爬虫视频,尹成大魔不出,谁与争锋清华学霸尹成大哥的Python爬虫视频,近期免费公开,可以找客服475318423索要视频源码。爬虫基础1.爬虫的定义与作用2.截取http协议-F...博文来自:尹成的技术博客

  一个前提:学会提问两组概念:知识的分类,认知的分层三个技能:思维过滤+个性笔记+高效记忆四步提升:知识体系+学习迁移+元认知能力+知觉学习一、学会提问1、终极三问A((是何))--amp;a...博文来自:hanxin870115的博客

  心路历程~~本人在自学过程中遇见了许多问题无处解决,深知零基础学习的苦楚,学习进度缓慢,迫于无奈,在外报了一个php的培训机构,希望能在快速的学习并且找到一份合适的工作.同时在这里分享一下自己的学习过...博文来自:零基础学习分享

  最近自己写项目有涉及到MyBatis的一些东西。然后楼主表示小白还是默默地去自学吧。学完发现其实很多MyBatis的官方文档都已经写的很清楚了。下面我大概说一下自己学习的一些心得吧。1、工具很重要!!...博文来自:sabervsarcher的博客

  入门深度学习后,www.cqcake.com《21个项目玩转深度学习》将对我在实践中有很大的提升,在提升过程中将持续更新相关项目内容。我是从第三章《打造自己的图像识别模型开始》     在这一章,主要关注的是在自己的图像数据上训...博文来自:ldon的博客

  授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

  我分析了2万条饿了么、美团红包记录,这些是红包最多的APP(附数据集)

  我们可以从Alexa语音助手的错误中学到什么:用户对话界面的设计性挑战

  只看视频不动手的你可能学了门假课程,李飞飞计算机视觉成名作斯坦福CS231n作业详解重磅来袭!

  luopeng12345:博主您好,小白才接触这里,想问个问题: 1、图中不同颜色的点聚集在一起表示什么? 2、比如采用您的算法将我提取的68张人脸照片的128维数据作为data输入,然后随着我把数据从(128,68)增加到(128,100)点的颜色也增加了,这说明找到了更多的主成分吗? 3、相同颜色的点没有集中聚集就说明 降维效果不好吗? 希望能得到博主的回复,最好的祝愿送给博主!