BP不用算梯度,这样的线性反向传播也能Work!

向传播是常用的学习算法,但它存在一些缺陷,如过于敏感、依赖大量条件和约束。来自加州大学圣地亚哥分校的研究科学家 Mehrdad Yazdani 对误差项的线性反向传播进行研究,该方法在前向传播中使用非线性激活函数,但是在反向传播中使用线性激活函数,因此它可以确保梯度流的正常传递,同时节约计算成本。

 

反向传播算法 (Backprop)是很多机器学习算法中主要使用的学习算法。但是在实践中, 深度神经网络 中的反向传播是一种非常敏感的学习算法,它的成功取决于大量条件和约束。约束的目的是避免产生饱和的激活值,这幺做的动机是 梯度消失 会导致学习过程中断。特定的权重初始化和尺度变换 方案(如 批归一化 )可确保神经元的输入激活值是线性的,这样梯度不会消失,能够流动。

 

本论文仅研究误差项的线性反向传播,即忽略非线性梯度流带来的单元饱和。本文将这一学习规则称为线性反向传播(Linear Backprop)。因为不用计算梯度,除了确保持续的梯度流以外,Linear Backprop 在计算成本高昂的情况下仍然可以使用。该研究的早期结果表明,使用 Linear Backprop 进行学习与使用 Backprop 不相上下,且能够节约梯度计算的成本。

 

这篇 Linear Backprop 接受为 NIPS/NeurIPS 2018 关于紧凑神经网络的 Workshop 论文,该研讨会关注构建紧凑和高效的神经网络表征。具体而言,其主要会讨论剪枝、量化和低秩近似等神经网络压缩方法;神经网络表示和转换格式;及使用 DNN 压缩视频和媒体的方式。

 

该 Workshop 的最佳论文是机器之心曾介绍过的 Rethinking the Value of NetworkPruning ,这篇论文重新思考了神经网络过参数化的作用,该论文表示剪枝算法的价值可能在于识别高效结构、执行隐性的架构搜索,而不是在过参数化中选择「重要的」权重。Hinton 等研究者也在 Workshop 论文中提出一种 神似剪枝的TargetDropout ,它类似于将剪枝嵌入到了学习过程中,因此训练后再做剪枝会有很好性质。

 

Workshop 地址: https://nips.cc/Conferences/2018/Schedule?showEvent=10941

 

论文:Linear Backprop in non-linear networks

 

 

论文地址: https://openreview.net/pdf?id=ByfPDyrYim

 

长期以来,人们认为具备非多项式和非线性单元的 深度神经网络 是万能函数逼近器。但是,在神经网络研究的早期阶段,并不清楚学习算法能从权重的最优集合中发现什幺。Frank Rosenblatt 的开拓性研究本质上仅学习了多层感知器输出层的权重,且随机保持输入层权重不变,而 Fukushima 使用赫布型学习(Hebbian learning)。反向传播一经引入神经网络研究即获得了巨大成功,目前仍是最常用的学习算法。

 

尽管那幺成功,反向传播是一种高度敏感的学习算法,在实践中要想使之发挥作用还需要大量技巧。反向传播的问题在于:容易饱和的激活函数、合适的学习率、批大小、epoch 数量等。研究人员付出了很多努力来避免神经元或单元的饱和。饱和单元的主要问题是梯度消失,进而导致学习中断。因此,研究人员进行了大量尝试来确保神经元的输入激活值是线性的,包括引入正则化方法(如 L2 惩罚项)、批归一化和权重初始化。还有一些解决方案从激活函数入手,限制饱和区域来确保梯度流。Gulcehre 等人的研究《Noisy activation functions》对具备非饱和区域的激活函数进行了大量探索,因为这些非饱和区域能提供梯度。

 

梯度流是学习的必要因素,因此本论文主要研究学习算法都是在确保更优的线性梯度流。线性反向传播算法(见 Algorithm 2)可以确保所有区域的梯度流都能正常传递,因此可用作替代学习算法。与反向传播(见 Algorithm 1)相比,线性反向传播中的前向传播过程是相同的。该网络架构具备非线性激活函数,因此仍然是高度非线性的,但我们在计算损失函数时只考虑线性反向传播误差。由于在线性反向传播中,激活函数的导数不用计算(Algorithm 2 中红色字),因此线性反向传播与反向传播相比节约了计算量 O(ml)。

 

换一种方式思考本论文提出的学习规则:研究者引入了一个正则化项,使计算梯度时仅计算线性梯度,不考虑非线性组件。也就是说,在推断阶段使用深度非线性网络,但训练阶段中损失函数本质上被裁剪成一个深度线性神经网络。前向传播的计算和反向传播无异,但反向传播仅使用线性反馈项。

 

近期多项研究出于生物可解性考虑反向传播的变体。[Lillicrap et al., 2016] 展示了使用随机权重的学习过程是可行的。[Baldi and Sadowski, 2016] 考虑了很多赫布型学习算法和误差反向传播学习算法。线性反向传播与 Bengio 等人 2013 年提出的 Straight Through Estimator 有一些相似处,但前者提出对任意激活函数应用估计器。

 

如前所述,线性反向传播不计算梯度,因此节约了很多计算成本。线性反向传播学习算法支持计算资源有限的情况。实验结果表明在特定条件下,线性反向传播的性能与反向传播相当。

 

如下图红色所示,线性反向传播算法在传递损失函数的梯度时,因为是线性函数,所以不需要另外再求梯度。

 

 

1.1 合成数据示例

 

 

图 1:(左)相同的 MLP 架构使用反向传播和线性反向传播时在 5 个样本上的过拟合情况。(中)MLP 使用 50 种不同的权重随机初始化在相同的 5 个点上预测和目标之间的 MSE。(右)使用 sigmoid激活函数进行训练后,单元激活值的直方图。

 

1.2 在 CIFAR-10 上的VGG和 ResNet 二值神经网络

 

 

图 2:VGG19 在 CIFAR-10 数据集上的学习曲线。

发表评论

电子邮件地址不会被公开。 必填项已用*标注