Machine Learning Yearning36~39

1.我們需要牢記的一點是,測試數據的分佈一定要是我們期望的處理的數據的分佈。所以如果期望的處理的數據有10000,而另一種分佈的數據有200000,那麼從210000裏邊分訓練集和測試驗證集是不合理的,因爲這裏邊的驗證集的分佈大部分是第二種分佈,並不是我們將來期望處理數據的分佈。
但是由於我們能得到大量的數據,我們希望即使訓練集和測試集分佈不同,我們仍然能夠利用這些信息。
我們假設驗證集和測試集來自相同的分佈。那我們的第一步是,5000分爲驗證測試集,205000爲訓練集。
2.如果將兩種數據混合爲訓練集,對於早一些的算法,這種結果比不使用20000效果更加差。但是由於現在神經網絡這麼發達,這種壞的影響被大大削減了。只要我們的網絡能力足夠強,總有一種映射是對兩種分佈都適用的。也就是說,存在一種系統,即使輸入的圖像源是未知的,只要裏邊包含我們期望的分佈的數據,那麼網絡就能夠很好的預測。
增加額外的20000張圖片,會有如下效果:1,網絡能夠利用20000圖片裏邊提供的信息,對10000用戶上傳的圖像。2,但是如果網絡將它所有的能力用到了20000圖片,而剩下的能力不足處理用戶上傳的10000張圖片,那麼這確實會對算法不利。因爲這兩種類型數據會競爭模型的capacity。
3.模型的capacity是有限的。所以扔掉無用的數據。那麼什麼是無用的數據。比如我們需要區分貓和狗,那麼其它圖像數據就是無用的。
4.那麼在保證模型capacity的情況下,如何確定是否留下不同分佈的數據一起作爲訓練數據。我們通過一致性來判斷。那麼什麼是一致性?比如,不同地區的房價,我們想要預測A區的房價,但是我們還有B區的房價,不同的是,A區和B區的房價整體差距較大。這時,我們稱AB兩套數據是不連續的,因爲我們不能給定x和f得到y,即不能得到f(x),從x映射到y。但是從網絡得到的貓的圖片和用戶上傳的貓的圖片可以通過同一個f(x),將x映射到y,即是不是貓。
5.如果我們拿到的數據比我們測試的數據大很多,我們需要滿足兩點才能得到我們期望的輸出:1,網絡足夠大;2,訓練時間足夠長。比如我們從網絡得到200000張圖片,而用戶上傳5000張,比率達到了40倍,這也許意味着我們需要比只拿5000進行訓練多40倍的計算資源。如果我們沒有這麼多資源怎麼辦?一個折中的辦法就是對網絡圖片一個低的權重。比如計算損失時,給網絡圖片的損失函數一個較小的權重。這種辦法只在下邊2種情況下才使用:1,額外的數據與測試數據分佈相差很大;2,額外的數據量與測試數據量分佈很大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章