彻底解决梯度爆炸问题新方法不用反向传播也能训练ResNet

放大字体  缩小字体 2019-08-16 14:09:02  阅读:5401 作者:责任编辑。陈微竹0371

机器之心报导

参加:思、一鸣

反向传达是深度学习算法中必不可少的组成部分,可是其固有的梯度爆破(消失),核算速度慢等问题一向困扰着学界。近来,新西兰维多利亚惠灵顿大学的研讨者提出了一种新式的算法,能够让深度学习在不依靠反向传达的情况下进行收敛,彻底处理了梯度爆破问题。一起,研讨者标明,只需求额定练习单层的网络就能够到达图画分类中的 SOTA 功能。

论文地址:https://arxiv.org/pdf/1908.01580v1.pdf

并行核算各层梯度并更新参数

处理梯度消失/爆破问题

下降内存占用

这便是替代反向传达的 HSIC Bottleneck,反向传达传递的梯度它也能核算,反向传达带来的各种缺点它也能补偿。

在这篇论文中,研讨者介绍了用于练习深度神经网络的希尔伯特·施密特独立原则(Hilbert-Schmidt independence criterion,HSIC)Bottleneck,用它来替代反向传达简直十分美好了。

研讨者标明,HSIC-Bottleneck 的体现在 MNIST/FashionMNIST/CIFAR10 分类中的体现与具有穿插熵方针函数的反向传达算法适当。且只需求在练习好的、已冻住参数 HSIC-Bottleneck 网络上再添加一个依据 SGD 且没有反向传达一层网络能够完结图画分类的 SOTA 功能。

规范反向传达的可视化。

广受赞誉的 HSIC-Bottleneck

虽然许多研讨者都知道咱们应该找一种比反向传达更优异的办法,但反向传达运用太广了,也十分直观美丽。因而,很难有研讨者提出真实能 Work,且还十分有优势的 BP 替代品。在这篇论文放到 Reddit 后,许多研讨者都十分附和这项作业,并标明这个范畴十分值得重视。

DontShowYourBack 标明:「这篇论文的附加值并不在于它是否到达了 SOTA 成果,在我看来,作者设法运用了一种既不杂乱、又不需求对称反应的机制,并取得了很好的作用,这才是真实重要的要素。理论上,它能运用于更低核算力的渠道和更共同的架构,由于这些是将反向传达运用到当时硬件和架构上最大的应战。」

该用户标明,他将亲身研讨这种办法,并希望能快速看到一些风趣的成果。

HSIC Bottleneck 的作者标明,反向传达核算梯度的杂乱度为 O(D^3),其间 D 标明不同层级的神经元数量。因而整个神经网络的反传杂乱度为 O(LD^3),其间 L 标明层级数。可是关于 HSIC 来说,它的核算杂乱度为 O(M^2),其间 M 标明样本数量,这样整个网络的核算杂乱度为 O(LM^2)。

值得注意的是,现在深度模型都是过参数化的,也便是说参数量要远远多于数据量,这样核算量不就大大下降了吗?

因而有用户标明:「HSIC 最重要的部分便是将杂乱度由反向传达的 O(D^3) 下降到 O(M^2),这关于具有数百万或数十亿参数量的神经网络来说极其重要。」

HSIC 还有许多遭到重视的特点,现在机器学习社区也都在评论它。

探究 BP 替代品的这条不归路

已然神经网络能够视为一个杂乱的复合函数,且复合的次数就等于层级数,那么将复合函数的求导规律「链式规律」作为导数的获取办法就十分直观了。但最直观的办法并不一定是最优的办法,反向传达经常会由于各种缺点影响着一批批研讨者探究新的办法。

虽然反向传达十分有用、美丽,但它的速度、内存占用、梯度消失/爆破问题都困惑着一代代研讨者。由于前面层级的梯度有必要等后边层级的梯度算完,BP 的速度比较慢;由于 BP 需求保存前向传达的激活值,所以显存占用比较高;由于链式传达的连乘办法,梯度十分简略爆破或消失。

这些都是急需处理的问题,连提出 BP 的 Geoffrey Hinton 都对它充满了质疑,在 17 年的 CapsNet 中,Hinton 老爷子测验经过 Dynamic Routing 找到更好的解,并且这种迭代并不需求反向传达。Hinton 很早就意识到反向传达并不是自然界生物大脑中存在的机制,也希望找到更好的反应机制。

规范前传与反传的核算流程,其间紫色点标明核算成果需求保存在内存中。

针对传达速度,DeepMind 之前曾提出了一种名为解耦层的办法,它选用组成梯度近似经 BP 传达的梯度,然后使前面层级与后边层级一起更新。而针对内存占用,OpenAI 也曾测验做一个算力与内存间的权衡,他会以某种办法重算部分前传成果,然后下降内存占用。

但只需反传仍是链式规律,梯度消失和爆破就不会真实得到处理。在这篇最新的论文中,研讨者标明,假如咱们直接最大会躲藏层与标示间的互信息,最小化躲藏层与输入的彼此依靠性,咱们咱们就能直接取得对应的梯度,这种梯度是不需求反向传达进行分配额的。因而模型在不要那么多内存下快速更新权重参数,一起这样也不会呈现梯度爆破或消失问题。

HSIC Bottleneck 究竟是什么

在论文中,研讨人员阐明,即便没有反向传达,模型仍然能够学习分类使命,并取得适当有竞争力的准确率。他们因而提出了一种深度学习网络练习办法。

这一办法由运用近似信息瓶颈的办法练习而来。只需最大化隐层标明和标签之间的互信息,并在一起最小化隐层标明和输入的相互依靠联系即可。从信息瓶颈的视点来说,为了削减模型依靠的参数量,所以要尽或许的让隐层标明削减从输入数据中取得的信息量,而要尽或许让隐层最大化地「榨干」学习到的隐层标明,输出正确的标签猜测成果。因而这一进程能够在尽或许削减数据依靠的情况下取得能够猜测成果的信息。

由于核算互信息在随机变量中较为困难,研讨人员挑选了依据非参数核的办法——希尔伯特·施密特独立原则(HSIC),用来描写不同层之间的统计学依靠。换句话说,关于每个网络层,研讨人员都会一起最大化层和希望输入之间的 HSIC,并最小化层和输入之间的 HSIC。

研讨人员进一步证明,依照这样的练习办法,网络中的隐层单元能够组成很有用的标明。具体来说,冻住练习好的 HSIC 网络,在不需求反向传达的情况下,仅更新和练习一层单层的、运用了卷积 SGD 的网络就能够到达很近似最佳准确率作用的模型

运用 HSIC-Bottleneck 的优势在于,比较规范的反向传达算法,网络能够快速收敛。这是由于 HSIC-Bottleneck 直接在接连随机变量进步行运算,比较依据丢掉的传统信息瓶颈办法更好。这一办法运用了一个传统的弱练习网络用于将标明转换为输出标签的办法。在实践中,研讨人员运用了一个网络,包括许多层和多种维度(假如是全衔接层),或许不同数量的核(假如是卷积层)作为开端。

什么是希尔伯特·施密特独立原则

说起希尔伯特·施密特独立原则,咱们需求先谈谈信息瓶颈的问题。信息瓶颈描绘的是最小需求多少数据能够充沛猜测成果的理论,这是一个隐层标明上的权衡问题,即能够猜测输出所需的信息量和输入中应当保存多少信息之间的权衡。信息瓶颈原则决议了需求保存多少关于标签的隐层标明信息,而需求紧缩多少输入中的信息。

依据信息瓶颈,咱们就能够知道,在练习机器学习模型时,需求对至少多少的输入信息进行保存,以便隐层标明能够猜测出和标签相符成果的数据量。

而要核算这个保存的信息量是十分困难的。此外,传统的信息瓶颈理论大部分依据丢掉信息的办法,因而作者挑选了依据希尔伯特·施密特独立原则的信息瓶颈办法,用于取得机器学习进程中的梯度。

那么,什么是希尔伯特·施密特独立原则呢?理论上,希尔伯特·施密特独立原则能够发现变量之间的恣意依靠。当给定正确的核巨细(如高斯核)的时分,HSIC 当且仅当两个随机变量彻底独立时为 0。因而,只需是两个变量之间具有非独立的联系,HSIC 就能够以非参数化的办法将其描写出来。

用 HSIC 练习的网络是什么样的

运用 HSIC-Bottleneck 方针练习深度学习的网络被称为 HSIC-Bottleneck 练习或预练习。Bottleneck 练习网络的输出包括分类的必要信息,但不是正确的办法。

研讨人员点评了两种从 HSIC 点评练习网络发生分类成果的办法。首要,假如输出是独热向量,则能够依据练习标签被直接重新排列。在第二个场景下,研讨人员将一个单层和 softmax 输出层衔接到了冻住的 Bottleneck 练习网络后,并运用没有反向传达的 SGD 办法练习这个额定添加的层。这一过程被称为后练习(post-training)。

图 1:HSIC 练习的网络(1a)。这是一个规范的前向传达网络,可是运用了 HSIC IB 方针函数,这样能够使最终一层的隐层标明快速地开端练习。图 1b 则展现了一个名为「σ-组合」的网络,每个网络分支都有一个特定的σ进行练习。因而,关于从 HSIC 网络中练习的每个隐层标明都或许包括在特定规范下从 HSIC-Bottleneck 方针函数中取得的不同信息。之后,聚合器会将隐层标明相加,组成一个输出标明。

研讨人员展现的 HSIC 练习网络是如下的一个前向输入网络。

在网路中,Z = , i ∈ ,L 则是隐层的数量。HSIC 练习网络能够被理解为是优化的编码 PθT (Zi |X) 层和 PθT (Y |Zi) where i ∈ 解码层。这个网络供给了包括用于分类使命信息的隐层。

HSIC-trained 神经网络作用怎么样

首要,研讨者制作了 HSIC-bottleneck 值与激活值的散布,它们都是在练习中从简略的模型采样得出。其次,研讨者还供给了 HSIC-bottleneck 和规范反向传达之间的比照,它们都在相同数据集上运用相同参数量的前馈网络测验得出。

在比照试验中,研讨者在 MNIST/Fashion MNIST/CIFAR-10 数据集上练习前馈网络,并剖析了 HSIC-bottleneck 在处理经典分类使命上的体现。其间,前馈网络还包括十分闻名的 ResNet。在研讨者完结的一切试验中,都包括了规范反向传达、预练习和后练习阶段,后练习阶段运用的都是 SGD 最优化器。

HSIC-bottleneck 的值长什么样

图 2 展现了 HSIC-bottleneck 的值在练习深度网络时的改变。

图 2:这些试验展现了,在传统反向传达练习进程中,跟着网络激活函数 (2a)-(2c) 和深度 (2d)-(2f) 的改变,HSIC-bottleneck 数量 HSIC(X, ZL) 和 HSIC(Y, ZL) 的改变,以及练习准确率的改变。

图 3a 和 3b 可视化了前馈网络中最终一个躲藏层每一个类别的激活值。

图 3:最优一层 tanh 激活函数值的散布,其神经网络各层的躲藏单元数为:784-64-32-16-8-4-2-1,它经过 HSIC-bottleneck 方针 (3a) 和反向传达 (3b) 练习。

图 4:MNIST 输出类别的散布,每一张子图都展现了类别及对应的分类准确率。

HSIC-bottleneck 作用怎么样

图 5 展现了反向传达和论文提出的 HSIC 点评练习办法。在第一个练习轮中,论文提出的办法的体现就超过了规范的机器学习练习办法,分别在 Cifar 10,FashionMNIST 和 MNIST 上取得了 43%、85% 和 95% 的作用。在练习完毕后,HSIC-Bottleneck 练习的网络体现和其他规范反向传达算法简直共同。

图 5:论文提出的 HSIC 点评练习办法在规范的分类问题上的体现。试验运用了相同的练习装备,可是批巨细不同。传统反向传达运用了 32 和 256 的批巨细,但 HSIC 算法只运用了 256 的批巨细。

在图 8 中,研讨人员展现了一个有着 5 个卷积残差块的 HSIC 练习的网络在不同数据集上的体现。每个试验都包括了 50 个 HSIC 练习轮,之后每个网络都会进行后练习——用一个单层分类网络进行,这和规范反向传达练习网络不同。

图 8:在不同数据集上 ResNet 后练习的作用。

相关链接:https://arxiv.org/abs/1908.01580v1

https:///r/MachineLearning/comments/cql2yr/deep_learning_without_backpropagation/

WAIC 2019 开发者日将于 8 月 31 日在上海世博中心举行,包括 1 个主单元、4 个分单元、黑客马拉松比赛和开发者诊所互动区。

到时,全球顶尖 AI 专家、技能大牛、知名企业代表以及数千名开发者将齐聚上海,环绕人工智能前沿理论技能和开发实践进行共享与解读。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!