1. 程式人生 > >caffe源碼 理解鏈式法則

caffe源碼 理解鏈式法則

ima pan output 一個 src rul 其他 方法 3ds

網絡結構

首先我們抽象理解下一個網絡結構是怎樣的,如下圖所示

  • F1,F2,F3為某種函數
  • input為輸入數據,output為輸出數據
  • X1,X2為為中間的層的輸入輸出數據
技術分享

總體來說有以下關系

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

在訓練過程中output其實就是loss層的輸出,訓練的目的就是為了把loss值降到最低

鏈式法則

  • 鏈式法則(英文chain rule)即是微積分中的求導法則,用於求一個復合函數的導數,是在微積分的求導運算中一種常用的方法。
  • 表達式: 技術分享
  • 其他形式:技術分享

鏈式法則用文字描述,就是“由兩個函數湊起來的復合函數,其導數等於裏邊函數代入外邊函數的值之導數,乘以裏邊函數的導數。

梯度計算

  • 假設要求output對X1的梯度
    • 由output = F2(F1(X1)),根據鏈式法則,output對X1的梯度為技術分享

  • 假設F(x)= wx + b,相求output對w和b的梯度
    • 則output對w的梯度為技術分享

    • 則output對w的梯度為技術分享

caffe源碼 理解鏈式法則