張志霞,劉艷昌
(河南科技學(xué)院,河南新鄉(xiāng)453003)
隨著圖像信息數(shù)字化技術(shù)的發(fā)展和廣泛應(yīng)用,海量數(shù)據(jù)的存儲(chǔ)和傳輸已經(jīng)成為多媒體通信技術(shù)領(lǐng)域面臨的最大難題.提高圖像數(shù)據(jù)的壓縮技術(shù)是解決問題的關(guān)鍵.幾十年來,圖像壓縮技術(shù)的研究取得了大量的成果,據(jù)統(tǒng)計(jì),目前已有30~40多種圖像壓縮編碼算法面世.和一些傳統(tǒng)的壓縮方法相比,人工神經(jīng)網(wǎng)絡(luò)因其特殊的網(wǎng)絡(luò)結(jié)構(gòu)、良好的容錯(cuò)性、自組織和自適應(yīng)性,在圖像壓縮過程中不必借助于某種預(yù)先確定的數(shù)據(jù)編碼算法,而是完全根據(jù)圖像本身的信息特點(diǎn),可以實(shí)現(xiàn)快速經(jīng)濟(jì)的圖像壓縮,因此在圖像壓縮領(lǐng)域中得到廣泛的應(yīng)用[1-2].本文著重研究了BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和學(xué)習(xí)算法,并利用一個(gè)3層BP網(wǎng)絡(luò)來實(shí)現(xiàn)圖像的壓縮編碼.實(shí)驗(yàn)結(jié)果表明,BP網(wǎng)絡(luò)傳輸函數(shù)、隱含層神經(jīng)元數(shù)目以及對(duì)原圖像分塊大小的不同,都會(huì)直接影響收斂時(shí)間和壓縮性能.
BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最廣泛,也是最成功的神經(jīng)網(wǎng)絡(luò)之一,是一種多層前饋神經(jīng)網(wǎng)絡(luò).它的網(wǎng)絡(luò)結(jié)構(gòu)是由輸入層、隱含層和輸出層組成,每層含有一個(gè)或多個(gè)神經(jīng)元,同層神經(jīng)元之間無連接,層與層之間各個(gè)神經(jīng)元?jiǎng)t實(shí)現(xiàn)全連接,其中隱含層的個(gè)數(shù)根據(jù)具體情況而定,可以是一個(gè)或者多個(gè),也可以沒有[3].
BP神經(jīng)網(wǎng)絡(luò)的BP神經(jīng)元與其他神經(jīng)元類似,不同之處是BP神經(jīng)元的傳輸函數(shù)必須處處可微,常用的傳輸函數(shù)是sigmoid函數(shù)或者線性函數(shù)(pureline),其BP神經(jīng)元模型如圖1所示.
圖1 BP神經(jīng)元模型Fig.1 BP neural model
其神經(jīng)元的輸出為
Ackley和Hinton等人在1985年提出利用多層前饋網(wǎng)絡(luò)的模式變換能力實(shí)現(xiàn)數(shù)據(jù)編碼的基本思想[4].即把一組輸入模式通過少量的隱含層單元映射到一組輸出模式,并使輸出模式盡可能等于輸入模式.當(dāng)隱含層的單元數(shù)比輸入模式數(shù)少時(shí),就意味著隱含層能更有效地表現(xiàn)輸入模式,并把這種表現(xiàn)傳送到輸出層.在這個(gè)思想里,把數(shù)據(jù)由輸入層到中間層的變換看成壓縮編碼的過程,由中間層到輸出層的變換看成解碼過程,輸出層得到壓縮后的數(shù)據(jù).
根據(jù)BP網(wǎng)絡(luò)的結(jié)構(gòu)特點(diǎn)和其用于圖像壓縮的思想,本文用于圖像壓縮的BP網(wǎng)絡(luò)只有一個(gè)隱含層.由于要在BP網(wǎng)絡(luò)的輸出層實(shí)現(xiàn)圖像的重建,所以其輸入層和輸出層具有相同的神經(jīng)元數(shù)N,每個(gè)神經(jīng)元對(duì)應(yīng)一個(gè)像素,隱含層的神經(jīng)元數(shù)K要比N小,K的值根據(jù)壓縮比來決定.其結(jié)構(gòu)圖如圖2所示.
圖2 用于圖像壓縮的3層BP網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 The 3-layer BP network structure diagram of image
其中,xn(n=1,2,…,N)表示輸入層第n個(gè)神經(jīng)元的輸入矢量,wk,n是輸出層到隱含層的權(quán)值矩陣,hk(k=1,2,…,K)表示隱含層第k個(gè)神經(jīng)元的輸出矢量,b1k表示隱含層第k個(gè)神經(jīng)元的閾值,vn,k表示隱含層第k個(gè)神經(jīng)元到輸出層第n個(gè)神經(jīng)元的權(quán)值,yn(n=1,2,…,N)表示輸出層第n個(gè)神經(jīng)元的輸出矢量,b2n表示輸出層第n個(gè)神經(jīng)元的閾值.
隱含層各個(gè)神經(jīng)元的輸出表達(dá)式為h
式(2)中,f1為隱含層的傳輸函數(shù),輸出層各個(gè)神經(jīng)元的輸出表達(dá)式為
式(3)中,f2是輸出層的傳輸函數(shù).
為了訓(xùn)練圖2所示的用于圖像壓縮的3層BP神經(jīng)網(wǎng)絡(luò),采用誤差反向傳播(back propagation)算法,即BP算法[5-6],來調(diào)整網(wǎng)絡(luò)中權(quán)值和閾值,至訓(xùn)練誤差的均值小于期望目標(biāo)為止.
定義誤差函數(shù)為
式(4)中,tn表示輸出層第n個(gè)神經(jīng)元期望的輸出.
將上面的誤差定義式展開至隱含層,則E
進(jìn)一步展開至輸入層,有
由式(6)可以看出,網(wǎng)絡(luò)的最終輸出誤差是各層權(quán)值和閾值的函數(shù),因此調(diào)整它們可改變誤差E.其BP網(wǎng)絡(luò)的反向傳播的訓(xùn)練過程如下:
比較誤差值是否小于目標(biāo)誤差,若不小于,則將誤差反向傳播.根據(jù)最速下降法,反向逐層調(diào)整各層參數(shù).
(1)輸出層的權(quán)值和閾值調(diào)整為
η是學(xué)習(xí)系數(shù),在訓(xùn)練中反映了學(xué)習(xí)速率.它的選取對(duì)神經(jīng)元網(wǎng)絡(luò)的訓(xùn)練速度和權(quán)值的精度有很大的影響.
由式(5)和式(6)可以看出,誤差不是隱含層中的顯式函數(shù),所以用微積分中的鏈法則來計(jì)算偏導(dǎo)數(shù).
所以調(diào)整后的隱含層到輸出層的權(quán)值為
同理,調(diào)整后的輸出層的閾值為
(2)隱含層的權(quán)值和閾值調(diào)整為
用獲得的新權(quán)值代入第一步先進(jìn)行前向運(yùn)算,再誤差計(jì)算,若誤差值仍不小于期望目標(biāo)則重復(fù)第二步,調(diào)整權(quán)值和閾值,如此循環(huán)下去,直到誤差值小于期望目標(biāo)為止.
為了分析BP網(wǎng)絡(luò)用于圖像壓縮的性能.本文采用Matlab對(duì)基于BP網(wǎng)絡(luò)的圖像壓縮算法進(jìn)行了仿真.仿真過程基于最速下降法,分別采用了不同的傳輸函數(shù)、不同的隱含層神經(jīng)元數(shù)和同一幅圖像不同的圖像子塊,分析和總結(jié)BP網(wǎng)絡(luò)壓縮性能與各種網(wǎng)絡(luò)參數(shù)之間的關(guān)系.
BP網(wǎng)絡(luò)的傳輸函數(shù)必須處處可微,所用的傳輸函數(shù)通常是S型函數(shù)或者線性函數(shù)(pureline).根據(jù)采用的傳輸函數(shù)不同,把在隱含層和輸出層采用線性傳輸函數(shù)(即式(1))的BP網(wǎng)絡(luò)稱為線性網(wǎng)絡(luò);把在隱含層采用sigmoid函數(shù)而輸出層采用線性傳輸函數(shù)的BP網(wǎng)絡(luò)稱為非線性網(wǎng)絡(luò).本實(shí)驗(yàn)用圖3(a)為原始圖像,其像素值140×140,分別用線性和非線性激活函數(shù)訓(xùn)練網(wǎng)絡(luò),基于最速下降法來調(diào)整網(wǎng)絡(luò)權(quán)值和閾值,在其它參數(shù)都相同的情況下,分析二者在圖像壓縮應(yīng)用上性能的優(yōu)劣.
在實(shí)驗(yàn)過程中,目標(biāo)誤差都設(shè)為0.001,最大迭代次數(shù)為5000,學(xué)習(xí)速率為0.9,參數(shù)都采用5位熵編碼,使其比特率為8 bits/pixel,根據(jù)BP算法來訓(xùn)練網(wǎng)絡(luò).當(dāng)壓縮比為0.25時(shí),其壓縮后恢復(fù)圖像見圖3中的(b)和(c),兩個(gè)網(wǎng)絡(luò)的壓縮重建性能見表1,誤差性能曲線見圖4.
圖3 壓縮比Cr=0.25的重建圖像Fig.3 The reconstructed image under the compression ratio"Cr=0.25"
表1 壓縮比Cr=0.25時(shí)恢復(fù)圖像的性能Tab.1 The performance table of the image restoration under the compression ratio“Cr=0.25”
圖4 迭代誤差Fig.4 The iterative error map
對(duì)比圖3中的3幅圖可以看出,線性網(wǎng)絡(luò)和非線性網(wǎng)絡(luò)壓縮重建后的圖像都失真很??;從表1的重建圖像的峰值信噪比和信噪比的值來看,線性網(wǎng)絡(luò)的重建圖像的峰值信噪比比非線性網(wǎng)絡(luò)的峰值信噪比大一點(diǎn),而信噪比又比非線性的小一點(diǎn),所以從重建圖像的性能上,無法清楚地區(qū)別二者在壓縮上的優(yōu)劣性;從表1的迭代次數(shù)上,線性網(wǎng)絡(luò)迭代987次就達(dá)到了訓(xùn)練誤差,而非線性網(wǎng)絡(luò)迭代了2085次才達(dá)到與前者一樣的壓縮性能,由圖4中也可以看出,線性網(wǎng)絡(luò)比非線性網(wǎng)絡(luò)的誤差曲線收斂速度要快得多.實(shí)驗(yàn)結(jié)果表明線性網(wǎng)絡(luò)在迭代次數(shù)和收斂特性上要優(yōu)于非線性網(wǎng)絡(luò).
改變隱含層神經(jīng)元數(shù)目,使壓縮比得到改變,得到圖像質(zhì)量不同.為了進(jìn)一步分析二者的優(yōu)劣,提高壓縮比來訓(xùn)練網(wǎng)絡(luò).圖5給出不同壓縮比下兩個(gè)網(wǎng)絡(luò)的壓縮重建圖像,表2給出相應(yīng)的重建圖像的性能參數(shù).
圖5 不同壓縮比的重建圖像Fig.5 The reconstructed images under different compression ratios
表2 不同壓縮比下重建圖像的性能參數(shù)Tab.2 The performance parameters of the reconstructed images under different compression ratios
從圖5重建圖像的效果可以明顯看出,在壓縮比提高的同時(shí),壓縮過程中損失的圖像信息增加,圖像存在失真,而(d)明顯比(b)損失的信息多;由表2可知,隨著壓縮比的提高,信噪比和峰值信噪比降低,重建后的圖像質(zhì)量變差,因此可以通過增加隱含層的神經(jīng)元數(shù)來提高重建圖像的質(zhì)量;另外在壓縮比相同的情況下,線性網(wǎng)絡(luò)的迭代次數(shù)比非線性網(wǎng)絡(luò)少了將近一半,而重建圖像的信噪比和峰值信噪比都大于非線性網(wǎng)絡(luò).總的來說,線性網(wǎng)絡(luò)用于圖像壓縮時(shí),其性能要優(yōu)于非線性網(wǎng)絡(luò),所以在下面的研究中,圖像壓縮的仿真實(shí)驗(yàn)過程都采用線性網(wǎng)絡(luò).
將原始的壓縮圖像分塊的目的是為了控制輸入網(wǎng)絡(luò)的向量的規(guī)模,可以把140×140的圖像分成2×2或20×20等不同大小的小塊.本實(shí)驗(yàn)對(duì)圖3(a)中140×140原始圖像采用不同的分塊方式,在相同壓縮比(Cr=0.25)的情況下,用線性網(wǎng)絡(luò),基于最速下降法的算法,對(duì)圖像進(jìn)行壓縮重建.不同子塊大小的壓縮重建圖像如圖6所示,其對(duì)應(yīng)的性能參數(shù)如表3所示.
圖6 不同子塊大小的壓縮重建圖像Fig.6 The reconstructed compression image with different sub block sizes
表3 重建圖像的性能參數(shù)Tab.3 The performance parameters of the reconstructed image
從圖6和表3分析可以看出,圖像分塊越小越細(xì),SNR越大,圖像質(zhì)量越好.此外,圖像子塊的維數(shù)越小,程序達(dá)到誤差目標(biāo)所需要的時(shí)間越短.這是因?yàn)?圖像子塊越小,輸入向量就越小,輸入層神經(jīng)元數(shù)目越少,相同壓縮比條件下,隱含層神經(jīng)元數(shù)目越小,網(wǎng)絡(luò)規(guī)模就小,運(yùn)算速度就快.
本文著重研究了BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和學(xué)習(xí)算法,并利用一個(gè)3層BP網(wǎng)絡(luò)來實(shí)現(xiàn)圖像的壓縮和重建.分別采用了不同的傳輸函數(shù)、不同的隱含層神經(jīng)元數(shù)目和同一幅圖像不同大小的分塊方式,分析和總結(jié)BP網(wǎng)絡(luò)壓縮性能與各種網(wǎng)絡(luò)參數(shù)之間的關(guān)系.由實(shí)驗(yàn)分析可知,BP網(wǎng)絡(luò)傳輸函數(shù)、隱含層神經(jīng)元數(shù)目以及對(duì)原圖像分塊大小的不同,都會(huì)直接影響收斂時(shí)間和壓縮性能.所以,在今后實(shí)際應(yīng)用中,可以采用合適的傳輸函數(shù)、隱含層神經(jīng)元數(shù)目和不同的分塊方式,來改善網(wǎng)絡(luò)的壓縮性能和運(yùn)算效率.
[1] 韓力群.人工神經(jīng)網(wǎng)絡(luò)教程[M].北京:北京郵電大學(xué)出版社,2006.
[2] 朱大奇,史慧.人工神經(jīng)網(wǎng)絡(luò)原理及應(yīng)用[M].北京:科學(xué)出版社,2006.
[3] 楊行俊,鄭君里.人工神經(jīng)網(wǎng)絡(luò)[M].北京:高等教育出版社,1992.
[4] 徐立中,李士進(jìn),石愛業(yè).數(shù)字圖像的智能信息處理[M].北京:國(guó)防工業(yè)出版社,2007:96-181.
[5] Nitta T.An extension of the back-propagation algorithm to complex numbers[J].Neural Networks,1997,10(8):1391-1415.
[6] Benvenuto n,Piazza F.On the complex back-propagation algorithm[J].IEEE Transactions on Signal Processing,1992,40(4):967-969.