里面的一切,和上次離開的時候,毫無二致。
今天溫度有點低,江寒進屋后,立即打開了兩臺大功率的電暖氣。
足足過了半個小時,屋子里才暖和了一點。
他先查看了一下神經網絡的訓練情況。
前后一共上傳了160多套訓練方案,到現在已經全部訓練完成。
服務器和五臺工作站目前全都處于空閑狀態。
江寒先逐一檢查了一遍訓練結果。
首先要看的,是在訓練過程中,模型是否收斂。
如果無法收斂,就意味著神經網絡構筑失敗,無法通過訓練進行學習。
其次要看收斂速度,這個指標影響網絡的訓練效率。
這次KAGGLE舉辦的機器學習比賽,時間上并不是十分緊張,哪怕神經網絡的收斂速度稍微慢一點,也是可以接受的。
但也不能太慢了,必須在截止日期之前完成最終的訓練,否則就派不上用場了。
江寒上傳的代碼中,包括了各種日志記錄和狀態監督的函數。
模型訓練過程中,每進行到一個節點,都會在輸出的日志中,打上相應的標記。
所以一看日志就能知道,模型是否收斂以及收斂速度如何。
檢查十分迅速,江寒只用了10分鐘,就淘汰掉了20多種無法收斂的,和50多種收斂過于緩慢的網絡設計方案。
其實,這些方案改進一下,還有機會變成可用的,但江寒并沒有急著這么做。
可選的方案太多了,這些完全可以先放在一邊,等后面實在選不出來合用的,再考慮如何改造一下,“廢物利用”。
現在還剩下75種方案。
這些方案都能收斂,且收斂速度基本滿足需求。
所以,接下來要比較的,是模型的精準度,也就是對手寫數字的識別正確率。
通過觀察訓練日志,江寒發現,其中大約50種方案,在訓練集上表現就很普通,識別正確率不足90%。
這意味著,它們先天稟賦不足,對數據的擬合能力不強,再怎么訓練,成就也有限。
第一批一共160種方案,如果比喻成160名學生的話,這50多名學生,就相當于這一屆的“學困生”。
將這些方案也排除在考察范圍之外,先放在一邊。
還剩下22種方案,在訓練集上表現較為良好,這至少說明,它們的學習能力沒問題。
隨后,江寒將驗證集加載到這22份代碼中,逐一進行測試。
這樣就能通過比較,挑選出泛化能力相對較強,對陌生數據適應能力較好的方案。
神經網絡訓練起來很慢,但用訓練好的模型對數據進行分類,是相當快速的。
所以,江寒只用了一個多小時,就將22種方案都測試了一遍,然后按照綜合得分排了一下序。
排名前三的方案,在訓練集上的識別正確率都不低,都超過了94%的及格線。
而在測試集上的表現,則參差不齊。
江寒仔細思考了一會兒后,先淘汰掉了得分最高的方案。
因為這個方案在訓練集上,雖然識別正確率超高,接近了99%,但在測試集上表現最差,只有93%不到的準確率。
這說明模型泛化能力有所不足,產生了非常嚴重的過擬合。
用比較通俗的話說,這就是一個“書呆子”,只會死讀書,不會活學活用。
所以只能先Pass掉。
第三名的模型,在訓練集和測試集上表現差不多,都超過了95%,但相對來說,還是不夠突出。
而且,泛化能力雖然沒問題,可是,學習能力和其他模型相比,似乎稍微差了些。
如果有更多數據支撐,或者更多的訓練時間,也許能得到一點改善,但也不十分樂觀。
這就好比某些中等生,頭腦其實不笨,但學習習慣和方法不夠好,也不夠努力。
然后在一次測試中,雖然憑借良好的發揮,暫時領先了其他中等生,但畢竟還是比不上那些真正的優秀生。
所以,江寒權衡再三,最后選擇了第二個模型。
這個模型在訓練集和驗證集上,表現都可圈可點,雙雙達到了97%的理想線。
而且,江寒分析完一些數據后,感覺只要進一步提高訓練強度,這個模型應該還有很大的進步空間。
這是一個天賦不錯的學生,文理雙修,沒有短板,但并沒怎么用力去學,這才輸給了書呆子一籌。
這種學生只要加強訓練,成為高材生指日可待,日后的發展不是書呆子可比的。
這是江寒從160套方案中,優中選優,留下來的最后優勝者。
接下來,就該對其進行地獄特訓了……