神经网络与机器学习 笔记—泛化和交叉验证
泛化和交叉驗證
泛化
? ? 在反向傳播學習中,一般從一個訓練樣本開始,而且通過網(wǎng)絡中裝載盡可能多的訓練樣本來使用反向傳播算法計算一個多層感知器的突觸權值。希望這樣設計的神經(jīng)網(wǎng)絡可以很好的泛化。對于從未在生成或訓練網(wǎng)絡時使用過的測試數(shù)據(jù),若網(wǎng)絡計算的輸入-輸出映射對他們來說是正確的(或接近于正確)的,我們就認為網(wǎng)絡的泛化是很好的。(也就是預知能力)。
? ? 學習過程(即神經(jīng)網(wǎng)絡的訓練)可以看作是一個“曲線擬合”的問題。網(wǎng)絡本身可以被簡單第認為是一個非線性輸入-輸出映射。這個觀點允許我們不在把神經(jīng)網(wǎng)絡的泛化看作是他的一個神秘的特征,而是作為簡單的關于輸入輸出非線性插值的結果。這種網(wǎng)絡之所以能夠完成有意義的插值過程,主要因為具有連續(xù)激活函數(shù)的多層感知器導致輸出函數(shù)同樣也是連續(xù)的。
良好的泛化恰當?shù)哪愫头蔷€性映射:
? ? 一個具有良好泛化能力的神經(jīng)網(wǎng)絡,即使當輸入數(shù)據(jù)與訓練樣本稍有不同時,也能產(chǎn)生正確的輸入-輸出映射,然而,當神經(jīng)網(wǎng)絡學習太多的輸入-輸出樣本時,他可能會完成訓練數(shù)據(jù)的記憶。這可能在一下情況中出現(xiàn),找到一個存在于訓練數(shù)據(jù)中的特征,但對于即將要劍魔的固有函數(shù)卻為假。這種現(xiàn)象被稱為“過擬合”或者“過訓練”。當網(wǎng)絡被過擬合的時候,他就失去了在想進輸入/輸出模式之間進行泛化的能力。通常這種方法把數(shù)據(jù)莊仔倒多層感知器要求使用比實際需要更多的隱藏神經(jīng)元,結果導致在網(wǎng)絡的突觸權值中存儲了輸入空間中由于噪聲引起的非期望因素。
過擬合映射:
? ? 為有效的泛化給出充分的訓練集大小,下面三個因素對泛化產(chǎn)生影響:
? ? ? ? 訓練集的大小,以及他如何表示感興趣的環(huán)境。
? ? ? ? 神經(jīng)網(wǎng)絡的體系結構。
? ? ? ? 當前問題的物理復雜度。
? ? ? ? 在實踐中,通常訓練集大小N=O(W/e)??W是網(wǎng)絡中自由參數(shù)總數(shù),e是誤差,O則是量的階數(shù)。
?
交叉驗證
? ? 反向傳播學習的本質(zhì)是把輸入輸出映射編碼為一個多層感知器的突觸權值和閾值。我們希望的是,網(wǎng)絡通過良好的訓練,使得它充分地學習過去的數(shù)據(jù),從而對未來有良好的漢化能力。從這個觀點上來看,學習過程意味著對給定的數(shù)據(jù)集合給出網(wǎng)絡參數(shù)化的一個選擇。具體地,我們可以把網(wǎng)絡選擇問題看作是從一組候選模型結構(參數(shù))集合中選擇符合某個標準“最好”的一個。在這用意義下,統(tǒng)計學中的一個名為交叉驗證的標準工具提供了一個好的指導原則。已有的可用數(shù)據(jù)及首先被隨機分割成一個訓練集和一個測試集。這個訓練集被進一步細分為連個不相交子集:
? ? 估計子集,用來選擇模型。
? ? 驗證子集,用來測試或者驗證模型。
? ? 這里的動機是用一個與參數(shù)估計數(shù)據(jù)集不同的數(shù)據(jù)集來驗證模型。用這個辦法可以用訓練集來估計不同候選模型的性能,進而選擇“最好”的一個。然而,這樣選出的具有最優(yōu)表現(xiàn)的參數(shù)值的模型,很可能會導致對驗證自己的過渡擬合。為了防止這種情況出現(xiàn),使用測試集來衡量被選模型的泛化性能,測試集是與驗證集不同的集合。
?
訓練的早期停止方法
? ? 通常,用反向傳播算法訓練的多層感知器分階段地進行學習,隨訓練過程的進行實現(xiàn)相當簡單的映射函數(shù)到更復雜的映射函數(shù)。這通過在一個典型情況下載訓練中均方誤差隨著訓練回合的增加而減小的例子來證明:均方誤差從一個很大的值開始,然后迅速減小,最有隨著網(wǎng)絡在誤差曲面接近局部最小值的時候緩慢地減小。目標函數(shù)的復雜度,依據(jù)輸入向量x定義需要的相應d,當該復雜度小魚樣本大小N時,一號的發(fā)話能力為目標,如果通過觀察自身訓練得到的學習曲線,很難斷定何時停止訓練最好,如果訓練未在合適的時間停止,那么網(wǎng)絡可能過擬合訓練數(shù)據(jù)。
? ? 我們可以通過交叉驗證來標記過擬合的發(fā)生,為此訓練數(shù)據(jù)集被分成估計和驗證子集。使用樣本的估計子集以通常方法訓練網(wǎng)絡,但有較小的修改:訓練時間被周期性的停止,并且在每個訓練周期之后由驗證子集測試網(wǎng)絡。具體地講,周期性的估計伴隨確認的過程是如下進行的:
? ? 經(jīng)過一個估計(訓練)周期之后,多層感知器的突觸權值和偏置都已經(jīng)固定,網(wǎng)絡是在他的前向方式下運作的,從而對驗證子集的每個樣本測定驗證誤差。
當驗證階段完成的時候,估計重新開始另一個周期,這個過程被重復。
交叉驗證的變體
? ? 上述交叉驗證的方法稱為堅持到底方法(hold?out?method)。在實際中還有另外一些能找到他們自身應用的交叉驗證的變體,特別是在缺乏標定樣本的時候。在這樣的情況下可以通過把N個樣本的可用集合分割為K個子集來使用多重交叉驗證方法,K>1;這里假設N對K是可除的。這個模型在除了一個子集之外的其他子集上進行訓練,驗證誤差通過剩下子集上的測試來測量。這個過程總共被執(zhí)行K次實驗,每次使用一個不同的自己進行驗證,模型性能的估計是通過求實驗中所有的實驗的驗證平方誤差的均值來進行的。多重交叉驗證存在一個缺點:因為模型必須訓練K次,他可能需要過多的計算量,這里1<K<=N。
? ? 當可用的標定樣本的數(shù)目N被嚴格限制的時候,我們可以使用被稱為留一方法的多重交叉驗證的極端形式。在這種方法中,N-1個樣本用來訓練模型,并且這個模型通過剩下的一個樣本的測試來驗證。這個實驗總共被重復N次,每次留出一個不同的樣本來進行驗證。然后通過驗證的平方誤差在N次實驗上求平均。
?
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的神经网络与机器学习 笔记—泛化和交叉验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络与机器学习 笔记—改善反向传播的
- 下一篇: 设计模式复习-代理模式