前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hinton《机器学习中使用的神经网络》课程亮点总结

Hinton《机器学习中使用的神经网络》课程亮点总结

作者头像
新智元
发布2018-03-27 17:08:40
8240
发布2018-03-27 17:08:40
举报
文章被收录于专栏:新智元新智元

【新智元导读】本文作者两次完成 Hinton 在 coursera 上的经典课程“机器学习中使用的神经网络”,他对这门课程作了总结介绍并极力推荐:这门课很难,但绝对是必修课。

我很久以前就完成了 Hinton 的“机器学习中使用的神经网络课程”(Neural Networks for Machine Learning,以下简称 NNML,课程地址:https://www.coursera.org/learn/neural-networks),如你所见,这个课程是2012年首次推出的,当时我对深度学习还不很信服。当然,我的想法在2013年左右改变了,但这个课程我一直存着。直到两年之后,我决定上 Andrew Ng 的《机器学习》课,然后得以过了一遍 Hinton 的这门课。但在去年10月,这门课再次开课时,我决定再次行动,即再观看一遍所有视频,完成所有作业,并获得通过课程的成绩。当你阅读我的总结,你会发现,这门课很难。所以有些视频我起码观看了4~5遍,才能理解 Hinton 的解释。其中一些作业我花了很多时间思考。最终,我通过了所有20次作业,甚至花钱买了一个让我可以吹嘘的证书:这是一次全新的、发人深省的、同时也是令人满意的体验。

本文是我对这门课的回顾,我也会说明为什么这门课值得学,什么时候应该学。我还讨论了一个经常出现在论坛上的问题:既然现在已经有如此多的深度学习课程,Hinton 的课是否已经过时?还是 Hinton 的这门课仍然是最好的初学者课程?本文最后,我会就这些问题进行回答。

旧版课程很难

我钦佩哪些用旧版 Coursera 平台完成这门课的人。有许多学员评论说,NNML 比 Andrew Ng 的机器学习课要难的多(Andrew Ng 的 Machine Learning 课地址:https://www.coursera.org/learn/machine-learning),甚至许多 PhD 都不太跟得上 Hinton 在课程前半部分讲的内容。

这不难理解:2013年 Kapathay 在一篇总结文章(地址:https://plus.google.com/+AndrejKarpathy/posts/4FtyNBN5A38)中写道,有许多非 ML 研究者涌入学习这门课程。对新来的人来说,了解诸如 energy-based models 这样的许多主题虽然令人着迷,但许多人能跟上是很困难的。还有深度置信网络(DBN),现在仍有许多人将它和深度神经网络(DNN)混为一谈。坦白说,学了一遍这门课程之后,lecture 15的一些内容我仍然不能说完全理解了,因为深度置信网络真的是很难的主题。

旧版课程只有3次测验,而且截止日期很短,你只有一次机会能完成课程。其中一个作业要求你从头推导 backprop 的矩阵形式(matrix form)。这些使得这门课程不适合忙碌的人(比如我),而更适合的是二年级或三年级的研究生,或者有足够多的时间的从业者。

新版课程更容易,但仍然很具挑战性

我于去年10月份开始上这门课,当时 Coursera 的大部分课程都改成了新的形式,学生们可以重新注册。新的形式取消了一些太难的任务,使得课程更适合忙碌的人。但这并不意味着它很轻松:大多数情况下,你需要听讲座,做数学题,编伪代码,等等。推导 backprop 的作业也仍然不变。好的方面是:你仍然可以得到深度学习的所有乐趣。缺点:不花上 10~15小时/周的时间,就不用期望通过这门课了。

为什么这门课具有挑战性——Ⅰ:数学

与吴恩达的 cs231n(斯坦福“视觉识别的卷积神经网络”课,地址:http://cs231n.stanford.edu/)不同,NNML 对没有学过微积分的初学者来说并不容易。数学本身还不算太难,主要是链式法则微分,Hessian,还有矢量微分(vector differentiation)——如果你从来没有学过,那么这门课程之难将会超出你的想象。因此,在注册这门课程之前你至少应该先学微积分Ⅰ和Ⅱ,并利用 Matrix Cookbook 了解一些基本公式。

为什么这门课具有挑战性——Ⅱ:Energy-based Models

这门课难的另一个原因是后半部分都是以所谓的 Energy-based 模型(RBM)为基础的,即Hopfield 网络(HopfieldNet),波尔兹曼机(BM),受限玻尔兹曼机(RBM)等模型。即使你习惯了线性回归、逻辑回归、甚至反向传播,RBM 数学仍然会让你头大。原因:这些模型很多都源自物理学,例如伊辛模型(Ising Model)。深度学习研究也经常使用贝叶斯网络的思想。如果你没有物理学或贝叶斯网络的背景知识,你也会感到头大。

我的做法是:我花了很多时间去 Google 搜索,然后阅读相关的文献,再通过小测验强化,但我不会假装我理解了这些主题,因为它们真的相当深而且不直观。

为什么这门课具有挑战性——Ⅲ:递归神经网络

如果你最近学了 RNN,很可能是从 Socher 的 cs224d(斯坦福NLP深度学习课程,地址:http://cs224d.stanford.edu/)或者通过阅读 Mikolov 的论文学的。在思考如何解决 RNN 的梯度爆炸/梯度消失问题时,LSTM 很可能是你最先想到的方法。当然,还有其他的方法,例如回声状态网络(echo state network)和 Hessian-free 方法。这些方法最近很少讨论了。再次,它们的公式与你的标准方法(例如 backprop 和 gradient-descent)完全不同。但学习它们能给你广度,让你思考是否标准的方法就是正确的方法。

那么这门课好吗?

当然!接下来的部分我会详细说明这点。

为什么好?

假设你只是想使用 ML / DL 的一些好用的工具,你可以学 Andrew Ng 的课程,试验一系列的实现,然后就可以自以为是专家了——现在很多人正是这样。实际上,Ng 的机器学习课程的设计就是只给你尝试一下 ML,而且你确实能够在课程完成后学会使用许多 ML 工具。

也就是说,你应该意识到你对 ML / DL 的理解还是非常浅的。你可能在想:“哦,我有一堆数据,让我们把它们喂给算法 X!”或者,“哦,我们只要用 XGBoost 就行了,对吧!它总是能有最好的结果!”你应该意识到“性能”的数字不是一切。而了解你的模型发生了什么很重要。缺乏对模型本身的理解的话,很容易出现短视,付出昂贵的不明智决定。很多人都是这样,包括我,我的许多同事,甚至我的一些导师。

不要犯错误!要一直追求更好的理解!如果你只做过 Ng 课的神经网络作业,那么现在你仍然不知道如何将这些方法应用于其他任务。去上 Hinton 的课,去对教授讲的内容头大,重复这个过程。然后,你将能够更深入地理解深度学习。

还有一个有关技术的说明:如果你想学习无监督深度学习,我认为这门课可以是第一个课程。Hinton 教授讲了许多这些机器的直觉知识(intuition),你也有机会去实现它们。对于像 Hopfield net 和 RBM 这样的模型,如果你了解基本的 octave 编程,是相当可行的。

我知道这门课很好了,但它已经过时了吗?

现在的学习者比较幸运,对于深度学习这个领域,现在有很多可以选择的课程。比如这里有我选出的 top 5(地址:http://thegrandjanitor.com/2016/08/15/learning-deep-learning-my-top-five-resource/),前面提到的 cs231n,cs224d,以及 Silver 的课都是非常好的。

但我仍然极力推荐 NNML,原因如下:

  • 它比其他同类课程更深入,更难。正如前文所述,NNML 很难,不完全是数学上的难,而且概念上也很难,例如 energy-based 模型,以及训练 RNN 的不同方法,等等。
  • ML / DL 中的许多概念可以通过不同的方式看待。例如,bias / variance 是频率学派的权衡,但对贝叶斯派来说,这被认为是“频率学派的错觉”(frequentist illusion)。其他一些概念也是如此,例如反向传播、梯度下降等概念。你开始思考它们的时候,它们是很难的概念。所以上这门课的原因之一,它不只教你一个概念,而且让你从不同的角度来看事物。在这个意义上,NNML 完全适合所有人。我发现自己在许多漫长的研究中都会回想起 Hinton 的讲课。
  • Hinton 的观点:30年来,Hinton 教授大部分时间都是 ML 的失败者。但是,他坚持不懈。从他的演讲中,你会知道他如何/为什么开始某个研究,也许将来你自己会像他那样研究一些东西。
  • Hinton 教授的讲课非常幽默。例如,在第10讲中,他讲了为什么物理学家在80年代初期开始了神经网络的研究,请自行查看。(在研究神经网络之前,他是一名物理学家)

结语

总而言之,Hinton 教授的这门 Neural Networks for Machine Learning 课程是一门必修课。对所有人,包括初学者和专家都将受益于 Hinton 的观点和思想的广度。

如果你完全是初学者,我建议你先学学 Ng 的课,以及先学微积分Ⅰ和Ⅱ,再加上一些线性代数、概率学和统计学,这会让你在上 Hinton 这门课时更容易。

另一个建议是:有可能的话可以再次学这门课。这也是我计划半年后做的事情——正如我前面说了,我不是完全理解这门课的每个知识点。但是,我想学到第6或第7遍的话,我可能能够完全理解了。

原文地址:http://thegrandjanitor.com/2017/04/10/review-of-hintons-coursera-neural-network-and-machine-learning/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档