您的位置 首页 IC

我从吴恩达深度学习课程中学到的21个心得

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

  本年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以为,这门课的作业真实过分简略——并随手收过了文摘菌的膝盖。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/160442.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部