米兰·(milan)中国官方网站-打破「反向传播」垄断,「正向自动微分」也能计算梯度,且训练时间减少一半
作者:米兰·(milan)文化
更新时间:2026-04-07 08:38:46
点击数:
用反向流传(backpropagation)来计较优化方针函数的梯度,是当前呆板进修范畴的主流要领。近日,牛津与微软等机构的多位学者结合提出一种名为「正向梯度」(forward gradient)的主动微分模式,可以彻底丢弃反向流传举行梯度计较。试验证实,于一些问题中,正向梯度的计较时间是反向流传的二分之一。编译 | 张倩编纂 | 陈彩娴反向流传及基在梯度的优化是最近几年来呆板进修(ML)取患上庞大冲破的焦点技能。人们遍及认为,呆板进修之以是可以或许快速成长,是由于研究者们利用了第三方框架(如PyTorch、TensorFlow)来解析ML代码。这些框架不仅具备主动微分(AD)功效,还有为当地代码提供了基础的计较功效。而ML所依靠的这些软件框架都是缭绕 AD 的反向模式所构建的。这重要是由于于ML中,当输入的梯度为海量时,可以经由过程反向模式的单次评估举行切确有用的评估。主动微分算法分为正向模式及反向模式。但正向模式的特色是只需要对于一个函数举行一次正向评估(即没有效到任何反向流传),计较成本较着降低。为此,来自剑桥与微软等机构的研究者们摸索这类模式,展示了仅利用正向主动微分也能于一系列呆板进修框架上实现不变的梯度降落。
论文地址:https://arxiv.org/pdf/2202.08587v1.pdf他们认为,正向梯度有益在转变经典呆板进修练习管道的计较繁杂性,削减练习的时间及精神成本,影响呆板进修的硬件设计,甚至对于年夜脑中反向流传的生物学合理性孕育发生影响。1主动微分的两种模式起首,咱们来扼要回首一下主动微分的两种基本模式。正向模式
给定一个函数 f: θ∈R n,v∈R n,正向模式的AD管帐算 f(θ) 及雅可比向量乘积Jf (θ) v,此中Jf (θ) ∈R m×n是f于θ处评估的所有偏导数的雅可比矩阵,v是扰动向量。对于在 f : R n → R 的环境,于雅可比向量乘积对于应的标的目的导数用 ∇f(θ)- v暗示,即于θ处的梯度∇f对于标的目的向量v的映照,代表沿着该标的目的的变化率。值患上留意的是,正向模式于一次正向运行中同时评估了函数 f 和其雅可比向量乘积 Jf v。此外,得到 Jf v 不需要计较雅可比向量Jf,这一特色被称为无矩阵计较。反向模式
给定一个函数 f : R n → R m,数值 θ∈R n,v∈R m,AD反向模式管帐算f(θ)及雅可比向量乘积v |Jf (θ),此中Jf∈R m×n是f于θ处求值的所有偏导数的雅可比矩阵,v∈R m是一个毗邻的矢量。对于在f : R n → R及v = 1的环境,反向模式计较梯度,即f对于所有n个输入的偏导数∇f(θ)=h ∂f ∂θ1,. . . , ∂f ∂θn i| 。请留意,v |Jf 是于一次前向-后向评估中举行计较的,而不需要计较雅可比Jf 。运行时间成本两种AD模式的运行时间以运行正于微分的函数 f 所需时间的恒定倍数为界。反向模式的成本比正向模式高,由于它触及到数据流的反转,并且需要保留正向历程中所有操作成果的记载,由于于接下来的反向历程中需要这些记载来评估导数。内存及计较成本特性终极取决在AD体系实现的功效,如使用稀少性。成本可以经由过程假定基本操作的计较繁杂性来阐发,如存储、加法、乘法及非线性操作。将评估原始函数 f 所需的时间暗示设为 runtime(f),咱们可以将正向及反向模式所需的时间别离暗示为 Rf×runtime(f) 及 Rb×runtime(f)。于实践中,Rf 凡是于1到3之间,Rb凡是于5到10之间,不外这些成果都与步伐高度相干。2要领正向梯度界说1给定一个函数 f : R n → R,他们将「正向梯度」 g : R n → R n 界说为:
此中,θ∈R n 是评估梯度的要害点,v∈R n 是一个扰动向量,被视为一个多元随机变量v∼p(v),如许 v 的标量份量 vi 是自力的,对于所有 i 都有零均值及单元方差,∇f(θ)-v∈R 是 f 于于 v 标的目的上 θ 点的标的目的导数。扼要地谈一下这个界说的由来。如前所述,正向模式直接给咱们提供了标的目的导数∇f(θ) - v = P i ∂f ∂θi vi,无需计较∇f。将 f 正向评估 n 次,标的目的向量取为尺度基(独热码)向量ei∈R n,i=1 ... n,此中ei暗示于第i个坐标上为一、其他处所为0的向量,这时候,只用正向模式就能够计较∇f。如许就能够别离评估f对于每一个输入∂f ∂θi的敏感性,把所有成果归并后就能够获得梯度∇f。为了得到比反向流传更优的运行时间上风,咱们需要于每一个优化迭代中运行一次正向模式。于一次正向运行中,咱们可以将标的目的v理解为敏感度加权及中的权重向量,即P i ∂f ∂θi vi,只管这没措施区别每一个θi于终极总数中的孝敬。是以,咱们利用权重向量v将整体敏感度归因在每一个零丁的参数θi,与每一个参数θi的权重vi成正比(例如,权重小的参数于总敏感度中的孝敬小,权庞大的参数孝敬年夜)。总之,每一次评估正向梯度时,咱们只需做如下事情:对于一个随机扰动向量v∼p(v)举行采样,其巨细与f的第一个参数不异。经由过程AD正向模式运行f函数,于一次正向运行中同时评估f(θ)及∇f(θ)-v,于此历程中无需计较∇f。获得的标的目的导数(∇f(θ)-v)是一个标量,而且由AD切确计较(不是类似值)。将标量标的目的导数∇f(θ)-v与矢量v相乘,获得g(θ),即正向梯度。图 1 显示了 Beale函数的几个正向梯度的评估成果。咱们可以看到扰动vk(橙色)怎样于k∈[1,5]的环境下转化为正向梯度(∇f-vk)vk(蓝色),于遭到指向限定时偶然也会指向准确的梯度(红色)。绿色箭头暗示经由过程平均正向梯度来评估蒙特卡洛梯度,即1 K PK k=1(∇f - vk)vk≈E[(∇f - v)v]。
正向梯度降落他们构建了一个正向梯度降落(FGD)算法,用正向梯度g取代尺度梯度降落中的梯度∇f(算法1)。于实践中,他们利用小型随机版本,此中 ft 于每一次迭代中城市发生变化,由于它会被练习中利用的每一一小批数据影响。研究者留意到,算法 1 中的标的目的导数dt可以为正负数。假如为负数,正向梯度gt的标的目的会发生逆转,指向预猜中的真实梯度。图1显示的两个vk样本,证实了这类举动。于本文中,他们将规模限定于FGD上,纯真研究了这一基础算法,并将其与尺度反向流传举行比力,不思量动量或者自顺应进修率等其他各类滋扰因素。笔者认为,正向梯度算法是可以运用到其他基在梯度算法的优化算法系列中的。
3试验研究者于PyTorch中履行正向AD来举行试验。他们发明,正向梯度与反向流传这两种要领于内存上没有现实差异(每一个试验的差异都小在0.1%)。逻辑回归图 3 给出了多叉逻辑回归于MNIST数字分类上的频频运行成果。咱们不雅察到,比拟基本运行时间,正向梯度及反向流传的运行时间成天职别为 Rf=2.435 及 Rb=4.389,这与人们对于典型AD体系的预期相符。
Rf/Rb=0.555及Tf/Tb=0.553的比率注解,于运行时间及丧失机能方面,正向梯度约莫比反向流传快两倍。于简朴的模子中,这些比率是一致的,由于这两种技能于空间举动的迭代丧失上险些不异,这象征着运行时收益险些直接反应于每一个时间空间的丧失上。多层神经收集图4显示了用多层神经收集于差别进修率下举行MNIST分类的两个试验。他们利用了三个架构巨细别离为102四、102四、10的全毗连层。于这个模子架构中,他们不雅察到正向梯度及反向流传相对于在基础运行时间的运行成本为Rf=2.468及Rb=4.165,相对于丈量 Rf/Rb 平均为0.592,与逻辑回归的环境年夜致不异。
有趣的是,于第二个试验中(进修率为2×10-4),咱们可以看到正向梯度于每一个迭代丧失图中都实现了快速的降落。作者认为,这类举动是因为通例SGD(反向流传)及正向SGD算法的随机性差别所致使的,是以他们推测:正向梯度引入的滋扰可能有益在摸索丧失平面。咱们可以从时间曲线图看到,正向模式削减了运行时间。咱们看到,丧失机能指标Tf/Tb值为0.211,这注解于验证明验丧失的历程中,正向梯度的速率是反向流传的四倍以上。卷积神经收集图 5 展示了一个卷积神经收集对于统一MNIST分类使命的正向梯度及反向流传的比力。于这个架构中,他们不雅察到,相对于在基本运行时间,正向AD的机能最佳,此中正向模式的Rf=1.434,代表了于基本运行时间之上的开消只有 43%。Rb=2.211 的反向流传很是靠近反向 AD 体系中所期待的抱负环境。Rf/Rb=0.649 代表了正向AD运行时间相对于在反向流传的一个显著上风。于丧失空间,他们获得一个比率 Tf /Tb=0.514,这注解于验证丧失的试验中,正向梯度的速率比反向流传的速率要快两倍。
可扩大性前面的几个成果注解:不消反向流传也能够于一个典型的ML练习管道中举行练习,而且以一种竞争计较的方式来实现;于不异参数(进修率及进修率衰减)的环境下,正向AD比反向流传所耗损的时间要少许多。相对于在基础运行时的成本,咱们看到,对于在年夜部门试验,反向流传于Rb∈[4,5]内,正向梯度于Rf∈[3,4]内。咱们还有不雅察到,正向梯度算法于整个规模内对于运行都是有益的。Rf/Rb比率于10层之内连结于0.6如下,于100层时略高在0.8。主要的是,这两种要领于内存耗损上险些没有不同。
4结论总的来讲,这篇事情的几点孝敬重要以下:他们将「正向梯度」(forward gradient)界说为:一个无误差的、基在正向主动微分且绝不触及到反向流传的梯度估算器。他们于PyTorch中从零最先,实现了正向模式的主动微分体系,且彻底不依靠PyTorch中已经有的反向流传。他们把正向梯度模式运用于各种随机梯度降落(SGD)优化中,末了的成果充实证实了:一个典型的现代呆板进修练习管道可以只利用主动微分正向流传来构建。他们比力了正向梯度及反向流传的运行时间及丧失耗损等等,证实了于一些环境下,正向梯度算法的速率比反向流传快两倍。
雷峰网(公家号:雷峰网)
雷峰网版权文章,未经授权禁止转载。详情见转载须知。





