caffe源码 理解链式法则

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了caffe源码 理解链式法则相关的知识,希望对你有一定的参考价值。

网络结构

首先我们抽象理解下一个网络结构是怎样的,如下图所示

  • F1,F2,F3为某种函数
  • input为输入数据,output为输出数据
  • X1,X2为为中间的层的输入输出数据

 

总体来说有以下关系

  • X1 = F(input)
  • X2 = F1(X1)
  • output = F2(X2)

在训练过程中output其实就是loss层的输出,训练的目的就是为了把loss值降到最低

链式法则

  • 链式法则(英文chain rule)即是微积分中的求导法则,用于求一个复合函数的导数,是在微积分的求导运算中一种常用的方法。
  • 表达式: image
  • 其他形式:

     

链式法则用文字描述,就是“由两个函数凑起来的复合函数,其导数等于里边函数代入外边函数的值之导数,乘以里边函数的导数。

梯度计算

  • 假设要求output对X1的梯度
    • 由output = F2(F1(X1)),根据链式法则,output对X1的梯度为

       

  • 假设F(x)= wx + b,相求output对w和b的梯度
    • 则output对w的梯度为

       

    • 则output对w的梯度为

       

以上是关于caffe源码 理解链式法则的主要内容,如果未能解决你的问题,请参考以下文章

链式法则

Caffe源码理解1:Blob存储结构与设计

caffe源码 卷积层

Caffe源码理解2:SyncedMemory CPU和GPU间的数据同步

链式法则玩转反向传播

Caffe2源码解析