本篇文章的动机:比较最先进的技术
深度神经网络 (DNN) 和高斯过程 (GP)* 是两类具有高度表现力的监督学习算法。 在考虑这些方法的应用时会出现一个自然的问题:“什么时候以及为什么使用一种算法比另一种更有意义?”
在本文中,我们将讨论在什么情况下需要使用哪种方法。 在我们讨论之前首先需要了解这些方法是如何相互关联的。 在本文中,我们将介绍:
- GPs 和 DNNs 的理论异同
- GP 与 DNN 的优缺点
- 使用 GP 与 DNN 的示例应用
- GP 和 DNN 的实现
理论差异
参数与非参数
量化这两种模型之间差异的一个维度是考虑每个模型中参数的数量和类型。一般而言,由于高斯过程被认为是非参数机器学习技术,因此高斯过程 (GP) 学习的参数要少得多,并且预测主要由定义它们的训练数据集驱动。他们的参数选择完全由以下选择表示:
- 核/协方差函数 (k(x,x’))
- 平均函数 (m(x))
- 似然协方差噪声 (σ2)
这些选择/变量通常被指定为“超参数”。
高斯过程 (GP) 中缺少参数与许多现代深度神经网络 (DNN) 形成鲜明对比,后者旨在利用尽可能多的参数(或称为权重)来解决机器学习问题。在经典的统计学习文献中使用大量的参数是不被允许的,因为这样会导致显著的过拟合和对分布外数据的泛化能力差。然而这种经典的统计学习理论无法解释大量使用神经网络的成功案例,因此“过度参数化”或“插值”机制的新理论 [1, 6] 开始占据上风。
总结:GP(几乎*)是非参数的,而 DNN 是过度参数化的。GP 仅通过其超参数进行参数化,例如上面所提到的三个超参数。
正向与逆向方法
与参数/非参数属性相关,GPs 和 DNNs 的另一个不同之处在于 DNNs 是逆向方法,而 GPs 是正向方法。
逆向方法涉及从训练数据优化参数,因此也称为监督学习方法。通常,这些方法涉及对参数的一些初始信念(称为“先验”)的参数化。这些方法通常采用自上而下的方法,即使用数据来更新参数 [7] 中捕获的信念。
正向方法依赖于直接使用训练数据来做出新的预测/获得见解,就像大多数依赖内核的机器一样。内核机(Kernel Machines)缺乏核函数本身的细节,新的预测完全由现有的可用数据驱动。由于这些方法能够进行大量的数据探索和洞察,而无需对底层模型形成强烈的初始信念,因此这些方法通常被称为自下而上 [7]。
总结:GPs是(几乎*)正向方法,而dnn是逆向方法。GPs的超参数优化是一种间接的程序,通常使用梯度和基于hessian的学习方法来完成。
学习方式的差异
如果没有深度高斯过程,GP 和 DNN 之间学到的东西也会有所不同。 但是他们完成学习的方法并没有太大区别:两者都使用一阶(在某些情况下,还使用二阶)方法。 这两种方法也优化了不同的函数:对于神经网络,这是一个损失/代价函数,对于高斯过程,这是边缘似然函数(marginal likelihood function)。
对于高斯过程,边缘似然目标往往更非凸,因此,通常使用二阶梯度下降算法(例如 L-BFGS [5])进行优化以避免局部最小值。
总结:GPs一般采用二阶优化方法,如L-BFGS[5],使用目标函数的Hessian; dnn一般采用一阶优化方法,如SGD[8],使用目标函数的梯度。
可解释性
在应用机器学习任务中,能够解释你的结果可能和结果本身一样重要。
神经网络的可解释性
虽然一些较新的DNN结构允许对不确定性进行更彻底的近似,例如通过任意和认知不确定性[9],这些网络中的许多只提供估计的预测值,并提供多类分类可能性的对数(预测概率)。由于 DNN 普遍缺乏可解释性一直是一个流行的研究课题 [10],我相信未来更多的网络架构将包含一些预测不确定性的元素。
其他进步,例如 GradCam [12] 等梯度可视化工具,也提高了 DNN 的可解释性,并有助于减少它们的感知“黑盒化”。
GP 的可解释性
相反,GP 固有的高斯结构使它们非常适合可解释的不确定性估计。 对于需要直观风险评估的某些应用程序,这可能使这种方法更有利。
此外,GPs 具有很好的直观特性,即所有插值平均预测都是作为训练集中现有平均点的加权线性组合生成的,按从测试点到给定数据点的距离(在核函数的空间中测量)进行缩放[11]。 GP 以线性方式重新组合他们之前看到的点以产生新的预测。
总结:GPs的线性和高斯特性有助于提高这些模型的可解释性。虽然dnn长期以来一直被批评为“黑盒”,但今天正在进行重大的研究[9,10,12],是以帮助这些模型更易于解释的。
理论相似性
“插值机制”中的内核机
最近的研究表明,当具有线性激活函数的神经网络在其隐藏层接近无限宽时,它们渐近收敛为内核机[1,2]。这就是Neural Tangent Kernel(NTK)[2]的思想。这种现象发生在所谓的“插值区域”,也称为“双下降曲线”[1]的后半部分。
高斯过程也是内核机,因为决定测试点的预测均值和方差的训练点的线性组合是由高斯过程的核函数决定的。
总结:在一定条件下[1,2],dnn可以被分析为所谓的“插值”的内核机,其核函数由观测点的核加权组合形成对观测点的预测。GPs本质上是内核机[11]。
目标函数的优化
虽然对GPs进行优化的二阶方法多种多样,如BFGS和L-BFGS,但也可以采用一阶方法对这些模型进行优化。与 DNN 一样,GP 也会努力最小化函数(通常是具有内核正则化项的负对数似然),就像神经网络努力最小化损失函数一样。
总结:DNN 和 GP 都通过一阶和二阶优化方法改进他们的模型。
两种方法的优缺点
这个列表并不绝对,但在决定神经网络和高斯过程时可以作为参考:
GP优势/DNN劣势:
- 通常比 DNN 需要更少的数据,因为它们需要调整的参数更少。但是,拥有更多数据,尤其是在固定域上密度不增加的情况下(称为固定域渐近 [1]),可以帮助显着提高性能。
- 只需要优化少量(超)参数。
- 对梯度爆炸和消失等现象具有健壮性(因为除非您使用的是 Deep GP,否则此框架内没有“层结构”)。
GP缺点/DNN优点:
- 运行时随着样本数量的增加而难以扩展。运行时复杂度为 O(n3),其中 n 是样本数。这是必须对大型协方差矩阵行矩阵求逆(或伪求逆)的结果。
- 相对于神经网络,自动学习较少,在核/协方差函数、均值函数和超参数先验分布的选择上需要做更多的设计考虑。这些参数会对 GP 能够学习的内容产生重大影响。
使用示例
以下建议不是绝对的,即这些建议的目的更多是为了应用我们上面学到的原则。
注意:虽然我对这两个模型类都有重要的实践和理论经验,但请不要将下面的这些建议视为绝对的 - 在某些情况下,使用其他模型类可能仍然是有利的。
数据集较小 → 推荐使用 GP:因为它们需要调整的超参数较少,而且由于数据集较小,额外的时间复杂度不会显着影响整体运行时性能。
数据集很大 → 推荐使用 DNN:,因为 GP 运行时随着示例数据集的数量而扩展性很差,并且 DNN 已被证明可以在给定足够大的数据集的情况下在各种机器学习任务上取得最先进的性能。
执行连续插值 → 推荐使用 GP:因为连续 GP 使用连续核函数测量距离,例如 RBF 核和 Matern 核 [11],从而允许以采用数据集中所有点的方式对现有点的新点进行线性加权。通过现有点的线性组合,仍然可以保留的插值细节。
执行离散插值 → 推荐使用 GP:因为离散GP 使用稀疏、离散的核函数(例如Grid Interpolation)测量距离。稀疏结构仍然允许通过考虑所有现有点来预测新点,并且计算效率更高。
在动态数据集上学习和预测 → 使用 DNN:由于 GP 是(几乎)直接方法,它们的预测机制主要由创建它们的数据集定义。因此,如果定义 GP 的数据集是动态的则需要重新拟合/添加新的数据点,这将涉及重新计算协方差矩阵的逆,这是一项代价高昂的操作。相反,DNN 可以轻松适应新数据点,因为它们是逆向模型,并且预测仅由训练这些模型的数据间接决定。
其他情况→看情况决定:当然还有其他情况没有被上述建议解决。为了解决这些情况,请考虑分析上面讨论的相似性/差异性,以确定两个模型类中的哪一个会表现更好。
总结
我们已经讨论了理论的相似/不同,优点/缺点,以及高斯过程(GPs)和深度神经网络(DNNs)的应用。我们发现:
- GPs(几乎)是非参数的,而dnn是过度参数化的。
- GPs是(近似)正向方法,而dnn是逆向方法。
- GPs一般采用二阶方法进行优化,而dnn一般采用一阶方法进行优化。
- GPs的结构使得这些模型具有很强的可解释性。尽管dnn长期以来一直被批评为“黑盒子”,但今天的研究正在帮助这些模型变得更加可解释。
- GPs本质上是内核机。在一定条件下,dnn也可以作为内核机进行分析。
- dnn和GPs都通过一阶和二阶优化方法对模型进行改进。
- GPs通常需要比dnn更少的数据,只需要优化少量(超)参数,并且对诸如爆炸和消失梯度等现象都很健壮。
- 相对于dnn, GP运行时的可伸缩性较差,且相对于神经网络,具有较少的自动学习能力。
- 如果:(i)数据集较小,或(ii)执行插值→使用GPs。
- 如果:(i)数据集较大,或(ii)数据集是动态的,则使用dnn。
引用
[1] Belkin, Mikhail. “Fit without fear: remarkable mathematical phenomena of deep learning through the prism of interpolation.” arXiv preprint arXiv:2105.14368 (2021).
[2] Jacot, Arthur, Franck Gabriel, and Clément Hongler. “Neural tangent kernel: Convergence and generalization in neural networks.” arXiv preprint arXiv:1806.07572 (2018).
[3] Damianou, Andreas, and Neil D. Lawrence. “Deep gaussian processes.” Artificial intelligence and statistics. PMLR, 2013.
[4] Blomqvist, Kenneth, Samuel Kaski, and Markus Heinonen. “Deep convolutional Gaussian processes.” arXiv preprint arXiv:1810.03052 (2018).
[5] Liu, D.C., Nocedal, J. On the limited memory BFGS method for large scale optimization. Mathematical Programming 45, 503–528 (1989). https://doi.org/10.1007/BF01589116
[6] Roberts, Daniel A., Sho Yaida, and Boris Hanin. “The Principles of Deep Learning Theory.” arXiv preprint arXiv:2106.10165 (2021).
[7] Top-Down vs. Bottom-Up Approaches to Data Science, https://blog.dataiku.com/top-down-vs.-bottom-up-approaches-to-data-science.
[8] Herbert Robbins and Sutton Monro A Stochastic Approximation Method The Annals of Mathematical Statistics, Vol. 22, №3. (Sep., 1951), pp. 400–407, DOI: 10.1214/aoms/1177729586.
[9] Amini, Alexander, Wilko Schwarting, Ava Soleimany, and Daniela Rus. “Deep evidential regression.” arXiv preprint arXiv:1910.02600 (2019).
[10] Park, Sangdon, et al. “PAC Confidence Predictions for Deep Neural Network Classifiers.” arXiv preprint arXiv:2011.00716 (2020).
[11] Rasmussen, Carl Edward. “Gaussian processes in machine learning.” Summer school on machine learning. Springer, Berlin, Heidelberg, 2003.
[12] Selvaraju, Ramprasaath R., et al. “Grad-cam: Visual explanations from deep networks via gradient-based localization.” Proceedings of the IEEE international conference on computer vision. 2017.
作者:Ryan Sander
|