何立群 占永平
(1九江學院信息科學與技術學院;2九江學院信息技術中心 江西九江 332005)
感知器神經(jīng)網(wǎng)絡模型研究
何立群1占永平2
(1九江學院信息科學與技術學院;2九江學院信息技術中心 江西九江 332005)
文章介紹人工神經(jīng)網(wǎng)絡中的典型模型單層感知器和多層感知器,給出標準的感知器學習算法及算法的實現(xiàn)步驟,在此基礎上介紹了感知器神經(jīng)網(wǎng)絡模型的改進算法,并對這些算法的特點進行了分析。
感知器,神經(jīng)網(wǎng)絡,多層感知器
感知器是人工神經(jīng)網(wǎng)絡中的一種典型結構,它的主要的特點是結構簡單,對所能解決的問題存在著收斂算法,并能從數(shù)學上嚴格證明,從而對神經(jīng)網(wǎng)絡研究起了重要的推動作用。雖然它提出的時間較早,至今卻仍然對其它復雜的算法具有指導意義。
人工神經(jīng)網(wǎng)絡是腦科學、神經(jīng)心理學和信息科學等多學科的交叉研究領域,它在模式識別、機器學習、專家系統(tǒng)等多個方面得到應用,成為人工智能研究中的活躍領域。神經(jīng)網(wǎng)絡由一個或多個神經(jīng)元組成。一個神經(jīng)元包括輸入、輸出和“內(nèi)部處理器”。神經(jīng)元從輸入端接受信息,通過“內(nèi)部處理器”將這些信息進行一定的處理,最后由輸出端輸出。
感知器(Perceptron)是神經(jīng)網(wǎng)絡中的一個概念。感知器模型是美國學者羅森勃拉特(Rosenblatt)為研究大腦的存儲、學習和認知過程而提出的一類具有自學習能力的神經(jīng)網(wǎng)絡模型,它是第一個機器學習模型。它把對神經(jīng)網(wǎng)絡的研究從純理論探討引向了從工程上的實踐。感知器是經(jīng)典的線性分類模型,是神經(jīng)網(wǎng)絡和支持向量機的基礎。
Rosenblatt提出的感知器模型是一個只有單層計算單元的前向神經(jīng)網(wǎng)絡,稱為單層感知器(Single Layer Perceptron),它是一種二元線性分類器。
2.1 單層感知器模型
單層感知器是最簡單的神經(jīng)網(wǎng)絡,它包含輸入層和輸出層,而輸入層和輸出層是直接相連的。單層感知器模型的結構如圖1所示。
圖1 感知器神經(jīng)元模型
圖1顯示,對于每一個輸入值X=(x1,x2,…xd),通過一個權重向量W,進行加權求和,并作為閾值函數(shù)的輸入,可以寫成如下線性函數(shù)的形式:
(1)
式(1)中,xi是輸入分量,wi是權值分量,w0是閾值,O是目標輸出。作為分類器,可以用已知類別的模式向量或特征向量作為訓練集。利用式(1),計算輸入層中,每一個輸入端和其上的權值相乘,然后將這些乘積相加得到乘積之和。如果乘積和大于臨界值(一般是0),輸出端就為1;如果小于臨界值,輸出端就為-1,將輸入向量分成了兩類,從而實現(xiàn)分類器的作用。
由感知器的模型結構可以看出,感知器的基本功能是將輸入向量轉化成1或-1的輸出,這一功能可以通過在輸入向量空間里的作圖來加以解釋。如果樣本是二類線性可分的,則線性方程WX+w0=0是特征空間中的超平面,該超平面將特征空間劃分成兩個部分,模型的權值W與w_0確定好之后,當WX+w0≥0時,訓練點會落在這個超平面的正例區(qū);當WX+w0<0時,則會落在負例區(qū)。訓練的目標是通過調(diào)整權值,使神經(jīng)網(wǎng)絡由給定的輸入樣本得到期望的輸出[1]。
出于簡化計算和方便推導的目的,假設x0=1,公式(1)可以寫作:
O=f(WTX)
(2)
2.2 單層感知器學習算法
感知器習算法可以用來調(diào)整模型的權值,對于已有的訓練樣本,計算得到一個權值矩陣W,使得WTX=0這個超平面能夠完全將兩類樣本分開。
假設訓練樣本集{(X1,Y1),(X2,Y2),…(Xm,Ym) },Xi∈Rd,Yi∈{+1,-1},m是訓練集的總樣本數(shù)。對于t=0,1,…,設Xi(t)是t時刻感知器的輸入(i=1,2,…,m),Wi(t)是相應的權值,Yi(t)是正確的輸出。下面給出PLA算法的實現(xiàn)步驟:
(1)首先將權值向量W進行初始化,可以為0或較小的隨機數(shù);
(2)循環(huán)遍歷每個樣本,計算函數(shù)的目標輸出,將輸出值與正確值相比較,如果f(WtTXm(t))=Y(m(t)),則跳過;
(3)如果f(WtTXm(t))≠Y(m(t),即找到一個錯分的wt,此時該樣本被稱為(xm(t),yn(t));
修正這個錯誤,用下面的式子來調(diào)整權值:
W(t+1)←Wt+ηYm(t)Xm(t)
其中η為學習速率。
(4)重復(2)和(3)權值調(diào)整過程,直到所有的訓練樣本都分類正確或達到預先設計的訓練次數(shù),則停止訓練。
PLA的主要功能是通過對訓練樣本集的學習,得到判別函數(shù)權值的解,產(chǎn)生線性可分的樣本判別函數(shù),從而判別樣本所屬的類別,實現(xiàn)分類器的作用。該算法屬于非參數(shù)算法,優(yōu)點是不需要對各類樣本的統(tǒng)計性質作任何假設,屬于確定性方法[2]。
單層感知器的缺點是只能解決線性可分的分類模式問題。對于非線性問題,采用多層網(wǎng)絡結構可以增加網(wǎng)絡的分類能力,即在輸入層與輸出層之間增加一個隱含層,從而構成多層感知器(Multi-layer Perceprons)。由輸入層、隱含層(可以是一層或多層)和輸出層構成的神經(jīng)網(wǎng)絡稱為多層前饋神經(jīng)網(wǎng)絡。多層感知器的拓撲結構如圖2所示。
圖2 多層感知器模型
3.1 反向傳播(Back Propagation,BP)算法[3]
反向傳播算法也稱為誤差后向傳播神經(jīng)網(wǎng)絡,它是一種用于前向多層神經(jīng)網(wǎng)絡的反傳學習算法,也是神經(jīng)網(wǎng)絡模型中應用最廣泛且最重要的一類學習算法。它具有理論依據(jù)堅實、推導過程嚴謹及通用性好的優(yōu)點。
BP算法的學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成,即:①正向傳播:輸入層接收外來的輸入樣本,各隱含層進行逐層處理后,輸出層輸出結果。將輸出層的實際輸出與期望輸出進行比較,若兩者不相吻合,則進入誤差的反向傳播階段;②誤差反向傳播:用輸出后誤差來估計輸出層的直接前導層的誤差,再用這個誤差估計更前一層的誤差,如此逐層反傳下去,各層單元產(chǎn)生的誤差信號,用來修正各單元誤差(權值),以期誤差最小。
在BP模型的學習訓練過程中,可利用一些方法如梯度下降法,使權值不斷的朝著輸出誤差減少的方向調(diào)整,直到網(wǎng)絡輸出的誤差減少到允許的程度,或者可以事先指定必要的學習次數(shù),達到既定次數(shù)即可停止訓練。由此可知,BP算法的信號正向傳播與誤差反向傳播的各層權值的調(diào)整過程是交替的、多次反復的。
BP算法的主要步驟如下:
(1)初始化:取一對BP網(wǎng)絡輸入樣本(X,Y),m為輸入結點的個數(shù),對權值向量W賦較小的非零隨機值,并設置學習步長η,允許誤差ε;
(2)正向計算隱含層節(jié)點和輸出層節(jié)點的輸出:
隱含層節(jié)點輸出Oj=f(∑i=1mWijXi),j=1,2,...,p,p為隱含層節(jié)點的個數(shù);輸出層節(jié)點輸出Yk=f(∑i=1pWik(2)Op),k=1,2,...,n,n為輸出結點的個數(shù),f為非線性可微非遞減函數(shù),一般取為Sigmoid型函數(shù);
(4)反向計算隱含層節(jié)點誤差;
(5)修正各層的權值;
(6)取下一對樣本返回(2)處進行循環(huán),直到全部樣本訓練結束。
由于感知器自身結構的限制,使得它在實際應用中具有局限性,如原始的單層感知器只能處理線性可分問題,對線性不可分問題,算法在計算過程中會發(fā)生振蕩現(xiàn)象,即算法無法停止。因此,對于有雜音的數(shù)據(jù),人們只能期望找到錯誤最少的結果。在實際工作中,很多學者設計出各種準則以使算法中止,Gallant提出一種感知器的改進算法,即在PLA的迭代過程中引入一個口袋權向量來存放正確運行次數(shù)最多的感知器權向量,其目標是找到一個錯分樣本最少的解(最優(yōu)解)。Gallant稱這一改進算法為口袋算法(Pocket Algorithm),并且證明了對于整數(shù)和有理數(shù)輸入情況下口袋算法的收斂性。Pocket PLA是一個貪心的近似算法,可以處理線性不可分問題,較好地解決了樣本中的噪音數(shù)據(jù)和矛盾數(shù)據(jù)。
線性口袋算法改進了線性感知器算法,能夠直接處理線性不可分問題。核感知器算法則利用核思想非線性地推廣了線性感知器算法,使其可以處理原始輸入空間中的非線性分類問題和高維特征空間中的線性問題。國內(nèi)許健華、張學工等學者提出基于核函數(shù)的非線性口袋算法,即核口袋算法,其目標是找到一個使錯分樣本數(shù)最小的非線性判別函數(shù),并證明了其收斂性。核口袋算法的特點是用簡單的迭代過程和核函數(shù)來實現(xiàn)非線性分類器的設計。
此外,還有一些學者提出的平均感知器(Averaged Perceptron, AP)算法、信任權(Confidence Weighted, CW)學習算法、表決感知器(Voted Perceptron, VP)算法、被動主動(Passive Aggressive, PA)算法等等,都對原感知器算法進行了改進,它們或克服了學習速率過大所引起的訓練過程中出現(xiàn)的震蕩現(xiàn)象、或提高了分類準確性、或加快了學習速度、或解決不可分數(shù)據(jù)的問題。
除單層感知器外,許多學者對多層感知器BP網(wǎng)絡進行了研究,認為該學習算法的收斂速度慢,需要較長的訓練時間。從數(shù)學角度看,BP算法采用了按誤差函數(shù)梯度下降的方向進行收斂,這就可能出現(xiàn)局部極小的問題,當?shù)萑刖植繕O小值時,人們誤認為得到了問題的解,其實誤差符合要求的并不一定是真正的解;網(wǎng)絡中隱含層節(jié)點個數(shù)的選取也是憑經(jīng)驗,尚無理論上的指導。為了讓BP算法更好地應用在實際,國內(nèi)外許多學者對算法進行了有效的改進。BP網(wǎng)絡的改進算法大體上分為兩類,一類是采用啟發(fā)式技術,如附加動量法、自適應學習速率法、BP彈性(RPROP )方法等[4]:
(1)附加動量法。它在標準的BP算法修正權值時,在每一個權重的變化上加上一項動量因子,動量因子正比于上一次權重變化量的值,并根據(jù)反向傳播法來產(chǎn)生新的權重的變化。在沒有附加動量的作用下,網(wǎng)絡可能陷入局部極小值,利用附加動量的作用有可能跳過這些極小值。這是因為附加動量法在修正其權值時,考慮了在誤差曲面上變化趨勢的影響,從而抑制了局部極小,找到誤差曲面的全局最小值。這里動量因子實質上起到了緩沖的作用,它減小了學習過程的振蕩現(xiàn)象,一定程度上加快了BP算法的收斂速度。
(2)自適應學習速率算法。標準BP算法的學習速率采用的是確定值,學習速率的選擇非常重要,學習速率選得小雖然有利于總誤差縮小,但會導致收斂速度過慢。學習速率選取得太大,則有可能導致無法收斂。為了解決這一問題,可以采用自適應調(diào)整學習效率的改進算法,此算法的基本思想是根據(jù)誤差變化而自適應調(diào)整。如果權值修正后確實降低了誤差函數(shù),則說明所選取的學習速率值小了,應增大學習速率;如果沒有則說明學習速率調(diào)得過大,應減小學習速率??傊箼嘀档恼{(diào)整向誤差減小的方向變化。自適應學習速率算法可以縮短訓練時間。
(3)動量-自適應學習速率調(diào)整算法。這一算法采用了附加動量法和自適應學習速率法兩種方法的結合,既可以找到全局最優(yōu)解,也可以縮短訓練時間。此外,還有學者提出了隱含層節(jié)點和學習效率動態(tài)全參數(shù)自適應調(diào)整等算法,有效地改善了收斂效果。
另一類BP改進算法是對其進行了數(shù)學上的優(yōu)化,如擬牛頓法在搜索方向上進行了改進;共軛梯度法則是在收斂速度和計算復雜度上均能取得較好效果,特別是用于網(wǎng)絡權值較多的情形;Levenberg - Marquardt 法則結合了梯度下降和牛頓法的優(yōu)點,在網(wǎng)絡權值不多的情形下,收斂速度很快,優(yōu)點突出。
神經(jīng)網(wǎng)絡是計算機智能和機器學習研究、開發(fā)和應用最活躍的分支之一。盡管經(jīng)典感知器算法只能處理線性可分問題,但它是廣大模式識別和神經(jīng)網(wǎng)絡研究人員所熟悉的最簡單的學習機器,也是后來發(fā)展的許多復雜算法的基礎。
[1]機器學習.筆記(三)k近鄰算法和感知器模型[EB/OL]. http://blog.sina.com.cn/s/blog_62b0682a0101e8e0.html. 2013-04-18.
[2]劉建偉,申芳林,羅雄麟. 感知器學習算法研究[J]. 計算機工程,2010,36(7):190.
[3]蔣宗禮.人工神經(jīng)網(wǎng)絡導論[M].北京:高等教育出版社,2001.121.
[4]王坤.神經(jīng)網(wǎng)絡的特點及改進方法綜述[J]. 科技廣場,2011,24(7):227.
(責任編輯胡安娜)
2014-10-22
何立群,25871687@qq.com。
TP 273
A
1674-9545(2014)04-0037-(04)