首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么梯度检查慢于反向传播?

为什么梯度检查慢于反向传播?
EN

Stack Overflow用户
提问于 2018-10-12 12:42:04
回答 1查看 647关注 0票数 1

最近,我学习了“梯度检查”算法,以确保我的神经网络的反向传播的导数得到正确的计算。

我从中学到的课程这一个等许多其他来源声称,它比计算衍生品要慢得多,但我似乎找不到解释原因的任何地方。

那么,为什么梯度检测比直接计算导数要慢呢?

有多慢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-13 14:19:05

在反向传播中,您所做的是对一个函数的自动/算法微分的后向模式,该函数具有非常多的输入N,并且只有一个输出。这里的“输入”主要是指神经网络节点的实数参数,也可能是网络的输入变量。

在向后模式中,计算所有输入的导数,一次通过操作链。这需要花费大约3项功能评估,再加上向后执行操作链和存储和访问中间结果的组织开销。

在相同情况下的前向模式(用于“梯度检查”)中,如果您向前推进AD导数或计算被分割的差异,则需要单独计算每个导数。其总成本是关于2*N函数的评估。

由于N很大,2*N比3大得多。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52779783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档