根據Chain Rule可以把 寫成 ,而計算 的過程我們稱為正向傳遞(Forward pass),計算 的過程我們稱為反向傳遞(Backward pass)。
從計算結果可以發現, 只要看 前面接的是什麼, 的微分就是什麼。
要計算Neural Network裡面的每一個weight對它的Activation function的輸入 的偏微分,就只要把輸入丟進去,然後去計算每一個Neuron的輸出就可以了,這個步驟我們就稱之為正向傳遞(Forward pass)。
假設Activation function是Sigmoid function, 通過Sigmoid function得到 ,接著 會乘上一個weight再加上一些value得到 , 還會在乘上另一個weight再加上一些value得到 。
將 經過Chain Rule寫成 ,其中 就是這個Sigmoid function的微分。
經過Chain Rule寫成 ,而我們可以很容易看出 ,但我們不知道 對 的關係,所以先假設我們知道 的值。
而有了 我們就可以算出 得出下圖的式子。
我們可以將那個式子畫成像是Neuron一樣,而根據前向傳遞我們知道了 ,所以 是一個常數。
第一個Case:假設橘色的這兩個Neuron是Output layer,那今天你要算 就相對簡單。
第二個Case:假設橘色的這兩個Neuron不是Output layer,那根據前面學的我們想要算出前面的偏微分,就必須要先知道後面的偏微分,就等於是我們就要一直往後看下一個layer直到Output layer。
但是其實我們只需要換一個方向,從Output layer開始算回去的做法就叫做反向傳遞(Backward pass),我們可以建另外一個反向的Neural Network,它的Activation function需要先算完Forward pass之後才算的出來,其他都跟一般的Neural Network計算一樣,就可以算出 。