高效计算 权重参数的梯度 的方法 -> 误差反向传播法
太郎在超市买了2个苹果、3个橘子。 其中,苹果每个100日元,橘子每个150日元。 消费税是10%,请计算支付金额。
1.构建计算图
2.在计算图上,从左向右进行计算 ->
正向传播(forward propagation) ->
反向(从图上看的话,就是从右向左)的传播 ->
反向传播(backward propagation)
各个节点处只需进行与自己有关的计算 计算图将复杂的计算 分割成简单的 局部计算, 和流水线作业一样, 将局部计算的结果传递给下一个节点。
使用计算图最大的原因是, 可以通过反向传播高效计算导数
苹果价格 的上涨 会在多大程度上 影响 最终的 支付金额 ? 求“支付金额关于苹果的价格的导数”
通过 计算图的反向传播 求导数
链式法则 是 关于 复合函数 导数的性质 若 某函数 由 复合函数表示, 则该 复合函数 的导数 可用构成复合函数的各个函数 的导数的乘积表示 复合函数求导-》层层求导,外层×内层 反向传播 基于 链式法则
反向传播 基于 链式法则
乘法的反向传播会乘以输入信号的翻转值, 所以 各自可按 1.3 × 5 = 6.5、1.3 × 10 = 13 计算。
此问题 相当于 求:
由图可知
苹果的价格的导数是2.2
苹果的个数的导数是110
消费税的导数是200
注意:中间有 加法运算
把要实现的计算图的 乘法节点称为“乘法层”(MulLayer), 加法节点称为“加法层”(AddLayer)
ReLU(Rectified Linear Unit)
若正向传播时的输入x大于0, 则反向传播会将上游的值原封不动地传给下游 若正向传播时的x小于等于0, 则反向传播中传给下游的信号将停在此处
反传时,将上游值 乘以 -y^2 (正向传播的输出的平方 乘以 -1 后的值)后的值, 再传给下游
“×”节点将正向传播时的值翻转后做乘法运算。 因此,这里要乘以−1
矩阵为对象的反向传播:
计算图的反向传播:
感谢帮助!
本文作者: yiyun
本文链接: https://moeci.com/posts/分类-读书笔记/DL-start-with-Python-3/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!