1. 程式人生 > >神經網路中隱層數和隱層節點數問題的討論

神經網路中隱層數和隱層節點數問題的討論

神經網路中隱層數和隱層節點數問題的討論

一 隱層數
        一般認為,增加隱層數可以降低網路誤差(也有文獻認為不一定能有效降低),提高精度,但也使網路複雜化,從而增加了網路的訓練時間和出現“過擬合”的傾向。一般來講應設計神經網路應優先考慮3層網路(即有1個隱層)。一般地,靠增加隱層節點數來獲得較低的誤差,其訓練效果要比增加隱層數更容易實現。對於沒有隱層的神經網路模型,實際上就是一個線性或非線性(取決於輸出層採用線性或非線性轉換函式型式)迴歸模型。因此,一般認為,應將不含隱層的網路模型歸入迴歸分析中,技術已很成熟,沒有必要在神經網路理論中再討論之。
二  隱層節點數


在BP 網路中,隱層節點數的選擇非常重要,它不僅對建立的神經網路模型的效能影響很大,而且是訓練時出現“過擬合”的直接原因,但是目前理論上還沒有一種科學的和普遍的確定方法。 目前多數文獻中提出的確定隱層節點數的計算公式都是針對訓練樣本任意多的情況,而且多數是針對最不利的情況,一般工程實踐中很難滿足,不宜採用。事實上,各種計算公式得到的隱層節點數有時相差幾倍甚至上百倍。為儘可能避免訓練時出現“過擬合”現象,保證足夠高的網路效能和泛化能力,確定隱層節點數的最基本原則是:在滿足精度要求的前提下取儘可能緊湊的結構,即取儘可能少的隱層節點數。研究表明,隱層節點數不僅與輸入/輸出層的節點數有關,更與需解決的問題的複雜程度和轉換函式的型式以及樣本資料的特性等因素有關。
在確定隱層節點數時必須滿足下列條件:
(1)隱層節點數必須小於N-1
(其中N為訓練樣本數),否則,網路模型的系統誤差與訓練樣本的特性無關而趨於零,即建立的網路模型沒有泛化能力,也沒有任何實用價值。同理可推得:輸入層的節點數(變數數)必須小於N-1。
(2) 訓練樣本數必須多於網路模型的連線權數,一般為2~10倍,否則,樣本必須分成幾部分並採用“輪流訓練”的方法才可能得到可靠的神經網路模型。 
總之,若隱層節點數太少,網路可能根本不能訓練或網路效能很差;若隱層節點數太多,雖然可使網路的系統誤差減小,但一方面使網路訓練時間延長,另一方面,訓練容易陷入區域性極小點而得不到最優點,也是訓練時出現“過擬合”的內在原因。因此,合理隱層節點數應在綜合考慮網路結構複雜程度和誤差大小的情況下用節點刪除法和擴張法確定。