南昌航空大學(xué)信息工程學(xué)院 羅艷芬
神經(jīng)網(wǎng)絡(luò)泛化能力是衡量神經(jīng)網(wǎng)絡(luò)性能優(yōu)劣的一個重要方面,研究了幾種提高神經(jīng)網(wǎng)絡(luò)泛化能力的方法,并且利用MATLAB仿真驗證了各種方法的有效性。
泛化能力是指經(jīng)訓(xùn)練(學(xué)習(xí))后的預(yù)測模型對未在訓(xùn)練集中出現(xiàn)的樣本做出正確反映的能力,學(xué)習(xí)不是簡單地記憶已經(jīng)學(xué)過的輸入,而是通過對有限個訓(xùn)練樣本的學(xué)習(xí),學(xué)到隱含在樣本中的有關(guān)環(huán)境本身的內(nèi)在規(guī)律性。盡管神經(jīng)網(wǎng)絡(luò)可以具備泛化能力,但大量的設(shè)計者在應(yīng)用神經(jīng)網(wǎng)絡(luò)時都發(fā)現(xiàn),獲得好的泛化能力并非易事,它涉及的方面非常復(fù)雜。因此對于如何提高神經(jīng)網(wǎng)絡(luò)泛化能力,研究者們展開了大量的研究。
用于訓(xùn)練多層感知器的傳統(tǒng)方法在統(tǒng)計學(xué)上可以解釋為一種最大似然估計的變形實現(xiàn),其思想是找到一組權(quán)值來盡可能地擬合訓(xùn)練數(shù)據(jù)。
圖1 -1 無貝葉斯正則化訓(xùn)練結(jié)果
圖1 -2 貝葉斯正則化訓(xùn)練結(jié)果
在貝葉斯正則化模式中,假設(shè)神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置滿足特定的概率分布,用概率規(guī)則來實現(xiàn)學(xué)習(xí)和推理,對這些參數(shù)進行估計。貝葉斯定理的計算學(xué)習(xí)機制是將先驗分布中的期望值與樣本均值按各自的精度進行加權(quán)平均,精度越高者其權(quán)值越大。由于貝葉斯方法可以綜合先驗信息和后驗信息,既可避免只使用先驗信息可能帶來的主觀偏見和缺乏樣本信息時的大量盲目搜索與計算,又可避免只使用后驗信息帶來的噪聲影響。
以一個帶噪聲的正弦信號擬合仿真為例,在網(wǎng)絡(luò)訓(xùn)練過程中不用貝葉斯正則化方法和應(yīng)用貝葉斯正則化方法得到的擬合效果如圖1-1、 圖1-2所示。圖中虛線為實際的帶噪正弦信號,實線為神經(jīng)網(wǎng)絡(luò)擬合信號。顯然,應(yīng)用貝葉斯正則化方法得到的擬合效果更好。
權(quán)值衰減是在網(wǎng)絡(luò)訓(xùn)練誤差函數(shù)中加入對權(quán)值懲罰項。作用就是懲罰大的權(quán)值,使權(quán)值收斂到絕對值較小的范圍中去。另外,當(dāng)訓(xùn)練集容量較小時,神經(jīng)網(wǎng)絡(luò)模型的泛化能力受衰減常數(shù)的影響較大。通常情況下,均方誤差函數(shù)表達式為:
權(quán)值衰減是在誤差函數(shù)中加入對權(quán)值懲罰項,即:
以普通均方誤差函數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)得到的仿真結(jié)果為例,仿真結(jié)果如圖2-1所示:
圖2 -1 普通均方誤差函數(shù)訓(xùn)練結(jié)果
若在均方誤差函數(shù)中加入權(quán)值衰減項,訓(xùn)練神經(jīng)網(wǎng)絡(luò)得到的仿真結(jié)果如圖2-2所示。
圖2 -2 權(quán)值衰減的均方誤差函數(shù)訓(xùn)練結(jié)果
由仿真結(jié)果可以看出,經(jīng)過權(quán)值衰減,網(wǎng)絡(luò)訓(xùn)練誤差大大降低,網(wǎng)絡(luò)輸出和目標(biāo)值逼近效果更好。
神經(jīng)網(wǎng)絡(luò)集成是指對同一問題用多個神經(jīng)網(wǎng)絡(luò)進行學(xué)習(xí),集成在某一輸入下的輸出由構(gòu)成集合的各個網(wǎng)絡(luò)的輸出共同決定。神經(jīng)網(wǎng)絡(luò)集成提出的主要目的是為了解決單個網(wǎng)絡(luò)存在的問題。為了解決由于噪聲數(shù)據(jù)或訓(xùn)練集很小引起的泛化問題,提高神經(jīng)網(wǎng)絡(luò)的泛化能力,一種有效的方法是訓(xùn)練多個神經(jīng)網(wǎng)絡(luò)并且對它們的輸出取均值。
例如,訓(xùn)練10個神經(jīng)網(wǎng)絡(luò),得到10個訓(xùn)練均方誤差值,對10個神經(jīng)網(wǎng)絡(luò)的輸出取平均值,并利用輸出平均值計算網(wǎng)絡(luò)訓(xùn)練均方誤差,并分別進行比較。具體實現(xiàn)過程如下:
每個神經(jīng)網(wǎng)絡(luò)的訓(xùn)練均方誤差如下所示:
對各個神經(jīng)網(wǎng)絡(luò)輸出取平均值,并以此作為神經(jīng)網(wǎng)絡(luò)輸出計算均方誤差平均值。
運行結(jié)果為:
很顯然,用輸出平均值計算的均方誤差比每個神經(jīng)網(wǎng)絡(luò)的均方誤差值都小,如果增加訓(xùn)練數(shù)據(jù),仿真結(jié)果會更好。
本文針對貝葉斯統(tǒng)計正則化方法,權(quán)值衰減方法以及神經(jīng)網(wǎng)絡(luò)集成方法進行研究,并利用MATLAB仿真驗證各種方法提高神經(jīng)網(wǎng)絡(luò)泛化能力的效果。仿真結(jié)果表明,通過應(yīng)用這些方法,神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差大大降低,泛化能力大大提高。