劉姝敏劉海龍國(guó)網(wǎng)山西省電力公司檢修分公司國(guó)網(wǎng)太原供電公司
?
基于LabVIEW實(shí)現(xiàn)的BP神經(jīng)網(wǎng)絡(luò)
劉姝敏1劉海龍2
國(guó)網(wǎng)山西省電力公司檢修分公司1國(guó)網(wǎng)太原供電公司2
摘要:圖形化編程環(huán)境LabVIEW編寫圖形化語(yǔ)言程序可以有效提高設(shè)計(jì)者的編程效率人工智能可以利用計(jì)算機(jī)模擬人類大腦的思維?;贚abVIEW編寫的BP神經(jīng)網(wǎng)絡(luò),可以方便靈活的應(yīng)用于人類的各種生產(chǎn)經(jīng)營(yíng)活動(dòng)。
關(guān)鍵字:LabVIEW BP 神經(jīng)網(wǎng)絡(luò)
虛擬儀器LabVIEW是美國(guó)國(guó)家儀器公司提供的圖形化編程環(huán)境,專為測(cè)量、數(shù)據(jù)分析而設(shè)計(jì)的。LabVIEW擁有龐大的函數(shù)庫(kù)和子程序庫(kù),涉及數(shù)據(jù)采集、GPIB、數(shù)據(jù)分析、數(shù)據(jù)顯示、數(shù)據(jù)存儲(chǔ)和通訊等函數(shù)庫(kù)和子程序庫(kù)。LabVIEW不同于C 、C++ 和java 等文本方式編程語(yǔ)言,它不僅是圖形化的編程語(yǔ)言,還提供編程環(huán)境和運(yùn)行系統(tǒng)。相對(duì)于傳統(tǒng)的編程語(yǔ)言,虛擬儀器LabVIEW更具靈活性,編寫圖形化語(yǔ)言程序可以有效提高設(shè)計(jì)者的編程效率。LabVIEW程序是由虛擬儀器VI組成的,一個(gè)LabVIEW程序可以由一個(gè)或多個(gè)VI組成。每個(gè)VI由前面板、框圖和圖標(biāo)三部分組成。LabVIEW的前面板模擬了物理儀器的前面板,是交互式用戶界面,包含旋鈕、按鈕、指示器、圖形和其他控件;框圖是設(shè)計(jì)者編寫的程序源代碼,框圖由低級(jí)VI、內(nèi)置函數(shù)、常量和程序執(zhí)行控制結(jié)構(gòu)等組成,由連線將適當(dāng)?shù)膶?duì)象連接起來(lái)定義各組成元素的數(shù)據(jù)流;圖標(biāo)是VI的圖形表示,使VI可以在另外的VI框圖中使用。
虛擬儀器是分層和模塊化的程序,利用這種模塊式的編程方式,可以實(shí)現(xiàn)模塊化編程,每一個(gè)VI都可以作為上層程序或子程序。設(shè)計(jì)者在編程時(shí),可以將程序功能劃分為多個(gè)子任務(wù),按分層、分級(jí)的思想逐個(gè)實(shí)現(xiàn)每一個(gè)任務(wù)。另外由于每一個(gè)任務(wù)都是一個(gè)VI,每一個(gè)VI都可以單獨(dú)執(zhí)行,便于設(shè)計(jì)者進(jìn)行調(diào)試。
人工智能是指用計(jì)算機(jī)模擬人類大腦的思維。人工神經(jīng)網(wǎng)絡(luò)是人工智能的一個(gè)分支,因其具有智能的學(xué)習(xí)能力、可以并行模擬人腦的功能而被廣泛研究和應(yīng)用。在人工神經(jīng)網(wǎng)絡(luò)發(fā)展的幾十年歷史中,已經(jīng)成功地開(kāi)發(fā)出數(shù)十種神經(jīng)網(wǎng)絡(luò),包括ART網(wǎng)絡(luò)、BP網(wǎng)絡(luò)、RBF 網(wǎng)絡(luò)、Hopfield 網(wǎng)絡(luò)、自適應(yīng)共振網(wǎng)絡(luò)和小波神經(jīng)網(wǎng)絡(luò)等。在眾多神經(jīng)網(wǎng)絡(luò)之中,反向傳播網(wǎng)絡(luò)(BP)是目前應(yīng)用最為廣泛的一種神經(jīng)網(wǎng)絡(luò)。BP網(wǎng)絡(luò)是一種前向多層的誤差反傳學(xué)習(xí)算法,它不僅具有輸入和輸出層,還具有一層到多層的隱含層。為三層BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖。BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程由正向傳播和反向傳播兩部分組成,在正向傳播過(guò)程中,輸入數(shù)據(jù)經(jīng)輸入層、隱含層的處理后傳向輸出層,利用輸出層誤差估算輸出層的前導(dǎo)層誤差,再用這個(gè)誤差估算前一層的誤差,如此反復(fù)反傳誤差,直到確定輸入層誤差為止。
BP神經(jīng)網(wǎng)絡(luò)的每一層神經(jīng)元都只影響下一層神經(jīng)網(wǎng)絡(luò)的狀態(tài),當(dāng)輸出層不能得到預(yù)期的理想輸出時(shí),BP神經(jīng)網(wǎng)絡(luò)進(jìn)入反傳模式,通過(guò)誤差的形式,將誤差從輸出層向輸入層各層依次調(diào)整各層的權(quán)值和閾值,從而逐級(jí)減小誤差,直到達(dá)到系統(tǒng)設(shè)計(jì)的精度為止。BP神經(jīng)網(wǎng)絡(luò)實(shí)際原理就是通過(guò)求誤差函數(shù)的極小值,反復(fù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),使權(quán)值和閾值沿著誤差函數(shù)的負(fù)梯度改變,直到收斂于最小點(diǎn)。
采用梯度下降法的三層BP神經(jīng)網(wǎng)絡(luò)算法計(jì)算過(guò)程如下:設(shè)x i 為輸入層第i 個(gè)神經(jīng)元的輸入值;y k 為輸出層第j 個(gè)神經(jīng)元的輸出值;tk 為輸出層第j 個(gè)神經(jīng)元的理想輸出值;w ji為隱含層第j 個(gè)神經(jīng)元到輸入層第i個(gè)神經(jīng)元的權(quán)值;vkj為輸出層第k 個(gè)神經(jīng)元到隱含層第j個(gè)神經(jīng)元的權(quán)值。3 BP神經(jīng)網(wǎng)絡(luò)程序設(shè)計(jì)為實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò),采用虛擬儀器LabVIEW作為BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和應(yīng)用平臺(tái),利用LabVIEW提供的數(shù)學(xué)和矩陣工具函數(shù)進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)。
利用LabVIEW中編寫的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練程序,對(duì)多個(gè)函數(shù)及數(shù)學(xué)樣本進(jìn)行訓(xùn)練,訓(xùn)練后得到權(quán)值矩陣,進(jìn)行應(yīng)用。經(jīng)驗(yàn)證,用LabVIEW中編寫的BP神經(jīng)網(wǎng)絡(luò)成功率高達(dá)99.99%,誤差小于0.01% 。LabVIEW中編寫的三層BP神經(jīng)網(wǎng)絡(luò)為人工智能的實(shí)現(xiàn)提供了一種簡(jiǎn)潔、直觀的實(shí)現(xiàn)方法。
參考文獻(xiàn)
[1] Travis J,Kring J .LabVIEW大學(xué)使用教程(第3版)[M].喬瑞萍,譯.北京:電子工業(yè)出版社,2008.
[2] 虞和濟(jì),陳長(zhǎng)征,張省,等.基于神經(jīng)網(wǎng)絡(luò)的智能診斷[M].北京:冶金工業(yè)出版社,2000.
[3] 敖志剛.人工智能及專家系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2010.