我正在開發一個程序來研究神經網絡,現在我理解將數據集劃分爲3組(訓練,驗證&測試)的區別(我猜)。根據數據集和問題,我的網絡可能只有一個輸出或多個輸出。學習算法是反向傳播。多輸出神經網絡中的訓練錯誤和驗證錯誤
所以,問題基本上是我對每個錯誤和計算方式感到困惑。
哪個是訓練錯誤?如果我想使用MSE,那麼(期望 - 輸出)^ 2?但是,如果我的網絡有2個或更多輸出,會發生什麼情況,訓練錯誤將會是所有輸出的總和?
然後,驗證錯誤只是使用驗證數據集來計算輸出並將獲得的結果與期望的結果進行比較,這會給我一個錯誤,它是否與訓練錯誤中的計算方法相同?並有多個輸出?
最後,不完全清楚,驗證何時應該運行?我在某處讀到它可能是每5個時代一次,但是,對此有什麼規定?
感謝提前的時間!
感謝@andrelucas – gkapellmann
你的答案是非常有用的。現在,如果在每個時期計算完整的驗證集,可以說我們有70個樣本要訓練,20個用於驗證,10個用於測試。所以一個時代將是70個訓練集+ 20個驗證集,對吧?現在,在每個時代,我將會有70個不同的訓練錯誤?還有20分鐘的熱火?或者我是否也計算了訓練誤差的平均值(平均值爲70)和驗證(平均值爲20),那些將是我的訓練錯誤和一個曆元的驗證錯誤? (我希望我能解釋我的問題) – gkapellmann
不。在一個時代,你有一個訓練錯誤和一個驗證錯誤。他們在每個時代都會有所不同。訓練錯誤用於更新權重。驗證錯誤不是。它可以用來在適當的時候退出訓練,通常在兩個錯誤開始分歧的地方。這是爲了避免過度配合。再看看我給出的鏈接中的僞代碼。 – andrelucas