孔德明,陳紅杰,陳曉玉,董 瑞,王書濤
1.燕山大學(xué)電氣工程學(xué)院,河北 秦皇島 066004 2.燕山大學(xué)信息科學(xué)與工程學(xué)院,河北 秦皇島 066004
隨著海上石油運輸業(yè)的迅速發(fā)展,海運船只不斷增加,導(dǎo)致海上溢油事故頻繁發(fā)生,海洋石油污染也日益嚴重,溢油的出現(xiàn)影響著海洋環(huán)境,并間接危害著人類的健康[1]。因此,研究一種更高效的油類識別算法,對海洋環(huán)境保護以及石油的污染防治具有重要的實用價值。
目前,溢油檢測方法有色譜法、質(zhì)譜法、光譜法等[2],其中熒光光譜法以其測量靈敏度高、方法簡單、環(huán)保無污染等優(yōu)點,成為石油污染物識別的主要方法[3]。三維熒光光譜描述的是物質(zhì)的熒光強度隨激發(fā)和發(fā)射波長變化的關(guān)系,其中包含了豐富的被測物信息,但是在解析光譜時,因物質(zhì)的熒光性質(zhì)相似而出現(xiàn)光譜重疊現(xiàn)象,會給后續(xù)的分類識別造成影響,所以對光譜數(shù)據(jù)的預(yù)處理以及特征參量的提取是尤為重要的[4]。
特征提取是三維熒光光譜數(shù)據(jù)分類識別的關(guān)鍵,其主要由參量化方法以及數(shù)據(jù)降維方法來實現(xiàn)。參量化方法[5]主要通過提取三維熒光光譜的平均值、原點矩、中心距等特征參數(shù)代表原始光譜數(shù)據(jù),并將其作為分類識別的輸入數(shù)據(jù),該方法雖明確了光譜的幾何特征,但是卻忽略了光譜之間的內(nèi)在聯(lián)系,只是特征間的簡單組合;數(shù)據(jù)降維方法主要是將數(shù)據(jù)投影到低維可視空間,以便看清數(shù)據(jù)的分布,其中最具代表性的是主成分分析(PCA)算法[6],李杰等[7]提出了基于PCA的時間分辨油類熒光分類算法。但是上述方法中,用PCA進行特征提取時每一個主成分只是其原始變量的線性組合,并且在這些變量中還存在大量的冗余信息[8],會降低分類識別的準確率。
因此在PCA的基礎(chǔ)上提出了稀疏主成分分析(SPCA)算法來優(yōu)化特征提取算法,得到更有效的特征信息。本文將三維熒光光譜技術(shù)結(jié)合SPCA特征提取方法與支持向量機(SVM)算法對油類進行識別,結(jié)果表明SPCA的稀疏特性使其在特征提取時更加突出主要成分,并且能夠更好地去除熒光光譜間的冗余信息,實現(xiàn)降維的最優(yōu)化,從而為分類提供更有效的光譜數(shù)據(jù),得到更加準確的分類結(jié)果。
實驗中石油的三維熒光光譜數(shù)據(jù)由FS920熒光光譜儀采集,其中激發(fā)波長的范圍設(shè)置為260~500 nm,步長為10 nm,發(fā)射波長的范圍設(shè)置為280~520 nm,步長為5 nm。
配制所需溶液的具體步驟如下:首先取適量海水,使其與十二烷基硫酸鈉(SDS)混合配制成濃度為0.1 mol·L-1的SDS溶劑;然后用精密電子秤分別稱取柴油(Diesel oil)、航空煤油(Jet fuel)、汽油(Gasoline)、潤滑油(Lubricating oil)各0.1 g;其次,用SDS溶劑分別與四種油類配制成濃度為1 mg·mL-1純油儲備液并進行避光保存;最后,以0.1 mg·mL-1作為濃度間隔,量取四種油類儲備液并將濃度稀釋至0.1~2.0 mg·mL-1,每種油得到20個樣本,共得到80個樣本。
本實驗得到80個49×25的二維數(shù)據(jù)矩陣,記X=xkij即X=x80×49×25,其中xkij表示第k個樣本,發(fā)射波長為i,激發(fā)波長為j時所對應(yīng)的熒光強度,利用Delaunay三角形內(nèi)插值法消除熒光光譜中的散射,再將熒光光譜曲線進行平滑處理,得到如圖1所示的三維熒光光譜圖。
圖1 去除散射后的熒光光譜圖
將X經(jīng)過數(shù)據(jù)重組得到二維數(shù)據(jù)矩陣X=x80×1 225,利用Kennard-Stone算法按3∶1的比例將80個樣本分為60個訓(xùn)練樣本和20個測試樣本,即得到的訓(xùn)練樣本數(shù)據(jù)與測試樣本數(shù)據(jù)分別為X1=x60×1 225和X2=x20×1 225。對得到的訓(xùn)練集和測試集樣本數(shù)據(jù)同時進行歸一化處理,避免了因維度量綱的差距導(dǎo)致較低的數(shù)量級屬性變?yōu)?的問題,同時保留了更多的原始數(shù)據(jù)信息,為后續(xù)的分類提供了更有效的數(shù)據(jù)信息。
稀疏主成分分析(sparse principal component analysis,SPCA)是利用彈性網(wǎng)產(chǎn)生具有稀疏載荷的修正主成分,其稀疏主成分由PCA算法的線性組合問題轉(zhuǎn)化為回歸型優(yōu)化問題,其通過對回歸稀疏施加Lasso約束,得到稀疏載荷[9-10]。
SPCA算法求解過程:
(1)使A從V[: , 1:k]開始,即前k個普通主分量的載荷;
(2)給定一個固定的A=[α1, …,αk],求解以下彈性網(wǎng)問題:j=1, 2, …,k;
βj=argmin(αj-β)TXTX(αj-β)+λ‖β‖2+λ1, j‖β‖1
(3)給定一個固定的A=[α1, …,αk],計算XTXB=UDVT的奇異值,然后更新A=UVT;
(4)重復(fù)步驟(2)—(3),直至收斂;
SPCA在PCA的基礎(chǔ)上,添加了懲罰函數(shù),并且以略微犧牲貢獻率為代價獲得載荷稀疏化,從而明確了變量之間的關(guān)系,體現(xiàn)出了SPCA的優(yōu)越性,并且SPCA的稀疏性可突出主要成分,同時可以極好地去除變量間的冗余信息,為分類提供更加有效的數(shù)據(jù)基礎(chǔ),從而使評價結(jié)果更加可靠且確切。
支持向量機(support vector machine,SVM)是基于結(jié)構(gòu)風(fēng)險最小原理的監(jiān)督學(xué)習(xí)算法,其適用于小樣本、非線性及高維的數(shù)據(jù)模型,在收斂、最優(yōu)解及泛化能力等方面有著一定的優(yōu)勢[11]。
SVM既可以解決線性問題又可以解決非線性問題[12]。對于線性問題,根據(jù)分類間隔最大化的原則,來定義最大超平面和支持向量機,將線性問題轉(zhuǎn)化成凸約束條件下的凸規(guī)劃問題進行解決。針對非線性問題,基本思想是通過變換輸入變量的運算空間,將非線性內(nèi)積映射到高維的特征空間,來使非線性問題轉(zhuǎn)化成容易解決的線性問題,即將求解最優(yōu)分類面的問題轉(zhuǎn)化成求解約束優(yōu)化問題,引入松弛變量ξ和懲罰因子c,轉(zhuǎn)化成線性不可分的SVM問題,因其滿足Slater條件,通過拉格朗日對偶將其轉(zhuǎn)化為對偶問題進行求解,最后通過引入核函數(shù)將對偶問題轉(zhuǎn)化約束優(yōu)化問題,并求其最優(yōu)解。
本文所采用的核函數(shù)是徑向基(RBF)核函數(shù),它對復(fù)雜模型數(shù)據(jù)有著較好的處理能力。同時又通過網(wǎng)格搜索法選取核參數(shù)g和懲罰參數(shù)c[13],即先選定懲罰參數(shù)c和RBF核參數(shù)g的變化范圍,在此范圍內(nèi)尋找最佳的參數(shù)值,并對其進行K折交叉驗證(K-fold cross validation),此方法可遍布網(wǎng)格內(nèi)所有的參數(shù),得到全局最優(yōu)解,即交叉驗證意義下最高的分類準確率。
實驗測得80個熒光光譜樣本,可得到如表1所示的石油熒光特征參數(shù),四種石油的熒光光譜特征參數(shù)之間既存在相似性又存在差異性,根據(jù)四種石油的激發(fā)峰值波長范圍、發(fā)射峰值波長范圍以及熒光強度可知,不同類型的石油光譜間出現(xiàn)了光譜重疊現(xiàn)象;由熒光峰個數(shù)可知,只有柴油光譜有兩個峰。出現(xiàn)異同的原因可能是四種油所含熒光物質(zhì)的種類以及各類熒光物質(zhì)的比例不同[14]。
表1 四種類型石油的熒光特征參數(shù)
直接通過四種石油的熒光光譜特征參數(shù)很難對其進行鑒別分析,因此本文分別利用PCA和SPCA算法對預(yù)處理后的數(shù)據(jù)進行特征提取,兩種算法提取得到的貢獻率如圖2所示,由SPCA算法得到的前六個主成分的累計貢獻率為99.09%,貢獻率分別為78.42%,8.99%,8.54%,1.40%,0.97%和0.77%;由PCA算法得到的前六個主成分的累計貢獻率為99.18%,貢獻率分別為78.71%,9.04%,8.55%,1.39%,0.97%和0.52%。由于載荷稀疏是以損失方差貢獻率為代價,故SPCA第一主成分的貢獻率低于PCA,但兩者的累計貢獻率均超過了99%,能夠表示樣本的數(shù)據(jù)信息,為后續(xù)分類提供了強有力的數(shù)據(jù)特征信息。
圖2 前六個成分的貢獻率
3.3.1 PCA-SVM與SPCA-SVM模型
對預(yù)處理的數(shù)據(jù)分別利用PCA與SPCA算法進行提取特征后,前6個主成分的累計貢獻率分別達到99.18%和99.09%。將得到的降維數(shù)據(jù)分別輸入到SVM中進行分類,采用網(wǎng)格搜尋方法,得到最佳參數(shù)c與核參數(shù)g如表2所示,再利用最佳參數(shù)對模型進行訓(xùn)練,得到CV意義下的分類準確率,其中SVM對訓(xùn)練集分類的準確率為100%,從而為測試集的預(yù)測提供了很好的模型基礎(chǔ)。如圖3為兩種算法得到的參數(shù)選擇結(jié)果圖。
表2 SVM模型的最佳參數(shù)及準確率
圖3 SVM參數(shù)選擇結(jié)果圖
通過SVM進行分類預(yù)測后,得到的預(yù)測結(jié)果如圖4所示,PCA-SVM算法得到的預(yù)測結(jié)果中有2個樣本被錯誤分類。其中,柴油錯分為潤滑油,汽油錯分為潤滑油,分類準確率為90%。而經(jīng)過SPCA-SVM算法得到的預(yù)測結(jié)果中僅有一個樣本被錯誤分類,即汽油錯分為潤滑油,減少了柴油的錯分率,使分類準確率從PCA-SVM算法的90%提高到95%。對比兩種算法可知,SPCA-SVM算法提高了分類準確率,因為SPCA算法是將其稀疏特性與主成分結(jié)合,將主成分的系數(shù)即構(gòu)成主成分時每個變量前面的系數(shù)變得稀疏,可以在特征提取時將其非必要成分的系數(shù)進行稀疏,從而更加突出主成分的作用,同時這樣也可以減少數(shù)據(jù)間的冗余,從而使SVM在分類時更加準確,因此SPCA提取到的特征信息比PCA得到的更具有代表性。
圖4 SVM預(yù)測得到的分類結(jié)果圖
3.3.2 PCA-KNN與SPCA-KNN模型
將數(shù)據(jù)利用KNN算法進行分類,得到的預(yù)測結(jié)果如圖5所示,對于PCA-KNN而言,20個樣本中錯分了三個樣本,柴油錯分為航空煤油,汽油錯分為潤滑油,潤滑油錯分為航空煤油,PCA-KNN算法得到的分類準確率為85%。而對于SPCA-KNN而言,有兩個樣本被錯誤分類,其中,汽油錯分為潤滑油,潤滑油錯分為航空煤油,由分類結(jié)果可知,SPCA-KNN算法分類準確率高于PCA-KNN,主要是因為SPCA特征提取方法優(yōu)于PCA,同樣體現(xiàn)出了SPCA在降維中的優(yōu)勢,可為分類提供更可靠的特征信息。
圖5 KNN預(yù)測得到的分類結(jié)果圖
表3為四種分類模型預(yù)測結(jié)果。對比可知,在同類型的分類算法中,利用SPCA進行特征提取得到的分類準確率高于PCA;在相同的特征提取算法中,SVM算法的分類結(jié)果優(yōu)于KNN。結(jié)果表明:SPCA-SVM分類算法是更加高效的油類識別算法。
表3 不同算法得到的分類結(jié)果(準確率/%)
采集了四種類型石油的熒光光譜,首先利用SPCA特征提取方法進行光譜特征提取,然后利用SVM算法進行分類。研究結(jié)果表明,SPCA算法可以更好地去除油類光譜數(shù)據(jù)變量間的冗余信息,實現(xiàn)對數(shù)據(jù)的降維,為分類提供更加可靠且有效的數(shù)據(jù),對比參量化法和PCA等降維方法,SPCA得到的提取信息更具代表性,再結(jié)合高效的SVM分類算法,從而使預(yù)測結(jié)果變的更加準確,因此本文得出了一種高效且準確檢測石油的算法即SPCA-SVM算法,為后續(xù)石油污染的檢測研究提供了一個新思路。