前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇神經(jīng)網(wǎng)絡設計范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
關鍵詞: Matlab; 串聯(lián)BP; 多函數(shù)擬合; 自定義網(wǎng)絡
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2013)22?0014?03
0 引 言
BP(Back Propagation)神經(jīng)網(wǎng)絡是1986年由Rumelhart和McCelland提出的,它是一種誤差按反向傳播的多層前饋網(wǎng)絡,是目前應用最廣泛的神經(jīng)網(wǎng)絡模型之一。BP神經(jīng)網(wǎng)絡具有非常強的非線性映射能力,能以任意精度逼近任意連續(xù)函數(shù),因此在人工智能的許多領域都得到了廣泛的應用,如函數(shù)逼近、模式識別、分類和數(shù)據(jù)壓縮等領域[1?2]。由于目前一個神經(jīng)網(wǎng)絡只能同時對一個函數(shù)進行擬合,針對此本文提出了一直串聯(lián)BP網(wǎng)絡同時實現(xiàn)兩個函數(shù)的擬合。
1 BP網(wǎng)絡結構與學習算法
BP神經(jīng)網(wǎng)絡是目前應用最廣泛的拓撲結構。BP模型是一種多層前向網(wǎng)絡,這里采用的是三層BP神經(jīng)網(wǎng)絡模型,它由輸入層、隱層和輸出層組成,其結構如圖1所示,分別為:
(1)輸入層節(jié)點,其輸出等于[xi]([i]=1,2,…,n),將控制變量值傳輸?shù)诫[含層;
(2)隱層節(jié)點[j],其輸入[hj],輸出[oj] 分別為:
[hj=i=1nwjxi-θj=i=1n+1wjxi]
[oj=f(hj)]
(3)輸出節(jié)點[k],其輸入[hk],輸出[ok] 分別為:
[hk=j=1m+1wjkoj]
[ok=f(hk)]
式中:[k]=1,2,…,[l];[f]為傳輸函數(shù)。
BP算法分兩步進行,即正向傳播和反向傳播[3]。
(1)正向傳播
輸入的樣本從輸入層經(jīng)過隱單元逐層進行處理,通過所有的隱層之后,在傳向輸出層。在逐層處理的過程中,每一層神經(jīng)元的狀態(tài)只對下一層神經(jīng)元的狀態(tài)產(chǎn)生影響。在輸出層把現(xiàn)行輸出和期望輸出進行比較,如果現(xiàn)行輸出不等于期望輸出,則進入反向傳播過程。
(2)反向傳播
反向傳播時,把誤差信號按原來正向傳播的通路反向傳回,并對每個隱層的各個神經(jīng)元的權系數(shù)進行修改,以望誤差信號趨向最小[4]。
2 BP網(wǎng)絡的串聯(lián)模型
神經(jīng)網(wǎng)絡串聯(lián)即由兩個或兩個以上的神經(jīng)網(wǎng)絡串聯(lián)所組成的新型網(wǎng)絡模型,用于串聯(lián)的各神經(jīng)網(wǎng)絡稱為子神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡串聯(lián)模型中的各子神經(jīng)網(wǎng)絡首尾相連,如圖2所示。
假設總的神經(jīng)網(wǎng)絡由k個子神經(jīng)網(wǎng)絡串聯(lián)而成,即第一個神經(jīng)網(wǎng)絡的輸出作為第二個神經(jīng)網(wǎng)絡的輸入,第二個神經(jīng)網(wǎng)絡的輸出做為第三個神經(jīng)網(wǎng)絡的輸入,以此類推下去。每一個子神經(jīng)網(wǎng)絡均由同類型的神經(jīng)網(wǎng)絡構成,在本文中,每一個子網(wǎng)絡都采用最常用的BP神經(jīng)網(wǎng)絡,其子網(wǎng)絡的構建都遵循現(xiàn)有的BP網(wǎng)絡的構建形式,其基本的子網(wǎng)絡結構采用三層模式,一個輸入層,一個隱含層和一個輸出層[5?6]。
通過Matlab神經(jīng)網(wǎng)絡工具箱的自定義的方法來實現(xiàn)兩個子BP網(wǎng)絡的串聯(lián)。
部分程序如下所示:
net=network;
net.numinputs=2;
net.numlayers=6;
net.biasConnect=[1;1;1;1;1;1];
net.inputConnect=[1 0;0 0;0 0;0 1;0 0;0 0];
net.layerConnect=[ 0 0 0 0 0 0;1 0 0 0 0 0 ;0 1 0 0 0 0;
0 0 1 0 0 0 ;0 0 0 1 0 0;0 0 0 0 1 0];
net.outputConnect=[ 0 0 1 0 0 1];
網(wǎng)絡的拓撲結構如圖3所示,其中每個子網(wǎng)絡的隱含層節(jié)點為20個,傳遞函數(shù)為tansig,輸出層采用線性函數(shù)[7]。
3 實驗測試與分析
運用本串聯(lián)BP網(wǎng)絡在Matlab 2011的環(huán)境中同時對兩個目標函數(shù)進行擬合。其目標函數(shù)為:
目標函數(shù)1:
[y=sin x]
目標函數(shù)2:
[y=x(1-16x2)e-x]
訓練樣本輸入的設置:輸入樣本p={p1’,p1’}其中p1=[-1:0.05:1],目標向量T={t1’;t2’},其中t1= sin(3*pi*p1),t2= p1.*(1-1/6*p1.^2).*exp(-p1)。并加入噪聲t3=sin(3*pi*p1)+0.15*randn(size(p1));t4=t2+0.15*randn(size(p1));T={[t3]’;[t4]’};對其進行訓練仿真[8?10]。
網(wǎng)絡的輸出y包含了兩個待擬合函數(shù)的擬合后的數(shù)據(jù)通過下面操作:
y1=cell2mat(y);
y2=y1’;
a=y2(1:1:41);
b=y2(42:1:82);
得到各自的擬合數(shù)據(jù)。
仿真結果如圖4~圖6所示。
由圖4、圖5仿真擬合曲線與待擬合函數(shù)曲線的比較可以看出此串聯(lián)網(wǎng)絡在通過加噪聲的訓練樣本訓練后能夠很好的對兩個待擬合函數(shù)進行擬合。由圖6知在經(jīng)過342次訓練后其誤差達到了0.000 978??梢姡ㄟ^此串聯(lián)BP神經(jīng)網(wǎng)絡準確地擬合了待擬合函數(shù)曲線。
4 結 語
通過以上敘述可以看出本文設計的串聯(lián)神經(jīng)網(wǎng)絡能夠和好地對函數(shù)曲線進行擬合,為同時實現(xiàn)多函數(shù)曲線的擬合提供了新的方法。
參考文獻
[1] 張雨濃,蔡炳煌.人工神經(jīng)網(wǎng)絡研究進展及過程[M].北京:電子工業(yè)出版社,2010.
[2] 蔣正金,汪曉東,端木春江.采用BP神經(jīng)網(wǎng)絡擬合光纖位移傳感器特性曲線[J].微型機與應用,2012,31(4):67?69.
[3] 郭軍.BP神經(jīng)網(wǎng)絡算法研究[D].武漢:華中科技大學,2005.
[4] 賈麗會,張修如.BP算法分析與改進[J].計算機技術與發(fā)展,2006,16(10):102?107.
[5] 劉華,高大啟.RBF_LBF 串聯(lián)神經(jīng)網(wǎng)絡的分類應用及其學習算法[J].計算機應用,2004,24(10):100?104.
[6] 鄧秋香.神經(jīng)網(wǎng)絡串并聯(lián)學習算法在B超圖像識別中的應用[D].武漢:武漢理工大學,2008.
[7] 張德豐.Matlab神經(jīng)網(wǎng)絡應用設計[M].北京:機械工業(yè)出版社,2012.
[8] 陳小宇,喬翠蘭,汪瑞祥,等.基于BP算法神經(jīng)網(wǎng)絡的物理實驗曲線擬合[J].物理實驗,2002,22(9):10?13.
[9] 李潔.BP網(wǎng)絡的算法及在Matlab上的程序仿真[J].西安航空技術高等專科學校學報,2009,27(1):42?43.
關鍵詞:郵件過濾;預處理;特征選擇;神經(jīng)網(wǎng)絡集成
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2010)01-171-03
The design of Spam Filtering System Based on Neural Network Ensemble
LIU Bao-ping, LI Ai-jun
(Information Management,Shanxi University of Finance & Economics,Taiyuan 030006,China)
Abstract: It is a very important function to deal with spam in the email services.On the basis of expressing the standard email corpus as the form of vector space model,and reducing the emails dimension,this paper uses neural network ensemble to construct the email classifier,then to filter the email;this method experiments on the spam corpus,it proved that the method of the spam filtering is effective.
Key words: email filtering;preprocess;feature selection;neural network ensemble
隨著Internet的普及,垃圾郵件問題日益嚴重。垃圾郵件不僅占用網(wǎng)絡帶寬,降低整個網(wǎng)絡運行效率,給用戶時間和精力造成極大浪費,而且可能侵犯收件人隱私權,成為黑客利用的工具,對現(xiàn)實社會造成危害。對電子郵件進行過濾是有效對付垃圾郵件的主要手段。
目前,很多研究者已經(jīng)對垃圾郵件的過濾方法進行了研究,其主要的郵件過濾方法有:1)黑白名單過濾,提供實時的黑白名單服務。其優(yōu)點是節(jié)省帶寬,缺點是對垃圾郵件識別率不高。2)基于規(guī)則的過濾方法,設置一些規(guī)則對郵件進行評估,郵件特征符合規(guī)則則加分,分數(shù)達到預先設定的閾值就判定為垃圾郵件。優(yōu)點是易理解、推廣,缺點是依賴于不斷地更新郵件規(guī)則。3)基于統(tǒng)計的過濾方法,是針對郵件內(nèi)容進行過濾的一種機器學習的方法,過濾正確率高,速度快,被認為是垃圾郵件處理技術中很受歡迎的一種方法[1]。這種基于機器學習的過濾方法已成為當前研究的主要方向,已有的算法包括貝葉斯分類方法、神經(jīng)網(wǎng)絡方法、KNN方法、Winnow方法等。但如何進一步提高郵件分類的準確率成為新的研究目標。
要提高郵件分類的準確率,分類器設計就成為郵件過濾過程中極其重要的環(huán)節(jié)。目前基于機器學習的分類方法已有多種,其中,基于神經(jīng)網(wǎng)絡的分類器是郵件分類中比較有效的方法[2]。但是,神經(jīng)網(wǎng)絡容易限于局部極小值,造成郵件的誤分。而神經(jīng)網(wǎng)絡集成是用有限個神經(jīng)網(wǎng)絡對同一個問題進行學習,集成在某輸入示例下的輸出,由構成集成的各神經(jīng)網(wǎng)絡在該示例下的輸出共同決定[3]。該方法可以顯著地提高神經(jīng)網(wǎng)絡系統(tǒng)的泛化能力[4]。因此,采用神經(jīng)網(wǎng)絡集成的方法設計郵件分類器將會進一步提高郵件分類的準確性,本文就此方面進行研究。
1 基于神經(jīng)網(wǎng)絡集成的垃圾郵件過濾
1.1系統(tǒng)模型
本郵件過濾系統(tǒng)(如圖1)主要是針對電子郵件內(nèi)容進行識別、過濾。電子郵件過濾系統(tǒng)主要由郵件預處理、特征選擇、分類器設計三個環(huán)節(jié)組成。本過濾系統(tǒng)中對郵件的處理過程:首先對郵件的原始語料庫進行預處理,把標準郵件集處理成了機器學習算法可以直接處理的向量空間模型的形式;然后利用基于信息增益(IG)的屬性選擇方法對其進行降維處理,選取合適的維數(shù);最后利用神經(jīng)網(wǎng)絡集成算法分別進行分類分析。
1.2 郵件預處理
為了便于郵件的過濾,對郵件數(shù)據(jù)集要進行預處理。
1.2.1 基于向量空間模型的郵件表示
本系統(tǒng)通過對郵件的原始語料庫進行預處理,把標準郵件集處理成了機器學習算法可以直接處理的向量空間模型的形式。具體處理步驟如下:
1) 初始情況下,先定義一個特征項集合,把郵件語料庫中所有出現(xiàn)的詞都作為特征項集合的候選特征,輸出一個特征項集合的字典。
2) 掃描語料庫,把語料庫中的每一封郵件都表示成維數(shù)(維數(shù)等于字典的長度)相等的向量形式,并以稀疏矩陣的形式存儲(降低內(nèi)存使用量)。
3) 移除那些在語料庫中出現(xiàn)次數(shù)不大于4次(低頻詞),以及在每篇郵件中都出現(xiàn)的候選特征。這是因為低頻詞在語料庫中出現(xiàn)的次數(shù)太少,對分類幾乎不起作用;在每篇郵件中都出現(xiàn)的高頻詞,不具備區(qū)分類別的能力。這一步的特征移除可以加速特征選擇過程,進一步降低內(nèi)存需求。
4) 輸出經(jīng)步驟3)處理后的以向量空間模型表示的郵件數(shù)據(jù)集。
1.2.2 特征選擇
為了能有效地分析垃圾郵件的特征,要對郵件數(shù)據(jù)進行降維。對于垃圾郵件常用的特征選擇方法有:文檔頻率(Document Frequency)、信息增益(Information Gain)、互信息(Mutual Information)、 ?字2統(tǒng)計量(EHI)等。其中,信息增益被認為是最有效的屬性選擇方法之一[5]。因此,本文采用信息增益的方法對郵件數(shù)據(jù)集進行降低維處理,取信息增益值最大的前M個詞為特征詞。將郵件數(shù)據(jù)集進一步表示成M維的向量空間形式。信息增益表征的是特征詞t在語料庫中出現(xiàn)前后的信息熵之差,具體到分為垃圾郵件(spam)和正常郵件(ham)的二類問題,IG的公式如下:
其中,C1和C2分別代表合法郵件和垃圾郵件的類別;表示Ci類郵件在語料庫中所占的比率;P(t)和P(t)分別表示特征詞t 在語料中出現(xiàn)的概率和未出現(xiàn)的概率;表示t出現(xiàn)在Ci類中的概率;表示t未出現(xiàn)在Ci類中的概率。
1.3 分類器設計
在眾多關于郵件分類的研究中,主要以單分類器為主,對過濾垃圾郵件效率的進一步提高又一定的局限,而集成分類器分類效果的貢獻是非常顯著的,因此采用集成的方法可以有效地提高垃圾郵件的過濾。
集成學習目的是利用模型之間的差異性提高學習系統(tǒng)的泛化性能。集成實現(xiàn)方法的研究主要集中在兩個方面,即如何生成集成中的各個個體以及怎樣將個體的輸出結論組合。在生成集成中個體方面,最重要的技術是Boosting[6]和Bagging[7]。Boosting和Bagging是兩種用來提高學習算法準確度的方法,大量關于Boosting和Bagging的實驗和應用已證明了這兩種方法的有效性。結論的結合的方法有投票法,加權投票法以及樸素貝葉斯法等等,其中,投票法包括絕對多數(shù)投票法或相對多數(shù)投票法。通常,在對分類器進行集成時,大多采用相對多數(shù)投票法,即若輸出結果為某一分類的神經(jīng)網(wǎng)絡的數(shù)目最多,則判定屬于該分類。
神經(jīng)網(wǎng)絡在很多領域已得到成功的應用,其網(wǎng)絡模型在學習過程中容易陷入局部極小值被認為是它的主要缺點之一。然而,Perrone和Cooper[8]卻認為,這一特性對神經(jīng)網(wǎng)絡集成泛化能力的提高起到了重要作用。因此神經(jīng)網(wǎng)絡集成用于郵件過濾系統(tǒng),能夠提高過濾系統(tǒng)的性能。
1.3.1集成系統(tǒng)中個體分類器的生成
經(jīng)過實驗,系統(tǒng)選取RBF神經(jīng)網(wǎng)絡作為基分類器,個體分類器的生成則采用基于樣本選擇的Boosting和Bagging。
1) Boosting算法的步驟見表1所示。
2 )Bagging算法的主要步驟見表2所示。
1.3.2 集成系統(tǒng)中結論的合成
Bagging采用多數(shù)投票方法進行假設的綜合,有研究表明,簡單的、不加權的投票方法是魯棒的。 Boosting對每個基分類器的分類結果根據(jù)其分類錯誤率加以權值,然后對加權后的結果投票,最常用的權值計算方法是分類正確率或其變形。
2 實驗及結果分析
2.1 語料選擇
本文選取垃圾郵件的PU系列語料 作為實驗數(shù)據(jù)。PU系列語料由希臘學者Androutsopoulos提供,其來源于提供者某個時段收到的真實電子郵件。該語料去掉了郵件的附件、HTML標記等,只保留了郵件主題和正文的純文本內(nèi)容,為保護提供者的隱私,語料采用加密的形式,用不同的整數(shù)替代郵件中的每個詞干。
2.2 評價指標
垃圾郵件過濾系統(tǒng)的性能主要通過以下幾個指標來評價:
1) 召回率(Recall):即垃圾郵件檢出率,反映了過濾系統(tǒng)對垃圾郵件的發(fā)現(xiàn)能力,召回率越高,“漏識別”的垃圾郵件就越少。
2) 正確率(Precision):即垃圾郵件檢對率,反映了過濾系統(tǒng)對垃圾郵件的判對能力,正確率越大,誤判垃圾郵件的可能性越小。
3) 精確率(Accuracy):對所有郵件做出正確判斷的概率。
4) 錯誤率(Error rate):對所有郵件做出錯誤判斷的概率。
5) F值:將召回率和正確率綜合成一個指標,是召回率和正確率的調(diào)和平均值。
此外,在垃圾郵件過濾的實際過程中,我們?nèi)菀紫氲?將合法郵件判為垃圾郵件比將垃圾郵件判為合法郵件的代價要大,本文中用混淆矩陣(Confusion Matrix)反應此代價。
2.3 實驗結果與分析
有研究者[9]用實驗證明了,PU1語料、PU2語料、PUA語料效率最好的維數(shù)分別為1000維、100維、200維。據(jù)此,本文將PU1語料、PU2語料、PUA語料分別處理成了1000維、100維、200維的向量空間模型形式。然后將處理好的數(shù)據(jù)采用的RBF神經(jīng)網(wǎng)絡、AdaBoost(目前最流行的Boosting算法[10])、Bagging等分類算法對實例進行分類,采用十折交互驗證法(10-fold-cross-validation)作為評估方法,得到如下實驗結果,如圖2、圖3、圖4和表3所示:
圖2PU1上的試驗結果 圖3PU2上的試驗結果
上述實驗結果表明,對同一個語料庫,神經(jīng)網(wǎng)絡集成算法較RBF神經(jīng)網(wǎng)絡算法,提高了精確率和F值,而正確率在提高的同時召回率有所下降,召回率在提高的同時,正確率有所下降,這是判別指標本身的性質(zhì)。而且,從表3的混淆矩陣,可以看出AdaBoost算法和Bagging算法較RBF算法來說,將正確郵件誤分為垃圾的郵件的概率也減少了,即代價減少了。
整體來說,評價指標值提高了,主要的原因就是神經(jīng)網(wǎng)絡集成將經(jīng)過單個訓練的神經(jīng)網(wǎng)絡的輸出結果加以合成,采用了多數(shù)表決的方法,提高了郵件過濾的性能。實驗結果表明神經(jīng)網(wǎng)絡集成方法對于垃圾郵件過濾的是非常有效的。
3 結論
該文重點研究了采用神經(jīng)網(wǎng)絡集成對垃圾郵件進行過濾的方法,同時對郵件過濾系統(tǒng)的數(shù)據(jù)進行了預處理,經(jīng)過實驗,與單分類器的過濾性能進行比較,結果證明了神經(jīng)網(wǎng)絡集成方法可以進一步提高垃圾郵件過濾的準確率。今后的工作重點是研究郵件多標簽分類方法。
參考文獻:
[1] 蔣秋香.垃圾郵件過濾技術的發(fā)展與現(xiàn)狀[J].網(wǎng)絡與通訊安全,2007(09).
[2] 黃國玉,龍潤生.基于神經(jīng)網(wǎng)絡的郵件分類識別模型研究[J].南京大學學報,2008(06).
[3] Sollich P,Krogh A.Learning with ensembles:How overfitting can be useful.In: Touretzky D,Mozer M,Hasselmo Meds.Advances in Neural Information Processing Systems 8,Cambridge,MA:MIT Press,1996.190-196.
[4] 周志華.神經(jīng)網(wǎng)絡集成[J].計算機學報,2002(01).
[5] Y.Yang.A Comparative Study on Feature Selection in Text Categorization[C].Proceedings of the Fourteenth International Conference on Machine Learning,1997.
[6] Schapire R E.The strength of weak learnability.Machine Learning,1990,5(2):197-227.
[7] Breiman L.Bagging predictors.Machine Learning,1996,24(2):123-140.
[8] Perrone M P,Cooper L N.When networks disagree:Ensemble method for neural networks.In:Mammone R J ed.Artificial Neural Networks for Speech and Vision,New York:Chapman &Hall,1993.126-142.
[關鍵詞] 工作崗位;BP神經(jīng)網(wǎng)絡;系統(tǒng)設計
[中圖分類號] F240 [文獻標識碼] A [文章編號] 1006-5024(2007)12-0030-04
[基金項目]安徽省高校青年教師科研資助計劃項目“人工神經(jīng)網(wǎng)絡在工程評價中的應用”(批準號:2004jq143);安徽理工大學 青年科學基金資助項目“基于人工神經(jīng)網(wǎng)絡的綜合評價系統(tǒng)設計”(批準號:2007jg12)
[作者簡介] 汪克亮,安徽理工大學教師,碩士,研究方向為綜合評價、決策分析;
楊 力,安徽理工大學副教授,碩士,研究方向為系統(tǒng)工程、復雜系統(tǒng)建模;
查甫更,安徽理工大學教師,碩士,研究方向為環(huán)境質(zhì)量評價。(安徽 淮南 232001)
人力資源是企業(yè)中最寶貴的資源,對企業(yè)的生存、發(fā)展和競爭力的不斷提高都起著至關重要的作用。人力資源的培育、開發(fā)與利用,不僅成為經(jīng)濟增長的決定性因素,而且直接構成企業(yè)核心競爭力的關鍵性戰(zhàn)略資源。作為人力資源管理的一個重要組成部分,工作崗位評價是建立在工作說明書的基礎上,綜合運用多種學科的理論和方法。即它是按照一定的客觀標準,從工作崗位的環(huán)境、勞動強度、承擔責任、所需資格條件等因素出發(fā),對工作崗位進行系統(tǒng)的衡量和評價,在定性的基礎上進行定量測評,以量值來表現(xiàn)工作崗位特征,使得性質(zhì)相同、相近的崗位具有統(tǒng)一的評判、估價標準。這種評價方法可以比較出崗位與崗位之間的相對價值大小,從而可以將員工在企業(yè)中的作用和貢獻量化,為企業(yè)崗位歸級、分類等工作奠定基礎,為建立公平合理的薪酬制度提供客觀依據(jù)。
對工作崗位進行評價的方法很多,傳統(tǒng)的方法有排列法、分類法、評分法、因素比較法,等等。實踐證明,這些方法都具備一定的合理性,但是還不夠完善。這是由于評價指標的量值和權重的確定都是依據(jù)評估人員的經(jīng)驗進行的,主觀性強,缺乏客觀性,這樣就在很大程度上使得評價結果缺乏公平性、科學性,從而進一步影響到薪酬制度的公平合理性。近年來出現(xiàn)的人工神經(jīng)網(wǎng)絡(Artificial Neural Network,簡稱ANN)因其廣泛的自適應、自學習和強大的非線性映射能力,在多變量非線性系統(tǒng)的建模方面有著廣泛的應用。BP神經(jīng)網(wǎng)絡(Back-Propagation Network)是目前在各領域中研究和應用最廣泛的人工神經(jīng)網(wǎng)絡,體現(xiàn)了人工神經(jīng)網(wǎng)絡理論與應用中最精華的部分,它擅長的是處理那種規(guī)律隱含在一大堆雜亂無章數(shù)據(jù)中的映射逼近問題。由于工作崗位評價系統(tǒng)是由評價指標、評價標準、評價技術和方法等一系列子系統(tǒng)組成的復雜非線性系統(tǒng),作為一種處理復雜非線性系統(tǒng)問題的有效工具,本文嘗試利用BP神經(jīng)網(wǎng)絡來設計工作崗位評價系統(tǒng),為定性和定量評價工作崗位提供一條新的思路。
一、工作崗位評價指標體系的建立
1.選擇評價指標的原則
要對工作崗位進行公平合理的評價,前提是要建立科學的評價指標體系。因為工作崗位評價不僅要明確工作狀況和工作量的差異,而且要滿足企業(yè)人力資源管理基礎工作的需要,促進人力資源管理工作的發(fā)展。因此,必須在決定工作崗位工作狀況和工作量的眾多因素中選擇合適的因素,進行全面、科學的評價。對于評價指標的選擇,應該考慮以下三個原則:
全面性。評價指標的全面性是進行科學評價的基礎,評價指標應該能夠全面地反映工作崗位的工作狀況和工作量,體現(xiàn)不同崗位的工作差別,反映出崗位工作對企業(yè)的貢獻。
可評價性。評價指標的可評價性主要體現(xiàn)在兩個方面:一是指在目前企業(yè)的工作實際中,運用現(xiàn)有的技術和方法,能夠?qū)υu價指標進行測定或評定,作出評價;二是指對每一個評價指標都能夠按照統(tǒng)一的評價標準作出獨立的評價,最好是能作出定量評價。
實用性。主要是指在選擇評價指標的時候,選擇那些對企業(yè)的人力資源管理工作有用、能促進企業(yè)人力資源管理工作發(fā)展的因素作為評價因素。這樣可以使得評價結果能夠直接應用于企業(yè)人力資源管理實踐。
2.工作崗位評價指標體系
工作崗位評價的內(nèi)容非常廣泛,影響因素眾多,我們經(jīng)過深入調(diào)研,密切聯(lián)系實際,依據(jù)上述的選擇原則,共建立5個一級指標:勞動技能、勞動責任、勞動強度、勞動環(huán)境、社會心理因素。每個一級指標又由若干個二級指標組成,一共22個二級指標,這些指標既能全面體現(xiàn)企業(yè)崗位的工作狀況和工作量,又能應用目前的技術和知識進行評定和測量,使崗位的具體工作抽象化、定量化,從而產(chǎn)生可比性。建立的評價指標體系如表1所示。
二、BP算法及其改進
1.BP神經(jīng)網(wǎng)絡
人工神經(jīng)網(wǎng)絡是人工智能的一個重要部分,人工神經(jīng)元是人工神經(jīng)網(wǎng)絡的基本處理單元。它是一個近似模擬生物神經(jīng)元的數(shù)學模型,通過與其相連的神經(jīng)元接收信息。根據(jù)網(wǎng)絡中神經(jīng)元的連接方式,神經(jīng)網(wǎng)絡可以分為前向網(wǎng)絡、反饋網(wǎng)絡和自組織網(wǎng)絡三種基本類型。
BP網(wǎng)絡,又稱為誤差反向傳播網(wǎng)絡,是一種典型的前饋網(wǎng)絡。它具有三層或三層以上的階層,其各層之間各神經(jīng)元實現(xiàn)完全連接,而每層的神經(jīng)元之間無連接。BP網(wǎng)絡主要是由輸入層、隱含層、輸出層組成,各層之間實現(xiàn)完全連接。輸入信號從輸入層節(jié)點輸入,依次傳過各隱含層節(jié)點,然后傳到輸出節(jié)點。實踐已經(jīng)證明了三層BP網(wǎng)絡可以以任意精度逼近一個連續(xù)函數(shù)。
2.BP算法
BP網(wǎng)絡所完成的信息處理工作,從數(shù)學意義上講是利用映射訓練樣本(x1,y1),(x2,y2),…(xk,yk)…,實現(xiàn)從n維歐氏空間子集到f[A]的映射。BP網(wǎng)絡的學習過程是由正向傳播和反向傳播兩部分組成。在正向傳播過程中,輸入樣本從輸入層經(jīng)過隱含層處理并傳向輸出層,每一層神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài),如果在輸出層得不到期望的輸出,則轉(zhuǎn)入反向傳播。此時,誤差信號從輸出層向輸入層傳播并沿途調(diào)整各層之間的連接權值以及各神經(jīng)元的偏置值,以使誤差信號不斷減小,經(jīng)過反復迭代,當誤差小于允許值,網(wǎng)絡的訓練結束。BP網(wǎng)絡具體的學習過程按以下步驟進行:
(1)置各權值或閾值的初始值:Wji(0),θj(0)為小的隨機數(shù)值。
(2)提供訓練樣本:輸入矢量Xk,k=1,2,…,P;期望輸出dk,k=1,2,…,P;對每一個輸入樣本進行下面(3)到(5)的迭代。
(3)計算網(wǎng)絡的實際輸出及隱含層單元的狀態(tài):
okj=fj(∑wjiokj+θj),其中f(x)為轉(zhuǎn)移函數(shù),采取Sigmoid函數(shù),即
(4)計算訓練誤差:
δkj=okj(1-okjj)(tkj-okj) (輸出層)
δkj=okj(1-okj)∑δkmwmj(隱含層)
(5)修正權值和閾值:
wkj(t+1)=wji(t)+ηδjoki+α[wji(t)-wji(t-1)]
θj(t+1)=θj(t)+ηδj+α[θj(t)-θj(t-1)]
(6)當k每經(jīng)歷1至P后,判斷指標是否符合精度要求:
E≤ε; ε:精度。
(7)結束。
3.BP算法的改進
傳統(tǒng)的BP網(wǎng)絡把一組樣本的輸入/輸出問題變?yōu)橐粋€非線性優(yōu)化問題,使用了優(yōu)化中最普通的梯度下降算法。BP算法在應用中最突出的優(yōu)點是具有很強的非線性映射能力,網(wǎng)絡的隱含層數(shù)、各層的神經(jīng)元數(shù)以及網(wǎng)絡的學習系數(shù)都可以根據(jù)具體情況任意設定,對問題的識別具有很強的功能,對于復雜的非線性模型仿真從理論上來說可以達到任意小的程度。在實際預算中,標準BP算法存在著收斂速度慢和容易陷入局部極值兩個重要問題。為此,我們以如下兩項措施來改進BP算法。
(1)學習率自適應調(diào)整。標準BP算法收斂速度慢的一個重要原因是學習速率不當。學習率太小,收斂太慢;學習率太大,則可能導致振蕩甚至發(fā)散。我們采用學習率的自適應調(diào)整,即當連續(xù)兩次迭代其梯度方向相同時,表明下降太慢,將步長加倍;而當連續(xù)兩次迭代其梯度方向相反時,表明下降過頭,則步長減半。
(2)加動量項。標準BP算法在修正w(t)時,僅按照t時刻的瞬時負梯度方向進行修正,沒有考慮以前時刻的梯度方向,從而使學習過程常常發(fā)生振蕩,收斂很慢。我們加動量項的目的是為了降低網(wǎng)絡對誤差曲面細節(jié)的敏感性,從而抑制網(wǎng)絡限于局部極小。
改進后的權值修正公式為:
w(t+1)=w(t)+α(t )[(1-η)d(t)+ηd(t-1)]
α(t)=2λα(t-1)
λ=sign[d(t)d(t-1)]
式中:α(t)為學習率,為k時刻的負梯度,η為動量因子,0≤η≤1。
三、基于BP神經(jīng)網(wǎng)絡的工作崗位評價系統(tǒng)設計
1.評價指標的標準化
由于工作崗位評價涉及到一系列的指標,有定性指標和定量指標,各個評價指標的量綱也不一樣。因為根據(jù)BP網(wǎng)絡的特點,輸入節(jié)點數(shù)據(jù)的取值范圍應該是[0,1],所以,必須對評價指標進行標準化處理。
(1)定量指標
對于評價指標ui,其中mi和Mi分別為評價指標ui的最小值和最大值。設ri為決策者對評價指標ui的屬性值xi的無量綱化值,且ri∈[0,1]。根據(jù)評價指標的類型,可采用下列兩種無量綱化標準函數(shù):
當目標越大評價越好時,
當目標越小評價越好時,
(2)定性指標
在該評價指標中,大部分是一些不能直接量化而只能進行定性描述的指標,可以采用確定指標評價等級隸屬度的方法來實現(xiàn)其量化。其方法是:設Ui為定性評價指標,Ui相對于評價集A=(α1,α2,…,αn)的隸屬度向量為:ri=(ri1,ri2,…,rin)。此處隸屬度向量可采用專家調(diào)查的方法,并通過集值統(tǒng)計方法來確定,或者可以通過模糊數(shù)學中確定隸屬函數(shù)的方法來確定。另外,一種最簡單的方法就是直接利用專家打分的方法來確定,評分時專家充分審核、分析每個工作崗位的影響因素,給出各個評價指標評分值,取值范圍是[0,1]。但是,為了保證與定量指標的可比性,可以根據(jù)上面定量指標的處理方法,將得到的評分值進行標準化處理后再作為神經(jīng)網(wǎng)絡的輸入。
2.系統(tǒng)結構設計
實踐證明,具有單隱層的BP網(wǎng)絡可以逼近任意連續(xù)函數(shù)。本文設計了一個三層BP網(wǎng)絡來模擬工作崗位評價系統(tǒng)的評價過程。其中,將評價指標的標準化值作為網(wǎng)絡的輸入向量,所以,本文中輸入節(jié)點共有22個,輸出節(jié)點為1個,輸出值為工作崗位評價結果,即工作崗位相對價值的量化值。由于輸入向量和輸出向量之間不滿足線性關系,因此,選擇單極性的sigmoid函數(shù)作為轉(zhuǎn)移函數(shù)。另外,隱含層的節(jié)點數(shù)也直接影響到網(wǎng)絡的性能。對于隱含層節(jié)點數(shù)的確定,我們可以采用經(jīng)驗公式:Pm= Pn+r+L,其中,Pm、Pn、r分別為隱含層、輸入層、輸出層的神經(jīng)元數(shù)目,L為1-10之間的一個整數(shù)??梢圆扇Ρ葘嶒灥姆绞絹磉x擇最佳隱含層節(jié)點的數(shù)目。采用改進BP的算法來進行學習,根據(jù)學習時間及次數(shù)與達到全局誤差的綜合效果來看,6個隱含層神經(jīng)元比較合適。
以技術知識要求、質(zhì)量責任等22項工作崗位評價指標的標準量化值作為網(wǎng)絡輸入向量,用X=(xi,x2,…,x22)表示;隱含層節(jié)點用向量Y=(y1,y2,…,y6)表示;O=(o1)表示輸出向量,根據(jù)轉(zhuǎn)移函數(shù)的性質(zhì),o1∈[0,1],是工作崗位的綜合評價值,用S∈[0,1]來表示,分值越大,則表明該工作崗位的相對價值越高;反之,相對價值就越低。 將訓練集的實際輸出數(shù)據(jù)轉(zhuǎn)換為[0,1]的數(shù)值,期望輸出用T=(t1)表示。 輸入層節(jié)點到隱含層節(jié)點的權值用向量V=(v1,1,v1,2,…,v22,6)表示,隱含層節(jié)點到輸出層節(jié)點的權值用向量W=(w1,1,w2,1,…,w6,1)表示。對于隱含層有:
yj=f(∑vijxi) (j=1,2,…,6)(1)
對于輸出層有:
oj=f(∑wj1yj)(2)
這樣(1)、(2)兩式就建立了工作崗位評價系統(tǒng)。系統(tǒng)結構圖如圖1所示:
3.網(wǎng)絡訓練樣本的獲得
神經(jīng)網(wǎng)絡要具有評價功能,必須經(jīng)過一定數(shù)量樣本數(shù)據(jù)的訓練。所以,獲得適當數(shù)量的訓練數(shù)據(jù)是進行網(wǎng)絡訓練的前提。選取某個企業(yè)的20個工作崗位作為實證分析的對象,即神經(jīng)網(wǎng)絡的訓練單元。其中,將該企業(yè)的20個工作崗位的22項評價指標的專家打分值作為訓練單元的輸入數(shù)據(jù),而以相應工作崗位的評價值作為網(wǎng)絡的期望輸出。對于網(wǎng)絡期望輸出結果的獲得,我們可以采取常用的層次分析法(The Ana-lytic Hierarchy Process,簡稱AHP),這種方法是由美國著名的運籌學家T.L.Saaty于20世紀70年代提出的一種以定性與定量相結合的系統(tǒng)化、層次化決策分析方法。層次分析法的原理是把復雜的問題分解為各組成因素,將這些因素按支配關系分組,以形成有序的遞階層次結構。通過兩兩比較判斷,確定每一層中因素的相對重要性,建立判斷矩陣,通過矩陣的最大特征值與特征向量的計算,得出該層要素對于上層準則的權重。利用層次分析法,不僅可以得出每一個工作崗位評價指標對于工作崗位相對價值的權重,而且可以將每一個評價指標的評分值與指標權重加權相加,得出每一個工作崗位的綜合評價值,該評價值就能作為網(wǎng)絡的期望輸出。這樣采用層次分析法,便能獲得訓練樣本與仿真樣本。
4.網(wǎng)絡訓練與系統(tǒng)仿真
獲得了網(wǎng)絡訓練樣本數(shù)據(jù),再對網(wǎng)絡進行訓練。我們將編號為1-15崗位數(shù)據(jù)作為訓練單元輸入BP神經(jīng)網(wǎng)絡,給定的學習精度為ε=0.0001,初始學習速率為0.05,每個訓練樣本崗位的綜合評價值作為網(wǎng)絡期望輸出。采用Matlab 7.0神經(jīng)網(wǎng)絡工具箱對網(wǎng)絡進行訓練,當訓練誤差達到了精度要求,訓練停止。將編號為16-20的樣本崗位作為仿真樣本來檢驗網(wǎng)絡的評價和預測精度,發(fā)現(xiàn)網(wǎng)絡的仿真結果同樣本的評價結果非常接近,如表2所示。這一點表明該網(wǎng)絡具有很好的泛化能力,采用BP神經(jīng)網(wǎng)絡建立工作崗位評價系統(tǒng)是完全可行的。
四、結束語
工作崗位評價是企業(yè)人力資源管理工作的重要內(nèi)容,對工作崗位進行科學、客觀的評價,是確定公平、合理的薪酬制度的基礎,這一點對于提高員工工作積極性和保持企業(yè)活力都具有很重要的意義。本文在建立工作崗位評價指標體系的基礎上,采用BP神經(jīng)網(wǎng)絡來設計企業(yè)工作崗位評價系統(tǒng),利用BP神經(jīng)網(wǎng)絡自身強大的非線性映射能力和很強的自學習性、自適應性和容錯性,能夠充分地挖掘出樣本評價指標中有關規(guī)律和信息,揭示影響工作崗位相關因素的內(nèi)在作用機制,有效地克服評價過程中人為確定標準值和權重的主觀性因素的干擾,并且針對BP網(wǎng)絡收斂慢、容易陷入局部極小的缺點,采取了加動量項和學習率自適應調(diào)整的方法進行改進,以彌補BP網(wǎng)絡的缺陷,更能夠體現(xiàn)工作崗位評價的科學性和客觀性。仿真試驗表明,該評價系統(tǒng)取得了令人滿意的結果。在實際應用中,為了保證系統(tǒng)評價的有效性,應該對系統(tǒng)進行必要的修改和調(diào)整,對系統(tǒng)的運行狀況進行檢查和控制,力求系統(tǒng)達到準確、高效、易操作及具備良好的適應性。只要做好以上工作,基于BP神經(jīng)網(wǎng)絡的工作崗位評價系統(tǒng)就能夠成為企業(yè)人力資源管理的有效工具。
參考文獻:
[1]沈世鎰.神經(jīng)網(wǎng)絡系統(tǒng)理論及其應用[M].北京:科學出版社,1998.
[2]焦李成.神經(jīng)網(wǎng)絡系統(tǒng)理論[M].西安:西安電子科技大學出版社,1993.
[3]安鴻章.工作崗位的分析技術與應用[M].天津:南開大學出版社,2001.
[4]安鴻章.工作崗位研究原理與應用[M].北京:中國勞動出版社,1998.
[5]李永杰,李強.工作分析理論與應用[M].北京:中國勞動社會保障出版社,2005.
[6]趙曼.人力資源開發(fā)與管理[M].北京:中國勞動社會保障出版社,2002.
[7]石全濤.現(xiàn)代人力資源開發(fā)與管理[M].上海:上海交通大學出版社,1999.
[8]楊力.基于BP神經(jīng)網(wǎng)絡的城市房屋租賃估價系統(tǒng)設計[J].中國管理科學,2002,(10).
[9]張新紅,鄭丕諤.基于神經(jīng)網(wǎng)絡的管理信息系統(tǒng)綜合評價方法[J].系統(tǒng)工程學報,2002,(5).
關鍵詞:FPGA;神經(jīng)網(wǎng)絡;圖像壓縮;乘累加單元
中圖分類號:TP183文獻標識碼:A
文章編號:1004-373X(2009)19-038-04
FPGA Design of Multiply-accumulate Module in Image Compression
Algorithm Based on BP Neural Network
YANG Jun1,ZHOU Quan2,ZHANG Minrui1
(1.School of Electronic and Information Engineering,Xi′an University of Science and Technology,Xi′an,710054,China;
2.National Key Laboratory,China Academy of Space Technology,Xi′an,710000,China)
Abstract:A realization scheme for image compression algorithm based on three layers Back Propagation(BP) neural network is presented,which adopts the method combining the universal IP core with the VHDL language.The FPGA design of multiply-accumulate module which is one of the important components is carried out,it is designed with pipeline,which could increase the data of processing,decrease the latency of system,raise the frequency of clock.The behavior of functional simulation for MAC is completed.The simulation results show that the design is practicable.
Keywords:FPGA;neural network;image compression;MAC
0 引 言
神經(jīng)網(wǎng)絡(Neural Networks)是人工神經(jīng)網(wǎng)絡(Artificial Neural Networks)的簡稱,是當前的研究熱點之一。人腦在接受視覺感官傳來的大量圖像信息后,能迅速做出反應,并能在腦海中重現(xiàn)這些圖像信息,這不僅與人腦的海量信息存儲能力有關,還與人腦的信息處理能力,包括數(shù)據(jù)壓縮能力有關。在各種神經(jīng)網(wǎng)絡中,多層前饋神經(jīng)網(wǎng)絡具有很強的信息處理能力,由于其采用BP算法,因此也稱為BP神經(jīng)網(wǎng)絡。采用BP神經(jīng)網(wǎng)絡模型能完成圖像數(shù)據(jù)的壓縮處理。在圖像壓縮中,神經(jīng)網(wǎng)絡的處理優(yōu)勢在于[1]:
巨量并行性;
信息處理和存儲單元結合在一起;
自組織自學習功能。
與傳統(tǒng)的數(shù)字信號處理器DSP(Digital Signal Processor)相比,現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)在神經(jīng)網(wǎng)絡的實現(xiàn)上更具優(yōu)勢。DSP處理器在處理時采用指令順序執(zhí)行的方式,而且其數(shù)據(jù)位寬是固定的,因而資源的利用率不高,限制了處理器的數(shù)據(jù)吞吐量,還需要較大的存儲空間[2-4]。FPGA處理數(shù)據(jù)的方式是基于硬件的并行處理方式,即一個時鐘周期內(nèi)可并行完成多次運算,特別適合于神經(jīng)網(wǎng)絡的并行特點,而且它還可以根據(jù)設計要求配置硬件結構,例如根據(jù)實際需要,可靈活設計數(shù)據(jù)的位寬等。隨著數(shù)字集成電路技術的飛速發(fā)展,FPGA芯片的處理能力得到了極大的提升,已經(jīng)完全可以承擔神經(jīng)網(wǎng)絡數(shù)據(jù)壓縮處理的運算量和數(shù)據(jù)吞吐量。圖像壓縮是信息傳輸和存儲系統(tǒng)的關鍵技術,然而如何進行FPGA設計,以實現(xiàn)給定的功能已經(jīng)成為神經(jīng)網(wǎng)絡應用的關鍵[5,6]。
基于以上原因,選擇FPGA作為三層BP神經(jīng)網(wǎng)絡圖像壓縮算法的實現(xiàn)方式,提出了具體的一種實現(xiàn)方案,并對其中的重點單元進行了FPGA設計與仿真驗證。
1 BP神經(jīng)網(wǎng)絡圖像壓縮算法
一般習慣將單隱層前饋網(wǎng)稱為三層前饋網(wǎng),它包括輸入層、隱含層和輸出層。三層BP神經(jīng)網(wǎng)絡結構如圖1所示,原始數(shù)據(jù)節(jié)點和重建數(shù)據(jù)節(jié)點構成節(jié)點數(shù)較大的外層(輸人層和輸出層),而中間的具有較小節(jié)點數(shù)的細腰層即構成壓縮結果。其基本思想是強迫原始數(shù)據(jù)通過細腰型網(wǎng)絡瓶頸,并期望在網(wǎng)絡的瓶頸處能獲得較為緊湊的數(shù)據(jù)表示,以達到壓縮的目的。在網(wǎng)絡的學習過程中,通過BP訓練算法,調(diào)整網(wǎng)絡的權重,使重建圖像在均方誤差意義上盡可能近似于訓練圖像。經(jīng)過訓練的網(wǎng)絡即可用來執(zhí)行數(shù)據(jù)壓縮任務,網(wǎng)絡輸入層與隱含層之間的加權值相當于一個編碼器,隱含層與輸出層之間的加權相當于一個解碼器。從輸入端輸入的原始圖像數(shù)據(jù)經(jīng)過神經(jīng)網(wǎng)絡的處理,在隱含層得到的輸出數(shù)據(jù)就是原始圖像的壓縮編碼,而輸出層矢量即為解壓后重建的圖像數(shù)據(jù)[7]。
圖1 三層前饋BP神經(jīng)網(wǎng)絡壓縮結構
BP神經(jīng)網(wǎng)絡用于圖像編碼的壓縮比與輸入層和隱含層的節(jié)點數(shù)有關:
壓縮比=輸入層節(jié)點數(shù)(n)/隱含層節(jié)點數(shù)(m)
因此一般來說采用不同數(shù)目的隱含層神經(jīng)元就可實現(xiàn)同一圖像的不同壓縮比。
三層BP前饋網(wǎng)中輸入向量X=x(x1,x2,…,xi,…,xn)T,隱含層輸出向量Y=y(y1,y2,…,yj,…,ym)T ,輸出層輸出向量O=o(o1,o2,…,ok,…,ol)T,期望輸出向量d=d(d1,d2,…,dk,…,dl)T,輸入層到隱含層的權值向量V=v(v1,v2,…,vj,…,vm)T,其中vj為隱含層第j個神經(jīng)元對應的權值向量;隱含層到輸出層的權值向量W=w(w1,w2,…,wk,…wl)T,其中wk為輸出層第k個神經(jīng)元對應的權值向量;隱含層的閾值向量θ=(θ1,θ2,…,θj,…,θm)T;輸出層的閾值向量γ=(γ1,γ2,…,γk,…,γl)T。
(1) 用小的隨機數(shù)對每一層的權值和偏差初始化,以保證網(wǎng)絡不被大的加權輸入飽和,并進行以下參數(shù)的設定或初始化:
期望誤差最小值;最大循環(huán)次數(shù);修正權值的學習速率;
(2) 將原始圖像分為4×4或8×8大小的塊,選取其中一塊的像素值作為訓練樣本接入到輸入層,計算各層輸出:
yj=f(netj)
(1)
netj=∑ni=1vijxi+θj, j=1,2,…,m;
(2)
ok=f(netk)
(3)
netk=∑mj=1wjkyj+γk, k=1,2,…,l
(4)
其中:f(•)為BP網(wǎng)絡中各層的傳輸函數(shù)。
(3)計算網(wǎng)絡輸出與期望輸出之間的誤差,判斷是否小于期望誤差,是則訓練結束,否則至下一步,其中反傳誤差的計算式為:
E=12(d-O)2=12∑lk=1(dk-ok)2
(5)
(4) 計算各層誤差反傳信號;
(5) 調(diào)整各層權值和閾值;
(6) 檢查是否對所有樣本完成一次訓練,是則返回步驟(2),否則至步驟(7);
(7) 檢查網(wǎng)絡是否達到最大循環(huán)次數(shù),是則訓練結束,否則返回步驟(2)。
經(jīng)過多次訓練,最后找出最好的一組權值和閾值,組成三層前饋神經(jīng)網(wǎng)絡,用于該算法的FPGA設計。
2 基于BP神經(jīng)網(wǎng)絡的FPGA設計
2.1 硬件設計方案
本文提出了一種基于三層前饋BP神經(jīng)網(wǎng)絡的圖像壓縮算法的實現(xiàn)方案,包括三層BP神經(jīng)網(wǎng)絡圖像壓縮算法編碼器以及譯碼器的實現(xiàn)方案。
由三層BP前饋神經(jīng)網(wǎng)絡圖像壓縮的結構圖可以看出,其解碼器是編碼器的逆過程,在實現(xiàn)編碼器之后,實現(xiàn)解碼器非常方便,故本文重點在于解碼器的FPGA設計。
基于三層BP前饋神經(jīng)網(wǎng)絡圖像壓縮算法的編碼器的FPGA設計方案如圖2所示。
圖2 三層BP神經(jīng)網(wǎng)絡圖像壓縮算法編碼器結構圖
其中,在數(shù)據(jù)預處理部分,首先將原始圖像分成n×n的小塊,以每一小塊為單位進行歸一化[8]。歸一化的目的,主要有以下兩點:
(1) BP網(wǎng)絡的神經(jīng)元均采用Sigmoid轉(zhuǎn)移函數(shù),變換后可防止因凈輸入的絕對值過大而使神經(jīng)元輸出飽和,繼而使權值調(diào)整進入誤差曲面的平坦區(qū);
(2) Sigmoid轉(zhuǎn)移函數(shù)的輸出在-1~+1之間,作為信號的輸出數(shù)據(jù)如不進行變換處理,勢必使數(shù)值大的輸出分量絕對誤差大,數(shù)值小的輸出分量絕對誤差小。網(wǎng)絡訓練時只針對輸出的總誤差調(diào)整權值,其結果是在總誤差中占份額小的輸出分量相對誤差較大,對輸出量進行尺度變化后這個問題可迎刃而解。
歸一化后得到以每小塊的灰度值為列向量組成的待壓縮矩陣,將該矩陣存儲在RAM里,然后以每一列為單位發(fā)送給先入先出寄存器FIFO(First Input First Output);由FIFO將向量x1,x2,…,xn以流水(pipeline)方式依次傳入各乘累加器MAC(Multiply-Accumulate),相乘累加求和后,送入LUT(Lookup Table)得到隱層相應的節(jié)點值,這里LUT是實現(xiàn)Sigmoid函數(shù)及其導函數(shù)的映射[9]。
在整個電路的設計中,采用IP(Intellectual Property)核及VHDL代碼相結合的設計方法,可重載IP軟核,具有通用性好,便于移植等優(yōu)點,但很多是收費的,比如說一個高性能流水線設計的MAC軟核,所以基于成本考慮,使用VHDL語言完成MAC模塊的設計,而RAM和FIFO模塊則采用免費的可重載IP軟核,使整個系統(tǒng)的設計達到最佳性價比。
在壓縮算法的實現(xiàn)中,乘累加單元是共同部分,也是編碼和譯碼器FPGA實現(xiàn)的關鍵。
2.2 乘累加器MAC的流水線設計及其仿真
流水線設計是指將組合邏輯延時路徑系統(tǒng)地分割,并在各個部分(分級)之間插人寄存器暫存中間數(shù)據(jù)的方法。流水線縮短了在一個時鐘周期內(nèi)信號通過的組合邏輯電路延時路徑長度,從而提高時鐘頻率。對于同步電路,其速度指同步電路時鐘的頻率。同步時鐘愈快,電路處理數(shù)據(jù)的時間間隔越短,電路在單位時間內(nèi)處理的數(shù)據(jù)量就愈大,即電路的吞吐量就越大。理論而言,采用流水線技術能夠提高同步電路的運行速度[10]。
MAC電路是實現(xiàn)BP神經(jīng)網(wǎng)絡的重要組成部分,在許多數(shù)字信號處理領域也有著廣泛應用,比如數(shù)字解調(diào)器、數(shù)字濾波器和均衡器,所以如何提高MAC的效率和運算速度具有極高的使用價值。
本方案采用的MAC設計以四輸入為例。
四輸入的MAC電路必須執(zhí)行四次乘法操作和兩次加法操作,以及最后的兩次累加操作。如果按照非流水線設計,完成一次對輸入的處理,需要這三步延遲時間的總和,這會降低一個高性能系統(tǒng)的效率。而采用流水線設計,則可以避免這種延遲,將MAC的操作安排的像一條裝配線一樣,也就是說,通過這種設計它可以使系統(tǒng)執(zhí)行的時鐘周期減小到流水線中最慢步驟所需的操作時間,而不是各步驟延遲時間之和,如圖3所示。
圖3 基于流水線設計的四輸入MAC結構圖
在第一個時鐘邊沿,第一對數(shù)據(jù)被存儲在輸入寄存器中。在第一個時鐘周期,乘法器對第一對數(shù)據(jù)進行乘法運算,同時系統(tǒng)為下一對數(shù)據(jù)的輸入作準備。在第二個時鐘邊沿,第一對數(shù)據(jù)的積存儲在第一個流水線寄存器,且第二對數(shù)據(jù)已經(jīng)進入輸入寄存器。在第二個時鐘周期,完成對第一對數(shù)據(jù)積的兩次加法操作,而乘法器完成第二對數(shù)據(jù)的積運算,同時準備接收第三隊數(shù)據(jù)。在第三個時鐘邊沿,這些數(shù)據(jù)分別存放在第二個流水線寄存器,第一個流水線寄存器,以及輸入寄存器中。在第三個時鐘周期,完成對第一對數(shù)據(jù)和之前數(shù)據(jù)的累加求和,對第二對數(shù)據(jù)的兩次加法操作,對第一對數(shù)據(jù)的乘法運算,并準備接收第四對數(shù)據(jù)。在第四個始終邊沿,累加器中的和將被更新。
在本設計方案中,測試仿真平臺選用的FPGA芯片為ALTERA公司Cyclone Ⅱ系列的EP2C8芯片,它采用90 nm的制造工藝,擁有8 256個邏輯單元,36個M4K隨機只讀存儲器,2個數(shù)字鎖相環(huán),以及18個硬乘法器等豐富資源。仿真工具使用業(yè)界流行的Mentor Graphics公司的仿真軟件Modelsim 6.1f。
對設計進行驗證時,常見的方法是在模擬時施加輸入激勵信號,然后“讀”該設計的輸出信號,它的主要缺點是隨著模擬器的不同而不同。為了克服此缺點,采用的測試方法是用VHDL編寫一個測試模型發(fā)生器,稱為Testbench,它的優(yōu)點是通用性好,靈活性強,可以隨時更改輸入激勵,已得到不同的仿真結果。
在對該MAC模塊進行測試的過程中,涉及輸入數(shù)據(jù)的轉(zhuǎn)化問題,如前所述,在本神經(jīng)網(wǎng)絡中,輸入數(shù)據(jù)歸一化后,集中在-1~+1之間,所以處理時必須進行轉(zhuǎn)化,最后采用16位補碼形式的定點二進制表示法,由于在求和中可能會產(chǎn)生溢出,還必須包含一個溢出狀態(tài)信號。
輸入數(shù)據(jù)轉(zhuǎn)換16位補碼的仿真波形如圖4所示。
圖4 輸入數(shù)據(jù)轉(zhuǎn)換16位補碼仿真波形圖
16位補碼轉(zhuǎn)換原輸入實數(shù)的仿真波形如圖5所示。
圖5 16位補碼轉(zhuǎn)換為實數(shù)的仿真波形圖
在完成了對輸入、輸出數(shù)據(jù)的轉(zhuǎn)換之后,編寫Testbench(測試臺)程序,對基于流水線設計的四輸入MAC進行行為級仿真,仿真波形如圖6所示。
圖6 MAC行為級功能仿真圖
綜上所述,在基于流水線的乘法設計中,雖然每一步操作后都加入了寄存器,消耗了更多的資源,但卻可以將系統(tǒng)延時降低到最慢步驟所需要的時間,極大地提高了同步電路的運算速度。
3 結 語
介紹了基于三層前饋BP神經(jīng)網(wǎng)絡的圖像壓縮算法,提出了基于FPGA的實現(xiàn)驗證方案,詳細討論了實現(xiàn)該壓縮網(wǎng)絡組成的重要模塊MAC電路的流水線設計。在對BP神經(jīng)網(wǎng)絡的電路設計中,對傳輸函數(shù)及其導函數(shù)的線性逼近也是近來研究的熱點之一,本文使用的壓縮查找表雖然能夠滿足設計要求,但仍然消耗了大
量資源。該研究結果對整個壓縮解壓縮算法的實現(xiàn)以及多層神經(jīng)網(wǎng)絡的相關研究工作提供了參考。
參考文獻
[1]董長虹.Matlab神經(jīng)網(wǎng)絡與應用[M].2版.北京:國防工業(yè)出版社,2007.
[2]趙宏怡.DSP技術與應用實例[M].北京:電子工業(yè)出版社,2003.
[3]劉艷萍.DSP技術原理及應用教程[M].北京:北京航空航天大學出版社,2005.
[4]蘇濤,藺麗華.DSP實用技術[M].西安:西安電子科技大學出版社,2005.
[5]田華,馮勤群,胡喜飛.基于DSP和FPGA的高速圖像壓縮系統(tǒng)設計[J].電子工程師,2005,31(8):51-52.
[6]張秀艷.基于FPGA的神經(jīng)網(wǎng)絡硬件實現(xiàn)中的關鍵問題研究[J].科技情報開發(fā)與經(jīng)濟,2005,15(5):273-275.
[7]馮春麗.基于改進型BP網(wǎng)絡圖像壓縮方法的研究[D].錦州:遼寧工學院,2007.
[8]張銳菊,周詮.神經(jīng)網(wǎng)絡用于遙感圖像壓縮的一些研究結果[J].中國體視學與圖像分析,2003,8(3):183-186.
關鍵詞:BP神經(jīng)網(wǎng)絡;VHDL;模擬與仿真
一、人工神經(jīng)理論基礎
神經(jīng)網(wǎng)絡又被稱為鏈接模型,其本身是模仿動物的神經(jīng)網(wǎng)絡,并根據(jù)其行為特征分布式進行算法數(shù)學模型處理。在計算機上,人們可以利用并行或者串行的模式模擬仿真,實現(xiàn)人們自身的神經(jīng)網(wǎng)絡模型算法。在特定應用情況下,進行神經(jīng)網(wǎng)絡研究的目標則是高性能專用的神經(jīng)網(wǎng)絡硬件。
神經(jīng)元是人工神經(jīng)網(wǎng)絡的基本單元,具有一定的信息處理方面的能力。對于輸入的內(nèi)容,神經(jīng)元可以簡單進行處理,能根據(jù)學習規(guī)則做好加權求和,并根據(jù)權值來獲取神經(jīng)元的狀態(tài)輸出,以便對刺激進行處理。還可建立基于VHDL語言的神經(jīng)網(wǎng)絡元件庫,它包括基本單元、控制單元兩個部分。
二、 BP神經(jīng)網(wǎng)絡結構模型
BP神經(jīng)網(wǎng)絡由輸入層、隱含層和輸出層組成,相鄰層之間的各個神經(jīng)元實現(xiàn)全連接,每層各個神經(jīng)元之間沒有連接。
BP算法正向傳播過程:輸入信號從輸入層輸入,經(jīng)過隱含層傳向輸出層。如果輸出層的實際輸出與期望輸出一致,那么學習算法結束?;究刂茊卧糜诮㈦[含層和輸出層的神經(jīng)元,主要解決信號運算后權值存儲問題,它主要包括加權乘法、神經(jīng)元輸入信號的累加、非線性激勵函數(shù)的實現(xiàn)、權值存儲等基本模塊。
圖1中xi代表第i個輸入,wij代表輸入i和神經(jīng)元j之間的權值(weight),yj是第j個輸出。如圖1所示可以得到:
y1=f(x1.w11+x2.w21+x3.w31 ) 2-1
y2=f(x1.w11+x2.w22+x3.w32) 2-2
y3=f(x1.w11+x2.w23+x3.w33) 2-3
其中f( )是激化函數(shù)(如線性閾值的sigmoid函數(shù)等)。
三、神經(jīng)網(wǎng)絡模型與仿真
clk產(chǎn)生脈沖信號,輸入端x1,x2,x3 分別置為011,100,101,權值初值設為0000,通過9個脈沖周期一次遞增到1000,將權值與輸入值進行運算,得出結果。在權值固定時,輸出取決于輸入,不同的輸入得到不同的輸出結果。而在權值變化時,輸出就由輸入和權值決定。
為了仿真的結果更直觀,代碼采用的每個神經(jīng)元的3個輸入信號以及權值的位寬都為4,且?guī)в蟹?。權值共設了9個,采用9個時鐘周期將權值移入值。模擬與仿真的結果如圖2所示。
結果分析:模擬結果與結果一致,此仿真成功。
四、結語
基于VHDL編程實現(xiàn)簡單神經(jīng)網(wǎng)絡的軟件模擬與仿真,從算法的提出到模型的建立,完整地體現(xiàn)神經(jīng)網(wǎng)絡的可用性與優(yōu)越性。文中所提的神經(jīng)網(wǎng)絡模型是對單個神經(jīng)網(wǎng)絡的模擬與仿真,以及基于二維數(shù)組的多個輸入輸出的大規(guī)模神經(jīng)網(wǎng)絡的模擬。由于VHDL語言編程的靈活性,可以將編程下載到芯片用硬件實現(xiàn)對神經(jīng)網(wǎng)絡的模擬,以提高系統(tǒng)運算的速度和可靠性。
參考文獻:
神經(jīng)科研究 神經(jīng)內(nèi)科論文 神經(jīng)網(wǎng)絡技術 神經(jīng)網(wǎng)絡論文 神經(jīng)外科論文 紀律教育問題 新時代教育價值觀