来源:新智元
本文约1000字,建议阅读5分钟。
课程简介
以深度神经网络为代表的“深度学习”系统越来越多地在各种AI任务中大显神威,包括语言理解、语音和图像识别、机器翻译、规划、甚至游戏和自动驾驶。因此,掌握深度学习方面的专业知识已经逐渐从高深莫测转变为现在许多高级学术问题中必须掌握的背景知识,并且深度学习人才在就业市场中也有很大的优势。
在这个课程中,我们将学习深度神经网络的基础知识,以及它们在各种AI任务中的应用。在课程结束后,学生将对课程主题有足够的了解,并能够将深度学习应用于各种任务。学生还将阅读当前关于该领域的大量文献,并通过进一步的研究扩展自己的专业知识。
这门课程涉及的概念很全面。它将帮助学生理解深度学习的基础。课程从MLP(多层感知器)讲始,逐步深入到更复杂的概念,例如注意力模型和sequence-to-sequence模型。学生需要完全掌握PyTorch,这对于实现深度学习模型非常重要。
作为学生,你将学习构建深度学习模型所需的各种工具。作业通常有两个部分,即Autolab和Kaggle。Kaggle部分允许我们探索多种架构,并了解如何调优并持续改进模型。所有作业的任务都是相似的,学习如何使用多种深度学习方法解决相同的任务是很有趣的。总的来说,在本课程结束时,你将有足够的信心构建和调优深度学习模型。
课程导师:
Bhiksha Raj(bhiksha@cs.cmu.edu)
助教:
Ryan Brigden (rbrigden@andrew.cmu.edu)
Raphael Franck Olivier (rolivier@andrew.cmu.edu)
Sai Nihar Tadichetty (ntadiche@andrew.cmu.edu)
Shubham Tripathi (shubhamt@andrew.cmu.edu)
Soham Ghosh (sohamg@andrew.cmu.edu)
Madhura Das (madhurad@andrew.cmu.edu)
Ipsita Prakash (iprakash@andrew.cmu.edu)
Dhruv Shah (ddshah@andrew.cmu.edu)
Shaden Shaar (sshaar@andrew.cmu.edu)
David Zhang (davidz1@andrew.cmu.edu)
Anushree Prasanna Kumar (apkumar@andrew.cmu.edu)
Ahmed Shah (mshah1@andrew.cmu.edu)
Jiawei Yang (jiaweiy@andrew.cmu.edu)
Omar Khattab for Doha (okhattab@cmu.edu)
Nebiyou Yismaw for Kigali (nyismaw@andrew.cmu.edu)
先修要求
1. 我们将使用一个主流的工具包中(主要是PyTorch)。工具包主要用Python编程。你需要能够使用至少一种语言进行编程。或者,你可以使用熟悉的语言进行编程,但必须自行查找和学习对应的工具包。
2. 你需要熟悉基本的微积分(微分,链式法则),线性代数和基本概率知识。
教材
这门课程不会按照某一本教材来进行,而是会选择许多资料。我们列出相关书目,并且会为每个单元提供相关阅读资料的链接。学生需要在上课前熟悉这些材料。阅读材料有时会晦涩难懂;但是不用担心,我们会在课堂上给出更简单的解释。
讨论板:Piazza
我们使用 Piazza 进行讨论,链接:
https://piazza.com/class/jhyyudofj9u4za
你可以在这里了解当前文献中的模型目录:
https://www.datasciencecentral.com/profiles/blogs/concise-visual-summary-of-deep-learning-architectures
如果现在还不能完全理解,我们希望在课程结束时,你能够理解wiki和目录上的多数模型架构。
Kaggle:
Kaggle是一个很受欢迎的数据科学平台,参与者通过竞赛创造学习或分析一个数据集的最佳模型。本课程的作业将需要把评估结果提交到Kaggle leaderboard。
相关书目
Deep Learning By Ian Goodfellow, Yoshua Bengio, Aaron Courville Online book, 2017
Neural Networks and DeepLearning By Michael Nielsen Online book, 2016
Deep Learning with PythonBy J. Brownlee
Deep Learning Step by Step with Python: A Very Gentle Introduction to Deep Neural Networks for Practical Data Science By N. D. Lewis
Parallel Distributed Processing By Rumelhart and McClelland Out of print, 1986
课程内容
第 1 讲(8.29):
深度学习简介
课程安排
神经计算的历史和认知基础
感知机和多层感知机
Slides:
http://deeplearning.cs.cmu.edu/slides/lec1.intro.pdf
Video:
https://www.youtube.com/watch?v=aPY-KC6zeeI
第 2 讲(8.31):
神经网络:一个通用的近似器
Slides:
http://deeplearning.cs.cmu.edu/slides/lec2.universal.pdf
第 3 讲(9.5):
训练一个神经网络
感知器学习法则
经验风险最小化
利用梯度下降法进行优化
第 4 讲(9.10):
反向传播
反向传播的微积分学
第 5 讲(9.12):
神经网络的收敛问题
收敛速度
损失函数
学习率和优化方法
RMSProp, Adagrad, Momentum
第 6 讲(9.17):
随机梯度下降
加速
过拟合和正则化
小技巧:选择散度 (损失) 函数、Batch normalization,Dropout
第 7 讲(9.19):
训练回顾
学生Q&A
第 8 讲(9.24):
继续优化问题
第 9 讲(9.26):
卷积神经网络(CNNs)
Weights as templates
平移不变性
使用参数共享进行训练
第 10 讲(10.1):
视觉模型
神经认知机(Neocognitron)
CNN 的数学细节
Alexnet,Inception,VGG
第 11 讲(10.3):
循环神经网络(RNNs)
序列建模
通过时间反向传播
双向 RNN
第 12 讲(10.8):
模型稳定性
梯度爆炸 / 消失
长短期记忆单元(LSTM)及其变种
Resnets
第 13 讲(10.10):
循环网络的损失函数
序列预测
第 14 讲(10.15):
序列到序列方法
联结主义时间分类器(CTC)
第 15 讲(10.17):
序列到序列模型、注意力模型(语音和语言的示例)
第 16 讲(10.22):
网络代表什么?
自动编码器和降维
学习表示
第 17 讲(10.24):
变分自动编码器(VAE)
第 18 讲(10.29):
生成对抗网络(GANs)第一部分
第 18 讲(10.31):
生成对抗网络(GANs)第二部分
第 19 讲(11.5):
Hopfield 神经网络
玻尔兹曼机(Boltzmann Machines)
第 20 讲(11.7):
训练 Hopfield 网络
随机 Hopfield 网络
第 21 讲(11.12):
受限玻尔兹曼机
深度玻尔兹曼机
第 22 讲(11.14):
强化学习 1
第 23 讲(11.19):
强化学习 2
第 24 讲(11.21):
感恩节假期
第 25 讲(11.26):
强化学习 3
第 26 讲(11.28):
强化学习 4
第 27 讲(12.3):
强化学习 4
Q 学习
深度 Q 学习
第 28 讲(12.5):
新模型以及深度学习的趋势
课程回顾
CMU深度学习第一课PPT节选
更多资料请查看官网:
http://deeplearning.cs.cmu.edu/