1. 如何计算梯度?
方法1,解析法
容易出错;很复杂;每次都需要重新推导。
方法2,计算图
示例:
下游梯度 = 当前局部梯度 x 上游梯度
常见计算的梯度的反向传播
2. 代码中如何实现?
自己实现反向梯度传播,
结合前向计算,以及梯度传播的基本方法,很容易直接就写出对应的反向的代码,
模块化的,工业界,pytorch
实现某一个类,保存状态,前向计算,反向传播
3. 如何拓展到vector/matrix
一个案例
实际的计算,并不是真实的矩阵的直接运算,因为很多都是稀疏的,一般是基于稀疏的加速计算。
对某个weight的梯度的维度和某个weight的维度相同
实际计算不是所有的都参与,而是提前分析好,只是相关的才会参与运算。