李艷英+++于春曉+++侯永海
【 摘 要 】 神經網絡控制算法是近年來的研究熱點,其中的BP神經網絡控制算法是最常用的控制算法,它是前饋網絡中的核心部分,可以無限逼近任意非線性,實現數據壓縮。本文運用BP神經網絡控制算法,借助Matlab神經網絡工具箱函數,編寫程序,首先做了一個非線性函數的逼近,其次重點運用BP神經網絡實現圖像壓縮,通過試驗比較,選擇合適的訓練函數,設定最小誤差和最大訓練步數,實現圖像壓縮,并計算了圖像的信噪比及峰值信噪比,比較了不同壓縮比下圖像質量,最后分析了BP神經網絡的局限性。
【 關鍵詞 】 神經網絡;Matlab;圖像壓縮
1 引言
BP神經網絡歸類于前饋型神經網絡,原始信息由輸入單元輸入,經輸入單元分配到隱含層的各神經元,除輸入層以外,每個神經元的信息是由上一層神經元狀態與相對應的連接權值決定的,輸出層可以認為是最后一層隱含層。除輸出層外,每一個神經元都與下一層的各神經元相連,而同一層的神經元之間沒有連接。
BP神經網絡主要應用于非線性函數的逼近、數據壓縮、模式識別、分類等領域。
在BP神經網絡中選擇合適的網絡層數、各層神經元個數及訓練函數就可以實現從輸入到輸出的非線性映射。其學習過程可分為工作信號的正向傳播和誤差的反向傳播兩個過程,傳播過程如圖1所示。
(1)工作信號的正向傳播
信號由輸入經過隱含層到輸出層,在信號向前傳播的過程中,網絡的各層權值是固定不變的,每一層神經元的信息只影響下一層的神經元而不會影響同層或者上一層神經元。如果輸出層的輸出結果與期望值不同就轉入誤差的反向傳播。
(2)誤差的反向傳播
網絡的輸出與期望值之間的差值就是誤差信號。誤差信號由輸出層開始逐層向前傳播,并且將誤差分攤給各層的所有神經元,再由此獲得各個層的誤差信號,通過修正各神經元之間的連接權值,使誤差減小。這個通過信號的正向傳播和誤差的反向傳播來不斷修正各神經元之間的連接權值的過程是不斷進行的,一直運行到預先設定的訓練步數或者達到設定的誤差就停止。
2 BP神經網絡的應用
2.1 基于BP神經網絡函數逼近的實現
2.1.1 BP神經網絡的函數逼近能力
BP神經網絡是一個輸入到輸出的高度非線性映射,即F:Rn→Rm,f(x)=Y。對于樣本集合:輸入xi和yi輸出都可認為存在某一映射g使得g(xi)=yi(i=1,2,3...)成立。求出一個映射f,使得在某種意義下,f是g的最佳逼近。
2.1.2基于BP神經網絡函數逼近的Matlab實現
設要逼近的非線性函數是:y=5+2e(1-x)cos(2πx),-0.4?x?3.6。建立一個三層網絡,設置隱含層神經元個數為20,最小誤差為0.01最大訓練步數為50。編寫Matlab程序,得到誤差曲線如圖2所示。
由仿真結果圖可以得出,經過訓練后的曲線和原函數曲線非常接近,由此說明,訓練后的神經網絡函數逼近效果很好。
2.2 BP神經網絡在圖像壓縮中的應用
圖像是最重要的一種信息傳遞方式,然而,圖像數據量大給信息傳遞帶來了困難,當前的硬件技術所能提供的存儲資源和網絡寬帶遠不能滿足日益增長的圖像傳遞要求。圖像作為一種重要的資源,對它進行壓縮處理在一定程度上能夠減緩它對硬件的要求。
2.2.1 圖像冗余
圖像數據壓縮的根本方法是減小圖像冗余,數據圖像的冗余主要表現在以下幾種形式:空間冗余、時間冗余、結構冗余、視覺冗余、知識冗余等,有了圖像的這些冗余信息,就找到了圖像壓縮的根據。此外,根據大面積著色原理,圖像必須在一定面積內存在相同或相近的顏色,圖像中相鄰像素間存在的相似性產生了圖像預測編碼。
2.2.2 圖像壓縮的分類及圖像性能指標
圖像壓縮的實質就是去除多余數據,依據在壓縮過程中是否有信息損失,可以將圖像壓縮分為兩種,有損壓縮和無損壓縮。無損壓縮沒有信息的損失,解壓后可以完全恢復,例如一些文件的壓縮都可以完全恢復。有損壓縮則不能完全恢復,有一定的信息損失,但不會影響對信息的理解。
目前比較流行的壓縮方式有JPEG壓縮,基于小波變換的圖像壓縮算法,分型壓縮,矢量量化壓縮。依據BP神經網絡對非線性能夠無限逼近的能力,可以保證在比較高的圖像質量下盡可能實現較高的壓縮比。
圖像性能指標有圖像的信噪比及峰值信噪比。
(1)圖像的信噪比(SNR)是衡量圖像質量高低的重要指標,見公式(5),其中M和N是圖像長和寬上的像素點數,f(i,j)和g(i,j)分別是原始圖像和重構圖像在點(i,j)處的灰度值,信噪比越高說明圖像質量越高。
SNR=10log
(1)
(2)峰值信噪比經常用作圖像壓縮等領域中信號重建質量的測量方法,見公式(6),其中M和N是圖像長和寬上的像素點數,f(i,j)和g(i,j)分別是原始圖像和重構圖像在點(i,j)處的灰度值,其值越大,表示圖像失真越小。
PSNR=10log
(2)
2.3 BP神經網絡實現圖像壓縮
由上述可知,BP神經網絡可以逼近非線性函數,而圖像的各像素點之間是非線性關系,故運用BP神經網絡,通過選取合適的網絡層數和訓練函數就可以實現圖像壓縮。
2.3.1 網絡層數的選擇
神經網絡設計中,隱含層層數的確定要根據實際應用的需要。雖然隱含層層數多可以降低誤差,提高精確度,但是也增加了神經網絡的訓練時間,而誤差完全可以通過改變隱含層神經元個數或者使用合適的訓練函數來減小。本文選擇三層神經網絡,實踐證明,三層神經網絡可以達到很好的效果。endprint
2.3.2訓練函數的選取
針對不同的應用,BP神經網絡提供了多種訓練方法。不同的訓練函數對應結果如表1。
由此可見,traincgp(Polak-Ribiere變換梯度法)有較快的收斂速度,本文選擇此訓練函數。
2.3.3 基于BP神經網絡圖像壓縮原理及仿真結果
網絡結構的確定包括輸入層、隱含層和輸出層,隱含層的節點數小于輸入節點數,輸入節點數和輸出節點數相同[8]。網絡在進行學習時,輸入會將網絡數據通過隱含層映射到輸出作為導師信號,在這個學習的過程中,輸入層到隱含層稱為網絡的編碼過程,隱含層到輸出層稱之為網絡的解碼過程。
將訓練用圖像的所有像素點作為壓縮網絡的輸入,為控制網絡的規模,對圖像進行劃分。設訓練用圖像由N×N個像素點構成,將其劃分為M個子圖像塊,每個子圖像塊分別由p×p的子像素塊構成。為了加快收斂速度,保證性能的穩定性,對圖像進行歸一化處理。歸一化可以使用mapminmax函數進行,但是考慮到圖像數據的特殊性,像素點灰度值為整數,且處于0-255之間,因此歸一化處理就可以統一將數據除以255。
用Matlab創建一個三層網絡,函數如下:
net=newff(minmax(P),[32 ,64],{'tansig','logsig'},'traindx','learngd','mse')。
其中,應用的激活函數為tansig和logsig,采用trainoss訓練函數網絡初始權值和閾值均取隨機數,然后開始訓練網絡,最小誤差設置為0.001,最大訓練步數設為10000。運行結果如下,Matlab程序流程圖如圖5所示,仿真結果如圖7所示。
TRAINOSS-srchbac, Epoch 16997/20000, MSE 0.000998813/0.001, Gradient 0.00206669/1e-006
TRAINOSS, Performance goal met.
PSNR = 29.9979
SNR = 22.8039
由運行結果可得,圖像壓縮后峰值信噪比是29.997,信噪比是22.8039,誤差已經達到要求。
訓練網絡誤差曲線如圖3所示。
由誤差曲線可得,在訓練步數達到1000左右的時候,誤差下降趨勢趨于平緩,因此選擇訓練步數為1000,然后改變隱含層神經元個數,比較不同的壓縮比情況下的誤差、信噪比及峰值信噪比,不同壓縮比下的結果如表2。
由表可得,隨著壓縮比的增大,信噪比和峰值信噪比減小,誤差增大。
2.4 BP網絡的局限性
在實際應用中,BP神經網絡存在的幾個問題:(1)誤差下降慢,訓練次數多,影響收斂時間;(2)隱含層神經元個數是靠經驗得來的,沒有可靠的理論依據;(3)沒有考慮到測試樣本或者訓練樣本對算法的影響。
參考文獻
[1] 鐘珞,饒文碧,鄒承明.人工神經網絡及其融合應用技術[M].北京:科學出版社,2007: 23-27.
[2] 高雋.人工神經網絡原理及仿真實例[M].北京:機械工業出版社,2007:2-78.
[3] 倪志偉,李鋒剛,毛雪岷.智能管理技術與方法[M].北京:科學出版社,2007:12-33.
[4] Andrea Goldsmith. Wireless Communications[M]. Cambrigde University Press,2005:1-5.
[5] Martin T. Hagan,Howard B. Demuth,Mark H. Beale.神經網絡設計[M].北京:機械工業出版社出版社,2002:3-17.
[6] 張立明.人工神經網絡的模型及其應用[M].上海:復旦大學出版社,1993:7-99.
[7] 徐麗娜.神經網絡控制[M].北京:電子工業出版社,2003:10-80.
[8] 錢海軍.基于BP神經網絡的圖像壓縮的Matlab實現[J].電腦開發與應用, 2011,24(12):77-79.
[9] 劉春艷.基于遺傳算法—BP神經網絡的主汽溫控制系統的研究[D].太原:太原理工大學碩士研究生學位論文,2006.
基金項目:
山東省教育科學“十二五”規劃課題,課題編號:2011GG256。
作者簡介:
李艷英(1983-),女,山東東營人,畢業于天津大學,碩士學位,現任青島工學院機電工程學院副院長,講師;曾參與省級科研課題一項、省級教研課題一項,現主持省級科研課題一項;主要研究方向和關注領域:模式識別與人工智能。endprint
2.3.2訓練函數的選取
針對不同的應用,BP神經網絡提供了多種訓練方法。不同的訓練函數對應結果如表1。
由此可見,traincgp(Polak-Ribiere變換梯度法)有較快的收斂速度,本文選擇此訓練函數。
2.3.3 基于BP神經網絡圖像壓縮原理及仿真結果
網絡結構的確定包括輸入層、隱含層和輸出層,隱含層的節點數小于輸入節點數,輸入節點數和輸出節點數相同[8]。網絡在進行學習時,輸入會將網絡數據通過隱含層映射到輸出作為導師信號,在這個學習的過程中,輸入層到隱含層稱為網絡的編碼過程,隱含層到輸出層稱之為網絡的解碼過程。
將訓練用圖像的所有像素點作為壓縮網絡的輸入,為控制網絡的規模,對圖像進行劃分。設訓練用圖像由N×N個像素點構成,將其劃分為M個子圖像塊,每個子圖像塊分別由p×p的子像素塊構成。為了加快收斂速度,保證性能的穩定性,對圖像進行歸一化處理。歸一化可以使用mapminmax函數進行,但是考慮到圖像數據的特殊性,像素點灰度值為整數,且處于0-255之間,因此歸一化處理就可以統一將數據除以255。
用Matlab創建一個三層網絡,函數如下:
net=newff(minmax(P),[32 ,64],{'tansig','logsig'},'traindx','learngd','mse')。
其中,應用的激活函數為tansig和logsig,采用trainoss訓練函數網絡初始權值和閾值均取隨機數,然后開始訓練網絡,最小誤差設置為0.001,最大訓練步數設為10000。運行結果如下,Matlab程序流程圖如圖5所示,仿真結果如圖7所示。
TRAINOSS-srchbac, Epoch 16997/20000, MSE 0.000998813/0.001, Gradient 0.00206669/1e-006
TRAINOSS, Performance goal met.
PSNR = 29.9979
SNR = 22.8039
由運行結果可得,圖像壓縮后峰值信噪比是29.997,信噪比是22.8039,誤差已經達到要求。
訓練網絡誤差曲線如圖3所示。
由誤差曲線可得,在訓練步數達到1000左右的時候,誤差下降趨勢趨于平緩,因此選擇訓練步數為1000,然后改變隱含層神經元個數,比較不同的壓縮比情況下的誤差、信噪比及峰值信噪比,不同壓縮比下的結果如表2。
由表可得,隨著壓縮比的增大,信噪比和峰值信噪比減小,誤差增大。
2.4 BP網絡的局限性
在實際應用中,BP神經網絡存在的幾個問題:(1)誤差下降慢,訓練次數多,影響收斂時間;(2)隱含層神經元個數是靠經驗得來的,沒有可靠的理論依據;(3)沒有考慮到測試樣本或者訓練樣本對算法的影響。
參考文獻
[1] 鐘珞,饒文碧,鄒承明.人工神經網絡及其融合應用技術[M].北京:科學出版社,2007: 23-27.
[2] 高雋.人工神經網絡原理及仿真實例[M].北京:機械工業出版社,2007:2-78.
[3] 倪志偉,李鋒剛,毛雪岷.智能管理技術與方法[M].北京:科學出版社,2007:12-33.
[4] Andrea Goldsmith. Wireless Communications[M]. Cambrigde University Press,2005:1-5.
[5] Martin T. Hagan,Howard B. Demuth,Mark H. Beale.神經網絡設計[M].北京:機械工業出版社出版社,2002:3-17.
[6] 張立明.人工神經網絡的模型及其應用[M].上海:復旦大學出版社,1993:7-99.
[7] 徐麗娜.神經網絡控制[M].北京:電子工業出版社,2003:10-80.
[8] 錢海軍.基于BP神經網絡的圖像壓縮的Matlab實現[J].電腦開發與應用, 2011,24(12):77-79.
[9] 劉春艷.基于遺傳算法—BP神經網絡的主汽溫控制系統的研究[D].太原:太原理工大學碩士研究生學位論文,2006.
基金項目:
山東省教育科學“十二五”規劃課題,課題編號:2011GG256。
作者簡介:
李艷英(1983-),女,山東東營人,畢業于天津大學,碩士學位,現任青島工學院機電工程學院副院長,講師;曾參與省級科研課題一項、省級教研課題一項,現主持省級科研課題一項;主要研究方向和關注領域:模式識別與人工智能。endprint
2.3.2訓練函數的選取
針對不同的應用,BP神經網絡提供了多種訓練方法。不同的訓練函數對應結果如表1。
由此可見,traincgp(Polak-Ribiere變換梯度法)有較快的收斂速度,本文選擇此訓練函數。
2.3.3 基于BP神經網絡圖像壓縮原理及仿真結果
網絡結構的確定包括輸入層、隱含層和輸出層,隱含層的節點數小于輸入節點數,輸入節點數和輸出節點數相同[8]。網絡在進行學習時,輸入會將網絡數據通過隱含層映射到輸出作為導師信號,在這個學習的過程中,輸入層到隱含層稱為網絡的編碼過程,隱含層到輸出層稱之為網絡的解碼過程。
將訓練用圖像的所有像素點作為壓縮網絡的輸入,為控制網絡的規模,對圖像進行劃分。設訓練用圖像由N×N個像素點構成,將其劃分為M個子圖像塊,每個子圖像塊分別由p×p的子像素塊構成。為了加快收斂速度,保證性能的穩定性,對圖像進行歸一化處理。歸一化可以使用mapminmax函數進行,但是考慮到圖像數據的特殊性,像素點灰度值為整數,且處于0-255之間,因此歸一化處理就可以統一將數據除以255。
用Matlab創建一個三層網絡,函數如下:
net=newff(minmax(P),[32 ,64],{'tansig','logsig'},'traindx','learngd','mse')。
其中,應用的激活函數為tansig和logsig,采用trainoss訓練函數網絡初始權值和閾值均取隨機數,然后開始訓練網絡,最小誤差設置為0.001,最大訓練步數設為10000。運行結果如下,Matlab程序流程圖如圖5所示,仿真結果如圖7所示。
TRAINOSS-srchbac, Epoch 16997/20000, MSE 0.000998813/0.001, Gradient 0.00206669/1e-006
TRAINOSS, Performance goal met.
PSNR = 29.9979
SNR = 22.8039
由運行結果可得,圖像壓縮后峰值信噪比是29.997,信噪比是22.8039,誤差已經達到要求。
訓練網絡誤差曲線如圖3所示。
由誤差曲線可得,在訓練步數達到1000左右的時候,誤差下降趨勢趨于平緩,因此選擇訓練步數為1000,然后改變隱含層神經元個數,比較不同的壓縮比情況下的誤差、信噪比及峰值信噪比,不同壓縮比下的結果如表2。
由表可得,隨著壓縮比的增大,信噪比和峰值信噪比減小,誤差增大。
2.4 BP網絡的局限性
在實際應用中,BP神經網絡存在的幾個問題:(1)誤差下降慢,訓練次數多,影響收斂時間;(2)隱含層神經元個數是靠經驗得來的,沒有可靠的理論依據;(3)沒有考慮到測試樣本或者訓練樣本對算法的影響。
參考文獻
[1] 鐘珞,饒文碧,鄒承明.人工神經網絡及其融合應用技術[M].北京:科學出版社,2007: 23-27.
[2] 高雋.人工神經網絡原理及仿真實例[M].北京:機械工業出版社,2007:2-78.
[3] 倪志偉,李鋒剛,毛雪岷.智能管理技術與方法[M].北京:科學出版社,2007:12-33.
[4] Andrea Goldsmith. Wireless Communications[M]. Cambrigde University Press,2005:1-5.
[5] Martin T. Hagan,Howard B. Demuth,Mark H. Beale.神經網絡設計[M].北京:機械工業出版社出版社,2002:3-17.
[6] 張立明.人工神經網絡的模型及其應用[M].上海:復旦大學出版社,1993:7-99.
[7] 徐麗娜.神經網絡控制[M].北京:電子工業出版社,2003:10-80.
[8] 錢海軍.基于BP神經網絡的圖像壓縮的Matlab實現[J].電腦開發與應用, 2011,24(12):77-79.
[9] 劉春艷.基于遺傳算法—BP神經網絡的主汽溫控制系統的研究[D].太原:太原理工大學碩士研究生學位論文,2006.
基金項目:
山東省教育科學“十二五”規劃課題,課題編號:2011GG256。
作者簡介:
李艷英(1983-),女,山東東營人,畢業于天津大學,碩士學位,現任青島工學院機電工程學院副院長,講師;曾參與省級科研課題一項、省級教研課題一項,現主持省級科研課題一項;主要研究方向和關注領域:模式識別與人工智能。endprint