创作声明:这一部分的笔记整理自清华大学物理系罗迪老师的课堂讲授内容,经过笔者理解整理后记录在此
机器学习或者人工智能有两种主要的分类方式,按照目的来划分,可以分为:
- 监督学习 Supervised Learning: 其主要解决的是分类问题(Classification),即对于一组数据我们需要判断它是否属于某一选定的类别。
- 非监督学习 Unsupervised Learning: 其主要解决的问题有两大类,第一类是聚类问题(Clustering),即一组数据可以被分为多少可能的种类;第二类是生成模型(Generative modeling),其任务非常像统计力学的逆问题,即通过学习数据集得到背后的统计概率$P(x)$,现在的主流有:自回归模型(Autoregressive Model), 流模型(Flow-Based Model)以及扩散模型(Diffusion Model)
- 强化学习 Reinforcement Learning:强化学习的目标是在与环境的交互过程中学习一个最优策略。其核心框架是马尔可夫决策过程(Markov Decision Process),这一过程在数学上与非平衡统计力学有着非常深刻的联系。
而如果按照理论框架来区分,也可以被分为以下三大类:
- 表示理论 Representation: 即对于某一个函数,我们可以用一个神经网络来进行表示
- 优化理论 Optimization:即优化问题,计算给定目标函数的极值等,其核心技术有随机梯度下降(Stochastic Gradient Descent), 反向传播(Backward Propagation)
- 泛化理论 Generalization: 即我们在数据范围内拟合的结果是否能够外推到其它范围。
在如今,机器学习已经变得越来越重要,而在其概念刚刚诞生的年代却并没有被很多人看好。其中,使得场面发生如此大扭转的关键就是计算。在优化神经网络的过程中,可以预想,其中涉及到大量关于求导微分的计算。求导微分可以被分为三类:解析微分、数值微分、自动微分。面对一个复杂的神经网络函数,解析微分求导的执行是非常困难的;数值微分求导即有限差分则面临着精确度与计算时间复杂度的问题;自动微分求导则很好地解决了这些痛点,随着现在硬件存储能力的提升,自动微分求导通过记录存储中间变量从而将时间复杂度转换成了空间复杂度,使得神经网络的优化成为可能。
为此,我们在下面将首先来具体地理解自动微分这样一个重要概念。首先,必须指出自动微分的核心就是计算图。在实现自动微分之前,我们必须深刻理解计算图的概念。