喬銘宇,陳旻杰,張琳那
(北方工業(yè)大學(xué),北京100144)
如今,機(jī)器學(xué)習(xí)被廣泛應(yīng)用到各個(gè)領(lǐng)域,如人工智能、專家系統(tǒng)、數(shù)據(jù)挖掘、圖像處理[1]等。而隨著互聯(lián)網(wǎng)的興起和大數(shù)據(jù)技術(shù)的發(fā)展深度學(xué)習(xí)的越來(lái)越受歡迎。數(shù)據(jù)倉(cāng)庫(kù)[2]和大數(shù)據(jù)技術(shù)為深度學(xué)習(xí)提供了可觀的數(shù)據(jù)集。而數(shù)據(jù)預(yù)處理則成為深度學(xué)習(xí)的不可或缺的重要流程。隨著數(shù)據(jù)記錄和屬性規(guī)模的急劇增長(zhǎng),大數(shù)據(jù)處理平臺(tái)和并行數(shù)據(jù)分析算法也隨之出現(xiàn)。于此同時(shí),這也推動(dòng)了數(shù)據(jù)降維處理的應(yīng)用。對(duì)于高維度數(shù)據(jù),并不便于輸入神經(jīng)網(wǎng)絡(luò)直接進(jìn)行處理,所以需要提前對(duì)高位數(shù)據(jù)進(jìn)行降維操作,由此,降維工作顯得格外重要。而對(duì)于大規(guī)模數(shù)據(jù),降維速度的快慢則直接影響后續(xù)工作的進(jìn)程。而越來(lái)越多的降維技術(shù)被陸續(xù)提出并使用。如主成分分析(PCA)[3]、低方差濾波(Low Variance Filter)、高相關(guān)濾波(High Correlation Filter)、隨機(jī)森林/組合樹(Random Forests)、反向特征消除(Backward Feature Elimination)、前向特征構(gòu)造(Forward Feature Construction)、局部線性潛入(LLE)[4]等降維算法。這些算法各有千秋,而本文為了進(jìn)一步提高降維的運(yùn)算速度,提出了一種改進(jìn)的降維算法。
在現(xiàn)實(shí)世界中,數(shù)據(jù)多是冗余的,即存在數(shù)據(jù)相關(guān)。高維空間可以用低維空間的聯(lián)合分布形式表示。例如,MNIST手寫數(shù)字?jǐn)?shù)據(jù)集[5]中的數(shù)據(jù),本是高維特征,卻可以用低維空間表示。我們很容易得知高維數(shù)據(jù)的優(yōu)點(diǎn),數(shù)據(jù)維度高,則其所包含的信息量就大。但是數(shù)據(jù)當(dāng)然不是維度越高越好,因?yàn)檫€需要考慮實(shí)際的計(jì)算能力。對(duì)于數(shù)據(jù)而言,維度越高,則所消耗的計(jì)算時(shí)間越長(zhǎng),對(duì)計(jì)算設(shè)備的要求越高,由此,在計(jì)算上所消耗的資金數(shù)額也就越大。這就是高維度數(shù)據(jù)的缺點(diǎn),消耗計(jì)算資源,計(jì)算時(shí)間大,甚至造成“維度災(zāi)難”。所以為了適應(yīng)需要,降維算法隨之誕生。降維,顧名思義,其目的就是降低數(shù)據(jù)的維度。很明顯的,降低維度會(huì)損失原數(shù)據(jù)的一些信息,如果是損失冗余信息,倒也無(wú)傷大雅,但如果是損失了關(guān)鍵信息,那勢(shì)必會(huì)對(duì)之后的工作產(chǎn)生嚴(yán)重的影響。數(shù)據(jù)的好壞決定著模型的訓(xùn)練結(jié)果,而深度學(xué)習(xí)中更是對(duì)數(shù)據(jù)集的質(zhì)量提出了更高的要求。所以,不能盲目地降低數(shù)據(jù)維度,而忽略特征的損失。但上文提到。高維數(shù)據(jù)的各個(gè)維度之間,存在著數(shù)據(jù)相關(guān),而這些高相關(guān)的維度,通俗地講,就是比較像的維度。就好比一家公司只招收一名會(huì)計(jì),那么兩名會(huì)計(jì)來(lái)應(yīng)聘,就會(huì)錄取一名,而淘汰一名,因?yàn)檫@兩個(gè)人的技能太相似了。所以對(duì)于高相關(guān)的維度信息,我們選擇保留其中一個(gè)維度即可,因?yàn)楸A舻倪@個(gè)維度,就可以近似代表與其高相關(guān)的維度信息。對(duì)于維度之間的相關(guān)性,本文在此簡(jiǎn)單介紹一下??梢园衙恳粋€(gè)維度特征抽象成一個(gè)向量,然后不同維度之間的相關(guān)性就可以轉(zhuǎn)化為不同向量間的相似度度量,向量之間的相似度度量又可以進(jìn)一步轉(zhuǎn)化為向量之間的距離度量,而向量之間的距離度量方法又有很多,簡(jiǎn)單且比較實(shí)用的方法有:余弦相似度度量、歐幾里德距離、曼哈頓距離等。易知,向量間的距離越近,則相似程度越到。那么這些向量所代表的維度特征之間的相關(guān)程度則越強(qiáng)。以上高相關(guān)濾波降維算法的概述。而另一種常見(jiàn)且實(shí)用的降維算法是低方差濾波降維算法。其核心思想是該方法假設(shè)數(shù)據(jù)列變化非常小的列包含的信息量少。因此,所有的數(shù)據(jù)列方差小的列被移除。但有一件事必須注意:方差與數(shù)據(jù)范圍相關(guān)的,所以在采用該方法前需要對(duì)數(shù)據(jù)做歸一化處理。從思想上來(lái)看,低方差濾波降維算法無(wú)疑是一個(gè)好算法,但在降維前對(duì)數(shù)目如此之多,維度如此之高的數(shù)據(jù)全部進(jìn)行歸一化操作,這無(wú)疑又是一個(gè)消耗計(jì)算能力,需要大量計(jì)算時(shí)間的操作。所以,本文對(duì)低方差濾波降維算法進(jìn)行改進(jìn),目的是消除歸一化操作所帶來(lái)的時(shí)間損耗,以更快地實(shí)現(xiàn)降維操作。
針對(duì)低方差濾波降維算法的利與弊,我們對(duì)該算法進(jìn)行改進(jìn),在保留該算法的優(yōu)點(diǎn)的基礎(chǔ)上,對(duì)它的缺點(diǎn)進(jìn)行優(yōu)化處理。上文提到,低方差濾波降維需要在降維前對(duì)所有數(shù)據(jù)進(jìn)行歸一化處理,而我們追根溯源,該方法是所以要用到歸一化是因?yàn)榉讲钣?jì)算與數(shù)據(jù)范圍有關(guān)。那么,我們只需用一種與方差計(jì)算相似,但與數(shù)據(jù)范圍無(wú)關(guān)的計(jì)算代替方差計(jì)算,且確保可以達(dá)到降維效果即可。由方差公式可知:
此處O表示大O漸進(jìn)符號(hào)。
然后再分別對(duì)這兩組數(shù)據(jù)的方差取算數(shù)平方根,即標(biāo)準(zhǔn)差,依次為σ1、σ2,則不妨設(shè):
此處O表示大O漸進(jìn)符號(hào)。
那么在對(duì)σ1、σ2依次除以各組數(shù)據(jù)的均值mean1、mean2,記為f1、f2,則不妨設(shè):
此處O表示大O漸進(jìn)符號(hào)。
由此我們發(fā)現(xiàn),通過(guò)對(duì)方差采用如下公式轉(zhuǎn)換:
max|ai|為該組數(shù)據(jù)對(duì)每個(gè)值取絕對(duì)值后的最大值,這里之所以用絕對(duì)值最大值做分母而不用均值做分母,是通過(guò)實(shí)驗(yàn)證實(shí),用絕對(duì)值最大值做分母比用均值做分母,對(duì)于計(jì)算結(jié)果更加穩(wěn)定。
本文將f成為該數(shù)據(jù)集的正態(tài)方差因子。
其中,σ2為數(shù)據(jù)的方差,mean代表數(shù)據(jù)的均值。這里之所以將公式(9)中的無(wú)關(guān)因子N一起取算數(shù)平方根,是因?yàn)榭紤]到數(shù)據(jù)可能存在缺省項(xiàng),由此不從維度的數(shù)據(jù)總數(shù)N可能會(huì)有些許區(qū)別,從而產(chǎn)生誤差,而對(duì)N取算數(shù)平方根,則可以弱化這種誤差的影響。
特別的,為了試驗(yàn)中,方便比較實(shí)驗(yàn)結(jié)果,我們規(guī)定:
g的分母是均值,是為了和公式(9)中的f做對(duì)比,所以在本文中稱g為偽正態(tài)方差因子,簡(jiǎn)稱為正態(tài)因子。
整體上,通過(guò)這種方式,我們即可無(wú)需再對(duì)降維前的數(shù)據(jù)進(jìn)行歸一化處理,從而大大節(jié)約了計(jì)算時(shí)間和計(jì)算成本。
接下來(lái)本文將通過(guò)實(shí)驗(yàn)證明上面的假設(shè)。
本題采用2021年美國(guó)大學(xué)生數(shù)學(xué)建模大賽D題的數(shù)據(jù)集full_music_data.csv進(jìn)行實(shí)驗(yàn)。
首先將該數(shù)據(jù)集中的如表1所示的14列進(jìn)行處理,將每列數(shù)據(jù)視為一個(gè)屬性集合,并分別在各自集合內(nèi)部計(jì)算每組屬性的方差σ2和正態(tài)方差因子f(該數(shù)據(jù)集無(wú)缺省項(xiàng))。
表1
計(jì)算結(jié)果可視化如圖1-圖3所示。
由圖1和圖2對(duì)比分析得:雖然各屬性的方差值和正態(tài)方差因子值不相等,但各屬性間的方差值的大小順序與正態(tài)方差因子值的大小順序是完全一致的。
圖2 各屬性的正態(tài)方差因子比較
由圖1和圖3對(duì)比分析得:各屬性的方差的大小關(guān)系與各屬性的偽正態(tài)因子的大小關(guān)系差別很大,所以證實(shí)了公式(9)的分母需要取該組數(shù)據(jù)中的絕對(duì)值最大值,而不是取該組數(shù)據(jù)的均值。所以公式(9)的正確性和科學(xué)性得到了證實(shí)。
圖1 各屬性的方差比較
圖3 各屬性的偽正態(tài)因子比較
由此我們得出結(jié)論,原低方濾波降維算法中的方差可以用本文中的正態(tài)方差因子代替。由此省略了降維前歸一化操作的時(shí)間。所以,實(shí)驗(yàn)證實(shí)了本文改進(jìn)降維算法的正確性和可行性。
為適應(yīng)深度學(xué)習(xí)快速發(fā)展的趨勢(shì),大數(shù)據(jù)集高維數(shù)據(jù)的預(yù)處理顯得格外重要。而降維是減輕計(jì)算壓力的一種有效方式。降維算法層出不窮,如高相關(guān)濾波降維、低方差降維等,但這兩者都需要在降維前提前進(jìn)行數(shù)據(jù)的歸一化處理,而對(duì)高維數(shù)據(jù)進(jìn)行歸一化處理無(wú)疑是又增加了計(jì)算時(shí)間和計(jì)算耗費(fèi)。為了進(jìn)一步減少計(jì)算時(shí)間,減輕計(jì)算資源的損耗,本文實(shí)現(xiàn)了一種基于低方差波算法的改進(jìn)降維算法。通過(guò)實(shí)驗(yàn)證明,本文的改進(jìn)降維算法確實(shí)比原本的低方差濾波降維算法所需時(shí)間更短,且與低方差濾波降維算法相比,本文的改進(jìn)算法對(duì)于降維后對(duì)原數(shù)據(jù)集特征損失的影響并沒(méi)有明顯增加。但本文的改進(jìn)降維算法仍然需要對(duì)降維前的各組數(shù)據(jù)分別計(jì)算方差,這仍然會(huì)對(duì)計(jì)算時(shí)間延長(zhǎng)造成一定的影響。所以,在后續(xù)的研究中,將會(huì)進(jìn)一步考慮對(duì)降維算法的計(jì)算時(shí)間進(jìn)行優(yōu)化。