跳转至

Course Overview

数学基础

微积分

梯度下降法几乎是所有深度学习算法的基础,而它使用的正是微积分中高维函数的导数的概念,并且在概率论、随机过程、优化理论等课程中也会大量使用微积分,所以熟练掌握它是必须的基本功之一。MIT 的 18.01 / 18.02 课程非常适合用于入门,让你免于大量做题的头疼,专注于微积分的本质。

线性代数

线性代数是人工智能中相当重要的一部分,因此我花了大量的时间进行学习。你可以聆听 Strang 老教授的 MIT 18.06 课程,以著名的 Introduction to Linear Algebra 为教材来学习线性代数。

离散数学

集合论、数理逻辑基础、图论基础都是接下来的学习中所必须的知识,在这门课程中,你可以将它们一网打尽!我所采用的资料是上海交大殷翔老师讲义,不过由于版权原因,我并不能放出这门课的作业和考试试题,所以你也可以选择斯坦福大学的 CS103 课程,这门课的内容是上述讲义的超集,也很值得一听;又或者同时讲授了离散数学和概率论的 UCB CS70

数学进阶

概率论

概率论也是人工智能的重要基础课程之一,因此非常有必要认真学习。我使用了 MIT 的 RES.6-012: Introduction to Probability 这门课程进行学习。

随机过程

近几年流行的 diffusion model 就使用了一种特殊的随机过程“扩散”(diffusion),如果你对这方面感兴趣的话,随机过程也是绕不开的一门数学课。不过我也没找到适合计算机专业的课程,只找到了上海交大开设的一门偏向数学的课程 AI2613

编程基础

Python

如今几乎所有的人工智能代码都使用了 Python 作为编程语言,因此熟练地掌握 Python 是每一个学习 AI 的学生必备的技能,强烈推荐 CS61a 来进行学习,不过对这门课来说,拥有了一定的代码基础后再来学习可能效果更佳吧,比方说先学学 CS50P

C++

虽说现在的 AI 领域,Python 占据了几乎全部江山,但在人工智能库的一些底层代码中,仍然使用的是 C 或 C++ 语言(以提高运行速度,例如 Pytorch 的底层代码就是由 C++ 实现),因此也需要进行 C 和 C++ 的学习。斯坦福大学的 CS106B 是一个比较好的选择。

数据结构与算法

虽说人工智能领域涌现出了大量的新算法,但是掌握传统的算法仍然非常有必要,它们可以帮助你更好地分析、设计、改进新的算法,让你面对 AI 算法时不至于一头雾水。我使用伯努利大学的 CS61b、斯坦福大学的 CS161 两门课程进行学习,同时参考了俞勇教授翁惠玉教授所写的《数据结构:思想与实现》,以及《算法导论》这两本书。

机器学习

机器学习基础

Stanford CS229 这门课由吴恩达教授讲授,质量上乘,我跟随它学完了基础的机器学习算法,同时又参考 CS 189/289A 中的内容进行了补充,口感甚佳。

深度学习

这几年深度学习如火如荼,以至于提到人工智能大家就会想到深度学习。你可以选择学习 Stanford CS230李宏毅机器学习或者动手学深度学习这几门课程来进行入门。另外,我在大一下学期加入了实验室进行学习,师兄们为我推荐了许多深度学习相关的博客、教程。我将这些内容整理后梳理出了一条独特的深度学习入门路线,也许并不适合所有同学,故仅仅作为一个参考。

计算机视觉

怎么让计算机“看懂”照片上的内容?人脸识别是怎么实现的?图片生成又是怎么一回事?Umich 大学的计算机视觉课程 可以为你部分解决这些问题。这门课同时也是很好的 Pytorch 教程,非常值得一看。

自然语言处理

23 年大火的 GPT 系列模型着实让人震惊,这背后也少不了自然语言处理(nlp)的功劳。斯坦福大学的 CS224n 是一门较好的 nlp 入门课程,不过它假定你已经掌握了 Pytorch 的使用,需要先了解 Pytorch 基本用法后才能学习。