逻辑回归属于深度学习算法吗:天生一对 硬核微分方程与深度学习的
逻辑回归属于深度学习算法吗:天生一对 硬核微分方程与深度学习的神经化的微分方程最后,董彬老师还根据数值微分方程提出了一种新的结构:Linear Multi-step Architecture。他表明加上这种结构,残差网络只需要一半的参数量就能达到相同的训练效果,这表示新结构使卷积网络的训练更高效与稳定,希望了解的读者可查阅董老师的原论文。FractalNet 与 RevNet 也都有对应的微分方程「解法」,研究者发现 FractalNet 的宏观架构能解释为数值分析中著名的 Runge-Kutta 方法。例如对于复合次数小于等于 2 的 FractalNet,每一个模块都可以表示为:其中 f_1 和 f_2 分别表示不同的 Fractal,如果我们看看二阶的 Runge-Kutta 方法,我们就会发现他们的表达式非常相似:另外的 RevNet 也是一样,因为它是一种可逆的深度网络,所以它有从 X 到 Y 和 Y 到 X 的过程。如果它们分别对应着前向
不过本身反向欧拉要求解一个非常巨大的非线性方程组的逆,这样无法求解就只能用多项式去逼近解。也就是说,上式的求逆又可以写为:
因此,PolyNet 可以视为采用反向欧拉策略解常微分方程 u_t = f(u) 的逼近方法。如果这样理解,那么它暗示着允许更大的时间步大小,因此这表示我们可以采用更少的残差模块就能构建更好的效果。这正好解释了,为什么 PolyNet 能增加残差模块宽度而降低层级深度,从而实现更好的分类准确度。
此外,从微分方程的角度来说,反向欧拉法要比正向欧拉法有更好的稳定性。这也能从侧面说明为什么在相近参数和计算量下,PolyNet 能实现更好的效果。
FractalNet 与 RevNet
FractalNet 与 RevNet 也都有对应的微分方程「解法」,研究者发现 FractalNet 的宏观架构能解释为数值分析中著名的 Runge-Kutta 方法。例如对于复合次数小于等于 2 的 FractalNet,每一个模块都可以表示为:
其中 f_1 和 f_2 分别表示不同的 Fractal,如果我们看看二阶的 Runge-Kutta 方法,我们就会发现他们的表达式非常相似:
另外的 RevNet 也是一样,因为它是一种可逆的深度网络,所以它有从 X 到 Y 和 Y 到 X 的过程。如果它们分别对应着前向欧拉方法,那么就表示两条简单的动态系统就能描述整个神经网络。此外值得注意的是,虽然深度学习中很少有可逆的双向网络,但是在微分方程中,动态系统的正反向都是可行的。
最后,董彬老师还根据数值微分方程提出了一种新的结构:Linear Multi-step Architecture。他表明加上这种结构,残差网络只需要一半的参数量就能达到相同的训练效果,这表示新结构使卷积网络的训练更高效与稳定,希望了解的读者可查阅董老师的原论文。
神经化的微分方程
微分方程除了为深度网络提供理论解释,并启发架构创新,它还能做一些更炫酷的工作吗?多伦多大学陈天琦等研究者表示,既然残差连接就是常微分方程(ODE)的离散化,那么常规神经网络的前向传播过程岂不就是微分方程给定初值解末值的过程?如果我们用业界成熟的微分方程求解器(ODESolve)解某个 ODE,这不就能代替前传和反传么?
在他们的研究 ODENet 中,研究者使用神经网络参数化隐藏状态的导数,而不是如往常那样直接参数化隐藏状态。这里参数化隐藏状态的导数就类似构建了连续性的层级与参数,而不再是离散的层级。因此参数也是一个连续的空间,我们不需要再分层传播梯度与更新参数。
简而言之,ODENet 中的神经网络建模可以表示为下式:
其中 f 表示的是神经网络,h 表示的是隐藏状态。相比而言,常规卷积网络可表示为 h(t 1) = f(h(t) θ)。
如果参数化的是隐藏状态的变化,神经微分方程在前向传播过程中不储存任何中间结果,因此它只需要近似常数级的内存成本。
- 论文:Neural Ordinary Differential Equations
- 论文地址:https://arxiv.org/abs/1806.07366
- 实现地址:https://github.com/rtqichen/torchdiffeq
新颖的前传与反传
其实 ResNet 只不过是简单的欧拉离散化,而近百年来,数学家构建了很多现代 ODE 求解方法。这些新方法不仅能保证收敛到真实解,同时还能控制误差水平。
ODENet 就采用了一种适应性 ODESolver 代替前向传播过程,它不像欧拉法移动固定的步长,相反它会根据给定的误差容忍度选择适当的步长逼近真实解。
如下图所示,左边的残差网络定义有限转换的离散序列,它从 0 到 1 再到 5 是离散的层级数,且在每一层通过激活函数做一次非线性转换。此外,黑色的评估位置可以视为神经元,它会对输入做一次转换以修正传递的值。而右侧的 ODE 网络定义了一个向量场,隐藏状态会有一个连续的转换,黑色的评估点也会根据误差容忍度自动调整。