-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
神經(jīng)網(wǎng)絡(luò)反向傳播例題(神經(jīng)網(wǎng)絡(luò)反向傳播例題及解析)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于神經(jīng)網(wǎng)絡(luò)反向傳播例題的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、如何理解神經(jīng)網(wǎng)絡(luò)里面的反向傳播算法
反向傳播算法(BP算法)主要是用于最常見的一類神經(jīng)網(wǎng)絡(luò),叫多層前向神經(jīng)網(wǎng)絡(luò),本質(zhì)可以看作是一個(gè)general nonlinear estimator,即輸入x_1 ... x_n 輸出y,視圖找到一個(gè)關(guān)系 y=f(x_1 ... x_n) (在這里f的實(shí)現(xiàn)方式就是神經(jīng)網(wǎng)絡(luò))來近似已知數(shù)據(jù)。為了得到f中的未知參數(shù)的最優(yōu)估計(jì)值,一般會(huì)采用最小化誤差的準(zhǔn)則,而最通常的做法就是梯度下降,到此為止都沒問題,把大家困住了很多年的就是多層神經(jīng)網(wǎng)絡(luò)無法得到顯式表達(dá)的梯度下降算法!
BP算法實(shí)際上是一種近似的最優(yōu)解決方案,背后的原理仍然是梯度下降,但為了解決上述困難,其方案是將多層轉(zhuǎn)變?yōu)橐粚咏右粚拥膬?yōu)化:只優(yōu)化一層的參數(shù)是可以得到顯式梯度下降表達(dá)式的;而順序呢必須反過來才能保證可工作——由輸出層開始優(yōu)化前一層的參數(shù),然后優(yōu)化再前一層……跑一遍下來,那所有的參數(shù)都優(yōu)化過一次了。但是為什么說是近似最優(yōu)呢,因?yàn)閿?shù)學(xué)上除了很特殊的結(jié)構(gòu),step-by-step的優(yōu)化結(jié)果并不等于整體優(yōu)化的結(jié)果!不過,好歹現(xiàn)在能工作了,不是嗎?至于怎么再改進(jìn)(已經(jīng)很多改進(jìn)成果了),或者采用其他算法(例如智能優(yōu)化算法等所謂的全局優(yōu)化算法,就算是沒有BP這個(gè)近似梯度下降也只是局部最優(yōu)的優(yōu)化算法)那就是新的研究課題了。
二、如何理解CNN神經(jīng)網(wǎng)絡(luò)里的反向傳播backpropagation,bp算法
見附件,一個(gè)基本的用java編寫的BP網(wǎng)絡(luò)代碼。BP(BackPropagation)神經(jīng)網(wǎng)絡(luò)是86年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hiddenlayer)和輸出層(outputlayer)。
三、卷積神經(jīng)網(wǎng)絡(luò)前向傳播和BP后向傳播計(jì)算步驟
1.從DNN前向傳播和BP后向傳播說起
2.CNN前向傳播和BP后向傳播
注:為減小書寫、計(jì)算量,文中推導(dǎo)都忽略了偏置b。
之前所學(xué)的DNN是一個(gè)全連接的網(wǎng)絡(luò),采用BP算法來計(jì)算各參數(shù)的梯度,只需要采用鏈?zhǔn)椒▌t將誤差求導(dǎo)傳遞到每個(gè)神經(jīng)元的每個(gè)參數(shù)上即可。特別是,將數(shù)據(jù)向量化后,求解梯度過程較為簡(jiǎn)單。但對(duì)于CNN來說,CNN涉及到了卷積和池化,在進(jìn)行后向傳播計(jì)算時(shí),僅采用矩陣乘法、元素級(jí)乘法(對(duì)應(yīng)元素相乘)根本無法進(jìn)行傳遞計(jì)算。那么CNN的BP算法是如何實(shí)現(xiàn)的呢?首先從CNN的BP算法說起。
DNN符號(hào)約定:
①小寫字母代表一個(gè)值,大寫字母代表向量或矩陣
②輸入數(shù)據(jù)維度為(n,m)表示n個(gè)特征,m個(gè)樣本
③上標(biāo)[l]:第l層,如A [l] ,表示第l層激活值
④下標(biāo)n:某一層第n個(gè)神經(jīng)元,如果是輸入數(shù)據(jù)X,則代表第n個(gè)特征,如a [l] 1 ,表示第l層第1個(gè)激活值
⑤w [l] ij :表示l層參數(shù),連接了l層第i個(gè)神經(jīng)元和第l-1層第j個(gè)神經(jīng)元
⑥向量化導(dǎo)數(shù)符號(hào):dZ即代表最終誤差對(duì)Z的梯度
⑦δ [l] 即dZ [l] ,兩個(gè)是一個(gè)東西,只是描述不一樣
卷積層前向傳播如下圖所示(步長(zhǎng)為1), l-1 層的輸出,高=3、寬=3、通道數(shù)=3, shape=(3,3,3) ; l 層一共有兩個(gè)卷積核,每個(gè)卷積核 shape=(2,2,3) ; l 層輸出 shape=(2,2,2) 。
① l-1 層的通道數(shù)與 l 層卷積核通道數(shù)相同,所以在進(jìn)行卷積時(shí),是同一個(gè)卷積核的各通道對(duì)應(yīng) l-1 層的通道輸出A去卷積;②卷積后,在通道維度上進(jìn)行疊加,一個(gè)卷積核最后只輸出一個(gè)通道的數(shù)據(jù);③卷積核的數(shù)量決定了該層輸出的通道數(shù)量,激活后維度不變。因此,維度變化為: (m,n_h_pre,n_w_pre,n_c_pre) → (f,f,n_c_pre,n_c) → (m,n_h,n_w,n_c)
根據(jù)DNN的經(jīng)驗(yàn),要求 dW ,那么需要先求出 dZ 、 dA ,在此假設(shè)已知當(dāng)前 l 層 dZ 。
(1)求dA
由于池化向前傳播時(shí),會(huì)使得h、w兩個(gè)維度縮減,丟失掉部分信息,那么在后向傳播時(shí),如何將尺寸小的矩陣還原到原來大???一般,池化分為最大池化和平均池化,兩種池化后向傳播時(shí)處理的方式略有不同。
(1)最大池化后向傳播
在此將池化當(dāng)作一層,假設(shè)已知 l 層 dZ=dA (池化無激活函數(shù),視激活后等于本身),求 l-1 層 dZ=dA ,下面對(duì)一個(gè)通道數(shù)據(jù)進(jìn)行舉例:
卷積神經(jīng)網(wǎng)絡(luò)(CNN)反向傳播算法
CNN的反向傳播
Convolutional Neural Networks: Step by Step
四、前向傳播和反向傳播
在求出前向傳播和反向傳播前要先確定參數(shù)和輸入輸出符號(hào)的表達(dá)形式
最普通的DNN就可以看做是一個(gè)多層感知機(jī)MLP,感知機(jī)的輸出其實(shí)就是對(duì)輸入的加權(quán)求和: ,再經(jīng)過一個(gè)非線性激活函數(shù)
首先來定義權(quán)值矩陣W,按照下圖規(guī)則, 表示的是第3層第2個(gè)神經(jīng)元和第2層第4個(gè)神經(jīng)元之間連線(連線就代表權(quán)重,可以看成是 的省略寫法)。那么為什么不寫成 呢,形式上是允許的,但是如果這樣寫的話,第3層神經(jīng)元的輸入就要通過 來計(jì)算,而前者只需要計(jì)算 ,省略了矩陣轉(zhuǎn)置的額外工作量。
偏置項(xiàng)b的定義也是類似, 表示第2層第3個(gè)神經(jīng)元的偏置。
再定義 分別表示第i層第j個(gè)神經(jīng)元的輸出和輸入,并假設(shè) 是我們選擇的激活函數(shù)。
對(duì)于第2層第1個(gè)節(jié)點(diǎn)的輸出 有:
對(duì)于第3層第1個(gè)節(jié)點(diǎn)的輸出 有:
一般化的,假設(shè)l-1層有m個(gè)神經(jīng)元,對(duì)于 有:
也就是第l層第j個(gè)神經(jīng)元的輸入為與它相連的上一層每個(gè)神經(jīng)元的輸出加權(quán)求和后加上該神經(jīng)元對(duì)應(yīng)的偏置,該神經(jīng)元所做的工作只是把這個(gè)結(jié)果做一個(gè)非線性激活。
當(dāng)通過前向傳播得到由任意一組隨機(jī)參數(shù)W和b計(jì)算出的網(wǎng)絡(luò)預(yù)測(cè)結(jié)果后,我們可以利用損失函數(shù)相對(duì)于每個(gè)參數(shù)的梯度來對(duì)他們進(jìn)行修正。事實(shí)上神經(jīng)網(wǎng)絡(luò)的訓(xùn)練就是這樣一個(gè)不停的前向-反向傳播的過程,直到網(wǎng)絡(luò)的預(yù)測(cè)能力達(dá)到我們的預(yù)期。
假設(shè)選擇最簡(jiǎn)單的均方誤差和作為損失函數(shù):
下面就根據(jù)這個(gè)損失函數(shù)更新每一層的w,b
根據(jù)前向傳播的公式,輸出層L的輸出
帶入到損失函數(shù)中,有
根據(jù)復(fù)合函數(shù)鏈?zhǔn)角髮?dǎo)法則,L層參數(shù) 的梯度容易求得:
顯然,兩式有一部分是重疊的,將這部分記做 ,
這一規(guī)律同樣適用在非輸出層的隱藏層L-1,L-2,...l,...1,我們只需要求出損失函數(shù)相對(duì)l層非激活輸出 的導(dǎo)數(shù),再根據(jù)前向傳播公式 便可以輕易的求得
同樣,根據(jù)鏈?zhǔn)角髮?dǎo)法則,
至此,問題的關(guān)鍵轉(zhuǎn)化成如何求解 ,既然是反向傳播,在求第l層參數(shù)時(shí), 都是已知的,還是根據(jù)鏈?zhǔn)角髮?dǎo)法則:
顯然,問題的關(guān)鍵在于求解 ,再根據(jù)前向傳播公式,
以上就是關(guān)于神經(jīng)網(wǎng)絡(luò)反向傳播例題相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
全國神經(jīng)科排行榜(全國神經(jīng)科排名前10的醫(yī)院)
神經(jīng)網(wǎng)絡(luò)反向傳播例題(神經(jīng)網(wǎng)絡(luò)反向傳播例題及解析)
圖神經(jīng)網(wǎng)絡(luò)好發(fā)論文嗎
杭州銀泰百貨幾點(diǎn)開門(杭州銀泰百貨幾點(diǎn)開門)
團(tuán)隊(duì)精神集體意識(shí)(團(tuán)隊(duì)精神集體意識(shí)包括)