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