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

?

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

2019-03-11 06:02王古森
關(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)步長等,學(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ò)的收斂速度慢,需要較長的訓(xùn)練時(shí)間[5].對(duì)于一些復(fù)雜問題,BP神經(jīng)網(wǎng)絡(luò)需要的訓(xùn)練時(shí)間可能非常長,這主要是由于學(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),則保持步長,誤差的反彈超過一定限度則減小學(xué)習(xí)率[6],而學(xué)習(xí)率的變化根據(jù)誤差大小呈指數(shù)性增長或減小,同時(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)的地球切面圓的周長也不同,故要算出誤差的矢量值,不能使用經(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)值和用戶行為序列的電影推薦模型
2015—2020年河南省秸稈焚燒火點(diǎn)時(shí)空分布及影響因子
重視運(yùn)算與推理,解決數(shù)列求和題
吉林一號(hào)光譜衛(wèi)星在火點(diǎn)識(shí)別中的應(yīng)用
人身上有5個(gè)祛火點(diǎn)
長算式的簡便運(yùn)算
點(diǎn)煙頌
“整式的乘法與因式分解”知識(shí)歸納
財(cái)務(wù)風(fēng)險(xiǎn)跟蹤評(píng)價(jià)方法初探
基于洪泛查詢的最短路徑算法在智能交通系統(tǒng)中的應(yīng)用