神经网络网络参数的取值问题
1.?
? ? ?一般認(rèn)為,增加隱層數(shù)可以降低網(wǎng)絡(luò)誤差(也有文獻(xiàn)認(rèn)為不一定能有效降低),提高精度,但也使網(wǎng)絡(luò)復(fù)雜化,從而增加了網(wǎng)絡(luò)的訓(xùn)練時(shí)間和出現(xiàn)“過擬合”的傾向。一般來講應(yīng)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)應(yīng)優(yōu)先考慮3層網(wǎng)絡(luò)(即有1個(gè)隱層)。一般地,靠增加隱層節(jié)點(diǎn)數(shù)來獲得較低的誤差,其訓(xùn)練效果要比增加隱層數(shù)更容易實(shí)現(xiàn)。對(duì)于沒有隱層的神經(jīng)網(wǎng)絡(luò)模型,實(shí)際上就是一個(gè)線性或非線性(取決于輸出層采用線性或非線性轉(zhuǎn)換函數(shù)型式)回歸模型。因此,一般認(rèn)為,應(yīng)將不含隱層的網(wǎng)絡(luò)模型歸入回歸分析中,技術(shù)已很成熟,沒有必要在神經(jīng)網(wǎng)絡(luò)理論中再討論之。
? ? ?在BP?網(wǎng)絡(luò)中,隱層節(jié)點(diǎn)數(shù)的選擇非常重要,它不僅對(duì)建立的神經(jīng)網(wǎng)絡(luò)模型的性能影響很大,而且是訓(xùn)練時(shí)出現(xiàn)“過擬合”的直接原因,但是目前理論上還沒有一種科學(xué)的和普遍的確定方法。?目前多數(shù)文獻(xiàn)中提出的確定隱層節(jié)點(diǎn)數(shù)的計(jì)算公式都是針對(duì)訓(xùn)練樣本任意多的情況,而且多數(shù)是針對(duì)最不利的情況,一般工程實(shí)踐中很難滿足,不宜采用。事實(shí)上,各種計(jì)算公式得到的隱層節(jié)點(diǎn)數(shù)有時(shí)相差幾倍甚至上百倍。為盡可能避免訓(xùn)練時(shí)出現(xiàn)“過擬合”現(xiàn)象,保證足夠高的網(wǎng)絡(luò)性能和泛化能力,確定隱層節(jié)點(diǎn)數(shù)的最基本原則是:在滿足精度要求的前提下取盡可能緊湊的結(jié)構(gòu),即取盡可能少的隱層節(jié)點(diǎn)數(shù)。研究表明,隱層節(jié)點(diǎn)數(shù)不僅與輸入/輸出層的節(jié)點(diǎn)數(shù)有關(guān),更與需解決的問題的復(fù)雜程度和轉(zhuǎn)換函數(shù)的型式以及樣本數(shù)據(jù)的特性等因素有關(guān)。
? ? ?在確定隱層節(jié)點(diǎn)數(shù)時(shí)必須滿足下列條件:
? ? ? ? (1)隱層節(jié)點(diǎn)數(shù)必須小于N-1(其中N為訓(xùn)練樣本數(shù)),否則,網(wǎng)絡(luò)模型的系統(tǒng)誤差與訓(xùn)練樣本的特性無關(guān)而趨于零,即建立的網(wǎng)絡(luò)模型沒有泛化能力,也沒有任何實(shí)用價(jià)值。同理可推得:輸入層的節(jié)點(diǎn)數(shù)(變量數(shù))必須小于N-1。
? ? ? ? ? ? ? (2)訓(xùn)練樣本數(shù)必須多于網(wǎng)絡(luò)模型的連接權(quán)數(shù),一般為2~10倍,否則,樣本必須分成幾部分并采用“輪流訓(xùn)練”的方法才可能得到可靠的神經(jīng)網(wǎng)絡(luò)模型。?
? ? ?總之,若隱層節(jié)點(diǎn)數(shù)太少,網(wǎng)絡(luò)可能根本不能訓(xùn)練或網(wǎng)絡(luò)性能很差;若隱層節(jié)點(diǎn)數(shù)太多,雖然可使網(wǎng)絡(luò)的系統(tǒng)誤差減小,但一方面使網(wǎng)絡(luò)訓(xùn)練時(shí)間延長(zhǎng),另一方面,訓(xùn)練容易陷入局部極小點(diǎn)而得不到最優(yōu)點(diǎn),也是訓(xùn)練時(shí)出現(xiàn)“過擬合”的內(nèi)在原因。因此,合理隱層節(jié)點(diǎn)數(shù)應(yīng)在綜合考慮網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜程度和誤差大小的情況下用節(jié)點(diǎn)刪除法和擴(kuò)張法確定。
2.
? ? ? ? ? ??網(wǎng)絡(luò)輸入層神經(jīng)元節(jié)點(diǎn)數(shù)就是系統(tǒng)的特征因子(自變量)個(gè)數(shù),輸出層神經(jīng)元節(jié)點(diǎn)數(shù)就是系統(tǒng)目標(biāo)個(gè)數(shù)。隱層節(jié)點(diǎn)選按經(jīng)驗(yàn)選取,一般設(shè)為輸入層節(jié)點(diǎn)數(shù)的75%。如果輸入層有7個(gè)節(jié)點(diǎn),輸出層1個(gè)節(jié)點(diǎn),那么隱含層可暫設(shè)為5個(gè)節(jié)點(diǎn),即構(gòu)成一個(gè)7-5-1 BP神經(jīng)網(wǎng)絡(luò)模型。在系統(tǒng)訓(xùn)練時(shí),實(shí)際還要對(duì)不同的隱層節(jié)點(diǎn)數(shù)4、5、6個(gè)分別進(jìn)行比較,最后確定出最合理的網(wǎng)絡(luò)結(jié)構(gòu)。
? ? ? ? ? ??初始權(quán)值的確定 ?初始權(quán)值是不應(yīng)完全相等的一組值。已經(jīng)證明,即便確定 ?存在一組互不相等的使系統(tǒng)誤差更小的權(quán)值,如果所設(shè)Wji的的初始值彼此相等,它們將在學(xué)習(xí)過程中始終保持相等。故而,在程序中,我們?cè)O(shè)計(jì)了一個(gè)隨機(jī)發(fā)生器程序,產(chǎn)生一組一0.5~+0.5的隨機(jī)數(shù),作為網(wǎng)絡(luò)的初始權(quán)值。
? ? ? ? ? ? ?最小訓(xùn)練速率 ?在經(jīng)典的BP算法中,訓(xùn)練速率是由經(jīng)驗(yàn)確定,訓(xùn)練速率越大,權(quán)重變化越大,收斂越快;但訓(xùn)練速率過大,會(huì)引起系統(tǒng)的振蕩,因此,訓(xùn)練速率在不導(dǎo)致振蕩前提下,越大越好。因此,在DPS中,訓(xùn)練速率會(huì)自動(dòng)調(diào)整,并盡可能取大一些的值,但用戶可規(guī)定一個(gè)最小訓(xùn)練速率。該值一般取0.9。
? ? ? ? ? ??動(dòng)態(tài)參數(shù) ?動(dòng)態(tài)系數(shù)的選擇也是經(jīng)驗(yàn)性的,一般取0.6 ~0.8。
? ? ? ? ? ??允許誤差 ?一般取0.001~0.00001,當(dāng)2次迭代結(jié)果的誤差小于該值時(shí),系統(tǒng)結(jié)束迭代計(jì)算,給出結(jié)果。
? ? ? ? ? ??迭代次數(shù) ?一般取1000次。由于神經(jīng)網(wǎng)絡(luò)計(jì)算并不能保證在各種參數(shù)配置下迭代結(jié)果收斂,當(dāng)?shù)Y(jié)果不收斂時(shí),允許最大的迭代次數(shù)。
? ? ? ? ? ??Sigmoid參數(shù) 該參數(shù)調(diào)整神經(jīng)元激勵(lì)函數(shù)形式,一般取0.9~1.0之間。
? ? ? ? ? ??數(shù)據(jù)轉(zhuǎn)換。在DPS系統(tǒng)中,允許對(duì)輸入層各個(gè)節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,提供轉(zhuǎn)換的方法有取對(duì)數(shù)、平方根轉(zhuǎn)換和數(shù)據(jù)標(biāo)準(zhǔn)化轉(zhuǎn)換。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的神经网络网络参数的取值问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python多线程基本操作
- 下一篇: 使用tensorflow查询机器上是否存