菜鳥角度簡單分析BP算法(Error Back Propagation)

#PS:要轉載請註明出處,本人版權所有

#PS:這個只是 《 我自己 》理解,如果和你的

#原則相沖突,請諒解,勿噴

前置內容

模型:就是一個函數G(I1,I2,...,In),此函數的作用就是給定In(輸入數據),就能夠得到函數的值(打分)。
損失函數:E(w1,w2,...,wn,b1...bn),此函數是由此網絡中所有的權重爲變量構成的。此函數的作用是描述在某組權重的和輸入下,此網絡的得分與標準值(標籤)的誤差。
梯度:就是某變量(向量)在某方向上的變化率。
網絡訓練過程:而在網絡訓練中,目標就得把此誤差減小,提高準確率。

對BP的一個簡單例子推導過程(此過程來至於網上的一篇文章,無複雜的數學公式,注意抽象,示例圖字醜,請忽略)

假設我定義此示例網絡爲:
這裏寫圖片描述

定義前向推導爲:
這裏寫圖片描述

定義此網絡的損失函數E爲(也可以說是誤差函數):

這裏寫圖片描述

對權重W5,求其相對於E的偏導,過程如下:
這裏寫圖片描述
這裏寫圖片描述

對權重W1,求其相對於E的偏導,過程如下:

這裏寫圖片描述

當我們得到dE/dW1,dE/dW2 …. dE/dW8 ,dE/db1,dE/db2這些的值後,我們就可以更新這些參數,讓E的輸出更小,準確度越高。
定義原參數爲Po,定義更新參數爲Pn,定義學習率爲m,則參數更新過程爲:
Pn = Po - m*dE/dPo
經過多次迭代後,E會越來越小,模型準確率越來越高。

提示:個人認爲對於一些數學原理相關的,還是動手自己推導一次,這樣比單單看理解的快和深刻一點。這種方式非常適合我這種笨鳥。

#PS:請尊重原創,不喜勿噴

#PS:要轉載請註明出處,本人版權所有.

有問題請留言,看到後我會第一時間回覆

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章