ML5-Backpropagation(李宏毅筆記)
03-03
這個系列文章是我對李宏毅教授機器學習課程的一個筆記。
看backpropagation是怎麼讓neural network變的有效率的。
backpropagation並不是和gradient descent不同的一個方法。他只是一個比較有效率的演演算法,讓你在計算梯度向量的時候比較有效率把結果計算出來。
關鍵就是求導的鏈式法則(Chain Rule)
定義lost function:
1.損失函數(Loss function)是定義在單個訓練樣本上的,也就是就算一個樣本的誤差,比如我們想要分類,就是預測的類別和實際類別的區別,是一個樣本的哦,用L表示。
2.代價函數(Cost function)是定義在整個訓練集上面的,也就是所有樣本的誤差的總和的平均,也就是損失函數的總和的平均,有沒有這個平均其實不會影響最後的參數的求解結果。所以這裡定義的是有點問題的。
那怎麼去做呢?我們先從一部分的neural去看:
那怎麼計算 (Forward pass的部分):
那我們帶入數值來計算:
那怎麼計算 (Backward pass的部分)這就很困難複雜因為我們的C是最後一層:
最終的式子結果:
但是你可以想像從另外一個角度看這個事情,現在有另外一個neural,
這裡的 因為forward pass階段已經算出來了,所以這個是一個常數,所以在上面圖中畫出的是一個三角形(放大器)。
case1:output layer
case 2:
怎麼去計算呢?
實際上進行backward pass時候就是反向的計算(也相當於一個neural network)。
總結一下:
推薦閱讀: