陳 燕 ,顧大剛 ,陳亞林
(1.貴陽學院 數學與信息科學學院,貴州 貴陽 550002;2.南京財經大學 管理科學與工程學院,江蘇 南京 210046)
為了提高傳感網絡觀測數據的可靠性和準確度,需要復置傳感器,使得多個節點有相互交叉的觀測范圍,這將導致采集的數據存在大量冗余,極大地增加了數據存儲、處理和傳輸的資源消耗。如何在傳感網絡數據聚集過程中安全、準確和高效地消除冗余數據,是資源受限的傳感網絡應用研究中的核心問題之一,而數據融合是目前解決這一問題較為有效的一種方法。所謂數據融合是指將同一目標的多個觀測結果整合成一個統一的結果[1]。數據融合技術主要是通過壓縮數據、提取特征和數據關聯等手段降低數據中的信息冗余,從而降低傳感網絡的資源消耗,增加置信度[2]。
數據融合的質量和效率主要體現在融合算法上。目前常用的數據融合算法有:基于時間序列的加權平均法,其方法簡單,處理速度快,但融合質量較差[3-4];利用概率分布求融合值的貝葉斯估計法,提高了融合結果的精度,但誤差較難控制[5-6];充分利用概率分布函數、似然函數和信任函數的D-S 推理方法[7-8],將多個信息融合的不確定性推理過程融合于模糊邏輯推理過程中,但信息描述依賴于主觀因素,不利于特征提取[9-10];神經網絡算法,針對數據融合不確定性推理過程,通過訓練,能擁有相應傳感網絡的規律,再利用規律進行數據融合[11-13]。
支持向量機SVM 是一種基于統計學的二分類算法。其基本思想是通過學習得到一個邊界函數,使得訓練集中所有實例距離邊界的最小距離最大化[14]。SVM 基于結構風險最小化原則,泛化能力強,且它是一個凸優化問題,只要局部最優解一定是全局最優解。
控制空間的維數和設計高效的SVM 多分類器是面向多源數據融合的SVM 方法需要解決的核心問題。
轉化的實質是尋找一種映射關系將非線性向量空間映射為線性可分空間。由于SVM 使用向量內積表示原始數據點,考慮到在映射后的新空間求內積,會使空間的維數急劇增加,甚至無法計算。因此,通常使用核函數的方法,在輸入空間就完成向量內積的計算。使用核函數完成向量空間轉化主要考慮兩個問題:(1)選擇合適的核函數;(2)確定核函數中的參數。
Mercer 定理認為任何半正定的函數都可以作為核函數。可以根據泛化誤差理論,計算模型的期望錯誤率為:

式中,xi、yi為數據集中的元素,L 為x 到y 的映射。針對SVM,使用非線性樣本訓練集對多項式核函數和高斯核函數計算,得出高斯核的錯誤率較低,故此選擇高斯核函數來完成向量空間的轉化。
預處理后的數據集應用高斯核函數生成核矩陣過程如下:
當寬度參數σ>0 時,高斯核函數K 可定義為:

由式(2)可知,σ 直接影響著核函數的擬合程度。因此,高斯核的使用重點應是確定其寬度參數σ,通常采用梯度下降法或交叉驗證法來確定σ。但當初始σ 確定不當,會極大地增加計算代價。陳洋洋等提出首先基于支持向量間的距離來限制σ 的選擇范圍,再采用常規方法來確定σ,從而加快σ 參數的確定[15]。
首先,計算任意兩類支持向量集A、B 之間近似的寬度參數σ0:

其次,計算支持向量矩陣中任意兩個向量集C、D之間的距離中值dmed:

然后,利用距離中值來確定參數σi的范圍:

最后,使用梯度下降法或交叉驗證法來確定最終的σ。
根據SVM 解決多分類的思路,對任意兩個類構建一個二分類器,引入圖的概念,從而能較好地控制積累誤差[16]。
1.2.1 樣本訓練階段構建多個二分類SVM
根據線性判別函數g(x)=wTx+b,其中w 為分類面的法向量,b 為分類面的偏移。設(x1,y1),(x2,y2),…,(xn,yn),xi∈Rn,yi∈{-1,+1},則分類規則可緊湊表示為:yi(wTx+b)≥1,|g(xi)|≥1。
設g(x)=0 時有超平面H,與H 垂直的向量為w,則任意樣本向量x 可表示為:

其中,r 為幾何間隔,則判別函數g(x)變換為:

那么問題就轉化為尋找w 和b,引入拉格朗日乘子,用條件極值求解間隔最大時的w 和b:

分別對w、b 求偏導數,并令其為0:

代入拉格朗日函數,則有:

求Q(a)的最大值,得到最優a*,則最優向量w*:

選用任一支持向量,得到最優偏置量b*:

綜上,通過求解最優拉格朗日乘子,就可以得到最優超平面,完成一個二分類SVM 的構建。在樣本訓練階段,共需構建個二分類SVM。
1.2.2決策階段構建有向無環判定樹

圖1 DAG-SVM 算法示例
由上述分類決策過程可以看出DAG-SVM 算法的關鍵是控制誤差積累。因此,從根節點起,確定每個節點都為其所處層級最易分類的二分類器。

則各二分類器的訓練樣本集的均值中心Ci(i=1,2,…,n)為:

那么任意兩個分類器樣本中心的距離dij為:dij=||Ci-Cj||。考慮類分布情況,計算每個類的標準差σi:

計算任意兩個類的分離程度Sij:

其次,確定有向無環決策樹的根節點,將Sij最大的兩類作為根節點。
然后,對不同分類節點,根據分類函數的值判斷下一級所屬的分類集合,直至葉節點,最終完成樣本的多分類。
實驗使用PASCAL VOC 數據集中bird 訓練集,圖像大小為500×375,正樣本數量為330,事先對訓練樣本歸一化處理。實驗在處罰因子C=1 和C=300 的情況下,分別采用交叉驗證法和劉翔提出的寬度參數范圍預估法進行確定寬度參數的對比實驗,測試其在不同寬度參數取值的分類錯誤率。
采用交叉驗證法,在高斯核函數寬度參數σ2={0.125,0.25,0.5,1,2,4,8},C取1和300時,其分類錯誤率如圖2所示。
由圖2 可知,隨著支持向量機個數的增加,高斯核函數中寬度參數選擇對分類錯誤率的影響趨于平緩,通過訓練集和測試集交叉驗證,可以確定較為合適的寬度參數,但需要的訓練時間和寬度參數的選取標簽較難控制。

圖2 交叉驗證法選擇寬度參數的錯誤率
采用寬度參數范圍預估方法,先計算兩個支持向量之間的距離中值來明確寬度參數的范圍,再采用交叉驗證法或梯度下降法來確定最終的寬度參數取值。當C=300 時,分別對兩種切片的樣本圖像計算其距離中值={5.12,9.11},σ2={0.125,0.25,0.5,1,2,4,8},其分類錯誤率如圖3 所示。

圖3 寬度參數范圍預估方法選擇寬度參數的錯誤率
由圖3 可知,圖像樣本向量的距離中值越大,則高斯核支持向量的寬度參數越小,分類錯誤率越大。通過計算兩個支持向量集的距離中值,可以較快地確定高斯核的寬度參數。
實驗使用UCI數據集中的wine、iris、librass-movement 和segment 4 個訓練樣本。分別采用原始DAG-SVM方法和控制誤差積累的DAG-SVM 方法進行5 分類實驗,其訓練仿真實驗對比結果如表1 所示。

表1 訓練仿真實驗對比
采用原始DAG-SVM 方法和控制誤差積累的DAGSVM 方法進行5 分類的訓練時間趨勢如圖4 所示。

圖4 兩種方法進行5 分類的訓練時間變化趨勢
根據圖4 中移動平均趨勢線可知,訓練樣本集規模越大,所需的訓練時間快速增加。而采用控制積累誤差的DAG-SVM 方法的訓練時間增勢控制明顯優于原始DAG-SVM 方法,說明其在大規模樣本集上能加速分類。
實驗中采用原始DAG-SVM 方法和控制誤差積累的DAG-SVM 方法進行5 分類的分類精度變化趨勢如圖5所示。

圖5 兩種方法進行5 分類的訓練精度變化趨勢
根據圖5 中精度趨勢不難看出,當訓練樣本集的規模較小時,兩種方法的訓練精度區別不大;但當訓練樣本規模增大時,訓練精度則會產生較大的抖動,而采用控制積累誤差的DAG-SVM 方法,其訓練精度的穩定趨勢要強于原始DAG-SVM 方法,說明其在大規模樣本集上分類精度更易控制。
根據傳感網絡多源數據融合要求,結合SVM 泛化能力強,凸優化的特點,本文側重分析了非線性可分多源數據集轉化為高維線性可分空間的可行性方法和針對多分類情形如何更好地控制誤差積累,確保分類的有效性。
通過在訓練樣本集上的仿真實驗,可以得出非線性可分空間轉換為高維線性可分空間時,通過向量間距離最優策略能加速確定高斯核寬度參數。但通過兩個支持向量間寬度參數來確定向量間的距離中值,有可能因為初始參數有誤而造成寬度參數范圍確定錯誤,這將極大地增加計算代價,因此后續將重點研究如何控制初始寬度參數的確定誤差。