吴教授的深度学习课程到现在只放出三部分,也很简单,结果在试听阶段花了几天就看完了,拿了证,忘点取消订阅,一下刷了我好几百,瞬间想剁手。
转念一想,就当是支持吴教授搞革命,瞬间就不心痛了。
这门课特殊之处,除了是由吴教授讲以外,他还利用他的人脉,把目前整个深度学习领域的大牛都拉过来,进小黑屋谈话。来,说说,你是怎么走到今天这一步的,对于想要入坑 AI 和深度学习的小朋友们有什么建议啊。
于是我就把这些建议整理了一下。
主要几点如下。
读足够多的文献,获得对这个领域的大概认识和研究直觉。推荐读每年ICLR的论文,获得当前领域的发展现状。
有了直觉之后,相信自己直觉,找一个研究问题,不要在意别人怎么说,研究下去。
不能光读看文献。最好要多编程,多尝试去重新实现论文里的系统。也可以边看书,边实现一个项目。并且将代码放上Github,获得更多的机会。
现在网上有很多资源,充分利用网上的资源,进行学习。比如学习一个框架,还有网上高手写的基准模型。
不要只会从顶层利用框架,最好从底层能够理解这些是怎么实现的,自己尝试实现一遍。
下面是各位大牛具体的建议,也有关于各位大牛的简短介绍。
Geoffrey Hinton (AI 教父,反向传播算法主要推动者之一)
虽然大部分人的建议是,先花个几年时间读文献,然后才开始实现自己的想法。但对于一个创新型的研究者来说,反而少读一些文献会比较好。
-
相信自己的直觉。
注意一些你认为大家都做错了的地方,那里看起来感觉就是不对的地方,然后你想出来怎么解决它。即使别人说这不对,也不要管,坚持干自己的就可以了。如果你的直觉很好的话,那么你终将获得成功;即使直觉不是很好,也没多大影响。
-
一定要不停地编程。
通过不仅仅只是读一篇论文,而是重新实现论文。因为当你通过实现论文,你会发现其中有很多编程小技巧使得系统最后得以成功,这是很重要的。
关于研究生选导师,尽量选择和你有相同信仰,相同想法的老师。这样他能给你很多好的建议。
总结一下就是,读足够文献知道你开始产生自己的直觉,然后相信自己的直觉去实现它,不要在意其他人是怎么说的,因为他们说的都是没什么意义的。
特别提一点,当你想出一个好主意,而其他人都觉得很没有意义,那么这就是一个非常好的主意的标志。
Pieter Abbeel (深度强化学习大牛)
现在是一个进入AI界很好的时机,有很多工作需求,也有很多事情你可以做,比如选择一个研究方向研究,或是建立自己新公司等等。
自学,不管你是在学校还是已经工作了。这里有很多好的资源,吴教授的Machine Learning啊、Andrej Karpathy的深度学习课程啊、加州伯克利的深度强化学习课程啊...
自己动手做,不要光是看视频。选一个自己喜欢的框架,如TensorFlow、Chainer、 Theano、 PyTorch 等等,然后开始自己写代码。
是否取得Phd,这要看你在哪边能获得更多的指导了。我更倾向于Phd。
Ian Goodfellow (生成对抗性网络发明者,深度学习教科书作者之一)
[图片上传失败...(image-da3fa7-1536970128029)]
很多人认为进入AI界一定要获得Phd学位,或者其他一些认证。但是我不认为这真的重要,你也可以通过编很好的代码然后放在Github上,来获得大量的关注。我在OpenAI还有Google,很多人都是这样被雇用的。而且有时候写一个有用的软件,可能也比写一篇好的论文简单。
一边读书和资料,一边练习,然后放在Github上。我认为最好是边读书,边尝试实现一个项目。你可以选择在自己喜欢领域来实现,也可以去网上找很多项目挑感兴趣的重新实现,如街景房牌识别器。
Yoshua Bengio (深度学习加拿大黑手党三人之一,也包括Hinton)
虽然深度学习研究人员和开发者的要求有很大不同,但是相同的一点是,需要大量阅读,然后自己实践练习。
特别是,不要光会使用框架,而对底层的原理一点都不了解。尝试自己来实现一下底层,即使没有什么效率。这样你才能够真正理解,什么是有用的什么是没用的。而且我还会要求进一步,最好是自己用数学公式推导一遍。试图理解一切你所做的事情,问自己为什么要做这个,为什么其他人要做这个。
去读ICLR的论文,能够获得一个很好的当前该领域的发展概况。
读论文时不要害怕数学公式,大量阅读可以获得一种直觉,然后公式就会自然而然变得很好理解。
一个很好的消息就是,你不需要五年专业训练才能熟练掌握深度学习,现在你有计算机和数学背景的话,可能几个月就可以了。有系统性的训练的话,六个月就够了。
林元庆 (中国深度学习第一人,百度深度学习实验室主任)
可以先从一个开源框架学起,现在这里有很多网上的资源教你怎么用它们。
而且现在也有很多公开了的基准实现案例,你可从这些很有经验的人写的模型中学到很多。
Andrej Karpathy (特斯拉人工智能总监,深度学习重要旗手之一)
从底层自己来全部实现一遍,不要只知道抽象的概念。
这也是人们上我的cs231n时,最感谢我的地方。当你实验了底层的东西,那么你实现上层的东西时候就不会感觉到不适,因为你知道这下面都发生了什么。于是,你也能够快速地调试自己的程序,快速的完善提高自己的模型。
Ruslan Salakhutdinov (苹果人工智能总监)
-
去尝试各种各样的事情,不要害怕去创新,去解决困难问题。
举个例子,当我还是个研究生时,因为神经网络是非凸系统,所以很难优化。我还记得和最优化领域的朋友聊天时,他们总是说这些问题无法解决因为它们是非凸的。但实际上,在我们实验室,从来没有人关心过这件事情,我们只想着怎么优化然后获得有趣的结果。反而是这样推动了领域的发展。
不要只从顶层使用深度学习,要从底层来理解它们。
DeepLearning MOOCs:
- Coursera: Andrew Ng - Deep Learning ai
- Coursera: Geoffrey Hinton - Neural Networks for Machine Learning
- Udacity: Deep Learning Foundation Nanodegree
- Fast.ai course
- Université de Sherbrooke - Hugo Larochelle - Neural networks class
- Stanford: CS231n: Convolutional Neural Networks for Visual Recognition
- Stanford: CS224n: Natural Language Processing with Deep Learning
- Berkeley: CS 294: Deep Reinforcement Learning