您好,登錄后才能下訂單哦!
這篇文章主要介紹“神經網絡generalization是什么意思”,在日常操作中,相信很多人在神經網絡generalization是什么意思問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”神經網絡generalization是什么意思”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
每當我們訓練自己的神經網絡時,我們都需要注意稱為神經網絡的 泛化 的問題。從本質上講,這意味著我們的模型在從給定數據中學習以及將所學信息應用到其他方面有多出色。
在訓練神經網絡時,將有一些數據在神經網絡上進行訓練, 并且還將保留一些數據以檢查神經網絡的性能。如果神經網絡在尚未訓練的數據上表現良好,那么可以說它在給定數據上的推理效果很好。讓我們通過一個例子來理解這一點。
假設我們正在訓練一個神經網絡,該神經網絡應該告訴我們給定圖像是否有狗。假設我們有幾只狗的圖片,每只狗屬于某個品種,并且這些圖片中總共有12個品種。我將保留10個品種的狗的所有圖像進行訓練,而這2個品種的其余圖像將暫時保留。
現在,在進入深度學習之前,讓我們從人類的角度來看待這一點。讓我們考慮一個一生中從未見過狗的人(僅舉一個例子)。現在,我們將向人類展示10種狗,并告訴他們這是狗。此后,如果我們向他們展示其他2個品種,他們是否能夠說出它們也是狗?希望他們能做到,十個品種應該足以理解和識別狗的獨特特征。從某些數據學習并將獲得的知識正確應用于其他數據的這種概念 稱為generalization(泛化)。
回到深度學習,我們的目標是使神經網絡從給定的數據中盡可能有效地學習。如果我們成功地使神經網絡了解到, 其他2個品種都還狗,那么我們已經培養了非常general(一般的)神經網絡,它會在現實世界中執行得很好。
這實際上說起來容易做起來難,而訓練通用神經網絡是深度學習從業人員最令人沮喪的任務之一。這是由于神經網絡中的一種現象,即過度擬合。如果神經網絡對10種犬進行訓練,并且拒絕將其他2種犬歸為狗,那么該神經網絡就過度適合了訓練數據。這意味著神經網絡已經 記住了 那10種狗,并且只將它們視為狗。因此,它無法形成 對狗長什么樣的 普遍了解。在訓練神經網絡的同時解決這個問題是我們在本文中要探討的。
現在,我們實際上沒有自由在像“繁殖”這樣的基礎上劃分所有數據。相反,我們將簡單地拆分所有數據。數據的一部分,通常是較大部分(大約80–90%)將用于訓練模型,其余部分將用于測試模型。我們的目標是確保測試數據的性能與訓練數據的性能大致相同。我們使用諸如損失和準確性之類的指標來衡量這一績效。
我們可以控制神經網絡的某些方面,以防止過度擬合。讓我們一一介紹。首先是參數的數量。
在神經網絡中,參數的數量本質上是指權重的數量。這將與層數和每一層中神經元的數目成正比 。參數和過度擬合的數量之間的關系如下: 越多的參數,越容易導致過擬合。
我們需要根據復雜性來定義問題。一個非常復雜的數據集將需要一個非常復雜的函數來成功理解和表示它。從數學上講,我們可以將復雜度與非線性相關聯 。 讓我們回想一下神經網絡公式。
在此,W1,W2和W3是此神經網絡的權重矩陣。現在,我們需要注意的是方程中的激活函數,該函數適用于每一層。由于具有這些激活功能,因此每一層都與下一層非線性連接 。
第一層的輸出為f(W_1 * X)(設L1),第二層的輸出為f(W_2 * L1)。如您所見,由于激活函數(f),第二層的輸出與第一層具有非線性 關系。因此,在神經網絡的末端,最終值Y相對于輸入X具有一定程度的非線性,具體取決于神經網絡中的層數 。
層的數量越多,越多的激活函數擾亂層之間的線性度,并且因此更加非線性。
由于這種關系,我們可以說, 如果神經網絡 在每一層中具有更多的層和更多的節點,它將變得更加復雜。因此,我們需要根據數據的復雜性來調整參數。除了重復實驗和比較結果外,沒有確定的方法。
在給定的實驗中,如果測試指標遠低于訓練指標,則模型具有過擬合,這意味著神經網絡 對于給定的數據具有 太多的參數。這基本上意味著神經網絡對于給定的數據來說 太復雜 了,需要簡化。如果測試分數與訓練分數大致相同,則該模型已經 generalized,但這并不意味著我們已經達到了神經網絡的最大潛力。如果我們增加參數,性能將會提高,但也可能會過擬合。因此,我們需要繼續嘗試通過平衡性能和泛化來優化參數數量 。
我們需要將神經網絡的復雜度與數據復雜度相匹配 。如果神經網絡太復雜,它將開始記憶訓練數據,而不是對數據有一般的了解,從而導致過擬合。
通常,深度學習從業人員如何做到這一點是首先訓練具有足夠大量參數的神經網絡,以使模型過擬合。因此,最初,我們嘗試獲得一個非常適合訓練數據的模型。接下來,我們嘗試迭代地減少參數的數量,直到模型停止過度擬合為止 ,這可以視為一種 最佳的神經網絡。我們可以用來防止過度擬合的另一種技術是使用dropout神經元。
在神經網絡中,添加dropout神經元是減少神經網絡過度擬合的最流行,最有效的方法之一。基本上網絡中的每個神經元都有一定的概率從網絡中完全退出。這意味著在特定時刻,某些神經元將不會連接到網絡中的任何其他神經元。這是一個視覺示例:
在訓練過程中的每一個瞬間,一組不同的神經元將以隨機的方式掉落 。因此,我們可以說在每個時刻,我們都在有效地訓練某個神經網絡比原始神經網絡少的某個 子集 神經網絡。由于輟學神經元的隨機性質,該子神經網絡每次都會改變。
實際上,這里發生的是,當我們訓練帶有缺失神經元的神經網絡時,我們基本上是在訓練 許多較小的 子集神經網絡,并且由于權重是原始神經網絡的一部分,因此神經網絡的最終權重可以視為 所有 相應 子集神經網絡權重的平均值 。這是正在發生的事情的基本可視化:
這就是dropout神經元在神經網絡中的工作方式,但是為什么dropout會阻止過度擬合?這有兩個主要原因。
第一個原因是dropout的神經元促進神經元獨立。 由于在特定瞬間可能存在或不存在圍繞特定神經元的神經元這一事實,因此該神經元不能依賴于圍繞其的那些神經元。因此,它會被迫成為更獨立 ,同時訓練。
第二個原因是由于dropout,我們實質上是一次訓練多個較小的神經網絡。通常,如果我們訓練多個模型并求平均權重,則由于 每個神經網絡的獨立學習的積累,性能通常會提高 。但是,這是一個昂貴的過程,因為我們需要定義多個神經網絡并分別進行訓練。但是,在輟學的情況下,這也做同樣的事情, 而我們只需要 一個神經網絡,就可以從中訓練 子神經網絡的多種可能配置。
訓練多個神經網絡并匯總其學習知識稱為“集合”,通常可以提高性能。使用dropout本質上是在只有1個神經網絡的情況下實現的。
減少過度擬合的下一種技術是 權重正則化。
權重正則化
在訓練神經網絡時,某些權重的值可能會變得非常大。發生這種情況是因為這些權重集中在訓練數據中的某些特征上,這導致它們在整個訓練過程中價值不斷增加。因此,網絡過度適合訓練數據。
我們不需要不斷增加權重來捕獲特定模式。相反,如果它們的值相對于其他權重較高,則很好 。但是,在訓練過程中,當神經網絡通過多次迭代對數據進行訓練時,權重值可能會不斷增加,直到權重變大為止,這是不必要的。
為什么權重過大對神經網絡不利的其他原因之一是由于增加的輸入輸出差異。 基本上,當出現網絡中的巨大權重,這是非常 容易 對小的變化 的輸入,但神經網絡應該基本輸出同樣的事情 了類似的投入。當我們擁有巨大的權重時,即使我們保留兩個非常相似的單獨的數據輸入,它們的輸出也可能有很大的不同。這會導致在測試數據上發生許多錯誤的預測,從而降低了神經網絡的通用性。
神經網絡中權重的一般規則是,神經網絡中的權重越高,神經網絡越復雜。因此,具有較高權重的神經網絡通常趨于過擬合。
因此,基本上,我們需要限制權重的增長,以使權重不會增長太多,但是我們到底該如何做呢?神經網絡嘗試將訓練時的損失降到最低,因此我們可以嘗試在該損失函數中包括權重的一部分,以便在訓練時權重也被最小化 ,但是當然要優先考慮減少損失。
有兩種執行此操作的方法,稱為L1和L2正則化。在L1中,我們只占網絡中所有權重絕對值之和的一小部分 。在L2中,我們在網絡中權重的所有平方值的總和中占一小部分 。我們只是 將此表達式添加到神經網絡的整體損失函數中。公式如下:
在這里,lambda是一個允許我們改變權重變化程度的值 。我們基本上只是將L1或L2項添加到神經網絡的損失函數中,以便網絡也將嘗試最小化這些項。通過添加L1或L2正則化,網絡將限制其權重的增長,因為權重的大小是損失函數的一部分,并且網絡始終嘗試使損失函數最小化。讓我們重點介紹L1和L2之間的一些區別。
使用L1正則化時,雖然權重因正則化而減小,但L1嘗試將其完全降低到零。 因此,對神經網絡貢獻不大的不重要權重最終將變為零。但是,在L2的情況下,由于平方函數對于小于1的值成反比例,因此權重不會被推為零,而是被推為 較小的值。 因此,不重要的權重比其他權重要低得多。
這涵蓋了防止過度擬合的重要方法。在深度學習中,我們通常混合使用這些方法來改善神經網絡的性能并改善模型的泛化性。
到此,關于“神經網絡generalization是什么意思”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。