第一周:和平之城中的鸟类识别(案例研究)
第一周:和平之城中的鳥類識別 案例研究
- 1.1 為什么是ML策略?
- 1.2 正交化(Orthogonalization)
- 1.3 單一數字評估指標
- 1.4 滿足和優化指標
- 1.5 訓練 / 開發 / 測試集劃分
- 設立Dev/Test的方法
- 1.6 開發集和測試集的大小
- 1.7 ?? 什么時候改變開發/測試集和指標
- 步驟:
- 1.8 為什么是人的表現
- 1.9 可避免偏差
- 1.10 理解人的表現
- 1.11 超過人的表現
- 1.12 改善模型表現
- 改進方向
- 第一周測試總結:
本文是結構化機器學習的筆記。
1.1 為什么是ML策略?
- 快速判斷那些方向比較適合繼續研究,以免浪費時間。
1.2 正交化(Orthogonalization)
- 正交化的含義:各個分量互不影響。所以可以分開來考慮。
我們需要達到4個目標
因此我們的目的是為這4種情況,設計4個獨立的按鈕,從而可以在降低訓練集準確率的前提下,提升Dev集的準確率。
1.3 單一數字評估指標
-
問題:如果一個分類器在Precision里面比較好,另一個在Recall里面比較好,該怎么選?
-
Sol:
- F1 Score: F 1 S c o r e = 2 1 P r e c i s i o n + 1 R e c a l l F1\text{ }Score=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}} F1?Score=Precision1?+Recall1?2?
-
例子2:
- 不同地區的錯誤率不同
-
Sol: 計算平均錯誤率
1.4 滿足和優化指標
-
問題:準確率+時間的指標
-
設優化指標"Accuracy"(需要最值的指標),滿足指標"Running Time"(不等式的指標)
-
Sol:
m a x ( A c c u r a c y ) and? r u n n i n g T i m e ≤ 100 m s max(Accuracy) \text{ and } runningTime\leq100ms max(Accuracy)?and?runningTime≤100ms -
問題:“準確率”+“False Positive”
-
Sol:
m a x ( A c c u r a c y ) and? F a l s e P o s i t i v e ≤ 1 次 / 天 max(Accuracy) \text{ and } False Positive\leq1次/天 max(Accuracy)?and?FalsePositive≤1次/天
1.5 訓練 / 開發 / 測試集劃分
如何設立Dev Set和Test Set?
-
Dev Set: hold out cross validation set
-
例子:
假設哦我們有以下地區的數據:- US
- UK
- India
- China
一種劃分開發/測試數據的方法是US/UK作為開發數據,另外的兩個國家作為測試集。
-
這是一個糟糕的想法,因為我們可能根據Dev Set的數據設計了一效果很好的模型,但是因為開發集和測試集并沒有同樣的分布,所有會有問題。
-
這就好比是一個人訓練射中50m的靶,然后真正使用的時候是100m的靶。
設立Dev/Test的方法
關鍵?? :確保開發集和訓練集來自同一個分布。(在上面例子中,各個數據集里都需要有這4個地區的數據)
所以我們可以將所有數據隨機洗牌,放入開發集和測試集。
1.6 開發集和測試集的大小
可以只有Train+Dev集,而沒有Test集合。
1.7 ?? 什么時候改變開發/測試集和指標
當沒有達到預期目的的常見解決思路:
- 如果發現選出來的算法存在缺陷,則需要及時改變Metric的定義。
- 例子:
| A | 3% | 會有一定幾率傳遞不良圖片 |
| B | 5% | 無 |
此時,為了避免傳遞不良信息這個巨大的錯誤,我們需要及時修改metric。
E r r o r = 1 ∑ i w ( i ) ∑ i = 1 m d e v w ( i ) I ( y p r e d ( i ) ≠ y ( i ) ) Error=\frac{1}{\sum_iw^{(i)}}\sum_{i=1}^{m_{dev}}w^{(i)} I(y_{pred}^{(i)} \neq y^{(i)}) Error=∑i?w(i)1?i=1∑mdev??w(i)I(ypred(i)??=y(i))
其中
- m d e v m_{dev} mdev?表示dev集的樣本數量
- w ( i ) = { 1 如果x不是不良信息 100 如果x是不良信息 w^{(i)}=\left\{\begin{matrix} 1 \text{ 如果x不是不良信息}\\ 100 \text{ 如果x是不良信息} \end{matrix}\right. w(i)={1?如果x不是不良信息100?如果x是不良信息?相當于一個乘法項目
- I ( y p r e d ( i ) ≠ y ( i ) ) = 1 I(y_{pred}^{(i)} \neq y^{(i)})=1 I(ypred(i)??=y(i))=1 如果 y p r e d y_{pred} ypred?預測錯誤
步驟:
1.8 為什么是人的表現
- 貝葉斯最優誤差(Bayes Optimal Error):準確率的上限。( x → y x\to y x→y映射的最優上限)
- 我們觀察到當準確率超過人類時,準確率上升速率就變慢了
- 可能的解釋:
- 人的表現已經貝葉斯最優誤差很接近了。
- 只要Algs比人類能力強,一些方法就不再有效了。
- 當Algs不比人類強,有一些可能有效的方法:
- 獲得更多有標簽的數據
- 人工對算法誤差進行分析
- 對Bias和Variance方差進行分析
1.9 可避免偏差
- 用人類水平的誤差估計來代替貝葉斯最優誤差,這在計算機視覺里面比較常見。
- Avoidable Bias= Human-level error
- Variance= Training error
- 例子:
1.10 理解人的表現
- Recap:
用人類水平的誤差估計來代替貝葉斯最優誤差
-
問題:怎么定義人類水平?
-
例子:醫療影響分析
-
Hyp:
我們看的是最高水平,因為人類(或者任何系統)都只能趨近于(小于等于)貝葉斯最優誤差。如果能超過人類水平,則可以部署我們訓練的模型了。
當算法水平很高的時候,我們不太確定是否要繼續改善模型(減小Bias)還是減小方差。因為我們不知道怎么估計貝葉斯最優誤差。
1.11 超過人的表現
例如:
- 人的表現 0.5%
- Train Error 0.3%
這時候我們不知道貝葉斯最優誤差是否小于0.3%,因為有過擬合的風險。
目前算法比人類強的地方:
這些都是從Structed Data中得到的結果,并不是自然感知任務(如計算機視覺)。
- 開車路線的時間
- 貸款
- 廣告投放
1.12 改善模型表現
改進方向
- Avoidable Bias改善方法:
- Variance改善方法:
第一周測試總結:
這里準確率就是優化指標,內存就是滿足指標。
| 95% | 2.5% | 2.5% |
總結
以上是生活随笔為你收集整理的第一周:和平之城中的鸟类识别(案例研究)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软技能之基本沟通技巧
- 下一篇: 饭谈:盘点六种错误的技术问题提问