Mehrdad Yazdan作者路 思源编译

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

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

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

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

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

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

论文: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 数据集上的学习曲线

理论梯度反向传播NIPS 2018NIPS
5
相关数据
激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

Dropout技术

神经网络训练中防止过拟合的一种技术

多层感知机技术

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

学习曲线技术

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

导数技术

导数(Derivative)是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x_0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x_0) 或 df(x_0)/dx。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

反向传播算法技术

反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法计算对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。 在神经网络上执行梯度下降法的主要算法。该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~