如果有足夠的訓練數(shù)據(jù),機器學習模型可以表現(xiàn)出色。不幸的是,對于許多應用程序來說,對高質量數(shù)據(jù)的訪問仍然是一個障礙。
解決這個問題的一個方法是“數(shù)據(jù)增強”,這是一種從現(xiàn)有的訓練樣本中生成新的訓練樣本的技術。數(shù)據(jù)增強是一種在數(shù)據(jù)約束環(huán)境下提高機器學習模型性能和準確性的低成本和有效的方法。
機器學習模型的“過度擬合”
當機器學習模型在有限的例子上進行訓練時,它們往往會“過度擬合”。當機器學習模型對其訓練示例執(zhí)行準確,但不能推廣到未見數(shù)據(jù)時,就會發(fā)生“過度擬合”。
在機器學習中有幾種方法可以避免“過度擬合”,比如選擇不同的算法、修改模型的結構和調整參數(shù)。但最終,解決“過度擬合”的主要方法是向訓練數(shù)據(jù)集添加更多高質量數(shù)據(jù)。
例如,考慮卷積神經網(wǎng)絡(CNN),這是一種機器學習架構,特別適合于圖像分類任務。如果沒有大量多樣的訓練例子,CNN最終會在現(xiàn)實世界中對圖像進行錯誤分類。另一方面,如果CNN接受不同角度和不同光照條件下的物體圖像訓練,它在現(xiàn)實世界中識別物體的能力會變得更加強大。
然而,收集額外的培訓示例可能是昂貴的、耗時的,有時甚至是不可能的。這一挑戰(zhàn)在監(jiān)督學習應用程序中變得更加困難,因為訓練示例必須由人類專家標記。
數(shù)據(jù)增加
增加訓練數(shù)據(jù)集多樣性的方法之一是創(chuàng)建現(xiàn)有數(shù)據(jù)的副本,并對其進行小的修改。這被稱為“數(shù)據(jù)增強”。
例如,假設在圖像分類數(shù)據(jù)集中有20張鴨子的圖像。通過創(chuàng)建鴨子圖像的副本并水平翻轉它們,您已經將“鴨子”類的訓練示例增加了一倍。您可以使用其他轉換,如旋轉、剪切、縮放和轉換。您還可以結合這些轉換來進一步擴展獨特的訓練示例集合。
數(shù)據(jù)擴充不需要局限于幾何操作。添加噪點、改變顏色設置和其他效果(如模糊和銳化濾鏡)也可以幫助將現(xiàn)有的訓練示例作為新的數(shù)據(jù)。
數(shù)據(jù)擴充的例子
數(shù)據(jù)增強對于監(jiān)督學習特別有用,因為您已經有了標簽,不需要額外的工作來注釋新的示例。數(shù)據(jù)增強對于其他類型的機器學習算法也很有用,如無監(jiān)督學習、對比學習和生成模型。
數(shù)據(jù)增強已經成為訓練計算機視覺應用的機器學習模型的標準實踐。流行的機器學習和深度學習編程庫具有易于使用的函數(shù),可以將數(shù)據(jù)增強集成到機器學習訓練管道中。
數(shù)據(jù)增強不僅局限于圖像,還可以應用于其他類型的數(shù)據(jù)。對于文本數(shù)據(jù)集,可以用它們的同義詞替換名詞和動詞。在音頻數(shù)據(jù)中,可以通過添加噪聲或改變播放速度來修改訓練示例。
數(shù)據(jù)擴充的限制
數(shù)據(jù)增強并不是解決所有數(shù)據(jù)問題的靈丹妙藥。您可以將其視為機器學習模型的免費性能增強器?;谀哪繕藨贸绦?,您仍然需要具有足夠示例的相當大的訓練數(shù)據(jù)集。
在某些應用程序中,訓練數(shù)據(jù)可能太過有限,無法通過數(shù)據(jù)擴充來提供幫助。在這些情況下,必須收集更多的數(shù)據(jù),直到達到最小閾值,才能使用數(shù)據(jù)增強。有時,您可以使用遷移學習,即您在一個通用數(shù)據(jù)集(例如ImageNet)上訓練機器學習模型,然后通過微調其針對目標應用程序的有限數(shù)據(jù)的更高層次來重新利用它。
數(shù)據(jù)增強也不能解決其他問題,比如訓練數(shù)據(jù)集中存在的偏差。數(shù)據(jù)擴充過程還需要進行調整,以解決其他潛在的問題,例如類不平衡。
如果使用得當,數(shù)據(jù)管理可以成為機器學習工程師工具箱中的一個強大工具。