新智元编译
来源:yerevann
翻译:刘小芹
:COO、执行总编、主编、高级编译、主笔、运营总监、客户经理、咨询总监、行政助理等 9 大岗位全面开放。
简历投递:jobs@aiera.com.cn
HR 微信:13552313024
新智元为COO和执行总编提供最高超百万的年薪激励;为骨干员工提供最完整的培训体系、高于业界平均水平的工资和奖金。
加盟新智元,与人工智能业界领袖携手改变世界。
【新智元导读】这份指南适合有一些数学基础,了解一些编程语言,现在想深入学习深度学习的人。主要包括2个视频教程,2部重要专著,一系列深入浅出的博客文章,以及一系列实现算法的指南和代码,堪称年度最有价值深度学习资料!
深度学习是计算机科学和数学交叉的一个快速变化的领域,属于机器学习的一个相对较新的分支。机器学习的目的是教计算机根据给定的数据执行各种任务。这份指南的目标读者是已有一些数学基础,了解一些编程语言,现在想深入学习深度学习的人。
这份完全指南主要包括2个视频教程,2部重要专著,以及一系列深入浅出的博客文章。资料后面的星星数量代表难度等级。
Hugo Larochelle 在 YouTube 上的视频课程 ★★
斯坦福的 CS231n(视觉识别的卷积神经网络)★★
Michael Nielsen 的著作《神经网络与深度学习》★
Ian Goodfellow,Yoshua Bengio 和 Aaron Courville 合著的《深度学习》★★★
先修科目
你必须有基本的大学水平的数学基础,可以在 Ian Goodfellow,Yoshua Bengio 和 Aaron Courville 合著的《深度学习》(Deep Learning)一书的前几章中回顾这些概念:
《深度学习》第2章:线性代数
《深度学习》第3章:概率和信息理论
《深度学习》第4章:数值计算
《深度学习》第2章:线性代数
展开全文
《深度学习》第3章:概率和信息理论
《深度学习》第4章:数值计算
你还必须了解一些编程基础,以开发和测试深度学习模型。我们建议使用 Python 进行机器学习,需要掌握用于科学计算的 NumPy / SciPy 库。
斯坦福的 CS231n 课程的指导资料,Justin Johnson 写的 Python / NumPy / SciPy / Matplotlib 教程 ★ (http://cs231n.github.io/python-numpy-tutorial/)
Scipy 讲义,非常详细地介绍了常用的库以及多个高级主题 ★★ (http://www.scipy-lectures.org/)
斯坦福的 CS231n 课程的指导资料,Justin Johnson 写的 Python / NumPy / SciPy / Matplotlib 教程 ★ (http://cs231n.github.io/python-numpy-tutorial/)
Scipy 讲义,非常详细地介绍了常用的库以及多个高级主题 ★★ (http://www.scipy-lectures.org/)
当你已经有以上的先修基础之后,我们建议接着学习以下四个视频课程或书籍。你可以选择其中任何一项,也可组合学习。星星的数量代表难度。
Hugo Larochelle 在 YouTube 上的视频课程。视频录制于在2013年,但大部分内容仍然是很新的。课程详细解释了神经网络背后的数学。有幻灯片和相关材料。★★ (https://www.youtube.com/playlist?list=PL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH)
斯坦福的 CS231n(视觉识别的卷积神经网络)。由李飞飞,Andrej Karpathy 和Justin Johnson 撰写。课程侧重于图像处理,但涵盖了深度学习中的大多数重要概念。有2016年的视频和讲义。★★ (http://cs231n.stanford.edu/)
Michael Nielsen 的著作《神经网络与深度学习》,可以在线阅读。这是最容易入门神经网络的书籍,它没有包括所有重要的主题,但包括了基本概念的解释和代码。★ (http://neuralnetworksanddeeplearning.com/)
Ian Goodfellow,Yoshua Bengio 和 Aaron Courville 合著的《深度学习》,这是学习深度学习最全面的书籍,涵盖了比其他所有课程都要多的主题。★★★ (http://www.deeplearningbook.org/)
Hugo Larochelle 在 YouTube 上的视频课程。视频录制于在2013年,但大部分内容仍然是很新的。课程详细解释了神经网络背后的数学。有幻灯片和相关材料。★★ (https://www.youtube.com/playlist?list=PL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH)
斯坦福的 CS231n(视觉识别的卷积神经网络)。由李飞飞,Andrej Karpathy 和Justin Johnson 撰写。课程侧重于图像处理,但涵盖了深度学习中的大多数重要概念。有2016年的视频和讲义。★★ (http://cs231n.stanford.edu/)
Michael Nielsen 的著作《神经网络与深度学习》,可以在线阅读。这是最容易入门神经网络的书籍,它没有包括所有重要的主题,但包括了基本概念的解释和代码。★ (http://neuralnetworksanddeeplearning.com/)
Ian Goodfellow,Yoshua Bengio 和 Aaron Courville 合著的《深度学习》,这是学习深度学习最全面的书籍,涵盖了比其他所有课程都要多的主题。★★★ (http://www.deeplearningbook.org/)
Tips:
有许多软件框架能够为机器学习和深度学习提供必要的功能,类和模块。但我们建议不要在学习的早期阶段使用这些框架,而是从头开始实现基本的算法。大多数课程都有详细解释算法背后的数学,所以实现起来并不难。
Jupyter 写了一个非常好用的 Python 代码指南,可以很好地与 matplotlib 集成,matplotlib 是一个流行的可视化工具。我们建议你在这样的环境中实现算法。★(https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/)
Jupyter 写了一个非常好用的 Python 代码指南,可以很好地与 matplotlib 集成,matplotlib 是一个流行的可视化工具。我们建议你在这样的环境中实现算法。★(https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/)
机器学习基础
机器学习是计算机科学和数学交叉的相对成熟的学科,而深度学习只是它的一个小的子领域。因此,机器学习的概念和工具对理解深层学习非常重要。推荐材料:
★ (http://www.r2d3.us/visual-intro-to-machine-learning-part-1/)
★ (http://www.r2d3.us/visual-intro-to-machine-learning-part-1/)
吴恩达的机器学习课程,是 Coursera上最受欢迎的机器学习课程 ★★(https://www.coursera.org/learn/machine-learning)
吴恩达的机器学习课程,是 Coursera上最受欢迎的机器学习课程 ★★(https://www.coursera.org/learn/machine-learning)
Larochelle 的课程,虽然没有单独介绍机器学习的讲座,但所有重要概念都有必要的讲解。
Larochelle 的课程,虽然没有单独介绍机器学习的讲座,但所有重要概念都有必要的讲解。
斯坦福的 CS231n 的前2节
斯坦福的 CS231n 的前2节
1. 训练和测试模型(kNN)★★
2. 线性分类(SVM)★★
《深度学习》第5章
《深度学习》第5章
5. 机器学习基础 ★★★
主成分分析的视觉化解释★ (http://setosa.io/ev/principal-component-analysis/)
如何有效地使用 t-SNE★★ (http://distill.pub/2016/misread-tsne/)
主成分分析的视觉化解释★ (http://setosa.io/ev/principal-component-analysis/)
如何有效地使用 t-SNE★★ (http://distill.pub/2016/misread-tsne/)
Tips:
大多数流行的机器学习算法可以在 Scikit-learn Python 库中实现,从头开始实现各个算法有助于理解机器学习的工作原理。实践方面的推荐如下:
Python 实践机器学习课程,该课程包括线性回归,k-最近邻法,支持向量机等,先展示如何在scikit-learn 中使用它们,然后从头实现各个算法。★ (https://pythonprogramming.net/machine-learning-tutorial-python-introduction/)
吴恩达的Coursera课程有使用 Octave 语言的许多作业,相同的算法可以在 Python 中实现。★★
Python 实践机器学习课程,该课程包括线性回归,k-最近邻法,支持向量机等,先展示如何在scikit-learn 中使用它们,然后从头实现各个算法。★ (https://pythonprogramming.net/machine-learning-tutorial-python-introduction/)
吴恩达的Coursera课程有使用 Octave 语言的许多作业,相同的算法可以在 Python 中实现。★★
神经网络基础
神经网络是很强大的机器学习算法,它们构成了深度学习的基础。
神经网络基础的视觉化、互动性指南- 解释了如何用简单的神经网络进行线性回归★ (http://jalammar.github.io/visual-interactive-guide-basics-neural-networks/)
神经网络基础的视觉化、互动性指南- 解释了如何用简单的神经网络进行线性回归★ (http://jalammar.github.io/visual-interactive-guide-basics-neural-networks/)
Larochelle 的神经网络课程,以下几节:
Larochelle 的神经网络课程,以下几节:
1. 前馈神经网络 ★★
2. 训练神经网络 ★★
斯坦福 CS231n 的以下2节:
斯坦福 CS231n 的以下2节:
4. 反向传播 ★★
5. 神经网络的架构★★
Michael Nielsen 的《神经网络与深度学习》以下几节:
Michael Nielsen 的《神经网络与深度学习》以下几节:
1. 使用神经网来识别手写数字 ★
2. 反向传播算法的工作原理 ★
4. 神经网络的可视化解释 ★
《深度学习》第6章
《深度学习》第6章
6. 深度前馈网络 ★★★
理解反向传播 - 解释了从头开始实现反向传播的重要性 ★★ (https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b)
计算图表上的微积分:反向传播★★ (http://colah.github.io/posts/2015-08-Backprop/)
玩转神经网络! ★ (http://playground.tensorflow.org/)
理解反向传播 - 解释了从头开始实现反向传播的重要性 ★★ (https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b)
计算图表上的微积分:反向传播★★ (http://colah.github.io/posts/2015-08-Backprop/)
玩转神经网络! ★ (http://playground.tensorflow.org/)
Tips
我们建议你尝试从头开始实现一个单层的神经网络,包括其训练过程:
在纯 Python / NumPy 环境中实现 softmax 分类器和一个简单的神经网络 ★ (http://cs231n.github.io/neural-networks-case-study/)
Andrej Karpathy在他的神经网络骇客指南中用 Java 实现反向传播算法 ★ (http://karpathy.github.io/neuralnets/)
在 Python 中从头开始实现神经网络 ★ (http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/)
在纯 Python / NumPy 环境中实现 softmax 分类器和一个简单的神经网络 ★ (http://cs231n.github.io/neural-networks-case-study/)
Andrej Karpathy在他的神经网络骇客指南中用 Java 实现反向传播算法 ★ (http://karpathy.github.io/neuralnets/)
在 Python 中从头开始实现神经网络 ★ (http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/)
改进神经网络算法
神经网络不容易训练。有时它们根本不学习(欠拟合),有时他们会准确地学会你给它们的数据,但不会将学到的“知识”推广到未知的数据(过拟合)。有许多方法能够处理这些问题:
Larochelle 神经网络课程的以下几节:
Larochelle 神经网络课程的以下几节:
2.8-2.11:正则化、参数初始化等 ★★
7.5:Dropout ★★
斯坦福 CS231n 的以下1节:
斯坦福 CS231n 的以下1节:
6. 数据和损失的设置★★
Michael Nielsen 的《神经网络与深度学习》以下几节:
Michael Nielsen 的《神经网络与深度学习》以下几节:
3. 改进神经网络学习的方式★
5. 为什么深层神经网络难以训练? ★
《深度学习》以下几章:
《深度学习》以下几章:
7. 深入学习的正则化 ★★★
8. 训练深度模型的优化 ★★★
11. 实践方法论 ★★★
在 MNIST 上演示 ConvNetJS Trainer - 不同的优化算法的性能的可视化展示 ★ (http://cs.stanford.edu/people/karpathy/convnetjs/demo/trainers.html)
梯度下降优化算法概述★★★ (http://sebastianruder.com/optimizing-gradient-descent/)
神经网络,流形和拓扑★★★ (http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/)
在 MNIST 上演示 ConvNetJS Trainer - 不同的优化算法的性能的可视化展示 ★ (http://cs.stanford.edu/people/karpathy/convnetjs/demo/trainers.html)
梯度下降优化算法概述★★★ (http://sebastianruder.com/optimizing-gradient-descent/)
神经网络,流形和拓扑★★★ (http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/)
Tips:
有许多框架提供标准算法,并针对不同硬件进行了性能优化。除了Torch需要Lua外,大多数框架有用于Python的接口。当你了解如何实现基本的学习算法后,可以选择一个框架来建立模型。建议的框架有:Theano、TensorFlow、Torch、Lasagne 和 Keras,如果你想了解哪个框架适合你,可以参考斯坦福大学CS231n课程的第12讲。★★
卷积神经网络
卷积神经网络(CNN)是一种特殊的神经网络,它使用几个小技巧使模型学习得更快更好。 可以说,ConvNets 彻底改变了计算机视觉,并且也大量应用于语音识别和文本分类。
Larochelle 课程的第9节:
Larochelle 课程的第9节:
9. 计算机视觉 ★★
斯坦福 CS231n 的以下几节:
斯坦福 CS231n 的以下几节:
6. ConvNets介绍★★
7. 卷积神经网络
8. 本地化和检测★★
9. 可视化、神经风格和对抗★★
13. 图像分割★★
《神经网络与深度学习》第6章:
《神经网络与深度学习》第6章:
6. 深度学习★
《深度学习》第9章:
《深度学习》第9章:
8. 卷积网络★★★
Image Kernels的可视化解释★ (http://setosa.io/ev/image-kernels/)
ConvNetJS MNIST演示 - 在浏览器中直观地演示卷积网络★ (http://cs.stanford.edu/people/karpathy/convnetjs/demo/mnist.html)
Conv网络:模块化视角★★ (http://colah.github.io/posts/2014-07-Conv-Nets-Modular/)
理解卷积★★★ (http://colah.github.io/posts/2014-07-Understanding-Convolutions/)
理解NLP的卷积神经网络★★ (http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/)
Image Kernels的可视化解释★ (http://setosa.io/ev/image-kernels/)
ConvNetJS MNIST演示 - 在浏览器中直观地演示卷积网络★ (http://cs.stanford.edu/people/karpathy/convnetjs/demo/mnist.html)
Conv网络:模块化视角★★ (http://colah.github.io/posts/2014-07-Conv-Nets-Modular/)
理解卷积★★★ (http://colah.github.io/posts/2014-07-Understanding-Convolutions/)
理解NLP的卷积神经网络★★ (http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/)
循环神经网络
循环神经网络(RNN)是为序列运算设计,通常用于句子分类(例如情感分析)和语音识别,也用于文本生成甚至图像生成。
循环神经网络的不合理有效性- 描述了RNN如何生成文本,数学论文和C ++代码★ (http://karpathy.github.io/2015/05/21/rnn-effectiveness/)
循环神经网络的不合理有效性- 描述了RNN如何生成文本,数学论文和C ++代码★ (http://karpathy.github.io/2015/05/21/rnn-effectiveness/)
Hugo Larochelle 的课程没有包含循环神经网络(虽然它涵盖了许多实用RNN的主题)。我们建议学习Nando de Freitas 的《循环神经网络和LSTM》课程补充这部分内容。★★ (https://www.youtube.com/watch?v=56TYLaQN4N8)
Hugo Larochelle 的课程没有包含循环神经网络(虽然它涵盖了许多实用RNN的主题)。我们建议学习Nando de Freitas 的《循环神经网络和LSTM》课程补充这部分内容。★★ (https://www.youtube.com/watch?v=56TYLaQN4N8)
斯坦福 CS231n 的以下2节:
斯坦福 CS231n 的以下2节:
10. 循环神经网络、图片说明、LSTM★★
13. Soft attention ★★
《深度学习》第10章:
《深度学习》第10章:
10. 序列建模:循环和递归网络★★★
Richard Socher 的斯坦福CS224d(2016)《循环神经网络》课程★★ (https://www.youtube.com/watch?v=nwcJuGuG-0s&index=8&list=PLmImxx8Char9Ig0ZHSyTqGsdhb9weEGam)
理解LSTM网络★★ (http://colah.github.io/posts/2015-08-Understanding-LSTMs/)
Richard Socher 的斯坦福CS224d(2016)《循环神经网络》课程★★ (https://www.youtube.com/watch?v=nwcJuGuG-0s&index=8&list=PLmImxx8Char9Ig0ZHSyTqGsdhb9weEGam)
理解LSTM网络★★ (http://colah.github.io/posts/2015-08-Understanding-LSTMs/)
自编码器
自编码器是设计用于无监督学习的神经网络,即输入数据未被标记时。自编码器可以用于降维,预训练其他神经网络,用于数据生成等。
Larochelle 课程的以下2节:
6. 自编码器★★
7.6. 深度自编码器★★
斯坦福 CS231n 的以下1节:
斯坦福 CS231n 的以下1节:
14. 视频和无监督学习 ★★
《深度学习》以下1章:
《深度学习》以下1章:
14. 自编码器★★★
ConvNetJS去噪自编码器演示 ★ (http://cs.stanford.edu/people/karpathy/convnetjs/demo/autoencoder.html)
变量自编码器和图像生成★★ (https://www.youtube.com/watch?v=P78QYjWh5sM&index=3&list=PLE6Wd9FR--EfW8dtjAuPoTuPcqmOV53Fu)
ConvNetJS去噪自编码器演示 ★ (http://cs.stanford.edu/people/karpathy/convnetjs/demo/autoencoder.html)
变量自编码器和图像生成★★ (https://www.youtube.com/watch?v=P78QYjWh5sM&index=3&list=PLE6Wd9FR--EfW8dtjAuPoTuPcqmOV53Fu)
概率图模型
概率图模型(PGM)是统计学和机器学习交叉的子领域,关于PGM的书籍和课程有很多,这里我们介绍在深度学习环境中如何应用这些模型。Hugo Larochelle 的课程讲解了几个着名的图模型,《深度学习》中有四章(16-19)是有关图模型理论的,最后一章介绍了十几个模型。这些主题需要了解较深的数学知识。
Larochelle 课程的以下几节:
Larochelle 课程的以下几节:
3. 条件随机场★★★
4. 训练CRF★★★
5. 波尔兹曼机★★★
7.7-7.9. 深度置信网络★★★
9.10. 卷积RBM★★★
《深度学习》以下几章:
《深度学习》以下几章:
13. 线性因子模型 - 概率模型的第一步★★★
16. 深度学习的结构化概率模型★★★
17. 蒙特卡罗方法★★★
18. 分配函数★★★
19. 近似推理★★★
20. 深度生成模型 - 包括波尔兹曼机(RBM,DBN,...),变分自编码器,生成对抗网络,自回归模型等。★★★
生成模型 - 关于变分自编码器,生成对抗网络及其改进,by OpenAI ★★★ (https://openai.com/blog/generative-models/)
★★ (http://www.asimovinstitute.org/neural-network-zoo/)
生成模型 - 关于变分自编码器,生成对抗网络及其改进,by OpenAI ★★★ (https://openai.com/blog/generative-models/)
★★ (http://www.asimovinstitute.org/neural-network-zoo/)
The state of the art
深度学习是一个非常活跃的科学研究领域。为了跟进最先进的技术,我们必须阅读新的论文,跟进重要的会议。通常所有新的idea都会先在arxiv.org上发布,然后,其中一些论文会被提交到会议和同行评审。其中最好的论文会提交给重要会议,并在期刊上发表。如果作者没有为他们的模型释放代码,会有许多人试图实现它们并将代码放到GitHub上。再过一两年时间,详细解释这些idea和实现代码的高质量的博客文章、教程和视频会出现在网络上。
深度学习论文阅读路线图 - 包含了各个主题的重要论文(https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap)
Arxiv Sanity Preserver (http://www.arxiv-sanity.com/)
Videolectures.net 有许多高阶主题的视频(http://videolectures.net/)
/ r / MachineLearning - 是reddit一个非常活跃的子论坛,几乎所有重要的新论文都有讨论。(https://www.reddit.com/r/MachineLearning/)
深度学习论文阅读路线图 - 包含了各个主题的重要论文(https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap)
Arxiv Sanity Preserver (http://www.arxiv-sanity.com/)
Videolectures.net 有许多高阶主题的视频(http://videolectures.net/)
/ r / MachineLearning - 是reddit一个非常活跃的子论坛,几乎所有重要的新论文都有讨论。(https://www.reddit.com/r/MachineLearning/)
原文地址:http://yerevann.com/a-guide-to-deep-learning/
新智元招聘
职位 运营总监
职位年薪:36- 50万(工资+奖金)
工作地点:北京-海淀区
所属部门:运营部
汇报对象:COO
下属人数:2人
年龄要求:25 岁 至 35 岁
性别要求:不限
工作年限:3 年以上
语 言:英语6级(海外留学背景优先)
职位描述
负责大型会展赞助商及参展商拓展、挖掘潜在客户等工作,人工智能及机器人产业方向
擅长开拓市场,并与潜在客户建立良好的人际关系
深度了解人工智能及机器人产业及相关市场状况,随时掌握市场动态
主动协调部门之间项目合作,组织好跨部门间的合作,具备良好的影响力
带领团队完成营业额目标,并监控管理项目状况
负责公司平台运营方面的战略计划、合作计划的制定与实施
岗位要求
大学本科以上学历,硕士优先,要求有较高英语沟通能力
3年以上商务拓展经验,有团队管理经验,熟悉商务部门整体管理工作
对传统全案公关、传统整合传播整体方案、策略性整体方案有深邃见解
具有敏锐的市场洞察力和精确的客户分析能力、较强的团队统筹管理能力
具备优秀的时间管理、抗压能力和多任务规划统筹执行能力
有广泛的TMT领域人脉资源、有甲方市场部工作经验优先考虑
有媒体广告部、市场部,top20公关公司市场拓展部经验者优先
新智元欢迎有志之士前来面试,更多招聘岗位请访问新智元公众号。
网友评论
最新评论
章:《深度学习》以下几章:7. 深入学习的正则化 ★★★8. 训练深度模型的优化 ★★★11. 实践方法论 ★★★在 MNIST 上演示 ConvNetJS Trainer - 不同的优化算法的性能的可视化展示 ★
-descent/)神经网络,流形和拓扑★★★ (http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/)在 MNIST 上演示 ConvNetJS Trainer - 不同的优化算法的性能的可视化展示 ★ (http://