李齊民
(中國地質大學 武漢 430074)
BP神經網絡,由于它的網絡架構較為簡單,算法實現較為容易,現已成為應用最廣泛的神經網絡模型之一[1]。為了獲得更好的實驗結果,在BP神經網絡中,超參數的調整相對來說會一定的影響其訓練結果[2~3]。對于神經網絡隱含層神經元的數目的參數調整,除了基于經驗的設置神經元數目外,還提出了動態結點創建(Dynamic Node Creation)的方法,隨機地添加結點,然后進行訓練。或者使用正交投影法(Orthogonal Projection Method)實現動態結點創建[4~5]。
相比于這一些方法,本文在動態結點創建的過程中,使用了一些臨界條件使相應的神經元進行分裂或融合,這樣既可以做到在動態創建結點的過程中不對訓練結果產生負面影響,同時也不會導致由于產生過多的神經元而影響訓練速度。
反向傳播算法是基于前饋神經網絡的一種權重更新算法,我們定義神經元的輸出為

由此,我們可以有相應的權重和閾值的更新公式:


其中α為學習速率,E為樣本的誤差。
對于輸出層的誤差權重和閾值的更新公式,可以直接根據激活函數的導數得到結果。根據誤差反向傳播的思想,我們對于第l層的誤差,可以將其轉換為l+1層誤差反向求和得到。通過導入數據集對神經網絡進行反復地訓練,可以得到訓練完成的神經網絡。
在神經網絡進行正向傳播的過程中,如果神經元的個數是固定的,容易造成對訓練集產生過擬合(神經元個數過多)或者欠擬合(神經元個數過少)的現象。而神經元的數量如果能在訓練的過程中動態的增加或者減少,那么這樣的現象就會相對緩解。但首先為了保證輸出結果的正確,在結點創建的過程中神經元的輸出不應當發生改變,不然會影響到網絡之前訓練的結果。
同時神經元的分裂僅會發生在隱含層當中,因此可以得到在第l層i個神經元發生分裂得到的等式為

其中式(4)、(5)、(6)為分裂得到的兩個神經元Node'與Node''與相應的連接權重和偏置的等式,為第l+1層第k個神經元與第l層第i個神經元的連接權重。
此時,對于新生成的神經元,可以使用隨機數的方式直接根據原本的神經元生成相應的權重和偏置,即

為了防止生成的神經元出現權重過低的情況,其中R為服從標準正態分布的隨機數。因而根據式(4),可以得到

式(5)、(6)可以根據式(4)到式(7)、(8)的推導方式得出相應的權重與偏置更新公式。
同樣地,融合的方式則根據式(4)、(5)、(6)將兩個神經元融合為一個神經元即可。
關于融合與融合的神經元的選擇,我們可以考慮將表現最佳的神經元進行分裂,將表現較差的神經元之間進行融合。其中評判神經元好壞的方式,可以參考He等使用剪枝進行優化神經網絡的方法[6],他們測試了多個衡量單個神經元重要性的指標,得出使用“onorm”進行評價的效果最好

其中dl+1為第l+1層的寬度,即神經元的個數。
同時對于發生分裂和融合的判定方式,可以通過判斷當前數據集的識別的誤差與上一次識別的誤差來確定,即識別誤差降低則進行神經元的融合,識別誤差升高進行神經元的分裂。
最后為了防止算法的進行過程中進行大量的分裂與融合,規定每訓練一定量的數據集(如100)才進行一次判斷。
本文測試選取多種不同的數據集進行測試,在weka上進行代碼的編寫,其中學習速率為0.3,迭代次數為2000,隱藏層數僅一層,同時設定從1個神經元開始進行分裂與融合。得到表1的實驗結果。

表1 算法測試結果
我們可以看到結果良好(88.2120%的平均正確率)。統計了在訓練過程中的神經元的數量變化結果,可以得到如圖1的實驗結果。

圖1 神經元動態數量變化圖
可以看到,經過一段時間的增長之后,神經元的數量趨向于穩定,不會出現神經元數量爆炸式增長的情況,同時識別正確率也處于一個比較高的狀態。
本文提供了一種對神經網絡結點個數自動調整的一個方案,通過進行分裂與融合操作,使神經網絡的結點數量可以根據情況動態的變化。該方法經過實驗驗證過后效果良好,因而可以考慮將其應用于各個領域中。