《智能傳感器系統(tǒng)》課件第7章_第1頁
《智能傳感器系統(tǒng)》課件第7章_第2頁
《智能傳感器系統(tǒng)》課件第7章_第3頁
《智能傳感器系統(tǒng)》課件第7章_第4頁
《智能傳感器系統(tǒng)》課件第7章_第5頁
已閱讀5頁,還剩141頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第7章支持向量機技術在智能

傳感器系統(tǒng)中的應用7.1統(tǒng)計學習理論與支持向量機的基礎知識7.2支持向量機的訓練、檢驗與測量7.3基于SVM方法的三傳感器數(shù)據(jù)融合原理

7.1統(tǒng)計學習理論與支持向量機的基礎知識7.1.1統(tǒng)計學習理論

第一種是經(jīng)典的(參數(shù))統(tǒng)計估計方法?,F(xiàn)有機器學習方法共同的重要理論基礎之一是統(tǒng)計學。參數(shù)方法的基礎是傳統(tǒng)的統(tǒng)計學,在這種方法中,參數(shù)的相關形式是已知的,訓練樣本用來估計參數(shù)的值。這種方法的局限性在于,首先,它需要已知樣本的分布形式,這需要花費很大代價。其次,傳統(tǒng)統(tǒng)計學是研究樣本數(shù)目趨于無窮大時的漸近理論,即研究當樣本數(shù)量趨于無窮大時的極限特性,現(xiàn)有學習方法有很多也基于此假設。但在實際問題中,樣本數(shù)目往往是有限的,因此一些理論上很優(yōu)秀的學習方法往往在實際中的表現(xiàn)卻不盡人意。第二種方法是經(jīng)驗非線性方法,如人工神經(jīng)網(wǎng)絡(ArtificialNeuralNetwork,ANN)。這種方法利用已知樣本建立非線性模型,克服了傳統(tǒng)參數(shù)估計方法的困難。但是,這種方法存在兩個方面的問題:首先是到目前為止,缺乏一種統(tǒng)一的數(shù)學理論;其次,由于所建立系統(tǒng)

模型的性能最終決定于觀測數(shù)據(jù)(樣本)的數(shù)量與質(zhì)量,而在實際應用過程中所獲得的原始觀察數(shù)據(jù)(樣本)數(shù)量往往是有限的。而且是采樣(非連續(xù))的,通常這些采樣沒有統(tǒng)一的格式,同時由于所研究問題本身的高維本質(zhì),將會在輸入空間中僅僅形成一個稀疏分布,從而導致問題往往接近于Hadamard意義上的病態(tài),造成傳統(tǒng)神經(jīng)網(wǎng)絡方法的泛化(generalization)問題,會產(chǎn)生過擬合數(shù)據(jù)的模型。為了克服這一問題,機器學習產(chǎn)生了兩個研究方向:一是參數(shù)選擇的優(yōu)化算法;二是選擇“最優(yōu)”模型的統(tǒng)計測量方法。第三種方法是基于統(tǒng)計學習理論(StatisticalLearningTheory,SLT)的學習方法,如支持向量機和基于核的方法。與傳統(tǒng)統(tǒng)計學相比,統(tǒng)計學習理論是一種專門研究小樣本數(shù)據(jù)量情況下機器學習規(guī)律的理論。該理論針對小樣本統(tǒng)計問題建立了一套新的理論體系,在這種體系下的統(tǒng)計推理規(guī)則不僅考慮了對漸近性能的要求,而且追求在現(xiàn)有有限信息的條件下得到最優(yōu)結果。

1.學習問題的一般性表示

設F(z)為定義在空間z上的概率測度,所考慮的函數(shù)集合為Q(z,a),a=[a

1,a

2,…],a∈Λ,Λ是參數(shù)集合,學習的目標是在給定了一定數(shù)量但概率測度F(z)未知的獨立同分布數(shù)據(jù):

z1,z2,…,zl

(7-1)

的條件下,來最小化風險泛函:

(7-2)

其解記為Q(z,a0)。一個經(jīng)過訓練的機器,其測試誤差的期望為(7-3)式中,R(a)被稱為期望風險(expectedrisk),P(x,y)未知。若密度p(x,y)存在,dp(x,y)可以寫為p(x,y)dxdy。然而對于概率分布P(x,y)未知的情況,要使得期望風險最小化,就只有樣本信息可以利用,這也就導致式(7-3)定義的期望風險是無法直接計算和最小化的。經(jīng)驗風險Remp(a)的定義為在一個觀測數(shù)量有限的訓練集上的被測平均誤差率:(7-4)從式(7-4)可以看出,在經(jīng)驗風險Remp(α)的定義中沒有概率分布,當給定具體的訓練集{xi,yi}和選定的a值后,Remp(a)則為一個固定的數(shù)。用經(jīng)驗風險最小化表示期望風險最小化并沒有可靠的理論依據(jù),二者之間事實上存在著一個學習的一致性問題。式(7-3)中的量|y-f(x,a)|/2被稱為損失,對于二值分類的問題來說,它只能取0(或-1)或1兩個數(shù)。若選取某參數(shù)η,0≤η≤1,對于損失|y-f(x,a)|/2,下面的界以1-η

概率成立:(7-5)式中,h是一個非負整數(shù),稱為VapnikChervonenkis(VC)維,它表征學習機器的復雜性,h越大,學習機器的復雜性越高,能區(qū)分的類別越多,相應地,出現(xiàn)所謂的“過擬合”的可能性也越高。式(7-5)右邊被稱為“風險界”(riskbound),右邊第二項被稱為“VC置信范圍”(VCconfidence)。置信范圍反映了真實風險和經(jīng)驗風險差值的上界,即結構的復雜性所帶來的風險,它與學習機器的VC維h及訓練樣本數(shù)量l有關。

2.VC維

VC維是一個標量值,用于測量函數(shù)列的容量,其概念是建立在點集被“打散(shatter)”的概念基礎上的。一函數(shù)集的VC維是h,當且僅當存在一點列,這些點列能共以2h種方式可分,且當q>h時,沒有序列滿足這個性質(zhì)。即

VCdim(F)=max{h:N(F,h)=2h}

式中,N(F,h)定義為h維向量中不同向量的個數(shù)。圖7-1顯示平面中的三個點是如何被線性指示函數(shù)集分開的,然而四個點的情況則不能區(qū)分。對于這兩種情況,VC維與自由參數(shù)的個數(shù)相等,但是在一般情況下,VC維與自由參數(shù)的個數(shù)不等,如函數(shù)Asin(bx)只有兩個參數(shù),但有無限的VC維(Vapnik,1995)。n維空間中的線性指示函數(shù)序列其VC維等于n+1。

圖7-1VC維示意圖3.結構風險最小化

根據(jù)式(7-5),如果固定訓練樣本數(shù)目l的大小,那么控制風險R(a)的參量有兩個:Remp(a)和VC維h。其中,經(jīng)驗風險依賴于學習機器所選定的函數(shù)f(x,a),這樣就可以通過控制a來控制經(jīng)驗風險。而VC維h依賴于學習機器在學習過程中可選函數(shù)的集合。

如圖7-2所示,設函數(shù)Q(z,a),a∈Λ的集合S具有一定的結構,這個結構是由一系列嵌套的函數(shù)子集Sk=

{Q(z,a),a∈Λk}組成的,滿足:

S1

S2

Sn

其中,結構的元素滿足如下兩個性質(zhì):

每個函數(shù)集Sk的VC維hk是有限的,且有

h1≤h2≤…≤hn≤…

(結構中的任何元素Sk所包含性質(zhì))整個完全有界函數(shù)的集合滿足:

0≤Q(z,a)≤Bk,a∈Λk

或者對一定的(p,τk),函數(shù)集合滿足下列不等式:≤τk,

p>2結構風險最小化原則就是在容許結構的嵌套函數(shù)集Sk中尋找一個合適的子集S*,使結構風險達到最小,即:(7-6)由式(7-6)可知,學習風險由兩個部分組成,即經(jīng)驗風險和置信范圍。對于給定的樣本數(shù)目l,隨著VC維h的增加,經(jīng)驗風險逐漸變小,而置信范圍逐漸遞增。置信范圍與經(jīng)驗風險隨h的變化趨勢如圖7-3所示。圖7-3結構風險最小化原理圖圖7-3表明,真實風險的界是經(jīng)驗風險和置信范圍之和。隨著結構元素序號的增加,經(jīng)驗風險將減少,而置信范圍將增加。最小的真實風險的上界是在結構的某個適當?shù)脑厣先〉玫摹>C合考慮經(jīng)驗風險與置信范圍的變化,可以求得最小的風險邊界,它所對應的函數(shù)集的中間子集S*可作為具有最佳泛化能力的函數(shù)集合。

4.建模誤差

機器學習中建模的目標就是從假設模型空間中選擇一個模型,使其能夠最接近于(從一些誤差測度的角度上說)目標空間中的基礎函數(shù)(underlyingfunction)。這種做法產(chǎn)生的誤差主要源于兩個方面:逼近誤差和估計誤差。

逼近誤差的產(chǎn)生是由于假設空間小于目標空間,因此基礎函數(shù)可能會位于假設空間之外。模型空間的選擇不當將會產(chǎn)生很大的逼近誤差,這種情況被稱為模型失配。7.1.2支持向量機

統(tǒng)計學習理論建立在一套較堅實的數(shù)學理論基礎之上,并為解決有限樣本的學習問題提供了一個統(tǒng)一的框架。它能將很多現(xiàn)有方法納入其中,有望幫助解決許多原來難以解決的問題(比如神經(jīng)網(wǎng)絡結構選擇問題、局部極小點問題、過擬合問題等);同時,在這一理論基礎上還發(fā)展了一種新的通用學習方法——支持向量機(SupportVectorMachine,SVM),其已初步表現(xiàn)出很多優(yōu)于已有方法的性能,并推動著機器學習理論和技術的發(fā)展。

1.支持向量機方法的主要優(yōu)點

(1)它是專門針對有限樣本情況的,其目標是得到現(xiàn)有信息條件下的最優(yōu)解而不僅僅是樣本數(shù)趨于無窮大時的最

優(yōu)值。

(2)支持向量機的算法最終將轉(zhuǎn)化成為一個二次型尋優(yōu)問題,從理論上說,得到的將是全局最優(yōu)點,解決了在神經(jīng)網(wǎng)絡方法中無法避免的局部極值問題。(3)支持向量機的算法將實際問題通過非線性變換轉(zhuǎn)換到高維的特征空間,在高維空間中構造線性判別函數(shù)來實現(xiàn)原空間中的非線性判別,這種特殊性質(zhì)能保證機器有較好的推廣能力,同時它巧妙地解決了維數(shù)問題,使其算法復雜度與樣本維數(shù)無關。

2.支持向量機的結構

支持向量機結構如圖7-4所示。圖7-4中的變量ai(i=1,2,…,s)是拉格朗日乘子,s是乘子的數(shù)量;b為閾值或偏移量;K(x,

xi′)為一個支持向量機的核函數(shù);xi′(i=1,2,…,s)為SVM的支持向量;x為訓練樣本、檢驗樣本或?qū)崪y樣本中的某個向量;y(x)為對應x的輸出量。圖7-4支持向量機結構示意圖在支持向量機結構示意圖中,由原始的觀測數(shù)據(jù)構成支持向量機的輸入空間,通過某種關系將輸入空間的數(shù)據(jù)映射到高維的特征空間。支持向量機是通過核函數(shù)來實現(xiàn)這種映射關系的。在特征空間F中,支持向量機通過線性回歸函數(shù)

f(x)=wK(x,xi′)T+b

(7-7)

來進行數(shù)據(jù)分類或擬合。

3.支持向量機的核函數(shù)

若特征空間的內(nèi)積與輸入空間的核函數(shù)等價,即

K(x,x′)=〈j(x),j(x′)〉=〈j(x′),j(x)〉(7-8)

滿足Mercer條件,也即核函數(shù)K是一個對稱正定的函數(shù):,am≥0(7-9)>0,g∈L2(7-10)

4.核函數(shù)的種類

1)線性核(Linear)

線性核的核函數(shù)為K(x,xi)=〈x,xi〉,〈x,xi〉表示

兩向量的內(nèi)積,即K(x,xi)=SVM的輸出值y為(7-11)對于第5章所介紹的壓力傳感器,當m=3時,上式SVM的輸出值為

2)多項式核(Polynomal)多項式核的核函數(shù)為K(x,xi)=(〈x,xi〉+p2)p1,p1和p2為核函數(shù)參數(shù),調(diào)整這兩個參數(shù)可以改善支持向量機的預測準確度。SVM的輸出值y為(7-12)同理,當m=3時,由上式可以獲得壓力傳感器的SVM輸出表達式:

3)RBF核——高斯型徑向基函數(shù)(GaussianRadialBasisFunction)

RBF核的核函數(shù)為表示兩個向量x、xi取差后求模。σ為核函數(shù)參數(shù),調(diào)整σ可改善支持向量機的預測準確度。SVM的輸出值y為(7-13)同理,當m=3時,由上式可以獲得壓力傳感器的SVM輸出表達式:式中exp(a)=ea。

4)Sigmoid核(也稱為多層感知器核,MultiLayerPerception)

Sigmoid核的核函數(shù)為K(x,xi)=tanh(p1〈x,xi〉+p2),

,p1和p2為核函數(shù)參數(shù),調(diào)整這兩

個參數(shù)可以改善支持向量機的預測精度。SVM的輸出值y為(7-14)當m=3時,由式(7-14)可以獲得壓力傳感器的SVM輸出表達式:

5)張量積(TensorProduct)核其核函數(shù)的表達式為這種核函數(shù)對于多維樣條核的構建特別有用,可以通過單變量核的積的形式簡單地獲得。

5.支持向量機的種類

1)SVC

(1)線性可分情況。線性可分情況不具有一般性??紤]數(shù)據(jù)集的兩類問題:

D={(x1,y1),…,(xl,yl)},x∈Rd,y∈{-1,1}

(7-15)

如果這些數(shù)據(jù)是線性可分的,其分割超平面為

〈w,x〉+b=0(7-16)如果超平面無誤差地將矢量集分離,且距超平面最近的矢量與超平面之間的距離最大,那么就認為矢量集被超平面最優(yōu)分離。如果式(7-16)沒有泛化損失,那么它就是一個規(guī)范超平面,其中的參數(shù)w、b的約束為

(7-17)

具體可表述為:權矢量的范數(shù)等于訓練數(shù)據(jù)集中的點距超平面最近距離的倒數(shù)。圖7-5顯示距離每個超平面的最近點。圖7-5規(guī)范超平面一個形式規(guī)范的分割超平面必須滿足下面的約束:

yi[〈w,xi〉+b]≥1,i=1,2,…,l(7-18)

那么點x距離超平面(w,b)的距離d(w,

b;x)為:(7-19)最優(yōu)超平面由最大的間隔ρ(每一類之間最近點之間的距離)給定,并服從于式(7-19)的約束。間隔ρ(w,b)定義為(7-20)因此,最優(yōu)分離數(shù)據(jù)的超平面是通過最小化(7-21)得到的。因為滿足式(7-18)(它是一個分離超平面),所以b是獨立的。改變b,超平面將沿著最優(yōu)超平面的法方向移動。因此,間隔保持不變,但是超平面不再是最優(yōu)的,因為超平面距離一類比另一類更近。需要考慮的是如何最小化方程(7-21),使其等價為實現(xiàn)結構風險最小(SRM)原則(因為前提是線性可分,所以不需要考慮經(jīng)驗風險)。為此,首先假設下面的界成立:

‖w‖<A

(7-22)

那么由方程(7-19)和(7-20)有,任何數(shù)據(jù)點與超平面之間的距離都大于:d(w,b;x)≥(7-23)在n維空間中的規(guī)范超平面集的VC維是h,其界為

h≤min[R2A2,n]+1(7-24)此處,R為包圍所有數(shù)據(jù)點的超球面的半徑。因此,最小化方程(7-21)等價于最小化VC維的上界。在約束方程(7-19)的條件下,求方程(7-21)的最優(yōu)化問題的解由拉格朗日泛函的鞍點給出:(7-25)式中,a=[a1,a2,…,al]是拉格朗日乘子。拉格朗日泛函必須最小化相應的w,b,最大化相應的ai≥0(i=1,2,a,…,l)。經(jīng)典的拉格朗日泛函的對偶性可以將原始問題方程(7-25)轉(zhuǎn)換為它的對偶問題,求解就很容易了。對偶問題:(7-26)最小化拉格朗日泛函相應的w和b:(7-27a)(7-27b)因此,把方程(7-27)代入式(7-26)可得對偶問題為(7-28)問題的解為相應的約束為(7-29)(7-30)拉格朗日乘子決定于帶有約束式(7-30)的方程式(7-29),則最優(yōu)分離超平面可寫為(7-31)這里xr和xs是每一類中的任意支持向量,滿足條件:

ar,as>0,yr=-1,ys=1(7-32)

那么,硬分類器為

f(x)=sgn(〈w*,x〉+b)(7-33)

其中sgn(a)表示取符號函數(shù)。a>0時,sgn(a)=1,a<0時,sgn(a)=-1。另外,當存在線性內(nèi)插間隔的時候,會用軟分類器(7-34)軟分類器比硬分類器更合適,這是因為當在間隔內(nèi)部沒有訓練數(shù)據(jù)時,分類器能夠輸出-1到1之間的實數(shù)值。根據(jù)Kuhn-Tucker條件,

ai(yi[〈w,xi〉+b]-1)=0,i=1,…,l(7-35)

僅有滿足以下條件的點才有非零的拉格朗日乘子:

yi[〈w,xi〉+b]=1(7-36)

這些點被稱為支持向量(SupportVector,SV)。如果數(shù)據(jù)被線性分離,那么所有的SV都在間隔上,數(shù)目也會比較少。如果數(shù)據(jù)是線性可分的,那么下面的等式成立:

(7-37)因此,根據(jù)方程式(7-24),分類器的VC維的界為(7-38)(7-39)且如果訓練數(shù)據(jù)x被正則化于單位球內(nèi),則

(2)線性不可分情況。為了使得最優(yōu)可分超平面一般化,Cortes和Vapnik(1995)引入了非負變量ξi≥0和懲罰函數(shù):,常取σ=1式中,ξi是錯誤分類的量測。最優(yōu)化問題轉(zhuǎn)換為最小化分類器的VC維的同時最小化分類誤差,于是式(7-18)在不可分情況下變?yōu)?/p>

yi[wxTi+b]-1+ξi≥0,i=1,2,

…,l

(7-40)式中ξi≥0。上式在條件yi[wxTi+b]-1+ξi≥0(i=1,2,…,l)限制下的優(yōu)化問題的解由Lagrangian的鞍點給定:(7-41)式中a、β是Lagrange乘子。Lagrangian對w,b,x最小化,相對于a、β最大化。同樣地,它可以轉(zhuǎn)換為對偶問題。于是除了得到式(7-27)外,還有:(7-42)于是對偶問題變成了(7-43)其解為(7-44)約束條件為(7-45)(3)非線性SVC。在分類的實際應用中,簡單的線性分類并不能滿足實際需要,更為一般化的分類器必須

具有非線性分類能力。如本節(jié)的核函數(shù)介紹部分所述,如果把輸入空間通過非線性函數(shù)映射到更高維的特征空間,則可在特征空間用線性分類的方法實現(xiàn)輸入空間的非線性分類。因此,直接選取一個合適的核函數(shù)取代式(7-44)中的〈xi,

xj〉,然后把輸入向量通過相應的分線性變換映射到特征空間,再代入到特征空間的線性分類器即可。

2)SVR

支持向量回歸是指用支持向量的方法描述回歸問題。由于損失函數(shù)的引入,SVM也可以應用到回歸問題(Smola,1996)。修正的損失函數(shù)必須包括一個距離的測量。圖7-6給出了四個可能的損失函數(shù)。圖7-6各種損失函數(shù)圖7-6(a)的損失函數(shù)對應著傳統(tǒng)的最小二乘誤差標準。圖7-6(b)的損失函數(shù)是拉普拉斯型損失函數(shù),不如二次型的損失函數(shù)敏感。Huber提出的損失函數(shù)如圖7-6(c)所示,當數(shù)據(jù)的分布未知時,可作為具有最優(yōu)性質(zhì)的魯棒損失函數(shù)。這三個損失函數(shù)不能產(chǎn)生稀疏的支持向量。為了解決這個問題,Vapnik提出如圖7-6(d)所示的損失函數(shù)作為Huber損失函數(shù)的逼近,而且能夠獲得稀疏的支持向量集。(1)線性回歸。線性回歸是一個數(shù)據(jù)集的逼近問題。給定一列數(shù)據(jù):

D={(x1,y1),…,(xl,yl)},x∈Rd,y∈R

(7-46)

具有線性函數(shù):

f(x)=〈w,x〉+b

(7-47)

最優(yōu)化回歸函數(shù)是通過最小化以下泛函式獲得的:(7-48)式中:C為懲罰因子,是一預指定的值;ξi-和ξi+為松弛變量,分別表示約束的上界和下界。使用一個ε-不敏感損失函數(shù)(見圖7-6(d)):所求問題的解為(7-49)(7-50)或者其約束條件為(7-51)(7-52)求解帶有約束條件式(7-52)的方程式(7-51)得到拉格朗日乘子a和a

*,由方程(7-47)得到回歸方程,此處,(7-53)解滿足Karush-Kuhn-Tucker(KKT)條件:

aia*i=0,i=1,…,l(7-54)因此,支持向量是拉格朗日乘子遠大于零的點。當ε=0時,我們得到L1損失函數(shù)和簡化的最優(yōu)化問題:(7-55)約束條件為(7-56)式中βi=ai-a*i。由方程(7-47)給出的回歸函數(shù)中:(7-57二次型的損失函數(shù)如圖7-6(a)所示,有

Lquard(f(x)-y)=(f(x)-y)2

(7-58)解的確定,或者說優(yōu)化問題轉(zhuǎn)換為(7-59)式中,C為懲罰因子,ξi為松弛因子,約束條件為

yi=〈w,x〉+b+ξi,i=1,2,…,l(7-60)轉(zhuǎn)換為對偶問題得到:(7-61)使用KKT條件,相應的最優(yōu)化問題可以簡化且有β*i=|βi|,由此產(chǎn)生的最優(yōu)化問題(7-62)的約束條件為(7-63)回歸函數(shù)由方程式(7-47)和(7-57)確定。對于二次型的損失函數(shù),也可以這樣理解,對式(7-59)引入拉格朗日函數(shù):(7-64)式中ai(i=1,2,…,l)為拉格朗日乘子。分別求解式(7-64)的關于w、

ξi、b、ai的偏微分可得:(7-65)由式(7-65)消去w、ξi

則可得:求解上式可得到LS-SVM的回歸方程,得到ai和b,于是可得到回歸方程為(7-66)

(2)非線性回歸。用核函數(shù)K(x,xi)取代式(7-66)中的內(nèi)積〈x,xi〉即可得到非線性回歸(7-67)

7.2支持向量機的訓練、檢驗與測量

7.2.1訓練樣本及檢驗樣本的制備

取實驗標定獲得的樣本數(shù)據(jù)對中的一部分(N1組樣本對,約占總樣本數(shù)的1/2~2/3)作訓練樣本,剩余部分(N2組樣本對)作為檢驗樣本,N1+N2=N。訓練樣本及檢驗樣本數(shù)據(jù)的數(shù)量可能不同,但是格式相同,由SVM的輸入樣本(即支持向量機的輸入向量)和期望輸出樣本(即期望輸出向量)組成,格式為{[xi1,xi2,…,xim],yi}。7.2.2支持向量機的訓練

按照以下步驟對支持向量機進行訓練:

(1)輸入訓練樣本:將全部訓練樣本的輸入向量[xi1,xi2,…,xim](i=1,2,…,N1)作為支持向量xi,y=[Pi′](i=1,2,…,N1)作為期望輸出向量y,一次并行輸入支持向量機,并將全部檢驗樣本的輸入向量[xi1,

xi2,…,xim](i=1,2,…,N2)作為特征空間向量x依次串行輸入支持向量機。

(2)設置SVM學習參數(shù)及核函數(shù)參數(shù)。

(3)SVM訓練:基于訓練樣本及真實風險最小化原則,求出SVM結構參數(shù)(權系數(shù)a1,a2,…,as和偏移量b),使輸出向量y(x)與訓練樣本中的期望輸出向量y的偏差最小,從而表明支持向量機的訓練結束,訓練好的支持向量機能否用于實測還需要進行檢驗。7.2.3支持向量機的檢驗

通過對支持向量機的檢驗,確定代表支持向量機結構的權系數(shù)a1,a2,…,as和偏移量b,根據(jù)所選的核函數(shù),并帶入相應的SVM輸出表達式(公式(7-12)~公式(7-15)或其它式)中,就可以獲得降低或消除壓力傳感器交叉敏感的回歸模型,得到準確的智能壓力傳感器系統(tǒng)的輸入輸出關系。7.2.4測量

將被測量樣本[xi1,xi2,…,xim](既不是訓練用的樣本也不是檢驗用的樣本)輸入相應的已經(jīng)訓練好的回歸模型——SVM的輸出表達式中,就可以由輸出結果獲得準確的待測量。7.2.5移植

將已經(jīng)訓練完畢且檢驗合格可以實現(xiàn)某種智能化功能

的支持向量機結構,即已知權系數(shù)a1,a2,…,as和偏移量b的回歸模型——SVM的輸出表達式,移植到另一個硬件環(huán)境(如單片機、DSP或測量用的計算機)或已知的另一個軟件環(huán)境中,也就是訓練檢驗與測量是在不同的編程語言環(huán)境(如C語言、LabVIEW、Matlab)中進行的。7.3基于SVM方法的三傳感器數(shù)據(jù)融合原理

7.3.1三傳感器數(shù)據(jù)融合的智能傳感器系統(tǒng)的組成

采用SVM技術進行三傳感器數(shù)據(jù)融合的智能傳感器系統(tǒng)由傳感器模塊和支持向量機模塊兩部分組成,如圖7-7

所示。圖7-7采用SVM進行三傳感器數(shù)據(jù)融合的智能壓力傳感器系統(tǒng)框圖

1.傳感器模塊

如圖7-7所示,傳感器模塊輸出三個電壓信號,其中UP為被測壓力P(目標參量)的電壓輸出信號,UI、UT為兩個非目標參量的檢測電壓信號。傳感器模塊的檢測電路如圖7-8所示。圖7-8傳感器電路原理圖(1)壓力傳感器:實驗采用CYJ-201型壓阻式壓力傳感器,其輸出電壓UP對應被測壓力P(目標參量)。該傳感器包含4個壓敏電阻,這4個電阻封裝在一起,其中R1和R4完全一樣,其電阻隨著壓力的增大而增大,R2和R3完全一樣,其電阻隨著壓力的增大而減小。一個理想的壓力傳感器,其輸出電壓UP應為輸入壓力P的一元單值函數(shù),即UP=f(P),其反函數(shù)為P=f-1(UP)。而在實際應用中,該傳感器受工作溫度T和電源供電電流I的影響,其輸出電壓UP也將發(fā)生變化,實際上是一個三元函數(shù),即UP=f(P,I,T)。(2)溫度傳感器:溫度傳感器將工作溫度T轉(zhuǎn)換為

電壓信號UT。由于圖7-8中的4個電阻的溫度特性是一樣的,都是隨著溫度的升高而電阻增大,因此,采用恒流源供電的壓阻式壓力傳感器,其供電端(AC兩端)電壓UAC即為UT。

(3)電流傳感器:電流傳感器將電流信號I轉(zhuǎn)換為電壓信號UI,如圖7-8所示。采用標準恒定電阻RN與壓力傳感器相串聯(lián),RN兩端電壓為UI=IRN。

2.支持向量機模塊

支持向量機(SVM)模塊是由軟件編程實現(xiàn)的一種算法。在本實驗中,網(wǎng)絡的三個輸入量x1、x2、x3分別對應著UP、UI、UT,輸出量為P′。P′亦是智能壓力傳感器系統(tǒng)的總輸出量。通過壓力傳感器的多維標定實驗獲得n組樣本{(UPi,UIi,…,UTi),Pi′}(i=1,2,…,n),記為n個樣本點:{xi,yi},(xi∈Rm,yi∈R,m=3),xi代表輸入向量(UPi,UIi,…,UTi);m代表輸入向量的維數(shù),對于本實驗的問

題而言,m=3;yi代表期望輸出標量Pi′?;赟VM進行數(shù)據(jù)融合的目的是來擬合輸入x與輸出y之間的關系:(7-68)式中:xi′(i=1,2,…,s)是支持向量;s為支持向量的數(shù)量;x是被測輸入向量;b是SVM閾值或偏移量;w是SVM的權值系數(shù),其數(shù)量與支持向量數(shù)量相同,即w=[w1,w2,…,wi,…,wn];ai是與SVM的權值系數(shù)相對應的拉格朗日乘子;K(x,xi)為SVM的核函數(shù)。7.3.2[示例7-1]降低兩個干擾量影響的SVM

智能化軟件模塊的設計

1.樣本的制作

文件類型的學習(訓練)樣本和測試(檢驗)樣本,包含訓練樣本的輸入樣本文件pressure_train_in.txt和期望輸出樣本文件pressure_train_out.txt,檢驗樣本的輸入樣本文件pressure_test_in.txt和期望輸出樣本文件ressure_test_out.txt,一共四個.txt文件。

2.用于消除交叉敏感的支持向量機Matlab源程序

程序如下:

%程序開始前,清屏,清其它變量

clc;clear;closeall;

%輸入原始數(shù)據(jù),每一列為一個變量,行數(shù)為樣本的個數(shù)。原始標定數(shù)據(jù)的輸入,可以將數(shù)據(jù)直接輸入至程序中,也可以將數(shù)據(jù)先輸入至文件,然后在程序中讀入數(shù)據(jù)文件。數(shù)據(jù)中的P、Ut、Ui、

Up均為n×1維列向量,n為標定數(shù)據(jù)點的個數(shù)

aw_data=[PUtUiUp];%學習(訓練)樣本輸入data_test=[P_testUt_testUi_testUp_test];

%測試(檢驗)樣本輸入

%根據(jù)原始數(shù)據(jù)制作學習(訓練)樣本與測試樣本,

學習(訓練)樣本與測試樣本的數(shù)據(jù)格式相同

P=raw_data(:,1);Ui=raw_data(:,2);

Ut=raw_data(:,3);Up=raw_data(:,4);

P_test=data_test(:,1);Ui=data_test(:,2);

Ut=data_test(:,3);Up=data_test(:,4);

P1=[UpUiUt]′;%學習(訓練)樣本輸入向量

T1=P′;%學習(訓練)樣本期望輸出向量

P2=[Up_testUi_testUt_test]′;%測試(檢驗)樣本輸入向量

T2=P_test′;%測試(檢驗)樣本輸出向量

%將輸入數(shù)據(jù)進行歸一化處理

%[PN1,minp,maxp,TN1,mint,maxt]

=premnmx(P1,T1);

%PN2=tramnmx(P2,minp,maxp);

%TN2=tramnmx(T2,mint,maxt);

%如果對數(shù)據(jù)不進行歸一化處理,選下面的程序

PN1=P1;TN1=T1;PN2=P2;TN2=T2;

%支持向量機的學習參數(shù)以及核函數(shù)的選擇

C=500;

lambda=1e-10;

epsilon=1e-6;

%kerneloption=0.115;

%對輸入數(shù)據(jù)進行歸一化處理所采用的值

kerneloption=0.338;

%對輸入數(shù)據(jù)未進行歸一化處理所采用的值

kernel=′gaussian′;%高斯型的RBF核

verbose=1;

%函數(shù)svmreg()為支持向量機的學習函數(shù)

%輸出確定輸入空間的支持向量xsup和ysup以及支持向量機的權系數(shù)w和偏移量w0

[xsup,ysup,w,w0]=svmreg(PN1′,TN1′,

C,epsilon,kernel,kerneloption,lambda,verbose);

%函數(shù)svmval()為支持向量機的檢驗函數(shù)

%ypred1為學習樣本的支持向量預測輸出,ypred2為測試樣本的支持向量預測輸出

ypred1=svmval(PN1′,xsup,w,w0,kernel,kerneloption);

ypred2=svmval(PN2′,xsup,w,w0,kernel,kerneloption);

disp(′學習樣本的壓力標定值見P后的數(shù)據(jù):′);

P

disp(′學習樣本經(jīng)SVR后的輸出值見Y1后的數(shù)據(jù):′);

Y1=postmnmx(ypred1,mint,maxt)%若程序開始時對數(shù)據(jù)進行歸一化處理,選擇該語句

Y1=ypred1%如果程序開始時對數(shù)據(jù)沒有進行歸一化處理,選擇該語句

delta1=Y1-P

disp(′學習樣本經(jīng)SVR后的輸出值與其壓力標定值之間的最大、最小偏差:′);

max(delta1)

min(delta1)

MSE1=mean(delta1.^2)%訓練均方誤差

MSETD1=std(delta1.^2)

disp(′測試樣本的壓力標定值見P_test后的數(shù)據(jù):′);

P_test

disp(′測試樣本經(jīng)SVR后的輸出值見Y2后的數(shù)據(jù):′);

%Y2=postmnmx(ypred2,mint,maxt)S

%若程序開始時對數(shù)據(jù)進行歸一化處理,選擇該語句Y2=ypred2%如果程序開始時對數(shù)據(jù)沒有進行歸一化處理,選擇該語句

disp(′測試樣本經(jīng)SVR后的輸出值與其壓力標定值之間的最大、最小偏差:′);

delta2=Y2-P_test

max(delta2)

min(delta2)

MSE2=mean(delta2.^2)%測試均方誤差

MSETD2=std(delta2.^2)

3.程序說明

(1)數(shù)據(jù)預處理:如果有些支持向量機對所處理數(shù)據(jù)的范圍有要求,如數(shù)據(jù)必須在區(qū)間[-1,1]內(nèi),那么就需要對原始數(shù)據(jù)進行歸一化處理。對于本書提供的程序,可以進行歸一化處理,也可不進行歸一化處理,具體見程序中的說明。(2)支持向量機的參數(shù):C為拉格朗日乘子的界,

λ為QP(二次規(guī)劃)方法的條件參數(shù),ε為所求解周圍的ε鄰域(也稱試管)和kerneloption,對RBF核函數(shù)來說,kerneloption相當于參數(shù)σ(見式7-6)。(3)參數(shù)調(diào)整對輸出結果的影響:上述的這些核參數(shù)除了kerneloption對輸出結果有顯著的影響外,其它幾個參數(shù)C、λ和ε對結果輸出影響不大,其中ε決定輸出結果的準確度,一般小于10-6即可。參數(shù)kerneloption的數(shù)值需要進行反復試驗,從而找到合適的支持向量機結

構參數(shù)w和b,使輸出結果最佳(一般為測試樣本的最大輸出值和最小輸出值的絕對值和最小)。

(4)對輸入樣本(學習樣本和測試樣本)是否作歸一化處理,使輸出結果最佳的參數(shù)kerneloption的最優(yōu)值一般不一樣,這在實驗中需要注意。(5)程序中的SVM的相關函數(shù)的編寫以及后面的程序所用到的支持向量機核函數(shù),具體可以參考法國學者AlainRakotomamonjy編寫的SVMandKernelMethodsMatlabToolbox,網(wǎng)址為http://asi.insarouen.fr/enseignants/~

arakotom/toolbox/index.html,以及核機器學習網(wǎng)站http://www.kernel/,這里就不提供相應函數(shù)的源程序了。

4.SVM融合輸出結果

用于消除三傳感器交叉敏感SVM的核函數(shù),本實驗

選用Gaussian型RBF核函數(shù)。支持向量機實現(xiàn)的程序環(huán)境為Matlab2007b。程序中的SVM學習函數(shù)為svmreg(),SVM的仿真測試函數(shù)為svmval()。C為拉格朗日乘子的界,程序中C=500;λ為QP方法的條件參數(shù),程序中l(wèi)ambda=1e-10;ε為所求解附近的ε鄰域,程序epsilon=1e-7;kerneloption為核參數(shù),程序中kerneloption=0.338。程序中對輸入樣本未進行歸一化處理。采用Gaussian型RBF核函數(shù)的SVM輸出結果:學習樣本經(jīng)SVR后的輸出值與其壓力標定值之間最大偏差的絕對值為2.5111e-007,均方誤差為MSE1=2.5024e-010,均方誤差的標準差MSETD1=3.9722e-009。由上面數(shù)據(jù)可見,在一定誤差許可的條件下,采用Gaussian型RBF核函數(shù)的SVM,對學習樣本的輸出已經(jīng)極大地消除了交叉敏感的影響。檢驗樣本經(jīng)SVR后的輸出值與其壓力標定值之間的最大偏差的絕對值為0.0041,均方誤差為MSE2=6.0730e-007,均方誤差的標準差為MSETD2=2.4253e-006。檢驗樣本的輸出值(部分)見表7-1所示。同樣,如果kerneloption的數(shù)值選擇不好,比如在程序中令kerneloption=10,其它參數(shù)保持不變,則輸出結果學習樣本經(jīng)SVR后的輸出值與其壓力標定值之間的最大偏差絕對值為0.0277,均方誤差MSE1=4.3901e-005,MSETD1=1.0083e-004。檢驗樣本的輸出值與對應的壓力標定值之間的最大偏差絕對值為0.016,均方誤差MSE2=3.1914e-005,MSETD2=5.962e-004。檢驗樣本部分輸出值見表

7-2。對比表7-1和表7-2的數(shù)據(jù)可明顯看出,雖然選取σ=10(即程序中參數(shù)kerneloption=10)也可以對數(shù)據(jù)進行融合,但是融合的結果明顯比選σ=0.338時的輸出結果差很多。因此,需要對這些參數(shù)進行仔細的選擇、調(diào)試,最后選取最優(yōu)的結果。

5.融合后效果評價

(1)當取σ=0.338時,SVM輸出效果評價。

在ΔT=39℃,ΔI=5mA變化范圍內(nèi),零點計算值的最大偏差|ΔP0m′|=0.0041MPa;滿量程壓力PFS=0.5MPa,其計算值的最大偏差量|ΔPm′|=0.0009MPa,則有:

(2)當取σ=10時,SVM的效果評價。同樣,在ΔT=39℃,ΔI=5mA變化范圍內(nèi),零點計算值的最大偏差|ΔP0m′|=0.016MPa;滿量程壓力PFS=0.5MPa,其計算值的最大偏差量|ΔPm′|=0.0118MPa,則有:

(3)融合效果比較。需要說明的是,在使用Gaussian型RBF核函數(shù)的SVM過程中,其核函數(shù)的參數(shù)kerneloption的數(shù)值需要進行反復試驗,從而找到合適的支持向量機結構

w和b,使得輸出結果最佳。

融合前的計算值同第5章[示例5-1],融合效果比較見表7-3。

6.移植

先在PC計算機上訓練支持向量SVM,然后再將訓練合格的支持向量SVM的結構參數(shù)、權系數(shù)w、偏置b、RBF核函數(shù)的σ直接固化到單片機或者DSP中,這樣在單片機或者DSP中只需進行式(7-8)所示簡單的乘法、加法、指數(shù)和矩陣乘法等運算,即可在現(xiàn)場完成傳感器數(shù)據(jù)融合輸出。

采用Gaussian型RBF核函數(shù)的SVM,經(jīng)過學習樣本訓練后的權系數(shù)和偏置詳見表7-4。移植用的Matlab程序(部分):

%程序開始

%初始化

xsup=[UpUiUt];%xsup為支持向量,本實驗中,支持向量和學習輸入樣本相同

x=[Up_measUi_measUt_meas];%x為待融合數(shù)據(jù),即傳感器現(xiàn)場測量的數(shù)據(jù)

kerneloption=0.338;%kerneloption是指Gaussian型RBF函數(shù)中的sigma,帶寬[n1n2]=size(x);%計算待融合數(shù)據(jù)的尺寸,n1為待融合數(shù)據(jù)的組數(shù),n2為待融合

%數(shù)據(jù)中所包含變量的個數(shù),這里的n2應該為3,(UP,UI,UT)%三個變量

[nn3]=size(xsup);%計算支持向量的尺寸,n為支持向量的個數(shù),n3為支持向量中所包含變量的個數(shù),這里的n3亦為3,也是(UP,UI,UT)三個變量。

%下面的程序為求取RBF函數(shù)中的指數(shù)

ps=zeros(n1,n);

kerneloption=ones(1,n2)*kerneloption;

metric=diag(1./kerneloption.^2);

ps=x*metric*xsup′;

[nps,pps]=size(ps);

normx=sum(x.^2*metric,2);

normxsup=sum(xsup.^2*metric,2);

ps=-2*ps+repmat(normx,1,pps)+repmat(normxsup′,

nps,1);%ps為RBF函數(shù)的指數(shù)值

K=exp(-ps/2);%得到RBF函數(shù)的具體數(shù)值

w=′訓練RBF核支持向量機得到的權系數(shù)的計算值′

b=0.2383;%支持向量機的偏置

y=K*w+b;%根據(jù)公式得到融合后的計算值

程序結束

說明:

(1)根據(jù)SVM訓練的結果,在程序中輸入支持向量xsup,在本程序中,支持向量就是學習樣本的輸入向量,即xsup=[UpUiUt],但是在其它的SVM中則不一定,請讀者注意。

(2)輸入待融合向量x,即傳感器現(xiàn)場實際測量的值,x=[Up_measUi_measUt_meas];(3)根據(jù)RBF核函數(shù)求取核函數(shù)矩陣的數(shù)值。式中x=x,即待融合向量;x′=xsup,為支持向量;σ=kerneloption,即RBF的帶寬。(4)根據(jù)支持向量機訓練得到的權系數(shù)矩陣w、偏置b和公式y(tǒng)=wx+b,求取融合后的數(shù)值。7.3.3[示例7-2]使用SVC(支持向量分類)對

兩組分混合氣體進行定性識別

SO2與NO2兩種氣體的譜線在其紅外吸收區(qū)域存在交叉現(xiàn)象,即測量這兩種氣體的紅外傳感器存在交叉敏感。這種現(xiàn)象在實驗標定數(shù)據(jù)中表現(xiàn)為當SO2濃度不變而NO2濃

度變化時,不僅NO2紅外傳感器的輸出電壓發(fā)生變化,SO2紅外傳感器的輸出電壓也發(fā)生變化。氣體傳感器的交叉敏感會給氣體種類識別結果帶來誤差。氣體的定性識別,就是判定氣體的有無。當氣體的濃度小于規(guī)定的分辨率時,就認為這種氣體不存在;當氣體濃度大于規(guī)定的分辨率時,就認為這種氣體存在。當然,氣體傳感器的分辨率應該滿足所需分辨率的要求。本實驗中,在標定時設定了每種氣體濃度的閾值,當氣體濃度小于該閾值時,就認為沒有該種氣體,反之則認為存在該種氣體。

1.實驗標定

利用紅外氣體傳感器對SO2與NO2兩組分混合氣體進行實驗標定,獲得實驗標定數(shù)據(jù),即不同氣體濃度條件下測定兩種傳感器輸出電壓USO2與UNO2。

2.SVC的訓練與檢驗樣本的制備

根據(jù)實驗標定的數(shù)據(jù),制備SO2(氣體1)與NO2(氣體2)兩組分混合氣體模式識別樣本,訓練樣本與檢驗樣本格式一致。每種氣體的有無是根據(jù)標定時該種氣體的濃度閾值確定的。對于SO2和NO2氣體來說,我們分別設定其閾值濃度為30ppm和5ppm,當被測氣體濃度小于該閾值時認為沒有這些氣體存在;當其濃度分別大于其濃度閾值時,則認為存在該種氣體。

詳細的訓練樣本數(shù)據(jù)見表7-5,檢驗樣本的數(shù)據(jù)見表7-6。從上面兩個表格中的數(shù)據(jù)可以看出,兩組分混合氣體有四種模式(氣體1和2都沒有、有氣體1和沒有氣體2、沒有氣體1和有氣體2、氣體1和2都有),即

(1)模式1:j(SO2)<30ppm,j(NO2)<5ppm,即SO2和NO2都沒有,輸出結果為(-1,-1);

(2)模式2:j(SO2)<30ppm,j(NO2)≥5ppm,即沒有SO2和只有NO2,輸出結果為(-1,1);(3)模式3:j(SO2)≥30ppm,j(NO2)<5ppm,即只有SO2和沒有NO2,輸出結果為(1,-1);

(4)模式4:j(SO2)≥30ppm,j(NO2)≥5ppm,即SO2和NO2都有,輸出結果為(1,1)。

根據(jù)上述四種模式的輸出結果(O1,

O2),可以將兩組分混合氣體的四種模式編成四類,見表7-7。由上面的敘述可以看出,這是一個多類問題。目前用支持向量機處理多類問題主要采用兩種策略,一種是“一對一(oneagaistone,1A1)”,另一種是“一對多(oneagaistall,1AA)”。這兩種策略都采用“一個機器”的方法,即通過求解單個最優(yōu)化問題來構建一個多類的SVC,采用的都是“分劃和獲勝”方法,將一個多類問題分解為幾個二值子問題,并為

每個子問題構建一個標準的SVC。二者不同的是,1AA方法是為每一類構建一個SVC,從所有其它類的樣本中訓練區(qū)分屬于一個單類的樣本。1A1方法是為每個“類對”構建一個SVC。對于N類的問題,1A1的方法共要產(chǎn)生N(N-1)/2個分類器。

3.SVC結構的確定

將訓練樣本和檢驗樣本分別輸入SVC中,當SVC訓練完畢并且檢驗結果的誤差滿足實測要求時,表明SVC可用來實測;反之,則要調(diào)整SVC核函數(shù)參數(shù),重新確定SVC結構。當SVC結構確定之后,表明SVC的乘子及偏移量已經(jīng)確定,即用于模式識別的回歸模型已經(jīng)確定。

4.兩組分混合氣體四種模式的識別

將SO2與NO2兩種紅外氣體傳感器的實測輸出電壓代入已經(jīng)確定的回歸模型,即可獲得被測兩組分混合氣體成分的模式。

使用多類SVC進行氣體識別的流程圖如圖7-9所示。圖7-9使用多類SVC進行氣體識別流程圖用于兩種混合氣體定性識別的支持向量機Matlab源程序有以下兩個。

程序1采用oneagainstone策略的多類SVC源程序:

%SVMMultiClassification,支持向量機的多類識別

%oneagainstonestrategy

%程序初始化

clc;closeall;clearall;

%-----------TrainingDataSet

-----------

%輸入訓練數(shù)據(jù)

%紅外氣體傳感器的輸出電壓,單位為mV,前面為SO2,后面為NO2。S_output作為訓練輸入樣本

S_output=[0.000.00;0.594.52;0.947.25;1.5712.09;2.1116.22;2.5719.74;2.8622.03;…];

%前面數(shù)值表示SO2氣體的識別情況,以30ppm為界,-1表示沒有該種氣體,1表示有該種氣體;

后面數(shù)值表示NO2氣體的識別情況,以5ppm為界,

-1表示沒有該種氣體,1表示有該種氣體

%上述氣體的分類情況:根據(jù)分類規(guī)則,共可分為4類,分別用(-1,-1),(-1,1),(1,-1),(1,1)表示,(-1,-1)表示SO2和NO2都沒有,為種類1;(-1,1)表示SO2無,NO2有,為種類2;

%(1,-1)表示SO2有,NO2無,為種類3;(1,1)表示SO2和NO2都有,為種類4

G_con=[-1 -1;-1-1;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論