• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率優(yōu)化的研究

      2018-08-21 09:24:24趙建民王雨萌
      微型電腦應(yīng)用 2018年8期
      關(guān)鍵詞:手寫(xiě)權(quán)值神經(jīng)網(wǎng)絡(luò)

      趙建民, 王雨萌

      (東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院, 大慶 163318)

      0 引言

      1943年,Warren Mc Culloch 和 Walter Pitts 提出了神經(jīng)網(wǎng)絡(luò)層次結(jié)構(gòu)模型[1],確立為神經(jīng)網(wǎng)絡(luò)的計(jì)算模型理論,從而為機(jī)器學(xué)習(xí)的發(fā)展奠定了基礎(chǔ)。1950年“人工智能之父”圖靈發(fā)提出了著名的“圖靈測(cè)試”,使人工智能成為了計(jì)算機(jī)科學(xué)領(lǐng)域一個(gè)重要的研究課題[2]。

      人工智能已成為全球新一輪科技革命和產(chǎn)業(yè)變革的著力點(diǎn)[3],其推廣和應(yīng)用獲得了極大的成功,并逐漸成為一種極其重要的工程技術(shù)[4]。隨著人工智能技術(shù)的日益成熟和不斷深入,研究人員發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)愈發(fā)體現(xiàn)出其優(yōu)越的性能,神經(jīng)網(wǎng)絡(luò)是人工智能發(fā)展中所使用的重要方法,也是當(dāng)前類(lèi)腦智能研究中的有效工具[5]。而B(niǎo)P神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Networks,BPNN)[6]則是應(yīng)用普及程度最高的一項(xiàng)神經(jīng)網(wǎng)絡(luò)內(nèi)容[7-8],BP神經(jīng)網(wǎng)絡(luò)已廣泛應(yīng)用于非線(xiàn)性建摸、函數(shù)逼近、系統(tǒng)辨識(shí)等方面[9]。

      本文將對(duì)標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行改進(jìn),通過(guò)驗(yàn)證異或問(wèn)題并結(jié)合模式識(shí)別[10]中的手寫(xiě)模式識(shí)別[11],將變化學(xué)習(xí)率應(yīng)用于經(jīng)典的BP神經(jīng)網(wǎng)絡(luò),用以解決固定學(xué)習(xí)率在訓(xùn)練模型時(shí)所出現(xiàn)的易越過(guò)全局極小值點(diǎn)、模型收斂速度慢[12]的問(wèn)題。

      2 BP神經(jīng)網(wǎng)絡(luò)

      BP神經(jīng)網(wǎng)絡(luò)是一種信號(hào)由正向傳播,誤差按逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),BP神經(jīng)網(wǎng)絡(luò)具有非線(xiàn)性映射能力強(qiáng),容錯(cuò)能力強(qiáng),泛化能力強(qiáng)等優(yōu)點(diǎn)。標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)模型包含三層,分別是輸入層、隱藏層和輸出層.在正向傳播過(guò)程中,輸入樣本從輸入層傳入,傳向輸出層。中間過(guò)程為,輸入信號(hào)經(jīng)隱層逐層傳遞,根據(jù)輸出層的實(shí)際輸出是否與期望輸出不符的判別條件,轉(zhuǎn)入誤差的反向傳播[13],其目的為將誤差分?jǐn)偨o各層所有單元,用各層單元的誤差信號(hào)修正各單元的權(quán)值,BP神經(jīng)網(wǎng)絡(luò)模型如圖1所示。

      1) 定義BP訓(xùn)練所需函數(shù):

      損失函數(shù),定義為式(1)。

      (1)

      其中,E表示損失函數(shù),l表示樣本總數(shù),Yk表示輸出值,Dk表示輸出值。

      激活函數(shù),定義為式(2)。

      圖1 BP神經(jīng)網(wǎng)絡(luò)模型

      (2)

      激活函數(shù)的作用是將每一層的輸出轉(zhuǎn)換成為非線(xiàn)性元素,本文實(shí)驗(yàn)選擇的是傳統(tǒng)的三層BP神經(jīng)網(wǎng)絡(luò),激活函數(shù)選取的是Sigmoid激活函數(shù)[14],Sigmoid函數(shù)的優(yōu)點(diǎn)在于輸出的取值范圍為(0,1),故函數(shù)可以將每層加權(quán)后的輸出映射到(0,1)的區(qū)間,可以很容易的抑制相差比較大的誤差,并且在神經(jīng)網(wǎng)絡(luò)反向傳播誤差優(yōu)化參數(shù)時(shí),需要對(duì)激活函數(shù)進(jìn)行求導(dǎo),Sigmoid函數(shù)導(dǎo)數(shù)可以用自身函數(shù)表達(dá)式來(lái)表示,Sigmoid函數(shù)導(dǎo)數(shù)表達(dá)式,為式(3)。

      f′(x)=f(x)(1-f(x))

      (3)

      Sigmoid函數(shù)圖像如圖2所示。

      圖2 Sigmoid函數(shù)

      2) BP神經(jīng)網(wǎng)絡(luò)定義如下:

      輸入層的輸入向量為:X=(X1,X2,… ,Xn);

      隱藏層輸出向量為:H=(H1,H2,… ,Hm);

      輸出層輸出向量為:Y=(Y1,Y2,… ,Yl);

      期望輸出向量為:D=(D1,D2,… ,Dl);

      輸入層到隱藏層權(quán)值矩陣為:V=(V1,V2,…,Vj,…,Vm);

      隱藏層到輸出層權(quán)值矩陣為:W=(W1,W2,…,Wk,…,Wl)。

      3) 正向傳播輸入信號(hào)過(guò)程

      隱藏層輸入為式(4)—式(7)。

      (i=1,2,…,n)

      (4)

      隱藏層輸出為:

      Hj=f(netj) (j=1,2,…,m)

      (5)

      輸出層輸入為:

      (j=1,2,…,m)

      (6)

      輸出層輸出為:

      Yk=f(netk) (k=1,2,…,l)

      (7)

      4) 誤差的反向傳播過(guò)程

      輸出層損失函數(shù)為式(8)。

      (8)

      將損失函數(shù)反向傳播回隱藏層為式(9)。

      (9)

      將誤差反向傳播回輸入層為式(10)。

      (10)

      誤差對(duì)輸出層各神經(jīng)元權(quán)值的偏導(dǎo)數(shù)為式(11)。

      (11)

      誤差對(duì)隱藏層各神經(jīng)元權(quán)值的偏導(dǎo)數(shù)為式(12)。

      (12)

      設(shè)置學(xué)習(xí)率為η,對(duì)隱藏層到輸出層權(quán)重進(jìn)行更新為式(13)、(14)。

      (13)

      (14)

      對(duì)輸入層到隱藏層權(quán)重進(jìn)行更新為式(15)、(16)。

      (15)

      (16)

      3 BP神經(jīng)網(wǎng)絡(luò)算法優(yōu)化

      神經(jīng)網(wǎng)絡(luò)的性能主要取決于三個(gè)因素:一是用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的樣本的特征選擇方法,二是神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法,最后是神經(jīng)網(wǎng)絡(luò)隱層節(jié)點(diǎn)的選擇方法[15]。

      本文選取第二種因素神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化改進(jìn),BP神經(jīng)網(wǎng)絡(luò)的核心在于計(jì)算前向傳播最后的輸出結(jié)果與預(yù)期輸出的誤差的偏導(dǎo)數(shù)[16],利用這個(gè)偏導(dǎo)數(shù)和隱藏層進(jìn)行加權(quán)求和,一層層向后傳播,直到傳到輸入層,最后利用每個(gè)節(jié)點(diǎn)求出的偏導(dǎo)數(shù)更新權(quán)重。而使用梯度下降法的實(shí)質(zhì),是不斷更新參數(shù),對(duì)于步長(zhǎng)的選取通??梢詻Q定神經(jīng)網(wǎng)絡(luò)的收斂速度以及結(jié)果的準(zhǔn)確率,步長(zhǎng)選取過(guò)大,模型易越過(guò)全局極小值點(diǎn),步長(zhǎng)選取過(guò)小,模型收斂速度慢,相比于固定學(xué)習(xí)率,變化學(xué)習(xí)率在模型訓(xùn)練時(shí)體現(xiàn)出其極大的優(yōu)勢(shì)。

      在模型訓(xùn)練中,當(dāng)η大于0.2且為固定值時(shí),從第一次迭代起誤差函數(shù)值就會(huì)幾乎不下降 ,且其值都很相近,原因?yàn)殡S機(jī)權(quán)值與系統(tǒng)真實(shí)權(quán)值相差較大,由此隨機(jī)權(quán)得出的誤差值必然較大[17]。

      本文針對(duì)BP神經(jīng)網(wǎng)絡(luò)算法提出一種改進(jìn)的變化學(xué)習(xí)率為式(17)。

      (17)

      其中Δw為誤差對(duì)各層神經(jīng)元權(quán)值的偏導(dǎo)數(shù)。

      相比于固定學(xué)習(xí)率,變化學(xué)習(xí)率不僅可以加快模型收斂速度,更可以隨著每次迭代的損失函數(shù)調(diào)整步長(zhǎng),有效的預(yù)防了模型發(fā)散的問(wèn)題,將優(yōu)化的學(xué)習(xí)率用于BP神經(jīng)網(wǎng)絡(luò)的步驟如下:

      對(duì)隱藏層到輸出層進(jìn)行權(quán)重更新為式(18)。

      (18)

      對(duì)輸入層到隱藏層進(jìn)行權(quán)重更新為式(19)。

      (19)

      4 實(shí)驗(yàn)驗(yàn)證

      4.1 實(shí)驗(yàn)環(huán)境搭建

      本文采用Python編程技術(shù),集成開(kāi)發(fā)環(huán)境采用Anaconda3中的juypter notebook,Anaconda是一個(gè)主要面向科學(xué)計(jì)算的Python開(kāi)源發(fā)行版本,Anaconda集成了計(jì)算、可視化和程序設(shè)計(jì)等強(qiáng)大的功能,預(yù)裝了大量的Python第三方庫(kù),例如Numpy、Scipy、Matplotlib等,為本文的實(shí)驗(yàn)提供了便利。

      4.2 實(shí)驗(yàn)

      本實(shí)驗(yàn)的目的是為了驗(yàn)證改進(jìn)的變化學(xué)習(xí)率運(yùn)用在BP神經(jīng)網(wǎng)絡(luò)算法的有效性。本文設(shè)計(jì)了兩個(gè)實(shí)驗(yàn)來(lái)進(jìn)行驗(yàn)證,實(shí)驗(yàn)一是利用BP神經(jīng)網(wǎng)絡(luò)解決異或問(wèn)題的對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)二是利用Python第三方模塊sklearn中的手寫(xiě)數(shù)字識(shí)別數(shù)據(jù)集對(duì)固定學(xué)習(xí)率和本文提出變化學(xué)習(xí)率的對(duì)比實(shí)驗(yàn)。

      4.2.1 實(shí)驗(yàn)一

      實(shí)驗(yàn)一運(yùn)用三層BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)異或問(wèn)題來(lái)證明本算法的有效性。

      首先運(yùn)用傳統(tǒng)的固定學(xué)習(xí)率的三層神經(jīng)網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn),每迭代五百次記錄一次誤差信息,實(shí)驗(yàn)結(jié)果如下:

      time:1500 Error:0.458404517166

      time:2000 Error:0.360931277441

      time:2500 Error:0.229372589968

      time:3000 Error:0.155475012087

      time:3500 Error:0.118675634533

      time:4000 Error:0.0975626246316

      time:4500 Error:0.0839069786167

      time:5000 Error:0.0743082823057

      time:5500 Error:0.0671542277731

      time:6000 Error:0.0615890525893

      time:6500 Error:0.0571173479187

      time:7000 Error:0.0534323355973

      time:7500 Error:0.0503336484737

      time:8000 Error:0.0476846679439

      time:8500 Error:0.0453888887144

      從實(shí)驗(yàn)結(jié)果可以看出在訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)時(shí)學(xué)習(xí)率設(shè)置為固定學(xué)習(xí)率時(shí),迭代1500次時(shí)訓(xùn)練的誤差約為是45.84%,而在迭代8500次誤差達(dá)到4.53%。

      進(jìn)行對(duì)比試驗(yàn),對(duì)比實(shí)驗(yàn)的神經(jīng)網(wǎng)絡(luò)中的其他參數(shù)不變,步長(zhǎng)設(shè)置為本文提出的優(yōu)化后的變化學(xué)習(xí)率,實(shí)驗(yàn)結(jié)果如下:

      time:1500 Error:0.160769081427

      time:2000 Error:0.096897464958

      time:2500 Error:0.0728406727105

      time:3000 Error:0.0599997421748

      time:3500 Error:0.0518647863821

      time:4000 Error:0.0461737143615

      time:4500 Error:0.0419278562032

      time:5000 Error:0.0386145218412

      time:5500 Error:0.0359417347153

      time:6000 Error:0.0337301230737

      time:6500 Error:0.0318629342354

      time:7000 Error:0.030260631329

      time:7500 Error:0.0288669969007

      time:8000 Error:0.0276410690144

      time:8500 Error:0.0265522297624

      由實(shí)驗(yàn)結(jié)果可以看出,在對(duì)學(xué)習(xí)率進(jìn)行優(yōu)化后,迭代1500次時(shí)訓(xùn)練的誤差就已經(jīng)降低到16.07%,而在迭代8500次誤差降低到2.66%,模型的收斂速度有了明顯的提高。

      4.2.2 實(shí)驗(yàn)二

      本文同時(shí)進(jìn)行手寫(xiě)識(shí)別實(shí)驗(yàn)證明改進(jìn)學(xué)習(xí)率后的BP神經(jīng)網(wǎng)絡(luò)的泛化能力,此次實(shí)驗(yàn)隱藏層定義了六十個(gè)神經(jīng)元,所選用數(shù)據(jù)集來(lái)自sklearn模塊的手寫(xiě)識(shí)別數(shù)據(jù)集。

      同樣首先采用固定學(xué)習(xí)率的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,每迭代五百次記錄數(shù)據(jù)一次訓(xùn)練結(jié)果的準(zhǔn)確率,并且手寫(xiě)識(shí)別實(shí)驗(yàn)采用數(shù)據(jù)分批訓(xùn)練的方式在不影響模型準(zhǔn)確率的前提下提升訓(xùn)練速度,實(shí)驗(yàn)結(jié)果如下:

      time:11500 acc:0.848888888889

      time:12000 acc:0.851111111111

      time:12500 acc:0.851111111111

      time:13000 acc:0.853333333333

      time:13500 acc:0.853333333333

      time:14000 acc:0.857777777778

      time:14500 acc:0.857777777778

      time:15000 acc:0.882222222222

      time:15500 acc:0.966666666667

      time:16000 acc:0.966666666667

      time:16500 acc:0.971111111111

      time:17000 acc:0.962222222222

      time:17500 acc:0.964444444444

      time:18000 acc:0.973333333333

      time:18500 acc:0.971111111111

      time:19000 acc:0.975555555556

      time:19500 acc:0.975555555556

      time:20000 acc:0.975555555556

      從實(shí)驗(yàn)結(jié)果可以看出利用BP神經(jīng)網(wǎng)絡(luò)識(shí)別手寫(xiě)數(shù)字時(shí),學(xué)習(xí)率未優(yōu)化時(shí),迭代11500次時(shí)訓(xùn)練的準(zhǔn)確率約為84.89%,而在迭代20000次訓(xùn)練的準(zhǔn)確率才達(dá)到97.56%,模型收斂速度較慢。

      將優(yōu)化后的變化學(xué)習(xí)率用在BP神經(jīng)網(wǎng)絡(luò)識(shí)別手寫(xiě)數(shù)字實(shí)驗(yàn)時(shí),實(shí)驗(yàn)結(jié)果如下:

      time:5500 acc:0.957777777778

      time:6000 acc:0.951111111111

      time:6500 acc:0.962222222222

      time:7000 acc:0.968888888889

      time:7500 acc:0.96

      time:8000 acc:0.964444444444

      time:8500 acc:0.962222222222

      time:9000 acc:0.962222222222

      time:9500 acc:0.968888888889

      time:10000 acc:0.966666666667

      time:10500 acc:0.964444444444

      time:11000 acc:0.982222222222

      從實(shí)驗(yàn)結(jié)果可以看出使用優(yōu)化后的變化學(xué)習(xí)率未優(yōu)化時(shí),在迭代5500次時(shí)訓(xùn)練的準(zhǔn)確率就已經(jīng)達(dá)到95.78%,模型的收斂速度相較以及準(zhǔn)確率使用固定學(xué)習(xí)率的BP神經(jīng)網(wǎng)絡(luò)有了較大幅度的提升。

      5 總結(jié)

      本文運(yùn)用經(jīng)典的BP神經(jīng)網(wǎng)絡(luò),對(duì)其傳統(tǒng)的固定學(xué)習(xí)率進(jìn)行優(yōu)化改進(jìn),并通過(guò)優(yōu)化后的神經(jīng)網(wǎng)絡(luò)解決異域問(wèn)題以及手寫(xiě)模式識(shí)別兩個(gè)實(shí)驗(yàn),證明了改進(jìn)算法確實(shí)對(duì)模型的收斂速度以及準(zhǔn)確度有了一定程度的提高,證明了改進(jìn)后算法的有效性。

      猜你喜歡
      手寫(xiě)權(quán)值神經(jīng)網(wǎng)絡(luò)
      手寫(xiě)比敲鍵盤(pán)更有助于學(xué)習(xí)和記憶
      一種融合時(shí)間權(quán)值和用戶(hù)行為序列的電影推薦模型
      我手寫(xiě)我心
      CONTENTS
      CONTENTS
      抓住身邊事吾手寫(xiě)吾心
      神經(jīng)網(wǎng)絡(luò)抑制無(wú)線(xiàn)通信干擾探究
      電子制作(2019年19期)2019-11-23 08:42:00
      基于集成學(xué)習(xí)的MINIST手寫(xiě)數(shù)字識(shí)別
      電子制作(2018年18期)2018-11-14 01:48:08
      基于權(quán)值動(dòng)量的RBM加速學(xué)習(xí)算法研究
      基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
      平利县| 忻城县| 周宁县| 绥化市| 嵊泗县| 老河口市| 腾冲县| 望江县| 阿合奇县| 沂南县| 奉化市| 乐都县| 本溪| 太仆寺旗| 广南县| 静安区| 双鸭山市| 吉林市| 江陵县| 裕民县| 河津市| 铜陵市| 临朐县| 扎囊县| 淄博市| 秦皇岛市| 淮滨县| 岳阳市| 奉化市| 肥西县| 磐石市| 定陶县| 贡觉县| 景泰县| 绥中县| 临安市| 汶川县| 泉州市| 保亭| 上犹县| 崇礼县|