江寒的數學水平已經很不弱了,知識儲備不比一般的數學系本科畢業生少,解決問題的能力猶有過之。
但在逆向和黑客技術上,他距離真正的頂級高手,還有不小的差距。
所以,江寒就決定抓緊時間,盡快補上這一課。
學習之余,當然有了閑暇,就遠程登錄一下服務器,關注一下神經網絡的訓練情況。
13日清晨,第二批個模型,全部訓練完成。
江寒又去了一次車庫,翻閱了一下訓練記錄,并對這個神經網絡模型,加載驗證集進行測試。
“優勝者”的那100個分身,表現都很不錯,其中成績最好的一個,在訓練集和驗證集上的準確率,都超過了98%。
說實話,如果不經過特別的訓練,一般的人類在這個項目上的表現,差不多也就這樣了。
畢竟KAGGLE提供的這些數據里,有一些筆跡實在太潦草了。
比如,有好幾個圖片,江寒怎么看怎么像7,標簽上卻硬說是1,這怎么破?
此外,江寒還有一個令人欣喜的發現。
使用了擴充數據集,并進行了更高強度的訓練之后,“書呆子”在訓練集上,成績再次提高了少許,識別準確率達到了驚人的99.9%;
而且在驗證集上的表現,也有了較大幅度的提高,達到了95%的及格線。
“黑馬中等生”和原本排名4~15的“普通學生”,這次也有了長足的進步,成績不比原本的“優勝者”差到哪里去。
所以說,要想提高神經網絡的性能,擴充數據規模才是第一秘訣。
不管是人工收集更多數據,還是用數據增廣的辦法來偽造數據……
接下來就簡單了,只要從“優勝者”的100個分身里,挑選出最強的一個,強化訓練一番,再稍微打磨一下,就可以提交上去了。
接近99%的識別正確率,說高不高,說低不低。
去年在image舉辦的世界機器學習大師賽中,冠軍是KNN算法的一個變種。
別看那種算法極其簡單,一點也不智能,但作者通過巧妙的構思,赫然將識別失誤率壓縮到了驚人的0.63%!
但那是頂級大能們的競技場,這次KAGGLE舉辦的,只是一場業余級別的比賽,參與的大多是民間愛好者。
所以自己手里的這個“最終優勝者”,多了不敢說,前三還是比較穩的。
至于想要奪得冠軍,那就需要拼一點運氣了,除非能進一步提高在陌生數據上的準確率。
畢竟真正的測試集,誰也沒見過,會變態到什么程度,誰也沒法預估。
江寒反復分析、測試著已經訓練好的幾個模型。
第二輪的“唯一優勝者”,以及進化后的“書呆子”、“中等生”……
忽然,他又有了一個巧妙的發現。
對于那些容易誤測的圖片,優勝者、書呆子、中等生……它們的判斷往往不盡相同。
同樣一個圖片,比如數字“5”,由于書寫不規范,導致極難識別。
有點像6,又有點像s,甚至就算將其當成0,也不會多么違和。
這種無法妥善處理的數據,一般的做法是當做“噪聲”,在訓練時加以排除。
免得對網絡的訓練產生干擾,讓網絡學到錯誤的“知識”,導致“越學越懵”。
江寒在分析這類疑難圖片時,卻忽然有了一個奇妙的發現。
對于這樣的圖片,優勝者偶爾也會識別錯誤,但神奇的是,書呆子偶爾卻可以識別正確。
有些圖片書呆子和優勝者都不認識,中等生或者普通學生,反而往往有獨到的見解……
然后,這些結構不同的神經網絡,它們識別錯誤的那部分圖片,很少出現交集。
也就是說,這些疑難圖片之中,絕大多數都會被部分“學生”正確識別。
這就很有趣了。
如果能把這十幾個神經網絡的識別能力結合到一起,豈不是可以進一步提高準確率?
江寒經過仔細思考、認真分析,最后做出了一個大膽的決定。
那就是:集成學習。