首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么反向支持算法要将输入存储到隐藏层的非线性中?

为什么反向支持算法要将输入存储到隐藏层的非线性中?
EN

Stack Overflow用户
提问于 2022-03-23 21:02:13
回答 1查看 33关注 0票数 2

我一直在读伊恩·古德费罗的“深度学习书”,其中第6.5.7节提到

该算法的主要内存开销是需要存储隐层非线性的输入。

我理解Back螺旋桨以类似于动态规划的方式存储渐变,所以不会重新计算它们。但我不明白为什么它也存储输入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-23 21:18:08

反向传播是反向模式自动微分(AD)的一个特例。与正向模式相比,反向模式的主要优点是可以计算输出w.r.t的导数。一次计算的所有输入。

但是,缺点是您需要在一个合适的数据结构(如图或Wengert磁带)中存储所有要区分的算法的中间结果,只要您使用反向模式AD计算它的Jacobian,因为您基本上是在通过该算法“向后工作”。

前向模式AD没有这个缺点,但是您需要对每个输入重复它的计算,所以只有当算法的输出变量比输入变量多得多时,它才有意义。

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

https://stackoverflow.com/questions/71593998

复制
相关文章

相似问题

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