深度学习的教学和课程,与传统 CS 的教学和课程有什么区别?

深度学习的课程和传统计算机课程有很大的不同,也可以说 “独树一帜”,其独特性主要来自于:

1. 前置课程多

2. 缺乏完整的理论体系

3. 繁多的调参技巧

4. 知识迭代速度快

5. 交叉领域应用能力强。

以几门传统的计算机课程 (数据结构和算法、数据库、操作系统) 为参照对象,我觉得深度学习课程设置有以下不同:

1. 前置课程要求较多,需要较广的基础知识

一般我们把深度学习 / 机器学习的课程安排在大三以后,而研讨课 (seminar) 一般安排在研究生博士阶段,这与大部分传统计算机课程不同。这是因为深度学习涉及了很多数学、统计概率、以及优化方向的知识,对刚入学的学生不大友好,具体包括:

线性代数:矩阵 / 张量乘法、求逆,奇异值分解 / 特征值分解,行列式,范数等

统计与概率:概率分布,独立性与贝叶斯,最大似然 (MLE) 和最大后验估计 (MAP) 等

信息论:基尼系数,熵 (Entropy) 等

优化:线性优化,非线性优化 (凸优化 / 非凸优化) 以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等

数值计算:上溢与下溢,平滑处理,计算稳定性 (如矩阵求逆过程)

微积分:偏微分,链式法则,矩阵求导等

举个例子,我曾短暂带过多伦多大学神经网络的课程 (就是 Hinton 原来教的那门 csc321) 的助教,当时给我们助教的资格测试是对矩阵进行奇异值分解和其他线性代数的知识,而不是推导 BP 算法。这也是为什么大部分深度学习课程的前几节助教课都是讲这些基础知识,正所谓不积跬步无以至千里。

而大部分的传统计算机课程不需要这么多的前置知识,入门门槛相对低一些。即使以可计算理论 (Computability Theory) 这种理论性比较强的课来说,其要求的知识广度也不及深度学习。但此处也想给大家提个醒,深度学习没有必要等到掌握所有领域知识再开始,应该一边学习一边补充所需知识。

2. 知识更新速度快,时效性强

虽然深度学习的前身,也就是感知机 (perceptron) 已经有超过 50 年的历史,但深度学习还属于一个飞速发展的新兴领域,因此很多经典的理论 / 技巧很快就被推翻。举两个例子:

激活函数的选择:在很多深度学习的教科书中,尤其是 10 年以前的教科书中都还依然把 Sigmoid 当作默认的激活函数。但事实上,整流函数 (ReLu) 以及其拓展变形函数,如 Leaky ReLu 早就成为了主流的深度学习激活函数。但因为知识的滞后性,很多课程 / 书籍甚至都没有介绍 ReLu 的章节。

鞍点和全局最小:长年以来学术界把深度学习使用 BP 算法难以得到全局最优解的原因归结于存在大量的局部最小 (local minimum) 导致梯度下降失败,直到最近几年大家才比较一致的认同可能问题出在了大量鞍点 (saddle points) 导致了梯度下降法在 Hessian 矩阵的条件数很差时在高维空间失效。

大部分计算机科学课程有可以自洽的经典体系,短时间内理论上不会发生很大的变化。你看几年前的操作系统书籍或者课程,和现在的主流知识变化不是很大。而深度学习领域基本上每过一阵子都会出个大新闻,然后大家才发现一直都做错了。所以深度学习课程很讲究时效性,超过 3 年以上的书籍和课程或多或少都有错误或者不准确的地方,切记切记!

但换个角度思考,这也说明了深度学习还有很大的潜力,可以研究的方向很多。这两年很火的多任务学习 (multi-task learning), 迁移学习 (transfer learning), 对抗生成网络 (GAN) 都给了研究者更多的挖坑方向。

3. 理论证明比较薄弱,高度依赖黑科技 (调参技巧)

承接第二点,深度学习缺乏从数学角度的自洽解释,而且好用有效的深度学习模型其实还是大量依靠人为进行构建和参数调整。换句话说,深度学习还没有一套完整的,自上而下的操作流程,现阶段还大量依靠人为的选择、调整、优化。这也是为什么深度学习被叫做 “炼丹”,而从业人员被叫做 “炼丹师”。

深度学习的调参技巧早就被外界所诟病,除了选择良好的激活函数,小心的设计网络结构,还要给隐藏单元加入噪音 (如 Dropout),使用合适的正则化方法等。其中每一项展开都可以算作一个领域,更别提把这些步骤整合时可能造成指数级的选择困难。高度的不确定性使得课程设置变得很难。

Goodfellow 在《深度学习》一书中就指出 “深度学习中使用的优化算法几乎都没有理论保证,我们只有不断进行强假设限制得到一些理论保证”。不仅仅是优化,深度学习作为一种表示学习 (representation learning),对于特征的提取和解释也只有非常有限的解释性。同理,刚刚提到的 dropout 操作,其使用的权重缩放推断 (weight scaling inference) 也是一种经验科学没有理论的背书,但因为效果真的很好所以在该领域得到了广泛应用。

深度学习现阶段作为一门经验科学,从课程设置角度来说面临一个尴尬的局面。如果只讲理论,那么实用性很低。而如果只讲实际技巧,这又太不像一门专业科学无法自洽。这也是深度学习和其他计算机领域的一个显著不同,某种意义上说深度学习的实用性走在了理论性前面。这使得深度学习从授课角度来说很难,举两个典型的例子:

Neural Networks for Machine Learning | Coursera

: Geof Hinton 的课偏理论,轻实践

Deep Learning | Coursera (http://dwz.cn/77BlJ5): Andrew Ng 的课程偏实践,轻理论

可以看出,深度学习对授课教师也提出了很高的要求。如果工程性太强那么理论很薄弱像空中楼阁,而太理论缺乏实践技巧又比较像屠龙之技。而其他计算机课程基本都已经有了一个比较好的自洽体系,能在理论和实践中达到一个不错的平衡。这也是为什么知乎上曾有个非常有意思的热门话题「为什么有些学数学的看不惯甚至鄙视 Deep Learning?(http://dwz.cn/77Bnd5)」

作为经验科学,那实验必不可少。但这对于学校 / 教育机构来说也面临一个成本问题,是否有能力提供足够的软硬件支持,即学生是否可以在注册期间使用服务器 / GPU。大部分深度学习的项目都无法在个人电脑上完成,尤其个人笔记本的主流操作系统还是 Windows。这一点对于本科学生来说更不友好,因为从成本角度学校很难提供硬件支持,也没有导师愿意购买设备供大家使用。我个人比较看好的方法还是学校和云服务厂商合作,保证注册课程的学生在上课期间可以有 “一定时长的 GPU 使用机会”。

4. 高学科交叉度,导致领域课程设置细分

深度学习的广泛使用使得其课程设置更加细分化。其他计算机课程一般都叫做 “XX 入门”,“中级 XX”,和 “高级 XX”。深度学习不同,作为一门工具学科既可以用来做视觉 (Computer Vision),也可以做自然语言处理 (NLP),还可以做很多其他的领域,导致了其课程设置非常细。以多伦多大学 2017 年的研究生博士课程为例,和深度学习相关的课程就超过了 7 门:

Topics in Machine Learning: Scalable & Flexible Models of Uncertainty

Topics in Machine Learning: Learning Discrete Latent Structure

Machine Learning and Data Mining

Machine Learning in Computer Vision

Natural Language Computing

Topics in Computational Molecular Biology: Computational Methods in Medicine

Advanced Machine Learning

这些课程中 1,2,3,7 是比较传统的机器学习课程,4, 5, 6 分别是机器学习 / 深度学习在机器视觉,自然语言处理,和计算生物方向的应用。以前系里面的课还有 用深度学习 + 机器视觉做无人车等。而且统计系或者运筹学系又都有机器学习 / 深度学习的课程,这再一次证明了深度学习高交叉性、高迁移性的特点。

换个角度思考,深度学习的课程往往只有在入门阶段才是纯深度学习,进阶学习往往都会将其应用于某个特定领域解决实际问题。这个和其他领域的计算机课程不同,你很少见到把操作系统或者数据库领域的知识大规模的迁移到其他学科上的案例。

5. 总结

从以上分析不难看出,深度学习作为一个 “年轻的” 学科,和其他成熟的计算机课程还是有很大不同。比较明显的就是因为其较高的前置背景,导致其入门要求高,一般是高年级课程。其次就是因为其并未形成完整自洽的理论体系,导致系统的课程设置很难,而且有很多人为的 “黑科技”。但即使如此,深度学习的有效性已经在多个交叉领域被证明,这也导致了其课程设置非常细而且可覆盖的话题比较灵活。深度学习的特别之处告诉我们:

掌握好基础知识,但不要矫枉过正,买椟还珠

不断更新知识,追踪主流热点,不要抱着固有的观念

上手调参,有时候实践比理论更重要,至少在现阶段的深度学习领域

专注特定领域,不要试图短时间内能成为横跨多个领域的专家

而从讲课的角度来说,深度学习的课程很难掌握好理论与实践的平衡,而且必须时时刻刻跟踪前沿热点进展,这样才能防止被听众 “打脸”。

不管是学生和老师都不容易啊,祝大家炼丹愉快 - ʕ•ᴥ•ʔ

上海交通大学博士讲师团队

从算法到实战应用

涵盖 CV 领域主要知识点

手把手项目演示

全程提供代码

深度剖析 CV 研究体系

轻松实战深度学习应用领域!

新人福利

关注 AI 研习社(okweiwu),回复1领取

【超过 1000G 神经网络 / AI / 大数据,教程,论文】

入门合辑,不知道该怎么入门的可以看这里

本文来自企鹅号 - AI研习社媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CSDN技术头条

DNN的隐喻分析:“深度学习”,深在何处

【编者按】DNN现在已经被互联网公司广泛使用,但大众对深度学习的理解水平并不一致。Nuance的这篇文章从另外一个角度来审视DNN技术的演进——分析隐喻如何作为...

20410
来自专栏大数据

Philip S.Yu 讲的广度学习到底是什么?

本次讲习班邀请到了两位在数据挖掘领域数一数二的顶级巨擘:韩家炜教授和 Philip S. Yu 教授。Philip 教授在报告中详细讲解了他多年来所倡导的「广度...

27910
来自专栏新智元

【AI学会“以牙还牙”】OpenAI发布多智能体深度强化学习新算法LOLA

【新智元导读】OpenAI和牛津大学等研究人员合作,提出了一种新的算法LOLA,让深度强化学习智能体在更新自己策略的同时,考虑到他人的学习过程,甚至实现双赢。每...

3876
来自专栏新智元

【深度】申省梅颜水成团队获国际非受限人脸识别竞赛IJB-A冠军,主要负责人熊霖技术分享

作者:熊霖 赵健 徐炎 采访:闻菲 【新智元导读】开发出精确的和可扩展的无约束人脸识别算法,是生物识别和计算机视觉领域长期以来不断追求的目标。为了促进非受限...

5287
来自专栏大数据挖掘DT机器学习

数据挖掘中最易栽的11个大坑

按照Elder博士的总结,11大易犯错误:   1、缺乏数据   2、太关注训练   3、只依赖一项技术   4、提错了问题   5、只靠数据来说话   6...

2945
来自专栏新智元

【无监督学习】我们如何教人类婴儿学习,也如何教AI

【新智元导读】这篇文章讨论了在深度学习中为什么高质量、有标签的数据如此重要,从哪里得到这些数据,以及如何有效使用它们。作者最后提出,解决训练数据缺乏的方法可以是...

3298
来自专栏人工智能头条

需要密切关注的六大人工智能/机器学习领域

1883
来自专栏新智元

【干货】机器学习概览+模型可视化呈现

2016年10月18日, 世界人工智能大会技术论坛,特设“新智元智库院长圆桌会议”,重量级研究院院长 7 剑下天山,汇集了中国人工智能产学研三界最豪华院长阵容:...

4236
来自专栏人工智能头条

DNN的隐喻分析:“深度学习”,深在何处

1433
来自专栏AI科技大本营的专栏

周末漫谈 | 都说想转型机器学习,到你真的有机会吗?机器学习下一个创新点到底在哪里?

本期话题 这个周六,让我们来聊聊当前火热的机器学习,它未来的机会在哪里呢? 机器学习、计算机视觉下一步的创新点在哪里? 随着硬件的迭代,神经网络的隐藏层可以...

3469

扫码关注云+社区