跳转至

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++ 的学习。如果你想从事 AI infra 相关的工作的话,也需要学习一下这两门语言。斯坦福大学的 CS106B 是一个比较好的选择,而 C 语言则可以在 CS61c 中进行学习。

数据结构与算法

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

机器学习

机器学习基础

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

深度学习

这几年深度学习如火如荼,以至于提到人工智能大家就会想到深度学习。你可以选择学习 Stanford CS230李宏毅机器学习或者动手学深度学习这几门课程来进行入门。前两门课程偏重与理论,而动手学深度学习则更偏向于代码层面的应用。

计算机视觉

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

自然语言处理

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

语音处理

想要为自己设计一个专属的变音器吗?想“克隆”你喜欢的明星/二次元角色的声线来生成一些有趣的对话吗?想要做出自己的 AI 翻唱吗?学习语音处理就可以(部分)实现你的愿望。

深度生成模型

这两年引人注目的 AI 绘画生成,以及 ChatGPT 都是生成式模型的应用,它们带来的震撼也是大家有目共睹的。你可以通过学习 CS236 这门课程了解它们的理论基础,特别是不同模型之间的来龙去脉。不过必要的代码练习也是必需的,建议在 GitHub 上寻找源码实现进行学习。

强化学习

AlphaGo 在围棋方面打败了围棋世界冠军,表明在一些任务上强化学习(RL)可以达到媲美甚至超越人类的水平。当然强化学习不止可以用来下围棋,你还可以用它来玩一些 MOBA 类游戏(例如 DOTA)以及沙盒游戏(例如 Ninecraft)。UCB 的 CS285 提供了一个很好的 RL 教程,而西湖大学的公开课程 则会向你介绍 RL 的基本数学原理。