祕籍0x02基礎誤差分析

13-19章
  1. 快速構建並迭代你的第一個系統 試圖在一開始就設計和構建出完美的系統會有些困難,不妨先花幾天的時間構建並訓練一個最基礎的系統。 或許這個最基礎的系統離我們所能構建的“最佳”系統相去甚遠,但研究裏面的基礎功能也很有價值:你會很快地找到一些線索來幫助決定在什麼方向投入時間
  2. 誤差分析:根據開發集樣本評估想法。 誤差分析(Error Analysis) 指的是檢查算法誤分類的開發集樣本的過程,以便你找到造成這些誤差的原因。這將幫助你確定項目優先級(就像上面的例子提到的)並且獲得關於新方向的靈感 。 一個想法對誤差是否有改進,可以考慮極限的方式。 把精力放在改進空間最大的區域。
  3. 清洗誤標註的開發集和測試集樣本。 基於統計數據進行決策。
  4. 將大型開發集拆分爲兩個子集,專注其一。 將開發集明確地分爲 Eyeball 和 Blackbox 開發兩個子集將很有幫助,它使你瞭解在人爲的誤差分析過程中 Eyeball 開發集何時開始發生過擬合。 發生過擬合的時候,可以把更多的Blackbox 中的元素放到Eyeball中。
  5. Eyeball 開發集應該大到能夠讓你對算法主要的錯誤類別有所察覺。如果你正在處理一項人類表現良好的任務(比如識別圖像中的貓),下面是一些粗略的指導方案 :
    • 如果分類器在 Eyeball 開發集上只犯錯 10 次,這個開發集就有點小了。只有 10 個錯誤樣本的話,很難準確估計不同錯誤類別的影響。但如果數據非常少且不能提供更多的 Eyeball 開發集樣本時,聊勝於無,這將有助於確立項目的優先級。
    • 如果分類器在 Eyeball 開發集上樣本上犯了約 20 次錯誤,你將會開始大致瞭解主要的誤差來源。
    • 如果有約 50 個錯誤樣本,你將會比較好地瞭解主要的誤差來源。
    • 如果有約 100 個錯誤樣本,你將會很清楚主要的誤差來源。我見過有人手動分析更多的錯誤樣本——有時候多達500個。只要你有足夠多的數據,這將是無害的。

    Eyeball 開發集的大小將主要取決於你能夠手動分析樣本的時間,以及你所擁有的訪問數據的權限;

  6. 小結:基礎誤差分析
    • 當你開始一個新項目,尤其是在一個你不擅長領域時,很難正確猜測出最有前景的方向。
    • 所以,不要在一開始就試圖設計和構建一個完美的系統。相反,應儘可能快(可能在短短几天內)地構建和訓練一個基本系統。然後使用誤差分析去幫助你識別出最有前景的方向,並據此不斷迭代改進你的算法。
    • 通過手動檢查約 100 個算法錯誤分類的開發集樣本來執行誤差分析,並計算主要的錯誤類別。用這些信息來確定優先修正哪種類型的錯誤。
    • 考慮將開發集分爲人爲檢查的 Eyeball 開發集和非人爲檢查的 Blackbox 開發集。如果在 Eyeball 開發集上的性能比在 Blackbox 開發集上好很多,那麼你已經過擬合 Eyeball 開發集,並且應該考慮爲其獲得更多的數據。
    • Eyeball 開發集應該足夠大,以便於算法有足夠多的錯誤分類樣本供你分析。對很多應用來說,含有1000-10000個樣本的 Blackbox 開發集已足夠。
    • 如果你的開發集不夠大到可以按照這種方式進行拆分,那麼就使用 Eyeball 開發集來用於人工誤差分析、模型選擇和調超參。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章