一文解讀合成數(shù)據(jù)在機器學(xué)習(xí)技術(shù)下的表現(xiàn)
作者:Eric Le Fort
編譯:蔣雨暢 盧苗苗
想法
相比于數(shù)量有限的“有機”數(shù)據(jù),我將分析、測評合成數(shù)據(jù)是否能實現(xiàn)改進。
動機
我對合成數(shù)據(jù)的有效性持懷疑態(tài)度——預(yù)測模型只能與用于訓(xùn)練數(shù)據(jù)的數(shù)據(jù)集一樣好。這種懷疑論點燃了我內(nèi)心的想法,即通過客觀調(diào)查來研究這些直覺。
需具備的知識
本文的讀者應(yīng)該處于對機器學(xué)習(xí)相關(guān)理論理解的中間水平,并且應(yīng)該已經(jīng)熟悉以下主題以便充分理解本文:
- 基本統(tǒng)計知識,例如“標(biāo)準(zhǔn)差”一詞的含義
- 熟悉神經(jīng)網(wǎng)絡(luò),SVM和決策樹(如果您只熟悉其中的一個或兩個,那可能就行了)
- 了解基本的機器學(xué)習(xí)術(shù)語,例如“訓(xùn)練/測試/驗證集”的含義
合成數(shù)據(jù)的背景
生成合成數(shù)據(jù)的兩種常用方法是:
- 根據(jù)某些分布或分布集合繪制值
- 個體為本模型的建模
在這項研究中,我們將檢查***類。為了鞏固這個想法,讓我們從一個例子開始吧!
想象一下,在只考慮大小和體重的情況下,你試圖確定一只動物是老鼠,青蛙還是鴿子。但你只有一個數(shù)據(jù)集,每種動物只有兩個數(shù)據(jù)。因此不幸的是,我們無法用如此小的數(shù)據(jù)集訓(xùn)練出好的模型!
這個問題的答案是通過估計這些特征的分布來合成更多數(shù)據(jù)。讓我們從青蛙的例子開始
參考這篇維基百科的文章(只考慮成年青蛙):https://en.wikipedia.org/wiki/Common_frog
***個特征,即它們的平均長度(7.5cm±1.5cm),可以通過從正態(tài)分布中繪制平均值為7.5且標(biāo)準(zhǔn)偏差為1.5的值來生成。類似的技術(shù)可用于預(yù)測它們的重量。
然而,我們所掌握的信息并不包括其體重的典型范圍,只知道平均值為22.7克。一個想法是使用10%(2.27g)的任意標(biāo)準(zhǔn)偏差。不幸的是,這只是純粹猜測的結(jié)果,因此很可能不準(zhǔn)確。
鑒于與其特征相關(guān)信息的可獲得性,和基于這些特征來區(qū)分物種的容易程度,這可能足以培養(yǎng)良好的模型。但是,當(dāng)您遷移到具有更多特征和區(qū)別更細微的陌生系統(tǒng)時,合成有用的數(shù)據(jù)變得更加困難。
數(shù)據(jù)
該分析使用與上面討論的類比相同的想法。我們將創(chuàng)建一些具有10個特征的數(shù)據(jù)集。這些數(shù)據(jù)集將包含兩個不同的分類類別,每個類別的樣本數(shù)相同。
“有機”數(shù)據(jù)
每個類別將遵循其中每個特征的某種正態(tài)分布。例如,對于***種特征:***個類別樣本的平均值為1500,標(biāo)準(zhǔn)差為360;第二個類別樣本的平均值為1300,標(biāo)準(zhǔn)差為290。其余特征的分布如下:
該表非常密集,但可以總結(jié)為:
- 有四個特征在兩類之間幾乎無法區(qū)分,
- 有四個特征具有明顯的重疊,但在某些情況下應(yīng)該可以區(qū)分,并且
- 有兩個特征只有一些重疊,通常是可區(qū)分的。
創(chuàng)建兩個這樣的數(shù)據(jù)集,一個1000樣本的數(shù)據(jù)集將保留為驗證集,另一個1000樣本的數(shù)據(jù)集可用于訓(xùn)練/測試。
這會創(chuàng)建一個數(shù)據(jù)集,使分類變得足夠強大。
合成數(shù)據(jù)
現(xiàn)在事情開始變得有趣了!合成數(shù)據(jù)將遵循兩個自定義分布中的其中一個。***個我稱之為“ Spikes Distribution”。此分布僅允許合成特征采用少數(shù)具有每個值的特定概率的離散值。例如,如果原始分布的平均值為3且標(biāo)準(zhǔn)差為1,則尖峰(spike)可能出現(xiàn)在2(27%),3(46%)和4(27%)。
第二個自定義分布我稱之為“ Plateaus Distribution”。這種分布只是分段均勻分布。使用平臺中心的正態(tài)分布概率推導(dǎo)出平穩(wěn)點的概率。您可以使用任意數(shù)量的尖峰或平臺,當(dāng)添加更多時,分布將更接近正態(tài)分布。
為了清楚說明這兩個分布,可以參考下圖:
(注:尖峰分布圖不是概率密度函數(shù))
在這個問題中,合成數(shù)據(jù)的過程將成為一個非常重要的假設(shè),它有利于使合成數(shù)據(jù)更接近于“有機”數(shù)據(jù)。該假設(shè)是每個特征/類別對的真實平均值和標(biāo)準(zhǔn)差是已知的。實際上,如果合成數(shù)據(jù)與這些值相差太遠,則會嚴(yán)重影響訓(xùn)練模型的準(zhǔn)確性。
好的,但為什么要使用這些分布?他們?nèi)绾畏从超F(xiàn)實?
我很高興你問這個問題!在有限的數(shù)據(jù)集中,您可能會注意到,對于某個類別,某個特征只會占用少量值。想象一下這些值是:
- (50,75,54,49,24,58,49,64,43,36)
或者如果我們可以對這列進行排序:
- (24,36,43,49,49,50,54,58,64,75)
為了生成此特征的數(shù)據(jù),您可以將其拆分為三個部分,其中***部分將是最小的20%,中間的60%將是第二部分,第三部分將是***的20%。然后使用這三個部分,您可以計算它們的平均值和標(biāo)準(zhǔn)差:分別為(30,6.0),(50.5,4.6)和(69.5,5.5)。如果標(biāo)準(zhǔn)差相當(dāng)?shù)?,比如大約為相應(yīng)均值的10%或更小,則可以將該均值視為該部分的尖峰值。否則,您可以將該部分視為一個平臺,其寬度是該部分標(biāo)準(zhǔn)差的兩倍,并以該部分的平均值作為中心。
或者,換句話說,他們在模擬不***的數(shù)據(jù)合成方面做得不錯。
我將使用這些分布創(chuàng)建兩個800樣本數(shù)據(jù)集 - 一個使用尖峰,另一個使用平臺。四個不同的數(shù)據(jù)集將用于訓(xùn)練模型,以便比較每個數(shù)據(jù)集的有用性:
- 完整 (Full) - 完整的1000個樣本有機數(shù)據(jù)集(用于了解上限)
- 真實 (Real) - 只有20%的樣本有機數(shù)據(jù)集(模擬情況而不添加合成數(shù)據(jù))
- 尖峰(Spike) - “真實”數(shù)據(jù)集與尖峰數(shù)據(jù)集相結(jié)合(1000個樣本)
- 平臺(Plateaus) - “真實”數(shù)據(jù)集與平臺數(shù)據(jù)集相結(jié)合(1000個樣本)
現(xiàn)在開始令人興奮的部分!
訓(xùn)練
為了測試每個數(shù)據(jù)集的強度,我將采用三種不同的機器學(xué)習(xí)技術(shù):多層感知器(MLP),支持向量機(SVM)和決策樹(Decision Trees)。為了幫助訓(xùn)練,由于某些特征的幅度比其他特征大得多,因此利用特征縮放來規(guī)范化數(shù)據(jù)。使用網(wǎng)格搜索調(diào)整各種模型的超參數(shù),以***化到達***的超參數(shù)集的概率。
總之,我在8個不同的數(shù)據(jù)集上訓(xùn)練了24種不同的模型,以便了解合成數(shù)據(jù)對學(xué)習(xí)效果的影響。
相關(guān)代碼在這里:https://github.com/EricLeFort/DataGen
結(jié)果
經(jīng)過幾個小時調(diào)整超參數(shù)并記錄下精度測量結(jié)果后,出現(xiàn)了一些反直覺的結(jié)果!完整的結(jié)果集可以在下表中找到:
☟多層感知器(MLP)
☟支持向量機(SVM)
☟決策樹(Decision Trees)
在這些表中,“Spike 9”或“Plateau 9”是指分布和使用的尖峰/平臺的數(shù)量。單元格中的值是使用相應(yīng)的訓(xùn)練/測試數(shù)據(jù)對模型進行訓(xùn)練/測試,并用驗證集驗證后的的最終精度。還要記住,“完整”(Full)類別應(yīng)該是準(zhǔn)確性的理論上限,“真實”(Rea;)類別是我們在沒有合成數(shù)據(jù)的情況下可以實現(xiàn)的基線。
一個重要的注意事項是,(幾乎)每次試驗的訓(xùn)練/測試準(zhǔn)確度都明顯高于驗證準(zhǔn)確度。例如,盡管MLP在Spike-5上得分為97.7%,但在同一試驗的訓(xùn)練/測試數(shù)據(jù)上分別得分為100%和99%。當(dāng)在現(xiàn)實世界中使用時,這可能導(dǎo)致模型有效性的過高估計。
完整的這些測量可以在GitHub找到:https://github.com/EricLeFort/DataGen
讓我們仔細看看這些結(jié)果。
首先,讓我們看一下模型間的趨勢(即在所有機器學(xué)習(xí)技術(shù)類型中的合成數(shù)據(jù)集類型的影響)。似乎增加更多尖峰/平臺并不一定有助于學(xué)習(xí)。你可以看到在3對 5時尖峰/平臺之間的一般改善,但是當(dāng)看到5對9時,則要么變平或稍微傾斜。
對我來說,這似乎是違反直覺的。隨著更多尖峰/平臺的增加,我預(yù)計會看到幾乎持續(xù)的改善,因為這會導(dǎo)致分布更類似于用于合成數(shù)據(jù)的正態(tài)分布。
現(xiàn)在,讓我們看一下模型內(nèi)的趨勢(即各種合成數(shù)據(jù)集對特定機器學(xué)習(xí)技術(shù)的影響)。對于MLP來說,尖峰或平臺是否會帶來更好的性能似乎缺少規(guī)律。對于SVM,尖峰和平臺似乎表現(xiàn)得同樣好。然而,對于決策樹而言,平臺是一個明顯的贏家。
總的來說,在使用合成數(shù)據(jù)集時,始終能觀察到明顯的改進!
以后的工作
需要注意的一個重要因素是,本文的結(jié)果雖然在某些方面有用,但仍然具有相當(dāng)?shù)耐茰y性。因此,仍需要多角度的分析以便安全地做出任何明確的結(jié)論。
這里所做的一個假設(shè)是每個類別只有一個“類型”,但在現(xiàn)實世界中并不總是如此。例如,杜賓犬和吉娃娃都是狗,但它們的重量分布看起來非常不同。
此外,這基本上只是一種類型的數(shù)據(jù)集。應(yīng)該考慮的另一個方面是嘗試類似的實驗,除了具有不同維度的特征空間的數(shù)據(jù)集。這可能意味著有15個特征而不是10個或模擬圖像的數(shù)據(jù)集。
相關(guān)報道:https://www.codementor.io/ericlefort/my-thoughts-on-synthetic-data-kq719a5ss
【本文是51CTO專欄機構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】