訓練神經網路的處方

2022-05-15 08:37:44 字數 568 閱讀 2880

翻譯自andrej karpathy blog

處方在實踐中,我們從簡單到複雜構建模型,並且在每一步我們對將要發生的具體事情進行**,通過實驗進行驗證並且通過調查發現問題。一定要防止同時引入許多未經驗證的猜想,否則總是會在查詢問題。一開始,要使用較小的學習率,並每一步都要評估測試集上的表現。

1 不要一開始寫**

我習慣花費很多時間去觀察樣本,了解資料的分布並尋找模式。我們的大腦擅長做這些。我會尋找資料的不平衡和差異,我會注意分類資料的過程,這個過程暗示了各種可能的框架。區域性的特徵是否足夠,我們是否需要全域性的文字呢?有多少變化,採取了什麼樣的形式?什麼變化是虛假的,可以預處理?空間位置是否重要,或者我們是否想要將其平均化?細節有多重要,我們可以多大程度上對資料進行縮減取樣?有多少標籤是雜訊?

此外,由於神經網路是原始資料的壓縮(編譯),因此能夠檢視網路(錯誤)**的並了解他們的**。如果你的網路給你的**看起來與在資料中不一致,那麼就會有所收穫。

一旦從資料中發現規律,可以編寫一些**對他們進行搜尋、過濾、排序。把資料視覺化能幫助我們發現異常值,而異常值總能揭示資料的質量或預處理中的一些錯誤。

2 設定端到端的訓練評估框架

神經網路訓練

學習了bp神經網路演算法,剛開始最終要的一點不明白的就是前一層和後一層 這裡指的只有三層,輸入層,隱藏層,輸出層 的權重,其實神經網路演算法中,前一層的每乙個節點和後一層的每乙個節點都有連線權重,初始權重是隨機的。而更新權重是通過輸出層的值來反向更新的。基本過程如下 1.輸入第乙個訓練樣本 對應的就...

神經網路的訓練

既然我們希望網路的輸出盡可能的接近真正想要 的值。那麼就可以通過比較當前網路的 值和我們真正想要的目標值,再根據兩者的差異情況來更新每一層的權重矩陣 比如,如果網路的 值高了,就調整權重讓它 低一些,不斷調整,直到能夠 出目標值 因此就需要先定義 如何比較 值和目標值的差異 這便是損失函式或目標函式...

神經網路訓練技巧

1 學習速率。首先設學習速率為乙個較大的值,確保training cost在不斷下降。當accuracyy在n個epoch內不再增加時,使得學習速率減小一半。重複迭代,直到學習速率變成原來的1 1024。2 學習速率要根據訓練cost調。但是網路層數和神經元數目,mini batch size要根據...