苑 穎,唐莉君
(1. 銀川能源學院信息傳媒學院,寧夏 銀川 750102;2. 寧夏大學信息工程學院,寧夏 銀川 750105)
當前的網(wǎng)絡(luò)環(huán)境中,部署了大量的客戶應用和服務器,每天所產(chǎn)生的數(shù)據(jù)量達到TB以上[1]。無論是從體量或者增速方面,都在不斷增長。于此同時,數(shù)據(jù)的來源也呈現(xiàn)出多樣化,形成了大量多源異構(gòu)數(shù)據(jù)。對于金融服務、通訊管理、自動駕駛,以及電子商務等行業(yè)[2,3],大數(shù)據(jù)挖掘具有重要的經(jīng)濟和發(fā)展利益。但是,由于異構(gòu)數(shù)據(jù)和臨階噪聲的原因[4],使得在處理大數(shù)據(jù)時需要解決準確性與抗干擾問題。
目前針對大數(shù)據(jù)挖掘已經(jīng)取得了不少的研究成果,文獻[5]提出了FCM改進算法,改善了增量聚類的收斂性能,該方法的普適性較好,但是對于模糊數(shù)據(jù)處理的效果并不理想。文獻[6]針對云平臺數(shù)據(jù)分析了特征狀態(tài),并引入BP神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)做聚類處理。該方法是基于云平臺的數(shù)據(jù)分析,在應用場景和抗干擾方面都有一定的局限性。文獻[7]首先對數(shù)據(jù)采取特征分析與濾波操作,然后也通過BP神經(jīng)網(wǎng)絡(luò)做聚類處理。該方法利用濾波來改善噪聲影響,但是對于隨機數(shù)據(jù)的處理精度仍然不夠完善。文獻[8]先獲取頻繁項及其關(guān)聯(lián)性,在此基礎(chǔ)上設(shè)計了具有三層結(jié)構(gòu)的模糊DCNN,并通過降維方式進行特征抽取與壓縮。該方法在云服務場景下的性能較好,對于其它應用場景的適用性還有待確認。
雖然很多學者提出并設(shè)計了不同的解決方案,但是面對大數(shù)據(jù)體量和屬性的快速發(fā)展,降低當前分類算法的計算代價,依舊是一件亟待解決的事情。本文在引入DCNN后,為了增強其特征搜索性,結(jié)合并行思想設(shè)計了模糊DCNN算法。利用剪枝降低多余參數(shù)的出現(xiàn),根據(jù)共軛梯度法求解訓練方向,避免算法重啟,并采用選邊與漸進方式改善網(wǎng)絡(luò)各層單元不匹配問題,提高網(wǎng)絡(luò)訓練的穩(wěn)定性。
為了優(yōu)化大數(shù)據(jù)的挖掘性能,首先根據(jù)相似性計算來得到屬性特征。對于任意數(shù)據(jù)集D,其屬性i對應的數(shù)據(jù)與訓練集描述如下

(1)

JλD=M{C∈M/J|c(C,D)≤λ}
(2)
其中,M表示數(shù)據(jù)集D經(jīng)過SVD分解后得到的特征矩陣;J表示判斷準則。同理推導出分類屬性特征如下:
JλD=M{C∈M/J|c(C,D)≤1-λ}
(3)
對某一分類的數(shù)據(jù)采取特征分析,通過屬性差別確定模糊集如下

(4)
d0表示基;f(t)表示訓練函數(shù)。利用模糊融合,就可以得到各個屬性的自關(guān)聯(lián)特征。經(jīng)過歸一化操作后,就可以計算出數(shù)據(jù)集的聚類模態(tài),完成數(shù)據(jù)分類。
由于上述計算過程是基于混合屬性分析的,難免會受到冗余數(shù)據(jù)和噪聲數(shù)據(jù)的影響,于是,這里引入加權(quán)濾波操作,函數(shù)描述如下

(5)
式中,v為分類對應的質(zhì)心參量;c(t)為對應的屬性值;φ為時間窗口。
此外,依據(jù)統(tǒng)計原理,可以將模糊分類的匹配公式描述如下

(6)
其中,m表示數(shù)據(jù)階數(shù);li表示離散區(qū)間數(shù);ωi表示分類的特征因子;pi表示分類的分布密度。利用匹配公式計算各個分類的質(zhì)心差異程度,進而得到模糊分類:

(7)
其中,μ1與μ2代表模糊分類的融合權(quán)重,μ1與μ2的滿足如下條件

(8)
假定分類規(guī)則:X?V,Y?V,同時X∩Y為非空集合,此時的匹配集合可以描述如下
x(t+1)=x(0)+cd(at0>T0pd-x(t))+cg(btc>Tcpg-x(t))
(9)
其中,cd與cg依次為數(shù)值與分類對應的屬性值;at0>T0與btc>Tc依次為數(shù)值與分類對應的特征。經(jīng)過該公式處理后,便可完成對混合數(shù)據(jù)的模糊分塊挖掘。
DCNN包含若干卷積層和池化層,這樣有利于對混合大數(shù)據(jù)的有效降維[9]。同時,數(shù)據(jù)的訓練包含正反向傳播。其中,正向傳播的目的是用來計算各層輸入特征,公式描述為

(10)

反向傳播的目的是通過訓練結(jié)果對權(quán)重進行修正,該過程的目標方程描述如下

(11)
S(xk)是損失函數(shù);r(α)是正則處理。
當數(shù)據(jù)量增長時,DCNN的參數(shù)會隨之急劇增長,從而導致在大數(shù)據(jù)場景中的應用存在性能瓶頸,于是這里采取預訓練方式來減輕后續(xù)網(wǎng)絡(luò)層的參量與計算。采用Softmax替代式(11)內(nèi)部的S(xk),通過Softmax可以描述訓練過程中所有樣本的損失情況。并基于此,把任意樣本損失采取泰勒展開式處理,可以得到

(12)

網(wǎng)絡(luò)對樣本進行訓練時,其搜索方向采用如下規(guī)則

(13)
ei=?O(α);νi為方向參數(shù)。尋優(yōu)的過程就是找到目標下降的趨勢,在大數(shù)據(jù)分類過程中,采取Hadoop處理,首先利用split將數(shù)據(jù)集合切分為若干個子塊,然后通過map求解所有網(wǎng)絡(luò)的權(quán)重信息。最后根據(jù)權(quán)重數(shù)據(jù)確定特征分類。由于式(13)是從共軛梯度推到而來的,在進行最優(yōu)解計算時,νi是關(guān)鍵因素,合理的νi有利于提高網(wǎng)絡(luò)收斂性能。νi的確定采取如下方式

(14)
其中,Diffi-1=ei-ei-1。同時,為保證目標的下降趨勢和減輕計算負擔,di的計算公式設(shè)置如下

(15)
利用該公式可以避免算法的重啟,進一步增強網(wǎng)絡(luò)訓練速度。
在特征搜索完成,進入到評估過程時,通常會采用層數(shù)擴充的方式動態(tài)構(gòu)建網(wǎng)絡(luò)。雖然有利于降低資源占用,可是因為不同時間段的網(wǎng)絡(luò)層數(shù)對應不上,會產(chǎn)生性能震蕩與鴻溝[10]。于是,本文采用選邊與漸進策略消除這些問題。其中,選邊是為了更好的改善不同階段的關(guān)聯(lián)性,選邊指標如下

(16)


(17)


(18)
上述過程增強了訓練環(huán)節(jié)的關(guān)聯(lián)程度,可是層數(shù)單元的前后差異依然會影響準確程度,嚴重的情況下會使平方差超過0.2。因此,整體網(wǎng)絡(luò)采取多個漸進式結(jié)構(gòu)設(shè)計。同時,考慮到層數(shù)增加帶來的額外處理量,對于每一層,都做了最優(yōu)解的搜尋范圍,結(jié)合貪婪的選邊策略,提高訓練網(wǎng)絡(luò)的穩(wěn)定性。
改進DCNN的計算流程總結(jié)如下:
Step1:數(shù)據(jù)分塊。把輸入數(shù)據(jù)分割為大小一致的子塊。
Step2:剪枝壓縮。計算特征損失值,根據(jù)損失值采取剪枝操作。
Step3:確定搜索方向。計算方向參數(shù)和下降趨勢。
Step4:漸進搜索。根據(jù)重要程度與確定程度,得到搜索評估之間的關(guān)聯(lián)程度,并通過若干漸進式層單元設(shè)計,使關(guān)聯(lián)程度較大的數(shù)據(jù)能夠準確快速到達相應單元,執(zhí)行合理操作。
Step5:訓練輸出。通過正反向傳播,Map函數(shù)得到訓練輸出,同時進行持久化處理。
Step6:合并輸出。通過Reduce,將Step5的輸出結(jié)果進行加權(quán)合并,輸出最終結(jié)果。
仿真平臺選擇Ubuntu,大數(shù)據(jù)挖掘環(huán)境為Apache Hadoop3.2.1,配置1個Master節(jié)點,5個Slaver節(jié)點。java運行環(huán)境為JDK1.8,MapReduce實現(xiàn)了基于java編寫的去模糊挖掘算法,并部署于Hadoop。為了防止在不同數(shù)據(jù)集上的性能差異,實驗過程中采用Versicotor與Setosa兩個數(shù)據(jù)集。同時,選擇文獻[7]和[8]作為對比,從多方面進行仿真分析。
實驗過程中,向數(shù)據(jù)集Versicotor與Setosa中分別注入定量的噪聲數(shù)據(jù),得到在不同信噪比情況下,各方法的挖掘準確率,結(jié)果如圖1所示。

圖1 噪聲對準確率的影響
由仿真結(jié)果可以看出,兩種數(shù)據(jù)集中,在信噪比增加的時候,各算法的挖掘準確率都在上升,但是不管數(shù)據(jù)集或者信噪比如何變化,本文算法的挖掘準確率一直保持領(lǐng)先。在Versicotor數(shù)據(jù)集中,噪聲最嚴重的情況下,本文方法的挖掘準確率分別高出對比方法7.97%和10.38%。在Setosa數(shù)據(jù)集中,噪聲最嚴重的情況下,本文方法的挖掘準確率分別高出對比方法9.46%和10.49%。
調(diào)整原始數(shù)據(jù)中冗余數(shù)據(jù)的比例,在不同冗余度情況下,得到各個算法的執(zhí)行效率,結(jié)果如圖2所示。

圖2 冗余數(shù)據(jù)對執(zhí)行效率的影響
從結(jié)果曲線來看,冗余數(shù)據(jù)比例的增長對兩種文獻方法的影響較為嚴重,其執(zhí)行效率均出現(xiàn)大幅下跌。而本文方法則影響不大,即便在冗余數(shù)據(jù)比例達到50%時,在Versicotor與Setosa兩個數(shù)據(jù)集下的執(zhí)行效率依然可以達到90%以上。這得益于本文方法引入了加權(quán)濾波,同時在網(wǎng)絡(luò)訓練過程中,采取了網(wǎng)絡(luò)壓縮等多項優(yōu)化,使大數(shù)據(jù)挖掘的訓練復雜度得到大幅縮減。
調(diào)整數(shù)據(jù)量的大小,調(diào)整范圍為[20,60]M,調(diào)整步長為5M,仿真得到各個方法在數(shù)據(jù)挖掘過程中的內(nèi)存使用情況,結(jié)果曲線如圖3。

圖3 內(nèi)存消耗曲線
比較內(nèi)存消耗曲線可得,本文算法的內(nèi)存消耗較兩種文獻方法都要少,尤其是數(shù)據(jù)規(guī)模增加時,對內(nèi)存空間的占用優(yōu)勢愈加突出。當數(shù)據(jù)量為50M時,本文方法的內(nèi)存消耗僅為兩種文獻方法的34.78%和49.49%。這也得益于網(wǎng)絡(luò)訓練算法的去模糊機制,使無效數(shù)據(jù)和計算參量大幅縮減,有效降低過程參量的存儲。
為了提高復雜大數(shù)據(jù)的挖掘效率和挖掘精度,本文設(shè)計了改進DCNN算法模型。針對噪聲數(shù)據(jù)和冗余數(shù)據(jù),采用了加權(quán)濾波、參量壓縮、選邊和漸進處理,并對搜索方向及參數(shù)進行了優(yōu)化設(shè)計,改善DCNN空間搜索性能的同時,也提高了大數(shù)據(jù)的并發(fā)處理效率。基于Hadoop平臺部署仿真環(huán)境,經(jīng)過與其它方法的數(shù)據(jù)對比,證明本文算法在大數(shù)據(jù)去模糊挖掘方面具有更好的抗干擾性和更高的執(zhí)行效率,同時有效降低了對內(nèi)存的消耗。