當前位置: 半夏小說 玄幻奇幻 重生學神有系統 第267章 數據增廣和集成學習

《重生學神有系統》第267章 數據增廣和集成學習

經過仔細斟酌,江寒確定了“優勝者”模型。

隨後,他就開始考慮,如何進一步優化這個網絡的能。

像是網絡的主結構、權重初始化方案、數據正則化的方法、激活函數的選擇……

這類關鍵因素,在之前的第一訓練中,就已經確定了下來,無需再做調整。

但除此之外,可以優化的地方依然不

比如稍微改變一點學習率,量增加或減藏神經元的個數,微調一下Mini Batch的大小……

這些都有可能對網絡的能,產生微妙的影響。

而且,每一點細微的調整,會產生什麼樣的效果,不實際訓練、測試一番,是無法預估的。

所以接下來,江寒將“優勝者”代碼複製了100份。

這樣一來,這個“優勝者”就擁有了100多個“雙胞胎兄弟”,或者說:分

隨後,他就採用不同的方案,對這100多份代碼,逐一進行了微調。

等到進行完第二訓練後,從中再次選出唯一優勝者。

有點類似“養蠱”。

策略已經定下了,但江寒並沒有馬上開啓第二訓練。

他還打算再做一個比較重要的實驗,那就是增廣數據。

KAGGLE 方提供了20萬條訓練數據,理論上說,對於絕大多數機學習模型,這個數據量已經足夠使用了。

但誰會嫌棄數據太多呢?

能提供的數據越多,神經網絡的學習效果就越好,訓練得越充足,能自然也就越強。

Advertisement

反正一般來說,不會變得更糟。

所以,何樂而不爲?

所謂數據增廣,就是在不改變圖像類別的前提下,人爲地擴充數據。

這樣做,常常可以有效地提高模型的泛化能力。

常用的數據增廣方式,包括水平翻轉、旋轉、放、平移、裁剪、……

當然,也可以將多種作組合起來,從而獲得更多的數據。

例如,同時做小角度的旋轉和隨機尺度變換,再微調一下像素在HSV空間中的飽和度、亮度、調……

江寒很快用Python編寫了一份代碼,對訓練數據集進行了擴充。

原本的18萬條訓練數據,經過各種運算,足足演變出了將近200萬條數據。

這樣,第二訓練終於可以開始了。

江寒將100個“優勝者”分依次啓

隨後,他琢磨了一下,又將剛纔排名前15的模型,全都拉了過來。

包括上次排名第一的“書呆子”、排名第三的“黑馬中等生”,以及排位在4~15名的“其他學生”。

反正算力夠用,索再給這些準“優秀生”一次機會,看看它們在增廣數據集上,又會有怎樣的表現。

當然,在開啓第二訓練之前,第一訓練出來的權重數據,必須先備份一下……

將這裡的事全部理利索,時間已經接近中午11點。

江寒當下鎖門離開。

先去接夏雨菲放學,再順便做一頓盛的午飯。

Advertisement

除了正常的兩菜一湯,他還額外加了一道“紅燒冰島紅極參”,以勞自己勞過度的大腦。

……

下午和晚上,江寒沒有出門。

主要在家看書、找資料,學習各種逆向、破解、黑客知識。

想要繼續領悟《數字混淆技》,比較依賴數學水平和逆向技

江寒的數學水平已經很不弱了,知識儲備不比一般的數學系本科畢業生,解決問題的能力猶有過之。

但在逆向和黑客技上,他距離真正的頂級高手,還有不小的差距。

所以,江寒就決定抓時間,儘快補上這一課。

學習之餘,當然有了閒暇,就遠程登錄一下服務,關注一下神經網絡的訓練況。

13日清晨,第二批114個模型,全部訓練完

江寒又去了一次車庫,翻閱了一下訓練記錄,並對這114個神經網絡模型,加載驗證集進行測試。

“優勝者”的那100個分,表現都很不錯,其中績最好的一個,在訓練集和驗證集上的準確率,都超過了98%。

說實話,如果不經過特別的訓練,一般的人類在這個項目上的表現,差不多也就這樣了。

畢竟KAGGLE提供的這些數據裡,有一些筆跡實在太潦草了。

比如,有好幾個圖片,江寒怎麼看怎麼像7,標籤上卻說是1,這怎麼破?

此外,江寒還有一個令人欣喜的發現。

使用了擴充數據集,並進行了更高強度的訓練之後,“書呆子”在訓練集上,績再次提高了許,識別準確率達到了驚人的99.9%;

Advertisement

而且在驗證集上的表現,也有了較大幅度的提高,達到了95%的及格線。

“黑馬中等生”和原本排名4~15的“普通學生”,這次也有了長足的進步,績不比原本的“優勝者”差到哪裡去。

所以說,要想提高神經網絡的能,擴充數據規模纔是第一訣。

不管是人工收集更多數據,還是用數據增廣的辦法來僞造數據……

接下來就簡單了,只要從“優勝者”的100個分裡,挑選出最強的一個,強化訓練一番,再稍微打磨一下,就可以提上去了。

接近99%的識別正確率,說高不高,說低不低。

去年在imagenet舉辦的世界機學習大師賽中,冠軍是KNN算法的一個變種。

別看那種算法極其簡單,一點也不智能,但作者通過巧妙的構思,赫然將識別失誤率到了驚人的0.63%!

但那是頂級大能們的競技場,這次KAGGLE舉辦的,只是一場業餘級別的比賽,參與的大多是民間好者。

所以自己手裡的這個“最終優勝者”,多了不敢說,前三還是比較穩的。

至於想要奪得冠軍,那就需要拼一點運氣了,除非能進一步提高在陌生數據上的準確率。

畢竟真正的測試集,誰也沒見過,會變態到什麼程度,誰也沒法預估。

江寒反覆分析、測試著已經訓練好的幾個模型。

第二的“唯一優勝者”,以及進化後的“書呆子”、“中等生”……

忽然,他又有了一個巧妙的發現。

對於那些容易誤測的圖片,優勝者、書呆子、中等生……它們的判斷往往不盡相同。

同樣一個圖片,比如數字“5”,由於書寫不規範,導致極難識別。

有點像6,又有點像s,甚至就算將其當0,也不會多麼違和。

這種無法妥善理的數據,一般的做法是當做“噪聲”,在訓練時加以排除。

免得對網絡的訓練產生干擾,讓網絡學到錯誤的“知識”,導致“越學越懵”。

江寒在分析這類疑難圖片時,卻忽然有了一個奇妙的發現。

對於這樣的圖片,優勝者偶爾也會識別錯誤,但神奇的是,書呆子偶爾卻可以識別正確。

有些圖片書呆子和優勝者都不認識,中等生或者普通學生,反而往往有獨到的見解……

然後,這些結構不同的神經網絡,它們識別錯誤的那部分圖片,很出現集。

也就是說,這些疑難圖片之中,絕大多數都會被部分“學生”正確識別。

這就很有趣了。

如果能把這十幾個神經網絡的識別能力結合到一起,豈不是可以進一步提高準確率?

江寒經過仔細思考、認真分析,最後做出了一個大膽的決定。

那就是:集學習。

猜你喜歡

分享

複製如下連結,分享給好友、附近的人、Facebook的朋友吧!
複製鏈接

問題反饋

反饋類型
正在閱讀: