• 
    

    
    

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

      基于自適應(yīng)學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)的火點(diǎn)定位模型①

      2019-03-11 06:02:52王古森
      關(guān)鍵詞:火點(diǎn)權(quán)值運(yùn)算

      王古森,高 波

      1(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院,西安 710300)

      2(西安全階智能科技有限公司,西安 710016)

      1 引言

      由于我國北方部分城市冬季大量燃燒秸稈,不僅造成了空氣污染,也造成了大量的安全隱患,給市民生活和城市建設(shè)帶來很多的不便.近年來,國家加大力度治理此項(xiàng)問題,但仍然無法完全杜絕.現(xiàn)階段在發(fā)現(xiàn)火點(diǎn)時(shí)及時(shí)報(bào)告、及時(shí)記錄,再由執(zhí)法人員采取相應(yīng)制止措施,以加強(qiáng)火點(diǎn)位置及燃燒時(shí)間的監(jiān)測(cè),同時(shí)定期監(jiān)測(cè),加強(qiáng)重點(diǎn)區(qū)域的管理,提前采取相關(guān)措施,提高城市空氣質(zhì)量水平和城市安全水平.在通過對(duì)過往年度冬季秸稈焚燒的監(jiān)測(cè)記錄入手,預(yù)測(cè)出火點(diǎn)大致出現(xiàn)的位置及時(shí)間,加強(qiáng)對(duì)此處的監(jiān)管,并利用無人機(jī)、無人車完成多點(diǎn)預(yù)測(cè)位置的數(shù)據(jù)采集,能夠有效的預(yù)防和減少冬季秸稈燃燒的數(shù)量.

      目前預(yù)測(cè)學(xué)習(xí)領(lǐng)域常用CNN (卷積神經(jīng)網(wǎng)絡(luò)),BP神經(jīng)網(wǎng)絡(luò)等.CNN常用于較為復(fù)雜的圖像處理上,BP神經(jīng)網(wǎng)絡(luò)用于函數(shù)逼近、模式識(shí)別等[1].而火點(diǎn)預(yù)測(cè)是根據(jù)已有的火點(diǎn)數(shù)據(jù)進(jìn)行預(yù)測(cè),屬于一種函數(shù)逼近,且在預(yù)測(cè)的實(shí)時(shí)性上有一定要求,故BP神經(jīng)網(wǎng)絡(luò)是一個(gè)很好的選擇.

      采用BP神經(jīng)網(wǎng)絡(luò)模型對(duì)火點(diǎn)進(jìn)行預(yù)測(cè),大大提高了環(huán)保工作的效率及人力、物力成本.在預(yù)測(cè)完成后還可以通過預(yù)測(cè)的位置對(duì)無人機(jī)或無人車規(guī)劃行動(dòng)路線,設(shè)置自動(dòng)巡視功能.發(fā)現(xiàn)火點(diǎn)后一方面將火點(diǎn)信息采集發(fā)送回人工控制臺(tái),另一方面自動(dòng)訓(xùn)練數(shù)據(jù),修正行動(dòng)路線.因此使用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)火點(diǎn)有很廣泛的應(yīng)用前景.

      傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)中極小值比較多,所以很容易陷入局部極小值,這就要求對(duì)初始權(quán)值和閥值有要求,要使得初始權(quán)值和閥值隨機(jī)性足夠好,可以多次隨機(jī)來實(shí)現(xiàn).而訓(xùn)練次數(shù)多使得學(xué)習(xí)效率低,收斂速度慢.為了加速算法收斂.常用的改進(jìn)算法如:引入動(dòng)量項(xiàng)、自適應(yīng)步長(zhǎng)等,學(xué)習(xí)率隨著迭代次數(shù)增加而線性減小,此類方法可以減少訓(xùn)練次數(shù),但依然無法達(dá)到高速的訓(xùn)練效果,訓(xùn)練速度提高有限.

      2 火點(diǎn)預(yù)測(cè)模型構(gòu)建

      由于冬季溫度較低,焚燒秸稈不僅與所處位置有關(guān),而且與附近幾天的天氣情況也有很大的關(guān)系.

      2.1 數(shù)據(jù)來源

      由于每年的10月到12月是秸稈焚燒較為嚴(yán)重的幾個(gè)月,因此對(duì)某市自2011年至2015年每年10月至12月3個(gè)月每天的秸稈焚燒數(shù)量及天氣情況為數(shù)據(jù)輸入.并以2016年及2017年作為模型驗(yàn)證數(shù)據(jù).

      數(shù)據(jù)來源參考中華人民共和國生態(tài)環(huán)境部發(fā)布的數(shù)據(jù)[2],結(jié)合某市環(huán)保局提供的相關(guān)數(shù)據(jù).

      2.2 神經(jīng)網(wǎng)絡(luò)模型構(gòu)建

      在BP神經(jīng)網(wǎng)絡(luò)中,單個(gè)樣本有m個(gè)輸入,有n個(gè)輸出,在輸入層和輸出層之間通常還有若干個(gè)隱含層.一個(gè)三層的BP網(wǎng)絡(luò)就可以完成任意的m維到n維的映射.即這三層分別是輸入層 (I),隱含層 (H),輸出層(O)[3].如圖1所示.

      BP神經(jīng)網(wǎng)絡(luò)分為正向傳遞和誤差信號(hào)反向傳遞兩個(gè)過程.

      正向傳播過程如下:設(shè)節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的權(quán)值為wij,節(jié)點(diǎn)j的閥值為bj,每個(gè)節(jié)點(diǎn)的輸出值為xj,而每個(gè)節(jié)點(diǎn)的輸出值是根據(jù)上層所有節(jié)點(diǎn)的輸出值、當(dāng)前節(jié)點(diǎn)與上一層所有節(jié)點(diǎn)的權(quán)值和當(dāng)前節(jié)點(diǎn)的閥值還有激活函數(shù)來實(shí)現(xiàn)的.具體計(jì)算方法如下[4]:

      其中,f(Sj)為激活函數(shù),一般選取s型函數(shù)或者線性函數(shù).這里我們選取雙極性的Sigmoid函數(shù)在非線性處理后輸出.

      圖1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

      反向傳播過程:由于BP神經(jīng)網(wǎng)絡(luò)的主要目的是反復(fù)修正權(quán)值和閥值,使得誤差函數(shù)值達(dá)到最小,設(shè)輸出層的所有結(jié)果為dj,則誤差函數(shù)為

      通過沿著相對(duì)誤差平方和的最速下降方向,連續(xù)調(diào)整網(wǎng)絡(luò)的權(quán)值和閥值,根據(jù)梯度下降法,權(quán)值矢量的修正正比于當(dāng)前位置上E(w,b)的梯度,對(duì)于第j個(gè)輸出節(jié)點(diǎn)有梯度值:

      其中,

      那么對(duì)于隱含層和輸出層之間的權(quán)值為:

      由于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速率是固定的,因此網(wǎng)絡(luò)的收斂速度慢,需要較長(zhǎng)的訓(xùn)練時(shí)間[5].對(duì)于一些復(fù)雜問題,BP神經(jīng)網(wǎng)絡(luò)需要的訓(xùn)練時(shí)間可能非常長(zhǎng),這主要是由于學(xué)習(xí)速率太小造成的.在傳播過程中,其誤差的梯度變化是非線性的,當(dāng)學(xué)習(xí)率固定時(shí),當(dāng)學(xué)習(xí)率較小時(shí),學(xué)習(xí)速率較慢,則結(jié)果收斂較慢;若學(xué)習(xí)率較大時(shí),則容易引起振蕩.對(duì)此我們使用一種自適應(yīng)學(xué)習(xí)率對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn).可以將式(5)調(diào)整為:

      式(6)(7)(8)以進(jìn)化論中的進(jìn)退法為理論基礎(chǔ),即連續(xù)兩次觀測(cè)訓(xùn)練的誤差值,如果誤差下降則增大學(xué)習(xí)率,誤差的反彈在一定的范圍內(nèi),則保持步長(zhǎng),誤差的反彈超過一定限度則減小學(xué)習(xí)率[6],而學(xué)習(xí)率的變化根據(jù)誤差大小呈指數(shù)性增長(zhǎng)或減小,同時(shí)對(duì)誤差引起的振蕩有一定的抑制作用.這樣就能快速完成算法收斂,達(dá)成及時(shí)預(yù)測(cè)的效果.

      3 模型訓(xùn)練及驗(yàn)證

      由于輸入及輸出數(shù)據(jù)的位置信息是二維向量,為了驗(yàn)證模型的實(shí)用性,對(duì)輸出數(shù)據(jù)與實(shí)際數(shù)據(jù)作差取平方的形式體現(xiàn)兩者之間的誤差.即訓(xùn)練所得數(shù)據(jù)與實(shí)際位置的矢量差.

      地球并不是一個(gè)標(biāo)準(zhǔn)的球體,不同位置的經(jīng)度和緯度所對(duì)應(yīng)的地球切面圓的周長(zhǎng)也不同,故要算出誤差的矢量值,不能使用經(jīng)緯度直接計(jì)算,需要將經(jīng)緯度轉(zhuǎn)換為距離單位進(jìn)行計(jì)算.

      因測(cè)量所處的維度大致在北緯40°左右,計(jì)算誤差時(shí)以米(m)為單位,計(jì)算如下:

      其中,R為地球半徑,約 6371000 m,mj為東西方向即(經(jīng)度)上1 m對(duì)應(yīng)的實(shí)際度數(shù);mw為南北方向即(緯度)上1 m對(duì)應(yīng)的實(shí)際度數(shù);e(t)位置的矢量差,單位為米(m).

      根據(jù)訓(xùn)練所得結(jié)果,利用式(11),仿真誤差圖如圖2所示.

      圖2 輸出矢量誤差圖

      由圖2可以看出,模型輸出的矢量誤差基本在50米以內(nèi),當(dāng)使用無人機(jī)或無人車的攝像頭觀察火點(diǎn)時(shí),可以在有效范圍內(nèi)獲得火點(diǎn)的相關(guān)信息.

      在此基礎(chǔ)上,對(duì)比使用自適應(yīng)學(xué)習(xí)率前后的BP神經(jīng)網(wǎng)絡(luò)的迭代次數(shù).因?qū)W習(xí)率模型設(shè)置的初始值為0.1,故使用傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)時(shí)學(xué)習(xí)率即為0.1.

      由圖3、圖4可見,使用固定學(xué)習(xí)率需要在400次左右才能完成收斂,而使用自適應(yīng)學(xué)習(xí)率的BP神經(jīng)網(wǎng)絡(luò)只需要30次左右,即改進(jìn)后的神經(jīng)網(wǎng)絡(luò)大大減少了迭代次數(shù),加快了收斂過程,且不會(huì)發(fā)生較大的振蕩.

      圖3 固定學(xué)習(xí)率收斂曲線

      圖4 自適應(yīng)學(xué)習(xí)率收斂曲線

      解決了模型的可行性問題,下面就可以開展算法的實(shí)現(xiàn)工作了.

      4 BP 神經(jīng)網(wǎng)絡(luò)的 FPGA 實(shí)現(xiàn)

      FPGA的動(dòng)態(tài)可重構(gòu)技術(shù),指的是按照時(shí)序把整個(gè)設(shè)計(jì)劃分成各個(gè)不同的功能模塊,并且可以根據(jù)實(shí)際需要通過對(duì)功能模塊的增加或減少來動(dòng)態(tài)調(diào)整整個(gè)電路系統(tǒng).在設(shè)計(jì)中使用該技術(shù)可以使 FPGA 硬件資源利用率得到有效提高.

      神經(jīng)網(wǎng)絡(luò)的實(shí)質(zhì)是采用梯度下降法來不斷修改神經(jīng)元之間的聯(lián)接權(quán)值,以此達(dá)到求解最優(yōu)解的目的.文中使用Xilinx公司的Zynq-7000系列FPGA芯片,使用400 MB作為主時(shí)鐘,Verilog為開發(fā)語言.

      根據(jù)算法主要將神經(jīng)網(wǎng)絡(luò)分為激活函數(shù)模塊、運(yùn)算模塊、數(shù)據(jù)更新和外圍接口模塊四個(gè)模塊.

      4.1 激活函數(shù)

      由于輸入層的激活函數(shù)為非線性函數(shù),由于激活函數(shù)選取的為雙線性S函數(shù),將數(shù)據(jù)分割為[0,1]、[1,2]、[2,3]、[3,4]等[7],在這些區(qū)間內(nèi)通過文獻(xiàn)[7]的逼近函數(shù)實(shí)現(xiàn)激活函數(shù).

      4.2 運(yùn)算模塊

      運(yùn)算模塊主要實(shí)現(xiàn)數(shù)據(jù)的乘、累加,使用FPGA內(nèi)置的DSP48E輔助完成功能.DSP48E是Xilinx 7系列FPGA的專用DSP模塊,運(yùn)算速度可以達(dá)到600 M/s以上,適合運(yùn)用于乘累加運(yùn)算.

      由于運(yùn)算過程是大量的定點(diǎn)數(shù)運(yùn)算,直接運(yùn)算會(huì)存在截尾操作,這樣就會(huì)影響運(yùn)算的精度,所以運(yùn)用Xilinx自帶的IP核將定點(diǎn)數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù),然后進(jìn)行乘加運(yùn)算,運(yùn)算后再利用IP核將浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)輸出.同時(shí)運(yùn)算模塊需要在正向傳播和反向傳播中交替使用,這就需要將不同時(shí)刻的運(yùn)算值交替更新到不同的寄存器中.

      4.3 權(quán)值更新

      權(quán)值更新包括權(quán)值修正量的計(jì)算和權(quán)值更新兩部分.根據(jù)式(6)到式(8),權(quán)值修正計(jì)算設(shè)計(jì)如圖5所示.

      圖5 權(quán)值更新模塊示意圖

      圖5 中W(k)為k時(shí)刻的權(quán)值,eta_η為學(xué)習(xí)率,D(k)為k時(shí)的梯度值.

      學(xué)習(xí)率的計(jì)算部分為將上一次計(jì)算的梯度值與本次計(jì)算的梯度值取最高位,即符號(hào)位進(jìn)行異或,得到符號(hào)函數(shù)的結(jié)果,再通過移位完成學(xué)習(xí)率的更新.使用新一輪的學(xué)習(xí)率與本次的權(quán)值,再根據(jù)梯度值,得出下次計(jì)算的權(quán)值.

      由于權(quán)值在學(xué)習(xí)訓(xùn)練后需要一直保存,在計(jì)算完本次收斂的權(quán)值后,數(shù)據(jù)需要掉電保存,所以這里使用外掛 Flash,型號(hào)為AT24C16A.它是一個(gè)標(biāo)準(zhǔn)的I2C接口總線的Flash.FPGA在完成權(quán)值修正計(jì)算后將更新的權(quán)值存儲(chǔ)在外部Flash中.而其他中間數(shù)據(jù)則存在內(nèi)部寄存器中.

      4.4 外圍接口

      外圍接口主要實(shí)現(xiàn)數(shù)據(jù)的輸入、Flash控制(I2C接口)等.

      4.5 總控制狀態(tài)機(jī)

      如圖6所示,算法的狀態(tài)跳轉(zhuǎn)首先讀取Flash中的權(quán)值信息,然后從正向傳播到反向誤差的訓(xùn)練,利用上文提到的各個(gè)模塊將訓(xùn)練所得權(quán)值重新存儲(chǔ)到Flash中,直到所得輸出基本到達(dá)期望值時(shí)停止訓(xùn)練.

      圖6 神經(jīng)網(wǎng)絡(luò)控制狀態(tài)機(jī)

      5 仿真及驗(yàn)證

      根據(jù)圖5設(shè)計(jì)學(xué)習(xí)率更新模塊,其仿真如圖7所示.

      圖7中eta_n為學(xué)習(xí)率,vid_data為梯度值,在誤差訓(xùn)練階段,eta_n根據(jù)vid_data的改變進(jìn)行移位,改變學(xué)習(xí)率.

      完成FPGA設(shè)計(jì)后,將FPGA輸出結(jié)果保存為txt格式,然后導(dǎo)入 Matlab進(jìn)行數(shù)據(jù)比較,以2017年10月到12月的數(shù)據(jù)為參考,其結(jié)果誤差如圖8所示.

      由圖8發(fā)現(xiàn),FPGA輸出的矢量誤差最大約50 m,與模型誤差基本一致.

      圖7 學(xué)習(xí)率自適應(yīng)仿真圖

      圖8 FPGA 實(shí)際輸出矢量誤差

      設(shè)計(jì)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率為0.1,改進(jìn)BP算法初始學(xué)習(xí)率為0.1,均為三層神經(jīng)網(wǎng)絡(luò),激活函數(shù)為式(2).

      對(duì)比使用PC端傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)、改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)、及FPGA端使用傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)、改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練速率.PC端使用C語音完成設(shè)計(jì),使用VS2013作為開發(fā)工具,使用CPU的主頻為3.6 GHz.FPGA使用文中的設(shè)計(jì)模塊.而由于FPGA不能直接計(jì)算算法消耗的時(shí)間,故從讀完Flash中的權(quán)值開始計(jì)數(shù),直到訓(xùn)練完成輸出期望的數(shù)據(jù),計(jì)算消耗的周期,從而算出時(shí)間.

      表1 不同平臺(tái)上算法的消耗時(shí)間 (單位:s)

      由表1可以看出在經(jīng)過自適應(yīng)學(xué)習(xí)率改進(jìn)和使用硬件實(shí)現(xiàn)的BP神經(jīng)網(wǎng)絡(luò),在完成預(yù)測(cè)的基礎(chǔ)上學(xué)習(xí)和訓(xùn)練效率上提高了約200倍.

      6 結(jié)束語

      本文從冬季秸稈焚燒的火點(diǎn)入手,根據(jù)往年留下的大量數(shù)據(jù),設(shè)計(jì)了一種基于BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)模型,比之傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò),其收斂速度提高了近10倍,從而大大加快了訓(xùn)練的速度.與此同時(shí)利用FPGA可重構(gòu)技術(shù),將設(shè)計(jì)的模型在硬件上完成設(shè)計(jì)及實(shí)現(xiàn),對(duì)比輸出數(shù)據(jù),驗(yàn)證了模型與FPGA設(shè)計(jì)的準(zhǔn)確性.利用改進(jìn)后的算法和FPGA硬件實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò),比之PC端的BP神經(jīng)網(wǎng)絡(luò),運(yùn)算速度獲得大大提高.這不僅在環(huán)境保護(hù)火點(diǎn)預(yù)防監(jiān)測(cè)有很大的應(yīng)用前景,同時(shí)也為后期無人機(jī)及無人車的路線自動(dòng)規(guī)劃提供了一定的理論基礎(chǔ).

      猜你喜歡
      火點(diǎn)權(quán)值運(yùn)算
      一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
      重視運(yùn)算與推理,解決數(shù)列求和題
      CONTENTS
      亞像元火點(diǎn)對(duì)紅外預(yù)警衛(wèi)星的輻射干擾特性
      有趣的運(yùn)算
      人身上有5個(gè)祛火點(diǎn)
      點(diǎn)煙頌
      鹿鳴(2018年1期)2018-01-30 12:05:42
      基于權(quán)值動(dòng)量的RBM加速學(xué)習(xí)算法研究
      “整式的乘法與因式分解”知識(shí)歸納
      撥云去“誤”學(xué)乘除運(yùn)算
      禄丰县| 阳信县| 苍溪县| 屏边| 海城市| 房山区| 长治市| 晋中市| 文安县| 铁岭市| 永嘉县| 紫云| 江安县| 青岛市| 穆棱市| 广平县| 平安县| 云梦县| 延吉市| 讷河市| 乌苏市| 潜江市| 朝阳市| 中牟县| 四子王旗| 巴青县| 峡江县| 丰台区| 邵阳市| 屏东县| 聂拉木县| 二连浩特市| 麦盖提县| 河西区| 高雄市| 丰城市| 芜湖市| 虞城县| 噶尔县| 文水县| 泰和县|