我們曾說,你想讓你的演算法 在訓練集上學得很好 但有時候又不希望他學太好 而知道人類的表現水準在哪 就能夠告訴你 在訓練集上「好但不要太好」究竟是多好 讓我來解釋一下 我們用了很多貓貓分類的例子:給一張照片 假設人類有近乎完美的準確度, 其錯誤率是 1% 在這種情況下,如果你的學習演算法達到 8% 的訓練錯誤率和 10% 的開發錯誤率 那麼可能,你要在訓練集上學得更好 如果你的演算法在訓練集上的表現 和人類有一段很大的差距 表示你的演算法連訓練集都合不來 我們已學了一些減少偏差或變異的手段 在這情況我會覺得要減少偏差 (bias) 例如用更大的網路訓練、 讓梯度下降跑更久 專心把訓練集做更好 那麼現在,再假設同樣的訓練/開發錯誤率 但假設人類水準並不是 1% — 把這複製過來,不過假設 在不一樣的應用, 或者不一樣的資料 假設人類水準的錯誤率其實是 7.5% 或許你資料裡面的圖片太糊了,就算是人 也無法知道裡面有沒有貓 — 這例子有點故意,因為人類 其實非常擅長於看圖認貓 不過為了舉例 我們假設你的圖片集 很模糊、解析度很低,就算是人也會錯 7.5% 在這種情況下, 就算你的訓練錯誤、開發錯誤和前個例子一樣 然而你在訓練資料上已經做得很好了 和人類表現只差了一點點 在這第二個例子 你可能會想要減少這部份 減少演算法的變異 (variance) 所以你可以試試正則化 (regularization) 試著讓開發錯誤和訓練錯誤更接近。 那麼,在早先講到偏差/變異的課程 我們是假設 Bayes error 近乎為零 那麼現在這邊的情況 在我們貓貓分類的例子 把人類水準的錯誤想成 一種 Bayes optimal error 的近似、估計 — 在電腦視覺的任務 這樣的估計還滿合理的, 因為人類真的很擅長 電腦視覺,所以人類能達到的和 Bayes error 相去不遠 根據定義,人類水準會比 Bayes error 差 因為沒有東西能比 Bayes error 好 不過人類大概也不會差 Bayes error 太多 那麼讓人意外的是,根據不同的人類水準 或者我們認為大約是 Bayes error 的估計 總之取決於我們認為能達成的水準 就算在這兩個例子,有同樣的訓練/開發錯誤 我們會有不同決定: 把心力放在減少偏差、或減少變異 在左邊的情況是 8% 訓練錯誤「很高」 — 如果你覺得可以降到 1% 而減少偏差 (bias) 能幫你作到這點 然而在右邊的例子 如果你認為 Bayes error 為 7.5% — 這裡我們用人類水平來當作 Bayes error 的近似值 如果你認為 Bayes error 很接近 7.5%,那你知道的 沒有太多空間能再降低訓練錯誤 你不希望訓練到比 7.5% 還要好,因為要這樣 你只能藉由 overfit (過適) 訓練集來達到 然而,你還有很多空間 對這裡的 2% 的差異求進步 試著減低這差距 利用減少變異 (variance) 的手段:像是正則化、收集更多訓練資料 那麼,把剛剛講的這些取個名字 這並不是大家在用的術語 不過我發現這還滿有用、也容易聯想: 對於「Bayes error」或其估計, 與「訓練錯誤」之間的差距 我要叫它做 "avoidable bias" (可避免的偏差) 因此,你想要的或許是不斷增進你的訓練成效 直到你達到 Bayes error 為止。不過呢 你不會想比 Bayes error 還要好 因為除非你 overfit, 否則沒辦法比 Bayes error 好 而這邊,訓練錯誤和開發錯誤的差距 你的演算法仍然會有變異的問題 有「可避免的偏差」這詞, 意味著也存在某種偏差 或者某種最小等級的錯誤 是你無法再改進的:如果 Bayes error 是 7.5% 你不會真的想比它還低 所以,與其於說訓練錯誤是 8% 也就是在這例子「偏差」測出來是 8% 不如說「可避免的偏差」是 0.5%; avoidable bias 測出來 是 0.5%,而變異 (variance) 測出來是 2% 因此,減少這 2% 和這邊的 0.5% 相比,較有進步空間 相反地,如果是左邊的例子 可避免的偏差是 7% 而你有的變異是 2% 所以在左邊的例子 專心減低 avoidable bias 會比較有可能 在這個例子中 了解人類錯誤的水準 也就是了解 Bayes error 的估計 讓你能在不同的情況採取不同的策略 — 要減低偏差、抑或減少變異。 而在決定專注於哪種策略時 要怎麼把人類表現的水準考慮進去, 還有很多眉眉角角 在下部影片,讓我們更深入 了解到底「人類表現的水準」是什麼意思