逻辑回归属于深度学习算法吗:天生一对 硬核微分方程与深度学习的
逻辑回归属于深度学习算法吗:天生一对 硬核微分方程与深度学习的微分方程也能搭生成模型ODENet 采用了一种非常新颖的前向与反向传播过程,它和常规的神经网络训练完全不一样。它的优势也体现在这种差异上,因为反向传播不需要保留前传的中间计算结果,所以只需要常数级的内存要求。def f(h t θ): return nnet([h t] θ) def ODEnet(h θ): return ODESolver(f h t_0 t_1 θ) 所以不同之处在于 ODESlover 代替了整个前传过程,这样岂不是无法进行反向传播了?为了「绕过」前向传播中的 ODESolver,陈天琦等研究者采用了一种名为 adjoint method 的梯度计算方法。也就是说,模型在反传中通过第二个增广 ODESolver 算出梯度,其可以逼近按计算路径从前向 ODESolver 传递回的梯度,因此可用于进一步的参数更新。总之,通过一系列推导,反向传播在不
图源:arXiv: 1806.07366
所以 ResNet 采用的是固定的步长 1,适应性 ODESolver 可以自动估计不同的步长,它的自由度和误差控制都更强一些。
对于新颖的前向传播,我们可以通过两段伪代码了解它与常规方法的不同之处。如下是 ResNet 的简要伪代码,定义 f 为卷积层、T 为残差块的数量:
def f(h t θ): return nnet(h θ_t) def resnet(h): for t in [1:T]: h = h f(h t θ) return h
如下展示的是整个 ODEnet 的伪代码,f 表示的也是神经网络层级。不过它不需要层层堆叠离散的层级,只要通过 ODESolver 求出终止时刻 t_1 的 h 就行了,整个 ODESolver 就是一个黑箱过程。
def f(h t θ): return nnet([h t] θ) def ODEnet(h θ): return ODESolver(f h t_0 t_1 θ)
所以不同之处在于 ODESlover 代替了整个前传过程,这样岂不是无法进行反向传播了?为了「绕过」前向传播中的 ODESolver,陈天琦等研究者采用了一种名为 adjoint method 的梯度计算方法。也就是说,模型在反传中通过第二个增广 ODESolver 算出梯度,其可以逼近按计算路径从前向 ODESolver 传递回的梯度,因此可用于进一步的参数更新。
总之,通过一系列推导,反向传播在不知道中间激活值的情况下,直接求一个微分方程就行了。我们并不需要一层层反向传递梯度,就能直接获得更新参数的梯度。ODENet 的反向传播过程如下伪代码所示:
def f_and_a([z a] t): return[f -a*df/da -a*df/dθ] [z0 dL/dx dL/dθ] = ODESolver([z(t1) dL/dz(t) 0] f_and_a t1 t0)
其中 f_and_a 为增广状态的动力学过程,用于求解微分方程。ODESlover 求出来的 dL/dθ 就可以直接用来更新神经网络的权重。
ODENet 采用了一种非常新颖的前向与反向传播过程,它和常规的神经网络训练完全不一样。它的优势也体现在这种差异上,因为反向传播不需要保留前传的中间计算结果,所以只需要常数级的内存要求。
微分方程也能搭生成模型
在 ODENet 中,研究者也展示了将微分方程应用到生成模型的前景。因此在 ICLR 2019 中,陈天琦等研究者进一步研究了微分方程如何用于流模型。
- 论文:FFJORD: Free-form Continuous Dynamics for Scalable Reversible Generative Models
- 论文地址:https://arxiv.org/abs/1810.01367
目前,最流行的生成模型 GAN 通过生成器与判别器的博弈,从而逼近真实数据的概率密度函数 p(x)。但流模型希望通过一系列可逆转换,明确地学习到数据分布 p(x)。因此,流模型会通过可逆神经网络将数据点从一个简单分布映射到复杂分布。
但基于似然度训练常规流模型需要限制它们的架构,从而使雅可比行列式的计算成本足够小。例如流模型 Real NVP 或 Glow 等,它们对矩阵维度进行分割或使用秩为 1 的权重矩阵进行限制。
ODENet 使用常微分方程定义了一种从隐变量到数据的映射,它可以使用相对低成本的迹运算计算雅可比行列式。后面提出的 FFJORD 进一步发扬了这种观点,它将迹估计和前向传播都定义为了常微分方程,并使用 ODESolver 直接求解。直观而言,FFJORD 的抽象过程可如下图所示:
图源:arXiv: 1810.01367
如上图所示,对于微分方程而言,我们知道初始的随机分布 z(t_0),并系统通过 ODESolver 解出真实图像分布 z(t_1)。如果知道了 z(t_1),那么从中采样就能生成真实图像。
最后,这些方向与成果都表明,微分方程真的可以和深度神经网络相结合。也许以后,微分方程乃至其它数理基础,都能帮助我们构建更鲁棒和可解释性的机器学习系统。