对神经正切核的理解和推导(1)
声明:
本文是对Neural Tangent Kernel (NTK)基础推导 - Gearlesskai - 博客园文章内容的理解与推导,里面很多东西对我这种新手来说不太好理解,所以我力求通过这种方式理解文章的大部分内容。希望我的理解可以帮助你更好的进行学习。 其他颜色的字是我写的,黑色的是原文。
神经网络的疑云
神经网络在提出初期存在许多质疑,包括但不限于如下内容
-
Non-convexity(非凹凸性)
神经网络不是凸函数,会存在许多局部极小值,梯度下降最终得到的结果与真正的极小值点是否有较大差别?
-
Initialization
从不同初始化下进行梯度下降,最终结果是否会有较大偏差呢?
-
Interpretability
神经网络如何被描述?众多神经元和参数有哪些内在联系?
-
Generalization
神经网络参数很多,理论上很容易过拟合,但是在测试集上的表现还不错,表现出较好的泛化性能,如何解释呢?
譬如,对第四点,机器学习的传统观点认为,在训练误差和泛化差距之间要进行谨慎的权衡。模型的复杂性存在一个“最佳点”。因此如果模型足够大,就可以实现合理良好的训练误差;而模型足够小,才可以降低泛化差距(测试误差和训练误差之间的差)。较小的模型会产生较大的训练误差,而使模型变大则会导致较大的泛化差距,两者都会导致较大的测试误差。测试误差随模型复杂度的变化可以经典U形曲线来描述(如下图a,图片来自文献Reconciling modern machine learning practice and the bias-variance trade-off
)
从这两张图可以很好的看出 传统的机器学习认为 对小模型 有大的训练误差 但是有小的泛化差距
对大的模型 有小的训练误差 大的泛化差距 以上情况 都导致大的测试误差 如图a 模型复杂度存在一个最优点
在此点之后 训练集误差降低 但测试集效果下降
但是,如今很常见的是使用高度复杂的过参数化模型,例如深度神经网络。通常对这些模型进行训练,以在训练数据上实现接近零的误差,但是它们仍然在测试数据上具有出色的性能。上图的作者Belkin等人通过“双重下降”曲线对这一现象进行了描述,该曲线扩展了经典的U形曲线(如上图b),并对此进行了理论解释。可以观察到,随着模型复杂度增加到可以完全拟合训练数据的程度(即达到插值制度),测试误差继续下降!有趣的是,最好的测试效果通常是通过最大的模型实现的,这与关于“最佳点”的经典直觉背道而驰。
随着模型的复杂度进一步增加 上述情况将消失 即大力出奇迹 最终 训练集和测试集效果都会变好
因此,有人怀疑深度学习中使用的训练算法((随机)梯度下降及其变体)以某种方式隐含地限制了训练网络的复杂性(即参数的“真实数量”),从而导致了较小的概括差距。
更直接点,举个例子,比如单目标分类,有时候数据还没有网络参数多,相当于一个有很多未知量的式子,但是限制它的方程数量却很少,那么这样一个自由度很高但约束很少的式子,怎么能符合我们对其专一且严格的要求呢?
为什么有时候数据那么少 参数那么多 那这些参数怎么确定呢 这就相当于解方程 解一个二元一次方程 至少需要两个方程才能确定唯一的解
这里的合理假设是 是不是在训练的时候 什么方法限制了网络的真实参数量 概括误差也叫泛化误差
NTK的提出
NTK是一种较成功的解释以上质疑的技术性理论,它有两个假设:
- 需要一种特殊的初始化技巧(Kaiming Initialization)
- 网络足够宽(或者说,无限宽)
第二条假设某种意义上对应人们之前对深度神经网络泛化性能和参数量的怀疑(与上文的对应),而第一条假设是一个先决条件,即,在我们训练过程中,网络中不应该出现梯度的爆炸或者消失,而是保持均匀(为什么不应该爆炸或者消失,这里我们保持思考)
并且,顾名思义,神经正切核Neural Tangent Kernel是一种核方法,1994年Priors for Infinite Networks
就已经提出了无限宽的神经网络和核方法之间的联系。近几年内,NTK相关的基础理论文章得到了几个惊人的结论,比如整个训练过程中网络存在一个不变量,不依赖于网络参数,这个不变量就是NTK,神经正切核(NTK开山之作,Neural Tangent Kernel: Convergence and Generalization in Neural Networks
)(不依赖网络参数的不变量---NTK,暂时有个概念)
- 在无穷宽度条件下,宽神经网络由在初始参数处的一阶泰勒展开式线性模型主导。并且尽管上述结论是在无限宽模型下得到的,论文作者发现实验证明对于可操作的有限尺寸的神经网络,由神经网络得到的估计与线性模型得到的估计也是基本一致的。且这个一致性对于不同结构、不同优化方法、不同损失函数,都是成立的。特别地,在平方损失MSE下,该动态是一个关于时间的封闭解函数(
Wide Neural Networks of Any Depth Evolve as Linear Models Under Gradien Descent
)
为什么要无限宽模型?
无限宽模型(这一层网络参数无穷) 可以让某些性质趋于稳定或者呈现出规律性 进行更深层次理论分析 对于非线性干扰也可以忽略
一阶泰勒展开?
在此点的值 以及一阶导数 可以近似为一个线性模型 代表该点附近的值
在平方损失MSE下,该动态是一个关于时间的封闭解函数?
可以找到一个明确的 不依赖迭代过程的 数学表达式来描述模型训练的动态变化过程
3.梯度下降可以绕过局部最小值,从初始化快速找到全局最小值(Gradient Descent Finds Global Minima of Deep Neural Networks
)
局部最小值可能很接近全局最小 实际使用中影响不大
论文里说 只要网络足够宽 就可以通过梯度下降随机初始化 快速收敛到一个全局最小 即使是这种非凸性
为什么可以避开局部最优点?
参数多 但是训练数据小 参数空间的高维性使得存在大量相互连通的低损失区域,梯度下降可以在这些区域中平滑地移动,避开局部最小值。
对称性使得共享参数 等价解构了低损失区域
初始 类似线性模型 梯度下降 精确的描述为核梯度下降过程 可以达到全局最优
之后虽然非线性 但已经接近最优点
高维空间 鞍点更多
如何理解平坦的低损失区域?
平坦 代表变化不大 低损失代表拟合效果好
在高维空间中,存在大量的参数组合可以使得损失函数达到较低的值 这些参数 往往相互靠近
对称性也导致了这个区域形成
这些结论很好地解释了很多对于神经网络优化的质疑。接下来我们会依次介绍对应的条件(或者假设)下的推导和近似
推导 将在明天或后天更新