在https://courses.d2l.ai/zh-v2/assets/pdfs/part-0_7.pdf 的最后一个Slides中,说到了正向传播的内存复杂度为O(n),反向为O(1)。
Q1:为什么两者的复杂度不一样?
Q2:如果正向传播需要存所有的中间计算过程,那么反向传播不需要存储中间的运算过程呢?
Q3:如果反向传播不需要存储中间的运算过程,那么正想传播能否也用相同的方法呢?
在https://courses.d2l.ai/zh-v2/assets/pdfs/part-0_7.pdf 的最后一个Slides中,说到了正向传播的内存复杂度为O(n),反向为O(1)。
Q1:为什么两者的复杂度不一样?
Q2:如果正向传播需要存所有的中间计算过程,那么反向传播不需要存储中间的运算过程呢?
Q3:如果反向传播不需要存储中间的运算过程,那么正想传播能否也用相同的方法呢?
Hi @Qilong, 好问题!正向传播需要每一个neuron的值求下一层,反向传播只需要每层的平均gradient。 More details: https://papers.nips.cc/paper/2016/file/a501bebf79d570651ff601788ea9d16d-Paper.pdf
那深度学习的限制是不是,不能对一果同时多因(不可导)的事情来同时反向传播,因为我们天真地认为反向传播一定能找到根上的问题,而可能这个问题本身就由于跃迁到高级所综合导致的?