無論你在調超參數,或嘗試不同演算法 或是嘗試不同的選項 來打造你的機器學習系統 如果能有單一數字的衡量指標, 讓你很快看出新的嘗試比之前好還是壞 你的進度就能飛快無比。 所以,團隊要開始一個機器學習的計畫,我常建議 為你的問題設定好一個「單一數字的衡量指標」 (single real number evaluation metric) 讓我們看一個例子 你曾聽我說過,運用機器學習是很需要 經驗的過程 時常我們有點子,寫程式,跑實驗,觀察表現 然後拿實驗的結果來修正我們的點子 然後你不斷在這輪迴中持續改善 那麼以貓貓辨認器為例,你先前做了分類器 A 然後改了超參數、訓練資料或其他東西 你現在訓練了一個分類器 B 一個合理評估分類器成效的方法,是觀察 準確率和查全率 (precision 和 recall) 準確率和查全率的細節不大重要 — 以這個例子來說。 不過簡單說,準確率 (precision) 的定義是 你的分類器說是貓的圖片中 有百分之幾是真的貓? 所以如果分類器 A 有 95% 準確率,代表當 A 說 某個東西是貓,有 95% 的機會那真的是貓 而查全率 (recall) 是,拿所有是貓的照片 你的分類器有百分之幾的機會能正確認出來? 有多少真正的貓能被正確辨認出? 所以如果分類器 A 有 90% 的查全率,代表 開發集所有貓的圖片裡 分類器 A 能查出全部的 90%。 不用擔心準確率和查全率的定義 其實,你常常需要在準確率和查全率之間取捨 而你兩者都在乎 當分類器說是貓 你想要他真的是貓 但是對於所有貓的圖片 你也想要一大部分是貓 所以可能合理的評估是 用分類器的準確率和查全率 同時用 precision 和 recall 來衡量的問題是 如果分類器 A 查全率比較高,但是分類器 B 準確率比較高,你會不確定哪個好 而如果你實驗很多想法、很多超參數 你不只試兩個分類器 可能是十來個分類器,而你想快快挑"最好"的 以繼續後面的步驟 如果用了兩個衡量指標 會很難二選一,或是十個中挑最好的。 所以我建議,與其於用兩個數字: 「準確率」和「查全率」來挑選分類器 你必須找一個新的衡量指標,結合兩者 在機器學習文獻,結合準確率和查全率的標準作法 叫做「F1 分數」 F1 分數的細節不重要,粗略說 你可看作是準確率 P 和查全率 R 的平均 從公式看,F1 分數定義是 2 除以 (1/P + 1/R) 數學上這叫調和平均, 準確率 P 和查全率 R 的調和平均 非正式來說 你可以想成是他們的某種平均 只不過不是算術平均, 而是調和平均,用這個公式算出 對兩者的取捨會有些優點 不過在這例子 你可以一眼看出分類器 A 的 F1 分數比較好 假設用 F1 分數來綜合準確率和查全率很合理, 那你很快就能選擇 A 而非 B 所以我發現 對很多機器學習的團隊,能有好的開發集 讓你測量準確/查全率,再加上單一數字的衡量指標 有時我會叫單一實數的衡量指標 這能讓你很快知道分類器 A 好還是 B 好 因此,有開發集和單一指標 這通常能加快腳步 讓改進演算法的這種迭代過程更快 讓我們看另一個例子 假設你為四個地區的愛貓者做一個貓貓 app 美國、中國、印度和其他地方 假設你有兩個分類器,在這四個地區的資料 分別有不同的錯誤率 例如演算法 A 對美國使用者上傳的照片有 3% 的錯誤率 你想掌握這些分類器 在每個不同地區的成效,這很合理 然而想追蹤四個數字,還想快速決定 演算法 A 還是 B 比較好,這很困難 如果你在測試很多個分類器 看著這堆數字做選擇,這真的很難 以這個例子我會建議,除了 追蹤四個地區的表現以外,也算他們的平均 假設把四個錯誤率平均是合理的單一實數指標 那麼藉由算出平均 你能很快發現方法 C 的平均錯誤率最低 所以我們可能選這一個繼續下去 選一個演算法,從這繼續改進。 機器學習的流程通常是,你有個點子, 你實作,試試看,然後你想知道這點子有沒有用 我們在這部影片看到,有單一數字的衡量指標 在做出各種決定時, 能增加你或你團隊的效率 不過還沒完 我們尚未提到如何有效設定衡量指標 在下一個影片中 我想分享怎麼去設「優化指標」和「滿足指標」 來看看下一部影片吧