星期六, 十一月 21, 2015

深度学习入门资源索引

深度学习(Deep Learning)属于非常前沿的学科,没有现成的的综合型教材,主要是通过阅读大量论文和代码练习来学习。值得读的经典论文很多,下面介绍的一些教程中多少都有提及,另外就是去google重要文献。代码方面推荐使用python为基础的theano框架,因为它比较偏底层,可以从细节掌握如何构建一个深度学习模块,而且方便结合python在数据领域的其它积累,例如numpy。当然到了生产环境你可以再考虑torch之类的框架。从代码角度切入学习的好处是,理解起来不会像理论切入那么枯燥,可以很快做起一个好玩的东西。当然,最后你还是得补充理论的。下面精选介绍一些本人在学习时遇到的好教程。

1、入门首选:
http://deeplearning.net/tutorial/
该站提供了一系列的theano代码示范,通过研究模仿,就可以学会包括NN/DBN/CNN/RNN在内的大部分主流技术。其中也有很多文献连接以供参考。

2、BP神经网络:
http://neuralnetworksanddeeplearning.com/
第1部分的教程中,神经网格的参数是theano自动求导的,如果想深入了解细节,还得手动推导加代码实现一遍。该教程对BP神经网络的理论细节讲的非常好。

3、理论补充:
http://goodfeli.github.io/dlbook/
该书内容比较广泛,虽未最终完成,但已初见气象。用来完善理论知识是再好不过。

4、图像处理中的卷积神经网络:
http://vision.stanford.edu/teaching/cs231n/syllabus.html
前面三部分相当于导论,比较宽泛一些,该教程则是专注于卷积神经网络在图像视觉领域的运用,CNN方面知识由此深入。

5、自然语言处理中的深度学习:
http://cs224d.stanford.edu/
本教程则偏重于深度学习在自然语言处理领域的运用,词向量等方面知识由此深入。

6、递归神经网络:
http://www.wildml.com/
该博客讲的RNN是非常棒的系列,不可不读。

7、keras框架:
http://keras.io/
keras框架是基于theano的上层框架,容易快速出原型,网站中提供的大量实例也是非常难得的研究资料。

8、深度学习和NLP
https://github.com/nreimers/deeplearning4nlp-tutorial/tree/master/2015-10_Lecture
该教程是第5部分的补充,理论讲的不多,theano和keras代码讲的很多,附带的代码笔记很有参考价值。

9、机器学习教程
https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/
牛津大学的机器学习课程,讲到了大量深度学习和强化学习的内容,适合于复习过一遍。

10、搭建硬件平台
http://xccds1977.blogspot.com/2015/10/blog-post.html
到这里,你的理论和代码功力应该差不多入门了,可以组个GPU机器来大干一场了。可以参考笔者这个博客来攒个机器。

11、去kaggle实战玩玩吧
http://www.kaggle.com/

12、最后补充一个比较新的资源,udacity上的一门深度学习公开课
https://www.udacity.com/course/deep-learning--ud730

10 条评论:

  1. 谢谢大佬~您的介绍很有帮助

    回复删除