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