神經網路 之 思考與討論 1

2021-08-19 04:20:12 字數 1266 閱讀 5878

引入:

training set 的accuracy 和 validation or test set的accuracy 的關係.

training set 和 test set的樣本是完全不相交的. training set是用來訓練我們的網路model的. test set 是作為實際的生產資料來檢驗模型的, 它是對模型在實際場景中的檢驗. 兩個資料集沒有交集, training acc 和test acc 是沒有關係的. 但是根據他們, 可以說明一些問題, 或者說它們兩者是衡量模型好壞的指標.

在利用pre-trained網路進行fine-tuning或訓練新的網路的時候, 總會遇到這樣一種情況: test acc穩定之後, training acc還在不斷增長, 最終training acc幾乎達到了100%. 那麼問題來了, 這樣的現象正常嗎? training acc 是否能增長到100%? 我們用acc來衡量model, 擁有什麼樣acc的網路才算是好model.

training acc 是否能達到100%

答案是肯定的, 但是也是conditional的. training acc 能達到100% 說明了model的體量/複雜度/結構/神經元的數量已經遠超處理這些訓練資料的能力, in other words, model是overqualified, 處理這些訓練資料讓他們能夠和各自的label對應已經綽綽有餘. 這種情況下, 我們可以說model已經記住了所有的訓練樣本, that is to say, 對於所有訓練資料, model都有唯一的weights和它對應, 因此所有樣本都能與相應的label對應起來.

什麼樣的train acc和test acc model才算是好的model.

直接公布答案, training acc 和test acc 兩者在較高的水平, 保持較小的差距. 這樣的網路才是好model. training acc 較低, 說明網路underfit, 分類能力太差. train acc 領先test acc 太多, 說明模型overfit, 網路generalization泛化能力太差, 模型複雜度太高, 投入生產環境就會掛掉.

什麼時候停止訓練

acc 低位保持穩定不變的時候,可以考慮關閉網路調整結構,重新訓練. 對於fine-tuning pre-trained 網路而言, 往往是test acc, 百分之80左右, training acc一路飆漲知道接近100%. 這種情況下, 建議在test acc 達到高位穩定之後, 就停止訓練. 因為對於這種情況, 說明模型的複雜度是比較高的, 如果繼續訓練下去一直要求loss繼續下降的話, 模型會走向記住所有訓練資料(每個樣本定製的權值)的極端.

神經網路(1)

一 什麼是神經網路 神經網路模型 knn 於生物體的神經系統,是一組連線的輸入 輸出單元,每個連線都與乙個權重相關聯。神經網路模式可以學習資料的特點,訓練的資料不同,產生的模型不同。應用場景 不知道用什麼數學模型合適 知道應用什麼模型但不知道模型複雜度時可以使用。比如要做分類問題,但屬於非線性的切分...

神經網路 1 快速了解神經網路

常規的神經網路我們可以知道包括 輸入層,隱藏層,輸出層 如 傳播過程為 h x w1 b1 y h w2 b2 需要注意 一系列線性方程的運算最終都可以用乙個線性方程表示。也就是說,上述兩個式子聯立後可以用乙個線性方程表達。對於兩次神經網路是這樣,就算網路深度加到100層,也依然是這樣。這樣的話神經...

神經網路學習之 Hopfield神經網路

1982年,美國加州理工學院的優秀物理學家hopfield提出了hopfield神經網路。hopfield神經網路引用了物理力學的分析方法,把網路作為一種動態系統並研究這種網路動態系統的穩定性。dhnn 離散型hopfield神經網路 這是一種單層全反饋網路,共有n個神經元。其特點是任一神經元的輸出...