What is Back Propaganda?

  • 反向傳播用來計算導數,但這個不是反向傳播的特性,這個導數怎麼算是要自己來寫的!把每一層的結點的導數計算公式封裝在結點內部後,再來使用反向傳播,反向傳播的特性就是:鏈式法則,或者說反向傳播是符合鏈式法則的,有了這個前提,我們纔可以進行導數的反向傳播。
  • 所以說,反向傳播說白了就是: 把一個複合函數拆分爲組成它的子函數,逐個求導,然後導數依次往前面的層傳遞,叫反向是因爲這個過程在網絡裏是從後往前的!
  • 那爲什麼不能從前面開始???我們觀察sigmoid函數的計算圖的前向傳播,它是從前往後逐步組成sigmoid的。我們知道,求一個複合函數的導數,是先求外部函數,再求內部函數。在計算圖中,因爲是從前往後逐步組成sigmoid的,所以外部函數是在後面。所以,要在計算圖中求導,只能從後往前,從前往後算的是啥玩意兒?從前往後只能用數值微分的方法,而且需要進行很多次正向傳播,分別計算各個參數的損失函數,然後求參數關於損失函數的梯度
    sigmoid的前向傳播
  • 我們上面看的是單個函數,那麼,再推廣,在整個網絡中,也必須反向計算,因爲整個網絡的各層處理函數組成了一個超級複合函數!

那麼用反向傳播計算偏導的好處到底在哪??

  • 以前計算梯度需要這樣做:
    • 把參數矩陣代入求梯度的函數,因爲是求偏導數,所以在這個函數裏,矩陣的每個參數都會分別進行正向傳播(for循環),這個就很費時了,而且每一層都有參數矩陣,這就更費時了
  • 而現在,由於計算圖的鏈式法則的特性,直接一次性從最後倒過來計算,就能求導。相當於一次正向傳播的速度,就能解決求梯度的問題
    sigmoid的反向傳播
  • 其實反向傳播的時候,是在直接使用公式求導(通過分析計算圖,得出公式,然後直接將數據代入公式),相當於解析性的求導;正向傳播是將參數的微分代入網絡,重新學習,然後計算數值導數。
  • 但是反向傳播雖好,各層的導數計算公式卻更復雜;計算數值導數的話耗時,但容易理解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章