如何直观地解释 back propagation 算法?
生活随笔
收集整理的這篇文章主要介紹了
如何直观地解释 back propagation 算法?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡單的理解,它的確就是復合函數的鏈式法則,但其在實際運算中的意義比鏈式法則要大的多。
多層神經網絡的本質就是一個多層復合的函數。借用網上找到的一幅圖[1],來直觀描繪一下這種復合關系。
其對應的表達式如下:
上面式中的Wij就是相鄰兩層神經元之間的權值,它們就是深度學習需要學習的參數,也就相當于直線擬合y=k*x+b中的待求參數k和b。
和直線擬合一樣,深度學習的訓練也有一個目標函數,這個目標函數定義了什么樣的參數才算一組“好參數”,不過在機器學習中,一般是采用成本函數(cost function),然后,訓練目標就是通過調整每一個權值Wij來使得cost達到最小。cost函數也可以看成是由所有待求權值Wij為自變量的復合函數,而且基本上是非凸的,即含有許多局部最小值。但實際中發現,采用我們常用的梯度下降法就可以有效的求解最小化cost函數的問題。梯度下降法需要給定一個初始點,并求出該點的梯度向量,然后以負梯度方向為搜索方向,以一定的步長進行搜索,從而確定下一個迭代點,再計算該新的梯度方向,如此重復直到cost收斂。那么如何計算梯度呢?
假設我們把cost函數表示為,那么它的梯度向量[2]就等于, 其中表示正交單位向量。為此,我們需求出cost函數H對每一個權值Wij的偏導數。而BP算法正是用來求解這種多層復合函數的所有變量的偏導數的利器。
利用鏈式法則我們知道:
以及
大家也許已經注意到,這樣做是十分冗余的,因為很多路徑被重復訪問了。對于權值動則數萬的深度模型中的神經網絡,這樣的冗余所導致的計算量是相當大的。
同樣是利用鏈式法則,BP算法則機智地避開了這種冗余,它對于每一個路徑只訪問一次就能求頂點對所有下層節點的偏導值。
正如反向傳播(BP)算法的名字說的那樣,BP算法是反向(自上往下)來尋找路徑的。
總結
以上是生活随笔為你收集整理的如何直观地解释 back propagation 算法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [机器学习收藏] TensorFlow初
- 下一篇: FTP的主动模式(PORT Mode)及