往期回顧算法
100天搞定機器學習|Day37無公式理解反向傳播算法之精髓機器學習
上集咱們學習了反向傳播算法的原理,今天咱們深刻講解其中的微積分理論,展現在機器學習中,怎麼理解鏈式法則。函數
咱們從一個最簡單的網絡講起,每層只有一個神經元,圖上這個網絡就是由三個權重和三個偏置決定的,咱們的目標是理解代價函數對這些變量有多敏感。這樣咱們就知道怎麼調整這些變量,才能使代價函數降低的最快。學習
咱們先來關注最後兩個神經元,咱們給最後一個神經元一個上標L,表示它處在第L層。給定一個訓練樣本,咱們把這個最終層激活值要接近的目標叫作y,y的值爲0/1。那麼這個簡易網絡對於單個訓練樣本的代價就等於(a(L)−y)2。對於這個樣本,咱們把這個代價值標記爲C0。3d
以前講過,最終層的激活值公式:cdn
換個標記方法:blog
整個流程就是這樣的:get
固然了,a(L−1)還能夠再向上推一層,不過這不重要。it
這些東西都是數字,咱們能夠想象,每一個數字都對應數軸上的一個位置。咱們第一個目標是來理解代價函數對權重
的微小變化有多敏感。換句話說,求C0對
的導數。 的微小變化致使 產生變化,而後致使 ,最終影響到cost。
咱們把式子拆開,首先求 的變化量比 的變化量,即 關於 的導數;同力考慮 變化量比 的變化量,以及最終的c的變化量比上直接改動 產生的變化量。
這就是鏈式法則
開始分別求導
這只是包含一個訓練樣本的代價對 的導數,總的代價函數是全部訓練樣本代價的總平均,它對 的導數就要求出這個表達式對每個訓練樣本的平均,
這只是梯度向量的一個份量,梯度由代價函數對每個權重和偏置求導數構成。
固然了,對偏置求導數也是一樣的步驟。只要把 替換成
一樣的,這裏也有反向傳播的思想
到此,咱們能夠方向應用鏈式法則,來計算代價函數對以前的權重和偏置的敏感程度
到這裏,咱們能夠看每層不止一個神經元的狀況了,其實並不複雜太多,只是多寫一些下標罷了。
這些方程式和以前每層只有一個神經元的時候本質上同樣的
代價函數也相似
不一樣的是代價函數對(L-1)層激活值的導數由於此時,激活值能夠經過不一樣的途徑影響cost function,
只要計算出倒數第二層代價函數對激活值的敏感度,接下來重複上述過程就好了。至此,反向傳播介紹完畢。