目前深度学习主要使用反向传播来计算优化目标函数的梯度,使用的自动微分算法主要为反向模式,本文作者从自动微分算法的正向模式入手,力求得到比反向传播运行速度更快的前向传播模式。
首先,作者分别介绍了正向模式:
和反向模式:
其中θ为输入,为θ在函数f(θ)上所有偏导数组成的雅克比矩阵,v为扰动向量。
正向模式的特点是只需要对一个函数进行一次正向评估(即没有用到任何反向传播),计算成本明显降低,作者从正向模式出发,定义使用正向模式微分的梯度下降算法,梯度公式如下:
其中
但由于正向模式的特点,需要运行n次来分别评估f对每个输入的敏感度来计算,为了获得和反向模式一样的时间优势,作者使用权重向量v的每一维度作为f对每个输入敏感度的评估,由此得到梯度g(θ)。
基于此,前向梯度传播步骤如下:
采样一个随机扰动向量~p(),其维度大小和f函数输入θ相同;
通过前向模式微分在一次运算中同时得到f(θ)和;
将和相乘得到梯度g(θ)。
其中作者选择再多元正态分布中采样扰动向量。
算法如下:
作者证明了g(θ)是对梯度的无偏估计。
后续作者分别在逻辑回归、多层神经网络和卷积神经网络上对比了正向梯度和反向传播的运行时间和损失下降速度等维度,其中卷积神经网络部分的实验结果如下:
可以看到正向梯度的运行速度比反向传播要快很多(本文主要结论),同时需要指出,两者的内存消耗几乎没有区别。
以上。
如果觉得《Gradients without Backpropagation论文概要》对你有帮助,请点赞、收藏,并留下你的观点哦!