【導讀】對于機器學習而言,獲取數據的成本有時會非常昂貴,因此為模型選擇一個合理的訓練數據規模,對于機器學習是至關重要的。在本文中,作者針對線性回歸模型和深度學習模型,分別介紹了確定訓練數據集規模的方法。
數據是否會成為新時代的“原油”是人們近來常常爭論的一個問題。
無論爭論結果如何,可以確定的是,在機器學前期,數據獲取成本可能十分高昂(人力工時、授權費、設備運行成本等)。因此,對于機器學習的一個非常關鍵的問題是,確定能使模型達到某個特定目標(如分類器精度)所需要的訓練數據規模。
在本文中,我們將對經驗性結果和研究文獻中關于訓練數據規模的討論進行簡明扼要的綜述,涉及的機器學習模型包括回歸分析等基本模型,以及復雜模型如深度學習。訓練數據規模在文獻中也稱樣本復雜度,本文將對如下內容進行介紹:
針對線性回歸和計算機視覺任務,給出基于經驗確定訓練數據規模的限制;
討論如何確定樣本大小,以獲得更好的假設檢驗結果。雖然這是一個統計問題,但是該問題和確定機器學習訓練數據集規模的問題很相似,因此在這里一并討論;
對影響訓練數據集規模的因素,給出基于統計理論學習的結果;
探討訓練集增大對模型表現提升的影響,并著重分析深度學習中的情形;
給出一種在分類任務中確定訓練數據集大小的方法;
探討增大訓練集是否是應對不平衡數據集的最好方式。
基于經驗確定訓練集規模的限制
首先,我們依據使用的模型類型,探討一些廣泛使用的經驗性方法:
回歸分析:依據統計學中的“十分之一”經驗法則(one-in-ten rule),每個預測器都需要使用 10 個實例訓練。這種經驗法則還有其他版本,例如用于解決回歸系數縮減問題的“二十分之一”規則(one-in-twenty rule)。最近,《Sample Size For Binary Logistic Prediction Models: Beyond Events Per Variable Criteria》一文中還提出了一種有趣的二元邏輯回歸變體。在該文中,作者通過預測器中變量的個數、總樣本量,以及正樣本量與總樣本量的比值,對訓練數據規模進行了估計。
計算機視覺:對于利用深度學習的圖像分類問題,根據“經驗法則”,建議每一個類別收集 1000 張圖像。如果使用預訓練模型,數據集的規模則可以大幅減少。
通過假設檢驗確定樣本規模
假設檢驗是數據科學常用的一種統計工具,一般也可以用于確定樣本規模。
舉個例子:某科技巨頭搬去 A 城后,A 城的房價便急劇上漲,而某記者想知道現在每套公寓的均價是多少。那么問題來了,在保證 95% 的置信度,60 K 的公寓價格標準差,且價格誤差在10K 以內的條件下,計算多少棟公寓的均價較為合理?
相應公式見下圖,其中 N 為所需的樣本規模,1.96 為標準正態分布在 95% 置信度下所對應的常數:
? ? ?
樣本量估計
根據上述公式,該記者需要考慮大概 138 棟公寓的價格。
該公式將隨著檢驗問題的不同而改變,但是都要通過置信區間、可容忍誤差和標準差值來計算。
訓練數據規模的統計學習理論
我們先介紹一下著名的 VC 維(Vapnik-Chevronenkis dimension)。VC 維是一種模型復雜度的度量;模型越復雜,它的 VC 維就越高。下面介紹根據 VC 維來確定訓練數據規模的公式。
首先,通過一個例子來看一下 VC 維是如何計算的:假設一個二維平面上有三個點需要被分類,而我們的分類器為該平面上的一條直線。無論這三點怎樣組合(均為正例,兩正一負、一正兩負等),這條直線都能正確地將正負樣本歸類/分開。那么,我們就認為一個線性分類器可以劃分這三點中的任意一點,因而它的 VC 維至少為 3。
另外,由于存在四個點的組合不能被一條直線準確分開,所以這個線性分類器的 VC 維為 3。可以證明,訓練數據規模 N 是 VC 維的一個函數:
由 VC 維估計訓練數據規模
其中 d 為失敗率, epsilon 為學習中的誤差率。由此可見,學習模型所需的樣本量取決于模型的復雜度。但該方法有一個弊端,就是在面對神經網絡顯著的復雜度時,會要求十分龐大的訓練數據規模。
當訓練集增大時,模型的表現會持續提升嗎?在深度學習任務又如何呢?
上圖展示了隨著數據規模的增長,傳統的機器學習算法(回歸等)和深度學習表現的變化。
具體來看,對于傳統的機器學習算法,模型的表現先是遵循冪定律(power law),之后趨于平緩;而對于深度學習,該問題還在持續不斷地研究中,不過圖一為目前較為一致的結論,即隨著數據規模的增長,深度學習模型的表現會按照冪定律持續提升。例如,有人曾用深度學習方法對三億張圖像進行分類,發現模型的表現隨著訓練數據規模的增長按對數關系提升。
值得注意的是,在深度學習中也有一些與上述例子不同的結果。比如,在《Learning Visual Features from Large Weakly Supervised Data》一文中,作者使用了一億條 Flickr 上的圖片和標簽來訓練卷積神經網絡,剛開始模型表現會隨著數據規模的增大而提升,但超過五千萬張圖片后模型的效果提升就不太明顯了。
文章《How Training Data Affect the Accuracy and Robustness of Neural Networks for Image Classification》的作者還發現,隨著訓練數據規模的增加,圖像分類的準確度確實會上升;但是,模型的魯棒性會在數據規模到達一定程度后開始下降。
分類任務中確定訓練數據集大小的方法
該方法基于我們所熟知的學習曲線,一般而言,學習曲線圖的縱軸為誤差,橫軸為訓練數據集大小。《Tutorial: Learning Curves for Machine Learning in Python》和《Learning Curve》是很好的參考資料,可以用于進一步了解機器學習中的學習曲線,以及它們是如何隨著偏差或方差的增加而變化的。Python 在 scikit-learn 中提供了一種學習曲線函數。
在分類任務中,我們往往會使用學習曲線的一種輕微變體,在該曲線圖中,縱軸為分類準確度,橫軸為訓練數據集大小。訓練集規模的確定十分簡單:只需針對你的問題,先確定學習曲線的確切形狀,然后找到曲線上你預期的分類準確度所對應的訓練數據集大小即可。
例如,在文章《Predicting Sample Size Required for Classification Performance》和《How Much Data Is Needed to Train A Medical Image Deep Learning System to Achieve Necessary High Accuracy?》中,作者們將學習曲線的方法應用到了醫學領域,并且給出了一個相應的冪函數:
學習曲線公式
其中,y 為分類準確度,x 為訓練集,b1,b2 分別為學習率和衰減率。根據問題的不同,參數會有所不同,可以通過非線性回歸或加權非線性回歸對參數進行估計。
增大訓練集是應對不平衡數據集的最好方式?
文章《Precision-Recall Versus Accuracy and the Role of Large Data Sets》對該問題進行了討論。該文作者提出了一個很有意思的觀點:在不平衡的數據集下,準確度并不是一個分類器表現好壞的最佳度量。
原因很簡單,對于一個負樣本為主的數據集,模型往往通過將大部分樣本分類為負樣本,以提高準確度。為了更好地衡量模型效果,他們將準確率和召回率(又稱敏感性)作為不平衡數據集下度量模型表現的合理標準。
除了上述提到的關于準確度的問題,作者們還指出,對于存在不平衡數據的問題而言,模型的準確率往往對其更加重要。比如一個醫院的警報系統而言,高精確率就意味著當警鈴響起時,很有可能確實有病人遇到了麻煩。
之后,該文章分別使用較大的非平衡訓練集和不平衡學習包(imbalanced-learn, 基于Python scikit-learn)對模型進行了訓練,并使用準確率和召回率對訓練效果進行了分別的度量。
第一個模型使用了一個包含5萬個樣本的藥物研發數據,并構建了使用不平衡矯正方法的K-近鄰模型。第二個模型使用了一個包含大約100萬個樣本的數據集上,構建了一個簡單的K-近鄰模型。
其中,不平衡矯正方法包括欠采樣、過采樣和集成學習。文章作者重復了200次實驗,其結論為,當把精確率和召回率作為度量時,沒有任何一種不平衡矯正方法比增加更多訓練數據的效果更好。
-
機器學習
+關注
關注
66文章
8406瀏覽量
132558 -
數據集
+關注
關注
4文章
1208瀏覽量
24689 -
深度學習
+關注
關注
73文章
5500瀏覽量
121111
原文標題:如何確定最佳訓練數據集規模?6 大必備“錦囊”全給你了 | 技術頭條
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論