摘 要 本文通過(guò)實(shí)現(xiàn)多層感知器神經(jīng)網(wǎng)絡(luò)反向傳播算法,對(duì)其中各神經(jīng)元突觸權(quán)值和偏置的自適應(yīng)收斂速度的影響因素進(jìn)行研究,包括激活函數(shù)、學(xué)習(xí)率和特征的提取及其初始化等。并通過(guò)非線(xiàn)性可分的“異或”問(wèn)題來(lái)進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果表明反向傳播算法在學(xué)習(xí)率、特征初值和激活函數(shù)選擇得當(dāng)?shù)那疤嵯率且环N高效的算法。
關(guān)鍵詞 人工智能;人工神經(jīng)網(wǎng)絡(luò);多層感知器;支持向量機(jī)
引言
隨著信息技術(shù)(處理器、存儲(chǔ)、網(wǎng)絡(luò)和物聯(lián)網(wǎng)等技術(shù))的步深化和人類(lèi)社會(huì)信息化程度的不斷提高,需要處理的數(shù)據(jù)量和種類(lèi)越來(lái)越多,靠人腦來(lái)處理這些海量數(shù)據(jù)已經(jīng)不可能[3]。利用計(jì)算機(jī)的高速數(shù)據(jù)處理特性,來(lái)處理這些海量數(shù)據(jù)是必由之路,如何訓(xùn)練計(jì)算機(jī)使其具有像人腦類(lèi)似的智能是當(dāng)務(wù)之急。
以模擬人腦神經(jīng)系統(tǒng)的工作原理的人工神經(jīng)網(wǎng)絡(luò)(ANN: Artificial Neural Network),主要解決非線(xiàn)性可分的復(fù)雜問(wèn)題[1],
逐漸成為人工智能(AI: Artificial Intelligence)主要的技術(shù)之一。神經(jīng)網(wǎng)絡(luò)的主要思想是通過(guò)將非線(xiàn)性問(wèn)題分解為若干線(xiàn)性問(wèn)題,從而可以在每個(gè)神經(jīng)元利用機(jī)器學(xué)習(xí)算法,如K均值(K-Means)和支持向量機(jī)(SVM: Support Vector Machine)[1-3]等。
1神經(jīng)網(wǎng)絡(luò)概述
1.1 神經(jīng)元模型
神經(jīng)元是神經(jīng)網(wǎng)絡(luò)進(jìn)行信息處理的最基本單元[1],它既能處理線(xiàn)性數(shù)據(jù),也能處理非線(xiàn)性數(shù)據(jù),其模型如圖1所示:
神經(jīng)元模型由三種元素組成:突觸、加法器和激活函數(shù)[1]。
此外,它還包含外部偏置,它根據(jù)其數(shù)值的符號(hào)和大小,來(lái)增加或減弱輸入信號(hào)加權(quán)和通過(guò)激活函數(shù)對(duì)神經(jīng)網(wǎng)絡(luò)輸入。神經(jīng)元的信號(hào)傳遞特性由如下的線(xiàn)性代數(shù)式定義[1]:
1.2 神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)以分層結(jié)構(gòu)為基本特征,根據(jù)功能的不同可分為三類(lèi)[1]:輸入層、隱藏層和輸出層,如圖2所示。神經(jīng)元按所在網(wǎng)絡(luò)層的不同,分別稱(chēng)為源節(jié)點(diǎn)、隱藏節(jié)點(diǎn)和輸出節(jié)點(diǎn)。
根據(jù)網(wǎng)絡(luò)中信息流動(dòng)的不同,神經(jīng)網(wǎng)絡(luò)構(gòu)造結(jié)構(gòu)可分為[1]:
前饋網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)。前饋網(wǎng)絡(luò)結(jié)構(gòu)中,信息從源節(jié)點(diǎn)逐級(jí)向后傳遞,直到最后的輸出節(jié)點(diǎn);而遞歸網(wǎng)絡(luò)結(jié)構(gòu)中,神經(jīng)元的輸出與其輸入會(huì)構(gòu)成反饋環(huán)。神經(jīng)網(wǎng)絡(luò)的構(gòu)造方式,與用于訓(xùn)練網(wǎng)絡(luò)的學(xué)習(xí)算法緊密聯(lián)系。
2多層神經(jīng)網(wǎng)絡(luò)以及反向傳播學(xué)習(xí)算法
反向傳播神經(jīng)網(wǎng)絡(luò)主要特征,是神經(jīng)元的輸出會(huì)反饋給其輸入神經(jīng)元,如圖3所示。反向傳播算法是基于多層感知器(神經(jīng)網(wǎng)絡(luò))提出,是訓(xùn)練多層感知器的流行算法,由“前向階段”和“反向階段”兩個(gè)階段組成[1]:
(1)前向階段:網(wǎng)絡(luò)中各突觸權(quán)值和偏置固定,輸入信號(hào)(xi)從輸入層開(kāi)始在網(wǎng)絡(luò)中一層一層沿著突觸傳播,直到到達(dá)輸出層。在此階段,函數(shù)信號(hào)在每個(gè)神經(jīng)元的傳遞方式遵循式(1.1)和式(1.2)的定義。
(2)反向階段:將前向階段的輸出信號(hào)(yj)與期望值(dj)之間的誤差信號(hào)(ej)從輸出層向輸入層傳播,并修改其經(jīng)過(guò)的神經(jīng)元突觸權(quán)值wkj和偏置bk。
信號(hào)反向傳播算法,是基于神經(jīng)元的前向傳播信號(hào)流在最小均方(LMS: Least Mean Square)誤差[1,7]作用下的結(jié)果。圖4為任意神經(jīng)元前向信號(hào)流圖。
根據(jù)神經(jīng)元前向傳播信號(hào)流,定義神經(jīng)元j的誘導(dǎo)局部域定義為vj(n)[1]為:
定義總誤差E(n)為所有輸出層神經(jīng)元的信號(hào)誤差的平方和,設(shè)輸出層有k個(gè)神經(jīng)元,其中第j個(gè)神經(jīng)元的輸出信號(hào)誤差ej為輸出信號(hào)yj(n)與該信號(hào)期望值dj之差,記為:
反向傳播在輸出層和隱藏層的傳播略微不同,主要體現(xiàn)在局部梯度δj(n)的計(jì)算方式不同,在輸出層中的計(jì)算相對(duì)直接,在隱藏層中的梯度是基于其后一層的計(jì)算結(jié)果遞歸而得。
2.2 輸出層神經(jīng)元的反向傳播算法
圖5為輸出層任一神經(jīng)元的前向信號(hào)流圖,根據(jù)其信號(hào)流圖以及導(dǎo)數(shù)的鏈?zhǔn)焦降闷渚植刻荻圈膉(n),并將式(2.5),(2.6)和(2.7)代入。故局部梯度式(2.10)在輸出層的重寫(xiě)為:
2.3 隱藏層神經(jīng)元的反向傳播算法
圖6為隱藏層任一神經(jīng)元的前向信號(hào)流圖,根據(jù)隱藏層的神經(jīng)元的級(jí)聯(lián)結(jié)構(gòu)及其信號(hào)流圖可以看出,(設(shè)神經(jīng)元j的后一層有m個(gè)神經(jīng)元)根據(jù)式(2.1)可得,后一層神經(jīng)元k的誘導(dǎo)局部域?qū)ι窠?jīng)元j的輸出信號(hào)yj(n)=xj(n)的偏導(dǎo)數(shù)為:
根據(jù)鏈?zhǔn)綄?dǎo)數(shù)公式,神經(jīng)元j的局部梯度δj(n)可以通過(guò)后一層所有神經(jīng)元k的局部梯度δk(n), k=0,1,2…m遞推而得。代入式(2.7),(2.10)和(2.13)可將式(2.10)在隱藏層的重寫(xiě)為:
3反向傳播算法收斂速度的影響因素
本文用Python語(yǔ)言實(shí)現(xiàn)了多層感知器反向傳播算法,并基于圖7所示的2x2x1(2輸入層源節(jié)點(diǎn)2隱藏層節(jié)點(diǎn)1輸出層節(jié)點(diǎn))多層感知器神經(jīng)網(wǎng)絡(luò)為例,以非線(xiàn)性可分的(或識(shí)別問(wèn)題為對(duì)象,來(lái)研究反向傳播算法的收斂速度的影響因素。
3.1 算法實(shí)現(xiàn)
本文實(shí)現(xiàn)的反向傳播神經(jīng)網(wǎng)絡(luò)算法主要由三個(gè)模塊組成:異或特性隨機(jī)數(shù)據(jù)生成器、反向傳播多層感知器和輔助模塊。異或隨機(jī)數(shù)據(jù)生成器主要負(fù)責(zé)異或隨機(jī)數(shù)據(jù)生成,輔助模塊與matplotlib庫(kù)和numpy庫(kù)接口,負(fù)責(zé)繪圖和計(jì)算功能。反向傳播多層感知器是核心,包括算法的前向階段和反向傳播階段計(jì)算、誤差統(tǒng)計(jì)、停止判斷以及邊界探測(cè)等功能,以及一個(gè)神經(jīng)網(wǎng)絡(luò)參數(shù)庫(kù),保存計(jì)算突觸權(quán)值/偏置的最終結(jié)果和中間結(jié)果,以及臨時(shí)結(jié)果(如每個(gè)神經(jīng)元的輸出和局部梯度等)。軟件結(jié)構(gòu)和算法實(shí)現(xiàn)的流程圖如圖8所示。
3.2 數(shù)據(jù)生成
設(shè)有點(diǎn)p0(0,0),p1(0,1),p2(1,0),p3(1,1),其中p0(0,0),p3(1,1)是一類(lèi)數(shù)據(jù),p1(0,1),p2(1,0)是另一類(lèi)數(shù)據(jù),區(qū)分這兩類(lèi)數(shù)據(jù)的就是非線(xiàn)性可分的異或識(shí)別問(wèn)題:點(diǎn)的兩坐標(biāo)相同時(shí),即(0,0)或(1,1),代表數(shù)據(jù)類(lèi)I;點(diǎn)的兩坐標(biāo)不同時(shí),即(0,1)或(1,0),代表數(shù)據(jù)類(lèi)II。直觀可知,區(qū)分兩組數(shù)據(jù)可分別用兩組相同斜率直線(xiàn)來(lái)實(shí)現(xiàn):正斜率直線(xiàn)組和負(fù)斜率直線(xiàn)組。
為體現(xiàn)數(shù)據(jù)的隨機(jī)性,并更接近應(yīng)用實(shí)際,樣本數(shù)據(jù)分別以點(diǎn)p0,p1,p2,p3為圓心,半徑為0.2的范圍內(nèi)隨機(jī)生成50個(gè)隨機(jī)點(diǎn),即每一類(lèi)100個(gè)數(shù)據(jù)點(diǎn)。為簡(jiǎn)化數(shù)據(jù)的處理,不失一般性,對(duì)數(shù)據(jù)進(jìn)行零均值處理,如下圖所示。
為體現(xiàn)算法的普遍適用性,后面的每個(gè)實(shí)驗(yàn)的輸入數(shù)據(jù)都是按照上述約束隨機(jī)生成,并相互獨(dú)立,以保證其獨(dú)立同分布(iid: independent identical distributed)。
3.3 反向傳播算法的收斂
由式(1.1)和(1.2)可知,神經(jīng)網(wǎng)絡(luò)特性由其中各神經(jīng)元的突觸權(quán)值(wji)、偏置(bj)和激活函數(shù)(φ(vj))決定。激活函數(shù)是事先決定的,突觸權(quán)值和偏置是神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)的學(xué)習(xí)結(jié)果。學(xué)習(xí)過(guò)程收斂速度不僅與樣本數(shù)據(jù)的復(fù)雜度有關(guān),而且還與突觸權(quán)值和偏置初值設(shè)定和學(xué)習(xí)率(η)設(shè)定直接相關(guān)。
(1)激活函數(shù)的選擇
常用的激活函數(shù)有:邏輯函數(shù)、sigmoid函數(shù)和正切雙曲函數(shù)等。較好的激活函數(shù)通常是單調(diào)奇函數(shù)[1],正切雙曲函數(shù)滿(mǎn)足這個(gè)條件,常作為激活函數(shù)使用。正切雙曲函數(shù)定義如下:
選擇合適的系數(shù)α和b是必要的,LeCun的研究建議下面的經(jīng)驗(yàn)值[4-5]:
故本案選擇的正切雙曲函數(shù)將神經(jīng)元的輸出限制在(-1.7159,1.7159)范圍內(nèi)。
(2)學(xué)習(xí)率對(duì)收斂速度的影響
固定權(quán)值/偏置(wji、bj)初值表示的特征和激活函數(shù)φ(vj),來(lái)研究不同學(xué)習(xí)率η對(duì)算法收斂的影響。本小節(jié)的實(shí)驗(yàn)結(jié)果都是基于相同的提取特征(正斜率直線(xiàn)組)的兩個(gè)特征初值為
(1,-1,1)和(-1,-1,1),然后通過(guò)選取不同學(xué)習(xí)率η來(lái)研究其如何影響學(xué)習(xí)算法的收斂速度、學(xué)習(xí)結(jié)果和學(xué)習(xí)曲線(xiàn),如下圖所示:
通過(guò)對(duì)比研究,可以發(fā)現(xiàn):
1)當(dāng)η小于或等于0.08時(shí),學(xué)習(xí)曲線(xiàn)總能收斂,學(xué)習(xí)后的神經(jīng)網(wǎng)絡(luò)能清晰分開(kāi)兩類(lèi)數(shù)據(jù)。
2)隨著學(xué)習(xí)率η從0.005增加到0.08,學(xué)習(xí)率η每增加一倍,算法收斂所需的輪回?cái)?shù)減少一半,即收斂速度提高一倍。正如式(2.9)表明的權(quán)值修正量△wji(n)與學(xué)習(xí)率η成正比,即相同初始總誤差(由權(quán)值初值決定),權(quán)值修正量△wji(n)增加一倍,總誤差收斂到0(接近于0)所需要的輪回?cái)?shù)減少一半,如下圖表所示:
3)學(xué)習(xí)率太大(η=0.16)時(shí),學(xué)習(xí)曲線(xiàn)出現(xiàn)震蕩現(xiàn)象,學(xué)習(xí)后的神經(jīng)網(wǎng)絡(luò)會(huì)導(dǎo)致部分誤判。為了進(jìn)一步研究學(xué)習(xí)率對(duì)學(xué)習(xí)曲線(xiàn)震蕩的影響,下圖對(duì)比了學(xué)習(xí)率從0.08到0.2區(qū)間的變化情況??梢钥闯觯?/p>
①對(duì)于非收斂學(xué)習(xí)率,隨著學(xué)習(xí)率值η越大,學(xué)習(xí)過(guò)程震蕩越嚴(yán)重。
②對(duì)于非收斂學(xué)習(xí)率,隨著學(xué)習(xí)率值η越大,學(xué)習(xí)過(guò)程震蕩發(fā)生得越早。
(3)特征提取初值對(duì)收斂速度的影響
神經(jīng)網(wǎng)絡(luò)中每個(gè)隱藏層的神經(jīng)元對(duì)數(shù)據(jù)樣本的特征提取,是通過(guò)該神經(jīng)元的所有突觸權(quán)值和偏置體現(xiàn)的,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程就是找到各神經(jīng)元的最優(yōu)特征參數(shù)(突觸權(quán)值和偏置)。
反向傳播神經(jīng)網(wǎng)絡(luò)是通過(guò)設(shè)置初始的突觸權(quán)值和偏置,反復(fù)利用輸入信號(hào)在前饋網(wǎng)絡(luò)的傳播和錯(cuò)誤信號(hào)的反向傳播來(lái)修正各神經(jīng)元的特征權(quán)值和偏置,最終找到最優(yōu)的突觸權(quán)值和偏置。因此,在給定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和算法的情況下,不同的初始特征參數(shù)值的設(shè)定策略直接影響網(wǎng)絡(luò)的收斂速度。
下面通過(guò)固定收斂學(xué)習(xí)率(η=0.01),來(lái)研究不同的特征參數(shù)初值設(shè)定策略對(duì)網(wǎng)絡(luò)的收斂的影響。
全0初始化策略:初始化變量為0是算法設(shè)計(jì)的常用方法,但是對(duì)具有特殊物理含義的神經(jīng)網(wǎng)絡(luò)的突觸權(quán)值和神經(jīng)元偏置的初始化,0代表神經(jīng)元之間的連接強(qiáng)度為零。零權(quán)值不僅將阻止信號(hào)從前向后傳播,而且阻止誤差信號(hào)從后向前反向傳播,從而導(dǎo)致突觸權(quán)值和偏置無(wú)法根據(jù)輸入、輸出信號(hào)進(jìn)行自適應(yīng)調(diào)整。此時(shí),只有輸出層的偏置會(huì)根據(jù)誤差值進(jìn)行調(diào)整。經(jīng)過(guò)50輪回的學(xué)習(xí),各神經(jīng)元突觸權(quán)值和偏置收斂結(jié)果如下:
結(jié)合上圖可以看出,①網(wǎng)絡(luò)收斂速度很快(因?yàn)橹挥休敵鰧拥钠脮?huì)根據(jù)誤差值進(jìn)行調(diào)整);②最終均方誤差較大(0.253033);③網(wǎng)絡(luò)的輸出值與輸入無(wú)關(guān),只與輸出層偏置有關(guān),該輸出值正好是兩類(lèi)數(shù)據(jù)期望值的“最優(yōu)”中間值,即兩類(lèi)數(shù)據(jù)的分界邊緣。
故該初始化策略,不能使網(wǎng)絡(luò)學(xué)習(xí)到有用的特征信息,起不到任何數(shù)據(jù)區(qū)分作用。
全1初始化策略:初始化突觸權(quán)值和神經(jīng)元偏置為1,不僅代表所有神經(jīng)元之間的全連接,更重要的是根據(jù)學(xué)習(xí)過(guò)程可知,相同的特征初值使同層的神經(jīng)元表現(xiàn)出相同的學(xué)習(xí)過(guò)程,進(jìn)而其突觸權(quán)值和偏置收斂到相同值(由局部收斂性決定)。對(duì)本例的非線(xiàn)性可分的異或問(wèn)題,樣本數(shù)據(jù)至少具有兩個(gè)特征(參見(jiàn)3.2節(jié)),這就意味著至少將要丟失一個(gè)特征信息。由下表和下右圖所示的實(shí)驗(yàn)結(jié)果可知,①收斂后學(xué)習(xí)曲線(xiàn)上的總誤差較大(0.2487747);②較高的錯(cuò)誤識(shí)別率。
故神經(jīng)網(wǎng)絡(luò)權(quán)值和偏置的全1初始化策略,對(duì)異或問(wèn)題樣本數(shù)據(jù)的學(xué)習(xí)只能找到數(shù)據(jù)的一個(gè)特征,有較高的識(shí)別誤差率。
已知初始化策略(正斜率直線(xiàn)組):根據(jù)本例的先驗(yàn)知識(shí)可知,異或問(wèn)題的數(shù)據(jù)有兩種特征表現(xiàn)(參見(jiàn)3.2節(jié)):兩根正斜率直線(xiàn)或兩根負(fù)斜率直線(xiàn)。
對(duì)正斜率直線(xiàn)組,初始化隱藏層兩個(gè)神經(jīng)元特征為:(w10,w20)=(1,-1), b0=w00=1; (w11,w21)=(1,-1), b1=w01=-1。經(jīng)過(guò)200輪回的網(wǎng)絡(luò)學(xué)習(xí),各神經(jīng)元突觸權(quán)值和偏置收斂結(jié)果如下:
結(jié)合下圖可以看出,①網(wǎng)絡(luò)收斂速度相對(duì)較快(約200個(gè)輪回);②最終均方誤差較小(0.00363874);③有清晰的區(qū)分邊界,錯(cuò)誤識(shí)別率低。
已知數(shù)據(jù)全部特征的情況下,網(wǎng)絡(luò)收斂快、識(shí)別錯(cuò)誤率低,找到區(qū)分?jǐn)?shù)據(jù)的最優(yōu)解。
已知初始化策略(負(fù)斜率直線(xiàn)組):對(duì)負(fù)斜率直線(xiàn)組,初始化隱藏層兩個(gè)神經(jīng)元特征為:(w10,w20)=(1,1), b0=w00=1; (w11,w21)=(1,1), b1=w01=-1。經(jīng)過(guò)300輪回的網(wǎng)絡(luò)學(xué)習(xí),學(xué)習(xí)所得網(wǎng)絡(luò)特征參數(shù)為:
結(jié)合上圖可以得到與“已知初始化策略(正斜率直線(xiàn)組)”實(shí)驗(yàn)中相似的結(jié)論。
隨機(jī)初始化策略:在未知數(shù)據(jù)的確切特征情況下,通過(guò)隨機(jī)數(shù)生成各神經(jīng)元的突觸和偏置的初值是可行的方案。通過(guò)這種方案得到網(wǎng)絡(luò)的初值后,經(jīng)過(guò)500輪回的隨機(jī)初始化突觸權(quán)值和偏置的學(xué)習(xí),學(xué)習(xí)結(jié)果呈現(xiàn)一定隨機(jī)性,大約有80%左右的網(wǎng)絡(luò)能收斂到兩個(gè)特征,數(shù)據(jù)被正確分類(lèi),且總均方誤差保持在較低水平(0.01425589),如下圖表所示。
另外20%的結(jié)果,不盡如人意,學(xué)習(xí)結(jié)果的均方誤差較高,從而邊界不清晰,與數(shù)據(jù)有重疊現(xiàn)象。
分析原因,大概有兩類(lèi):一是隨機(jī)生成的權(quán)值/偏置初值相似,導(dǎo)致相應(yīng)的神經(jīng)元提取的特征都收斂到同一個(gè)“局部最優(yōu)”特征上,從而使一部分特征丟失;二是隨機(jī)生成的權(quán)值/偏置初值太小,根據(jù)式(2.11)知總誤差對(duì)其偏導(dǎo)數(shù)過(guò)大,進(jìn)而使對(duì)其修正值△wji過(guò)大,從而導(dǎo)致學(xué)習(xí)過(guò)程震蕩,根據(jù)3.2.2節(jié)的結(jié)論可以通過(guò)降低學(xué)習(xí)率來(lái)緩解,但是以降低收斂速度為代價(jià)。
4結(jié)束語(yǔ)
多層感知器神經(jīng)網(wǎng)絡(luò)反向傳播學(xué)習(xí)算法的收斂速度,與學(xué)習(xí)率η的大小成正比,但其值太大會(huì)導(dǎo)致學(xué)習(xí)過(guò)程震蕩而不收斂,建議取小于10-2的值;各神經(jīng)元突觸權(quán)值和偏置的初值選擇對(duì)網(wǎng)絡(luò)的收斂起著重要作用:①根據(jù)數(shù)據(jù)特征有目的地設(shè)置各神經(jīng)元突觸和偏置是最佳選擇;②隨機(jī)選擇各突觸權(quán)值/偏置次之,此時(shí)應(yīng)選擇相對(duì)較小學(xué)習(xí)率η以應(yīng)對(duì)可能的較小隨機(jī)初值,以避免學(xué)習(xí)過(guò)程震蕩;③單特征的線(xiàn)性數(shù)據(jù)可以用全1初始化;④避免使用全0初始化突觸權(quán)值/偏置。
參考文獻(xiàn)
[1] Haykin S.神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)[M].3版.北京:機(jī)械工業(yè)出版社,2011:207.
[2] Mohri M,Rostamizadeh A,Talwalkar A. Foundation of Machine[M]. Cambridge:MIT press,2012:65.
[3] Murphy K.Machine Learning:A Probabilistic Perspective[M]. Cambridge:MIT press,2012:109.
[4] LeCun,Y.Efficient Learning and Second-order Methods[C].Conference and Workshop on Neural Information Processing Systems. Denver,1993:11.
[5] Le Cun Y.Generalization and network design strategies,CRG-TR-89-4[R].Toronto:University of Toronto,1989.
作者簡(jiǎn)介
陳文云(1970-),男,重慶合川人;學(xué)歷:博士,職稱(chēng):副教授,現(xiàn)就職單位:百色學(xué)院,研究方向:并行計(jì)算,機(jī)器學(xué)習(xí)、大數(shù)據(jù)以及人工智能相關(guān)的算法和系統(tǒng)。