国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

神經(jīng)網(wǎng)絡(luò)中梯度消失的解決辦法

2023-06-03 18:04:59李文
電腦知識(shí)與技術(shù) 2023年10期
關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò)

李文

關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò);梯度消失;激活函數(shù);BN 層

中圖分類號(hào):TP183 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2023)10-0019-03

1 神經(jīng)元與神經(jīng)網(wǎng)絡(luò)

1.1引言

神經(jīng)元是人體神經(jīng)系統(tǒng)的基本組成單位,由細(xì)胞體和突觸組成,突觸又分為樹突和軸突兩種,這兩種突觸的形狀和功能大不相同。樹突主要是用來接收外界的信號(hào),所以比較短而且分支多,而軸突則與軸突截然不同,形狀較長而且分支少,主要用途是傳遞信號(hào)。人體中大約有上百億個(gè)神經(jīng)元,這些功能和形狀各不相同的神經(jīng)元共同組成了人體的神經(jīng)系統(tǒng)。一個(gè)神經(jīng)元可以同時(shí)接收其他多個(gè)神經(jīng)元傳來的信息,還能通過突觸將信息傳遞給相鄰的神經(jīng)元,圖1為人體中神經(jīng)元的示意圖。

1.2人工神經(jīng)網(wǎng)絡(luò)模型

1.2.1神經(jīng)元模型

1943年,麥卡洛克和皮茨提出“似腦機(jī)器”(mind?like machine)的思想,建立了MP模型,提出了神經(jīng)元的形式化數(shù)學(xué)描述和網(wǎng)絡(luò)構(gòu)造方法,開創(chuàng)了人工神經(jīng)網(wǎng)絡(luò)研究的時(shí)代。

人工神經(jīng)網(wǎng)絡(luò)是由一個(gè)個(gè)的神經(jīng)元連接組成的。圖2為一個(gè)神經(jīng)元模型。該神經(jīng)元有多個(gè)輸入(x1、x2、x3、x4...)和一個(gè)輸出(t),同時(shí),每個(gè)輸入都有一個(gè)權(quán)重wi,每個(gè)權(quán)重各不相同。神經(jīng)元的作用就是將輸入加權(quán)求和,然后再加上偏執(zhí)量b,最后再經(jīng)過激活函數(shù),就能夠得到神經(jīng)元的輸出[1]。數(shù)學(xué)表達(dá)式為:

1.2.2人工神經(jīng)網(wǎng)絡(luò)模型

人工神經(jīng)網(wǎng)絡(luò)與人類神經(jīng)系統(tǒng)相似,也是由大量神經(jīng)元組成。其中每個(gè)神經(jīng)元都存在狀態(tài)變量ai,神經(jīng)元i 到神經(jīng)元j 之間的連接系數(shù)為wi。圖3為一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)模型。

圖3中的神經(jīng)網(wǎng)絡(luò)共有3層,其中第一層是輸入層,用來為網(wǎng)絡(luò)提供數(shù)據(jù),第二層被稱作隱藏層,隱藏層的深度是可以改變的,根據(jù)隱藏層的深度也可以將神經(jīng)網(wǎng)絡(luò)分為淺層網(wǎng)絡(luò)和深度網(wǎng)絡(luò)。最后一層是輸出層。在網(wǎng)絡(luò)中數(shù)據(jù)是單向流動(dòng)的,并且同一層的神經(jīng)元之間是沒有連接的。如圖3所示,將第i 層的激活值記為a(i),第i 到i+1 層的連接權(quán)重記為w(i),激活函數(shù)記為f(),第i 層神經(jīng)元的偏置記為θ(i),則對(duì)于圖3中的隱藏層來說,激活值分別為:

3 出現(xiàn)問題及解決方案

神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中梯度消失的問題被稱作“梯度彌散”。梯度彌散會(huì)導(dǎo)致神經(jīng)網(wǎng)絡(luò)中靠近輸出層的神經(jīng)元參數(shù)更新較快,而靠近輸入層的神經(jīng)元由于梯度的消失,無法得到更新,參數(shù)幾乎和初始值一樣。產(chǎn)生梯度彌散最主要的原因就是模型中用的激活函數(shù)是“飽和”函數(shù),如sigmoid函數(shù)。為了避免這一問題,可以采用非飽和的函數(shù)作為激活函數(shù)。比如relu。但是relu在輸入小于0的時(shí)候,輸出也為0,造成某些神經(jīng)元無法被激活,參數(shù)無法更新??紤]這些問題之后,決定用改進(jìn)后的leaky-relu函數(shù)來代替relu作為激活函數(shù),這樣既可以解決梯度消失的問題,也可以避免出現(xiàn)在輸入小于0時(shí),某些神經(jīng)元無法被激活的問題,使所有神經(jīng)元都能夠參與訓(xùn)練[5]。

另外,還有一種辦法可以避免梯度彌散,那就是加入BN層。BN層與卷積層和池化層一樣,可以視為單獨(dú)的一層,通常放在激活函數(shù)前,將進(jìn)行線性變換前的激活輸入值進(jìn)行歸一化處理。每一層的輸入隨著深度的增加,其分布也會(huì)逐漸偏移,落入激活函數(shù)的飽和區(qū)內(nèi),造成梯度消失,而Bn層能將每一層的激活輸入值變換為均值為0,方差為1的標(biāo)準(zhǔn)分布,避免進(jìn)入飽和區(qū),同時(shí)由于輸入落在激活函數(shù)的敏感區(qū)域[6],梯度大,所以收斂加快,網(wǎng)絡(luò)訓(xùn)練也能更快完成。

4 實(shí)驗(yàn)過程及結(jié)果

實(shí)驗(yàn)采用3 000張貓和狗的圖片作為訓(xùn)練數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練,1 000張圖片作為測試數(shù)據(jù)集對(duì)模型進(jìn)行識(shí)別正確率的計(jì)算。采用的cnn網(wǎng)絡(luò)模型以AlexNet為基礎(chǔ),將激活函數(shù)依次更換為sigmoid、tanh、relu、leaky-relu函數(shù),模型結(jié)構(gòu)為:

輸入的圖片是大小為227×227的RGB彩色圖像,輸出層一共有兩個(gè)單元,分別代表貓和狗兩個(gè)類別。

實(shí)驗(yàn)首先將sigmoid、tanh、relu、leaky-relu依次作為激活函數(shù)構(gòu)建模型,然后對(duì)模型進(jìn)行50次訓(xùn)練,最后用測試數(shù)據(jù)進(jìn)行分類,統(tǒng)計(jì)分類的正確率,繪制出折線圖。

圖8是由同一模型采用四種不同的激活函數(shù)(sig?moid、tanh、relu、leaky-relu)訓(xùn)練后,對(duì)測試數(shù)據(jù)集進(jìn)行分類識(shí)別的正確率,橫坐標(biāo)代表的是模型的訓(xùn)練次數(shù),縱坐標(biāo)代表的是對(duì)測試數(shù)據(jù)進(jìn)行分類的正確率。

從圖8中可以看出,用sigmoid函數(shù)作為激活函數(shù)的模型正確率相較于其他函數(shù)來說相差很多,正確率僅有53%左右。不僅如此,模型的訓(xùn)練過程耗時(shí)也過長,并且不易收斂。而用tanh函數(shù)的模型的分類正確率則高了很多,最終能達(dá)到70%左右。采用relu函數(shù)的模型的分類正確率相較于tanh又有所提高,能夠達(dá)到72%左右,并且relu函數(shù)較為簡單,所以訓(xùn)練模型的時(shí)間也有所降低。而采用leaky-relu的模型的正確率達(dá)到了最高,leaky-relu函數(shù)作為對(duì)relu函數(shù)的改進(jìn),結(jié)合了relu的所有優(yōu)點(diǎn),理論上是在各方面都優(yōu)于relu函數(shù)的,并且從圖上也能看出來這一點(diǎn)。采用leaky-relu函數(shù)的模型分類正確率高,收斂速度快,在訓(xùn)練50次后正確率能夠達(dá)到74%左右。

加入BN層的模型同樣是以AlexNet為基礎(chǔ),在卷積層和激活函數(shù)之間添加BN層,將進(jìn)行非線性變換的輸入數(shù)據(jù)進(jìn)行歸一化處理,在模型進(jìn)行50次訓(xùn)練之后對(duì)測試數(shù)據(jù)進(jìn)行識(shí)別,計(jì)算識(shí)別的正確率。

圖9是在激活函數(shù)sigmoid之前添加BN層的模型對(duì)測試數(shù)據(jù)集圖像進(jìn)行識(shí)別后的正確率,橫坐標(biāo)代表的是模型的訓(xùn)練次數(shù),縱坐標(biāo)代表的是對(duì)測試數(shù)據(jù)進(jìn)行分類的正確率。

從圖9中可以看出,加入BN層后的模型相較于沒有添加BN層的模型來說,正確率提高了很多,最后能夠到達(dá)70%左右,sigmoid函數(shù)梯度消失的問題基本得到解決,并且收斂速度也有所提升。

總體來說,想要解決梯度消失問題,可以采用非飽和的激活函數(shù),如leaky-relu,或者在激活函數(shù)之前添加BN層做歸一化處理,這樣就能夠有效地解決梯度彌散的問題。

猜你喜歡
神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)在路標(biāo)識(shí)別上的應(yīng)用研究
神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
電子制作(2019年19期)2019-11-23 08:42:00
基于Alexnet神經(jīng)網(wǎng)絡(luò)的物體識(shí)別研究
電子制作(2019年12期)2019-07-16 08:45:28
基于BP神經(jīng)網(wǎng)絡(luò)的旋轉(zhuǎn)血泵生理控制
基于Q-Learning算法和神經(jīng)網(wǎng)絡(luò)的飛艇控制
基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
基于支持向量機(jī)回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
基于神經(jīng)網(wǎng)絡(luò)分?jǐn)?shù)階控制的逆變電源
基于GA-BP神經(jīng)網(wǎng)絡(luò)的光伏陣列MPPT研究
電測與儀表(2014年2期)2014-04-04 09:04:04
凤台县| 诸暨市| 澄江县| 五大连池市| 龙泉市| 赞皇县| 聂拉木县| 民县| 安福县| 安顺市| 长岭县| 东安县| 和硕县| 明光市| 宁陵县| 义乌市| 通化市| 建德市| 阜宁县| 教育| 邻水| 祁门县| 永清县| 泽普县| 奉节县| 贵定县| 肇州县| 岑巩县| 庆安县| 于田县| 谷城县| 台东市| 沾化县| 惠州市| 从江县| 于田县| 巴楚县| 沙湾县| 子洲县| 攀枝花市| 晋宁县|