天天看點

機器學習政策1

為了改善機器學習系統,我們有許多改善機器學習系統的方法,比如增加更多的訓練集,修改神經網絡的結構等等。如果沒有機器學習政策,隻是随便使用這些優化方法,那麼機器學習系統可能毫無改進。漫無目的地改進機器學習,不如有針對性地改進機器學習。我們需要機器學習政策來指導我們如何改進機器學習系統。下面來了解一些機器學習政策。

正交化

搭建機器學習系統的挑戰之一是你可以嘗試和改變的東西太多了,比如有那麼多的超參數可以調。效率很高的機器學習專家有個特點,他們思維清晰,非常清楚要調整什麼,來達到某個效果,這個步驟稱為正交化。

正交化或正交性是確定修改系統設計屬性或者算法的一個元件不會建立或傳播副作用到其他元件。這更容易互相獨立地驗證算法,它減少了測試和開發時間。

當設計學習系統時,有4個目标是要實作和正交。

第一,機器學習系統在訓練集表現良好。如果沒能實作,可以使用更大的神經網絡,使用優化算法如Adam等。

第二,機器學習系統在開發集表現良好。如果沒能實作,可以使用L2正則化,使用更大的資料集。使用L2正則化可能會影響到目标一,沒有正交化,可以使用其他正則化方法,比如early sotpping。

第三,機器學習系統在測試集表現良好。如果沒有實作,可能是因為開發集選擇了錯誤的模型,可以加大開發集的資料。

第四,機器學習在現實世界中表現良好。如果沒有實作,考慮一下訓練集的資料的分布是否與現實世界的資料分布不一樣,重新選擇來自同一分布的資料集。

單一數字評估名額

無論是調整超參數,或者嘗試不同的學習算法,如果你有一個數字評估名額,進展會快很多。單一數字評估名額可以指出新嘗試的手段比之前的手段好還是壞。多評估名額有時會讓人疑惑,比如有些名額說新的嘗試效果好,有些名額說新的嘗試效果不好。

常用的評估名額有分類的準确率,查準率和查全率,F1-score。

在某個二進制分類問題中,資料集可以分成

- - -
- 1
1 True positive False positive
False negative True negative

行代表實際的類别,列代表預測的類别。查準率(Precision)的公式是

Precision=True positiveTrue positive+False positive Precision = True positive True positive + False positive

查全率(Recall)的公式是

Recall=True positiveTrue positive+False negative Recall = True positive True positive + False negative

有時候需要權衡查準率和查全率,可是使用F1-score,F1-score又叫做查準率和查全率的調和平均數,公式如下

F1-score=11p+1r F1-score = 1 1 p + 1 r

滿足和優化名額

有許多不同的名額可以用來評估一個分類器的表現,他們叫評估名額。他們可以分為滿足名額和優化名額。在訓練集,開發集和測試集中使用這些評估名額來評估是很重要的。

有幾個貓分類器,他們的分類準确率和運作時間如下表所示

Classifier Accuracy Running time
A 90% 80ms
B 92% 95ms
C 95% 1500ms

在這種情況下,分類準确率和運作時間是評估名額。分類準确率是優化名額,因為我們希望貓分類器的分類準确率越高越好。運作時間是滿足名額,在例子中要求小于100ms,意味着分類器要滿足這個要求。

訓練/開發/測試集

設定訓練/開發/測試集時要注意一些問題

  • 訓練/開發/測試集和未來預測的資料要來自同一分布。在設定開發集時要同時設定一個評估名額,我們的工作就是為了這一評估名額滿足某些條件。臨時更改開發集或評估名額會讓我們之前的工作都白費。
  • 對于小的資料集,可以按照7/3的比例劃分資料為訓練集和測試集,或者按照6/2/2的比例劃分資料為訓練集、開發集和測試集。對于大資料,開發集和測試集占的比例可以更低,30%以下或20%以下也是可以的,因為對于1000000的大資料,開發集和測試集各占10000已經足夠了,而10000隻占所有資料的1%。

什麼時候該改變開發/測試集和評估名額

當分類器在開發/測試集的評估名額已經很好了,但是在我們某些關注點中表現不好時,就需要改變開發/測試集或評估名額了。

比如有兩個貓分類器,評估名額是分類的錯誤率。分類器A比分類器B的分類錯誤率低,是以選擇分類器A。但是,分類器A會把一些色情圖檔誤分類為貓,系統可能把這些色情圖檔推送給愛貓人士,我們會對這樣的分類器分類器很不滿意。而分類器B不會把色情圖檔誤分類為貓,即使分類器B的分類錯誤率高點,但是我們更傾向于選分類器B。

一開始定義的評估名額不能正确地對分類器進行排序,需要修改評估名額。因為我們不希望貓分類器誤把色情圖檔識别為貓,是以我們可以在計算錯誤率的公式上添加一個權重w,如果圖檔實際上是色情圖檔,那麼權重w的數值要大一些,讓公式對誤識别色情圖檔的敏感度高些。比如權重為

w(i)={110 if x(i) is non-pornographic if x(i) is pornographic w ( i ) = { 1  if  x ( i )  is non-pornographic 10  if  x ( i )  is pornographic

權重錯誤率為

Error: 1∑w(i)w(i)I(y^(i)≠y(i)) Error:  1 ∑ w ( i ) w ( i ) I ( y ^ ( i ) ≠ y ( i ) )

為什麼是人的表現

現在已經有許多人比較機器學習算法和人的表現,為什麼呢?因為現在機器學習的表現效果越來越好,甚至比人的表現更好。對于某些任務來說,人的表現幾乎接近完美,把機器學習的表現和人的表現進行比較就很正常。

随着時間的增長,機器學習的表現和人的表現的關系如下圖所示。

機器學習政策1

可以看到,随着時間的增長,機器學習的表現效果越來越好,甚至超過了人類的表現。我們希望機器學習能夠到達理論最佳水準,但是分類器的性能無法超過某個理論的上限,這是所謂的貝葉斯最優誤差。比如說語音識别,有些語音含有太大的噪聲以緻于不能知道說了些什麼。

分類器在達到人類的水準之前進步得很快,超過人類水準之後就進步緩慢了。這有兩個原因,第一是人類的表現已經很接近最優誤差了,超過人類的水準後,分類器就沒有很大的進步空間。第二,隻要分類器比人類的表現更差,實際上可以使用某些工具來提高性能,一旦分類器超過人類的表現水準,這些工具就不再那麼有效了。

隻要機器學習的表現比人類更差,我們可以

  • 擷取更多帶有标簽的資料,
  • 人工誤差分析,
  • 更好地分析偏差或方差,

來提高分類器的性能。

可避免偏差

可避免誤差是隻訓練誤差和最優誤差的內插補點。

在貓分類器例子中,假設人類識别的錯誤率是1%,分類器在訓練集中的錯誤率是8%,在開發集中的錯誤率是10%。這裡,人類的識别誤差很接近最優誤差了,我們近似認為人類的識别誤差就是最優誤差。分類器在訓練集的誤差與最優誤差相差7%,這是可避免偏差。分類器周期訓練集的誤差和在開發集的誤差相差2%。是以,接下來的改進工作是減少分類器的偏差。

假設圖檔集很模糊,人識别的錯誤率是7.5%。人類的識别誤差與分類器在訓練集的誤差相差0.5%,這個差别就是可避免誤差。這個時候,改進的工作應該是縮小分類器在訓練集的誤差和開發集的誤差的差距。

總結

使用人類水準誤差作為貝葉斯誤差的替代。如果可避免偏差大,那麼分類器的主要問題是高偏差,改進方法可以是使用更複雜的神經網絡、學習更長時間,使用優化算法(比如Adam)或更換其他的神經網絡架構。如果訓練誤差和開發誤差的內插補點大,那麼分類器的主要問題是高方差,改進方法可以是增大訓練集、正則化或更換其他的神經網絡架構。

繼續閱讀