神經網路中的BPTT演算法簡單介紹

2021-07-09 05:28:44 字數 1585 閱讀 8748

首先來看下rnn的乙個迴圈網路結構圖:

在時間維度上,我們將rnn進行展開,以便能夠更好地來觀察:

主要的引數就是三部分:在rnn中每乙個時間步驟用到的引數都是一樣的,要理解清楚的是:一般來說,每一時間的輸入和輸出是不一樣的,比如對於序列資料就是將序列項依次傳入,每個序列項再對應不同的輸出(比如下乙個序列項):

將rnn展開之後,似乎一切都很明了了,前向傳播(forward propagation)就是依次按照時間的順序計算一次就好了,反向傳播(back propagation)就是從最後乙個時間將累積的殘差傳遞回來即可,跟普通的神經網路訓練並沒有本質上的不同。

直接上公式啦: 

本文用到的公式基本來自alex的**,其中a表示匯集計算的值,b表示經過啟用函式計算的值,w是不同節點之間連線的引數(具體睡誰連誰看下標),帶下標k的是輸出層,帶下標h的是隱藏層相關的,除此之外你看到所有帶括號的的函式都是啟用函式, 

ϵ  和 

δ  的定義看公式,

l  是最後的loss function,這裡沒有給出具體的計算方法,因為這和nn是一樣的,可以看到輸出層和普通的nn是完全一樣的,接收隱藏層傳入的資料並乘以引數求和,只是每乙個計算出來的值都有個時間上標t,表示它是t時刻的那個節點。

而隱藏層的計算就是和nn不同的地方,從之前的拓撲圖也看到了,隱藏層會接受來自上一時間隱藏層傳入的資料,在公式裡也體現出來了:第乙個求和是和nn一致的,接收來自輸入層的資料,第二個是接收來自上一隱藏層的資料。

這裡主要給出的是計算隱藏層的累積殘差的公式,因為輸出層和經典的nn是一回事,可以看到第乙個公式括號中的兩個部分,乙個是接收當前時間輸出層傳回的殘差,第二個是接收下一時間隱藏層傳回的殘差,看著上面的圖其實非常好理解。

一下是手寫的一些筆記,有待更正:

最簡單的神經網路演算法

參考 人工神經網路演算法是模擬人的神經網路的一種演算法.該演算法像人一樣,具有一定的學習能力。人工神經網路可以學會它所能表達的任何東西.該演算法在模擬人類抽象思維方面較傳統的演算法具有優勢,如影象識別 人臉識別,車牌識別 聲音識別方面已經有成熟的運用。舉個簡單的例子可以說明人工神經網路和傳統演算法的...

神經網路演算法

神經網路其實就是按照一定規則連線起來的多個神經元。上圖展示了乙個全連線 full connected,fc 神經網路,通過觀察上面的圖,我們可以發現它的規則包括 1.神經元按照層來布局。最左邊的層叫做輸入層,負責接收輸入資料 最右邊的層叫輸出層,我們可以從這層獲取神經網路輸出資料。輸入層和輸出層之間...

神經網路BP演算法簡單推導

這幾天圍繞 a neural probability language model 看了一些周邊資料,如神經網路 梯度下降演算法,然後順便又延伸溫習了一下線性代數 概率論以及求導。總的來說,學到不少知識。下面是一些筆記概要。一 神經網路 神經網路我之前聽過無數次,但是沒有正兒八經研究過。形象一點來說...