转载地址:https://blog.youkuaiyun.com/aws3217150/article/details/70214422
上面的文章写的非常好,不多做介绍,只说下自己对于两种自动微分的理解。
1. 首先不认同后向自动微分就是backprop这种说法,只能说两者都依赖于chain rule,形式上类似。且NN的backprop的情况是,输入x确定,结构不确定;反观后向微分,是x不确定,而结构确定的。
2. 再说下计算效率问题
前向算法:假设有n维度输入,我们观察算法,发现用1个输出对n个输入做微分需要计算n轮。因为中间任意个节点对于每个维 度的输入都需要求导,而每一轮计算做的事情都是节点对单一维度的输入求导。但如果是1维输入,n个输出,仍然只需要计算1轮(只要明白计算上的依赖性,这点很容易理解)。
后向算法:后向算法和前向算法刚好反过来,不做赘述
如此,对于多输入单输出,后向算法是比较省时间的。