近年来,深度学习方法已经彻底改变了人工智能和机器学习的许多领域。深度学习方法的广泛采用在很大程度上是由易于使用的深度学习系统的广泛可用性所驱动的,如PyTorch和TensorFlow。但是,尽管这些库被广泛使用和使用,但学生们很少有机会接触到这些库的内部结构,从根本上理解它们是如何工作的。但是深入理解这些库将帮助您更好地使用它们的功能,并使您能够在需要时开发或扩展这些库,以适应深度学习中您自己的定制用例。
本课程的目标是为学生提供深度学习系统“全栈”的理解和概述,从现代深度学习系统的高级建模设计,到自动区分工具的基本实现,再到高效算法的底层设备级实现。在整个课程中,学生将从头开始设计和构建一个完整的深度学习库,能够高效地基于GPU的操作,自动区分所有实现的函数,以及支持参数化层、损失函数、数据加载器和优化器的必要模块。使用这些工具,学生将建立几种最先进的建模方法,包括用于图像分类和分割的卷积网络,用于顺序任务(如语言建模)的循环网络和自我注意模型,以及用于图像生成的生成模型。
课程网址:
这门课的课程主要包括编程作业作为家庭作业,有四个主要的家庭作业(外加一个介绍性的家庭作业),外加一个期末项目。通过这四个作业,学生将构建一个基本的深度学习库,可与PyTorch或TensorFlow的非常小的版本相媲美,可扩展到一个合理大小的系统(例如,使用GPU快速实现操作)。编程作业必须单独完成:尽管学生可以与其他人讨论作业,但他们必须提交单独的代码。
最终项目将由2-3名学生组成小组完成,将包括在开发的库中实现一个实质性的新功能,加上使用此功能的模型的实现(在开发的库下运行,例如在PyTorch/Tensorflow中完成)。我们将为这些特性和建模项目提供几种候选方法,包括进一步硬件加速的方法、对抗训练、高级自差分算子(例如,线性代数算子,如系统解/ SVD)、概率建模等。除了代码,你还需要提交一份报告作为你作业的一部分。