机器学习作为最能够体现人工智能的分支,近几年取得了快速的发展。与此同时,人工智能正以颠覆性的方式影响这个世界,而在背后推动这场进步的,正是深度学习。前几日,AlphaGo以3:0的成绩大胜柯洁再次将深度学习的讨论推向了新的高度。本文整理了深度学习的相关学习资源,奉献给在深度学习道路上前行的小伙伴。
深度学习是一门实践学科,只有不断做实验才能有所进步。BigQuant人工智能量化投资平台 集成了众多深度学习/机器学习开源框架,包括TensorFlow、Keras、XGBoost、Theano、Caffe等,可以直接在BigQuant上开启你的深度学习之旅!
简介
深度学习(Deep Learning)是机器学习(Machine Learning)的一个分支,一般指代“深度神经网络”(Deep Neural Network)。历史上,人工神经网络(Artificial Neural Networks)经历了三次发展浪潮:20世纪40年代到60年代,神经网络以“控制论”(cybernetics)闻名;20世纪80年代到90年代,表现为“联结主义”(connectionism);2006年至今,以“深度学习”之名复兴。得益于与日俱增的数据量和计算能力(GPU, TPU,深度学习已经成功应用于计算机视觉、语音识别、自然语言处理、推荐系统等领域。
框架 (排名不分先后)
TensorFlow是谷歌开源的机器学习框架,提供可靠的python和C++接口,Go和Java的接口仍在开发中。
Theano是元老级的深度学习框架,提供python接口,具有良好的计算图抽象方式.
Torch是用Lua语言编写的计算框架,有很多已定义模型,容易编写自己的层类型并在GPU上运行,但不适合RNN。
Caffe是应用较为广泛的机器视觉库,最适合于图像处理,不适合文本、声音等数据类型的深度学习应用.
CNTK是微软开源的深度学习框架,主要包括前馈DNN、卷积网络和循环网络。
MXNet是陈天奇等开发的深度学习框架,目前已被亚马逊选中成为其深度学习平台。特点是运行速度快,内存管理效率高。
Keras是一个高级神经网络API,用Python编写,能够运行在TensorFlow或者Theano之上。 它的开发重点是实现快速实验。 能够从理念到结果尽可能的延迟是做好研究的关键。
XGBoost是一个开源软件库,为C++、Java、Python、R和Julia提供了梯度提升框架。 它适用于Linux、Windows和macOS。
Pylearn2 是一个机器学习库。 它的大部分功能是建立在Theano的基础之上。 这意味着您可以使用数学表达式编写Pylearn2插件(新模型,算法等),Theano将为您优化和稳定这些表达式,并将其编译为您选择的后端(CPU或GPU)。
Chainer 一个用于深度学习模型的基于Python的独立开源框架。 Chainer提供灵活,直观和高性能的方法来实现全范围的深度学习模型,包括最先进的模型,如复现神经网络和变分自动编码器。
Neon是Nervana的基于Python的深度学习库。 Nervana为金融机构提供了部署深度学习作为核心技术的完整解决方案。
之所以将BigQuant放在深度学习框架部分,是因为BigQuant集合了包括TensorFlow、Theano、XgBoost等在内的多个深度学习开源框架,即用户只要在BigQuant研究平台,不需要安装这些框架,直接可以使用。
NeuralTalk是一个Python + numpy项目,用于学习用语言描述图像的多模态循环神经网络。
在线书籍
Deep Learning by Yoshua Bengio, Ian Goodfellow and Aaron Courville
介绍:深度学习的一本教科书,知识面很全,书籍同时兼顾广度和深度,是很多深度学习系统化学习的参考教材。
Neural networks and deep learning by Michael Nielsen
介绍:这是一本免费的在线书籍,主要介绍了神经网络和深度学习背后的核心概念。
Deep Learning: Methods and Applications - Microsoft Research Microsoft Research (2013)
介绍:本书旨在提供一般深度学习方法及其应用于各种信号和信息处理任务的概述,介绍了深度学习在语言、文字处理、信息检索、计算机视觉领域的具体运用。
Deep Learning Tutorial LISA lab, University of Montreal (Jan 6 2015)
介绍:蒙特利尔大学LISA实验室深度学习的教材,对卷积神经网络和LSTM、RNN等神经网络进行了具体的介绍,教材例子比较多,操作性比较强。
An introduction to genetic algorithms
介绍:遗传算法简介
Artificial Intelligence: A Modern Approach
介绍:目前已经是第三版,是110多个国家超过1300所大学的教材,有免费的在线AI课程。主要是从数学的角度介绍人工智能、问题求解、知识与推理。
Deep Learning in Neural Networks: An Overview
介绍:本文详细地回顾了监督学习(包括反向传播)、无监督学习、强化学习和进化学习。
课 程
Deep Learning Summer School, Montreal 2015
介绍:蒙特利尔2015年深度学习暑期班,旨在面向研究生、工程师和研究人员,他们已经拥有机器学习的一些基础知识,并希望更多地了解深度学习的研究领域。
Deep Learning Summer School, Montreal 2016
介绍:蒙特利尔2016年深度学习暑期班
介绍:作者为多伦多大学统计学系Ruslan Salakhutdinov,作者介绍了深度学习模型在电力系统的具体运用——如何打造智能电网?
介绍:吴恩达的著名机器学习课程。特别适合机器学习入门者,课程比较系统、全面。收录在网易公开课上。
斯坦福大学深度学习与自然语言处理课程 UFLDL教程 - Ufldl
介绍:本教程将阐述无监督特征学习和深度学习的主要观点。通过学习,你将实现多个功能学习/深度学习算法,能看到它们为你工作,并学习如何应用/适应这些想法到新问题上。但有一定基础,假定你已经了解了机器学习的基本知识(特别是监督学习、逻辑回归、梯度下降的想法)。
介绍:台大李宏毅的课程讲义,以Theano为编程语言,适合大二以上的学生。
介绍:卷积神经网络是近些年逐步兴起的一种人工神经网络结构, 因为利用卷积神经网络在图像和语音识别方面能够给出更优预测结果, 这一种技术也被广泛的传播可应用。 卷积神经网络最常被应用的方面是计算机的图像识别,不过因为不断地创新,它也被应用在视频分析,自然语言处理、药物发现等等。近期最火的 Alpha Go,让计算机看懂围棋,,同样也是有运用到这门技术。该视频只用了5分钟简练专业地介绍了卷积神经网络。
CS224d: Deep Learning for Natural Language Processing
介绍:斯坦福大学介绍深度学习在自然语言处理中的具体运用的在线课程,包括网页搜索、广告、电子邮件、客户服务、语言翻译、放射学报告等。
介绍:加州理工大学 机器学习视频课程,课程里面的图表做得特别漂亮。
介绍:MIT的Underactuated Robotics于 2014年10月1日开课,该课属于MIT研究生级别的课程,对机器人和非线性动力系统感兴趣的朋友不妨可以挑战一下这门课程!
介绍: 百度出品的机器学习课程。如果你从事互联网搜索,在线广告,用户行为分析,图像识别,自然语言理解,或者生物信息学,智能机器人,金融预测,那么这门核心课程你必须深入了解。
Machine Learning - Stanford by Andrew Ng in Coursera (2010-2014)
介绍:斯坦福大学机器学习课程,本课程将广泛介绍机器学习、数据挖掘和统计模式识别。包括:(i) 监督式学习(参数和非参数算法、支持向量机、核函数和神经网络)。(ii) 无监督学习(集群、降维、推荐系统和深度学习)。(iii) 机器学习实例(偏见/方差理论;机器学习和AI领域的创新)。
Machine Learning - Caltech by Yaser Abu-Mostafa (2012-2014)
介绍:由费曼奖得主Yaser Abu-Mostafa教授亲自授课。详细介绍机器学习基本概念和技术。 讲座的重点是真正的理解,而不仅仅是“知道”。
Machine Learning - Carnegie Mellon by Tom Mitchell (Spring 2011)
介绍:卡内基梅隆大学2011年春季机器学习课程,主讲人是Tom Mitchell
Neural Networks for Machine Learning - Geoffrey Hinton in Coursera (2012)
介绍:多伦多大学深度学习大牛 Geoffrey Hinton的公开课。介绍了人造神经网络以及如何使用机器学习,适用于语音识别、图像分割和人体姿势识别等。该课程需要一些微积分和Python编程基本知识。
Neural networks class - Hugo Larochelle from Université de Sherbrooke (2013)
介绍:是Hugo Larochelle在Sherbrooke大学神经网络课程的视频。