姜 雯,吳 陳
(江蘇科技大學 計算機學院,鎮(zhèn)江 212100)
遙感影像分類是遙感應用的基礎,而影響分類精度的關鍵在于選擇合適的分類方法.支持向量機在小樣本、非線性以及高維度的數(shù)據(jù)分類中具有顯著優(yōu)勢,因此適用于復雜的遙感影像分類[1-3].在支持向量機模型中,懲罰因子C和核參數(shù)γ是影響分類結(jié)果的主要因素[4].人工智能算法[5-7]為啟發(fā)式算法,即不用去遍歷解空間里的所有位置,就可以尋找到問題的最優(yōu)解,從而能夠高效地尋找到最優(yōu)的支持向量機(support vector machine,SVM)參數(shù).文中采用粒子群算法(particle swarm optimization,PSO)來優(yōu)化SVM參數(shù),提高SVM的分類性能.粒子群算法是一種基于種群的全局優(yōu)化方法,具有算法簡單,易于實現(xiàn)以及收斂速度快的優(yōu)點,但在演化過程中很容易過早收斂并陷入局部最優(yōu),因此很多學者提出對粒子群算法進行優(yōu)化[8-11].傳統(tǒng)的粒子群算法在優(yōu)化支持向量機時存在著易陷入局部最優(yōu),分類精度低以及早熟收斂的缺點,文中從兩個方面對粒子群算法進行優(yōu)化:一方面,采用自適應權重代替?zhèn)鹘y(tǒng)的慣性權重來平衡粒子的全局和局部搜索能力;另一方面,引入模擬退火算法對粒子群算法進行優(yōu)化,使得粒子以一定概率接受較差的解,從而跳出局部最優(yōu)解,達到全局最優(yōu).文中利用改進后的粒子群算法找到最優(yōu)SVM參數(shù),并將其運用到遙感領域,提高遙感影像的分類精度.
支持向量機的原理是建立一個最優(yōu)分類超平面,并使其在正確分開不同類別的樣本的同時,還能分類間隔最大化.當樣本線性不可分時,可以利用非線性映射,將低維空間的數(shù)據(jù)映射到高維特征空間,使得樣本在高維特征空間中線性可分,即找到非線性變換:
φ:x∈Rn→φ(x)∈Rmm>p
(1)
假設訓練樣本集為:
D={(x1,y1),(x2,y2),…,(xl,yl)}
yi∈{+1,-1}i=1,2,…,l
可求得最優(yōu)分類超平面為:
s.tyi(wTφ(xi)+b)≥1-ξi
ξi≥0,i=1,2,…,l
(2)
式中:w為超平面法向量;ξi為松弛因子;C為懲罰因子;xi為第i個樣本的特征;yi為類別標簽;φ(xi)為映射函數(shù).
將數(shù)據(jù)映射到高維特征空間,可解決優(yōu)化問題:
(3)
由于特征空間的維度較高,為了避免“維度災難”,引入核函數(shù)[12]:
K(Xi,Xj)=(φ(Xi)·φ(Xj))
(4)
將原優(yōu)化問題轉(zhuǎn)換為:
(5)
式(5)的最優(yōu)化函數(shù)為:
式中:αi為Lagrange乘子;文中采用高斯核函數(shù)[12]作為SVM模型中的核函數(shù),其數(shù)學形式為:
K(xi,xj)=exp(-γ‖xi-xj‖2)
(6)
式中:γ為核參數(shù).
粒子群算法是由Eberhart和Kennedy在1995年提出的一種群智能優(yōu)化算法[13],假設所求解問題的空間是d維,種群大小為m,種群中的每個粒子代表一個可行解,則第i個粒子的位置和速度分別為Xi=(xi1,xi2,…,xid)和Vi=(vi1,vi2,…,vid).記第i個粒子經(jīng)過的最好位置為pbest=(ppbest,1,ppbest,2,…,ppbest,d),整個種群經(jīng)過的最優(yōu)位置為gbest=(pgbest,1,pgbest,2,…,pgbest,d).在迭代過程中,粒子可通過個體極值pbest和群體極值gbest來更新速度和位置,即:
(7)
(8)
式中:w為慣性權重;c1,c2為學習因子,為常數(shù);r1,r2為[0,1]區(qū)間內(nèi)的隨機數(shù);k為進化的代數(shù),1≤i≤m,1≤j≤d.
慣性權重w的大小影響粒子群算法在求解過程中的搜索能力.若w較大,則有利于提高粒子的全局最優(yōu)能力,使得算法跳出局部最優(yōu)點;若w較小,則會提高粒子的局部最優(yōu)能力,使得算法趨于收斂.文中采用自適應權重[14-15]來取代慣性權重,從而平衡粒子的全局和局部最優(yōu)能力:
(9)
式中:wmax為權重的最大值,wmin為權重的最小值,通常取wmax=0.9,wmin=0.4;fi為第i個粒子的適應度值,favg為種群平均適應度值,fg為種群最優(yōu)適應度值.
將每個粒子的位置變量設定為二維,分別對應SVM的懲罰因子C和核參數(shù)γ,用粒子的適應度值來評價粒子所處位置的好壞程度.利用臺灣林智仁教授開發(fā)的LIBSVM工具箱里的svmtrain函數(shù)來計算各個粒子的適應度值.具體計算:
model=svmtrain(train-label,train,cmd)
cmd=[′-v′,num2str(v),′-c′,num2str(x(i,1)),
′-g′,num2str(x(i,2))]
f(i)=model
式中:v為交叉驗證數(shù);c為懲罰因子C;g為核參數(shù)γ;f(i)為第i個粒子在當前位置的適應度值,算法中用fi表記;train-label為訓練數(shù)據(jù)集標簽;train為訓練數(shù)據(jù)集;model為訓練得到的支持向量機模型,是一個結(jié)構體,但是如果參數(shù)配置cmd中用到-v,得到的就不是結(jié)構體了,而是交叉驗證下的平均分類準確率,即粒子的適應度值.
文中將數(shù)據(jù)集按照一定的比例劃分為訓練集和測試集,利用LIBSVM工具箱在訓練集中使用三折交叉驗證,獲得最高分類準確率SVM參數(shù)組合,并將最優(yōu)參數(shù)組合的SVM模型對測試集進行預測,最終得到測試集的分類準確率.
自適應權重優(yōu)化粒子群(WPSO-SVM)算法步驟如下:
步驟1 初始化PSO的相關參數(shù).在一定范圍內(nèi)隨機生成粒子的初始位置,每個粒子的初始位置的兩個分量分別為x(i,1)和x(i,2).其中,x(i,1)的范圍為(Cmin,Cmax),x(i,2)的范圍為(γmin,γmax).
步驟2 計算粒子的適應度值.將每個粒子的位置分量x(i,1)和x(i,2)代入適應度函數(shù)中得到適應度值.
步驟3 根據(jù)粒子初始適應度值,可得到粒子的個體極值pbest和群體極值gbest.
步驟4 根據(jù)式(9)更新權重;根據(jù)式(7)和式(8)更新粒子的速度和位置.
步驟5 計算粒子當前適應度值,更新粒子個體極值pbest和群體極值gbest.
步驟6 判斷是否達到最大迭代次數(shù),若滿足則轉(zhuǎn)至步驟7,否則轉(zhuǎn)至步驟2.
步驟7 輸出種群最優(yōu)位置(對應SVM的懲罰因子C和核參數(shù)γ).
步驟8 輸入最佳參數(shù),進行分類.
模擬退火(simulated annealing,SA)算法[16]在搜索過程中不僅接受比當前解更好的解,也會以一定的概率接受較差解.SA算法在搜索過程中具有一定突跳概率[17],可跳出局部最優(yōu)解,最終達到全局最優(yōu).文中采用帶壓縮因子的PSO算法來選取合適的參數(shù),確保PSO算法能夠有效收斂.粒子的速度和位置可更新為:
(10)
(11)
式中:壓縮因子
(12)
為了提高PSO算法全局最優(yōu)的能力,在所有pi中選取一個位置,來替代公式中的gbest.文中采用輪盤賭策略來確定pi,則粒子的速度公式可更新為:
(13)
式中:g′best為選中的粒子.
由于選取的粒子g′best是比gbest差的一個特殊解,因此要選取性能較好的粒子來進行替代gbest.可計算在溫度t時,pi相對于gbest的突跳概率為:
(14)
式中:N為種群大小,f為適應度值.
SAPSO算法步驟如下:
步驟1 初始化PSO相關參數(shù)(參數(shù)設置同WPSO-SVM算法),設置初始溫度.
步驟2 計算粒子的適應度值(方法同WPSO-SVM算法, 即2.2節(jié)中算法步驟2).
步驟3 根據(jù)粒子的初始適應度值,可得到粒子的個體極值pbest和群體極值gbest.
步驟4 根據(jù)輪盤賭策略,確定gbest的替代值g′best,根據(jù)式(13)和式(11)更新粒子的速度和位置.
步驟5 計算粒子當前適應度值,更新粒子的個體極值pbest和群體極值gbest.
步驟6 進行退火操作.
步驟7 判斷是否達到最大迭代次數(shù),若滿足則轉(zhuǎn)至步驟8,否則轉(zhuǎn)至步驟2.
步驟8 輸出種群最優(yōu)解(對應SVM的懲罰因子C和核參數(shù)γ).
步驟9 輸入最佳參數(shù),進行分類.
文中采用UCI數(shù)據(jù)庫中的Seeds和Wine數(shù)據(jù)集對改進的算法進行驗證分析.Seeds數(shù)據(jù)集共有3個類別,210個樣本.將Seeds數(shù)據(jù)集的每個類別隨機抽取40組數(shù)據(jù)作為訓練集,剩余的90個樣本數(shù)據(jù)作為測試集.Wine 數(shù)據(jù)集共有3個類別,178個樣本.將Wine 數(shù)據(jù)集的178個樣本按照一定比例隨機抽取108個訓練樣本和70個測試樣本.
分別用PSO-SVM算法和改進的WPSO-SVM及SAPSO-SVM算法進行MATLAB仿真實驗.表1和表2分別記錄了測試集中每個類別的錯分數(shù)目(1、2、3)、總錯分數(shù)目(總)、算法在訓練集上的交叉驗證的準確率(CV)以及算法在測試集上的分類精度.結(jié)果表明,改進的WPSO-SVM和SAPSO-SVM算法分類精度均優(yōu)于PSO-SVM,其中WPSO-SVM的分類精度最優(yōu).
表1 Seeds數(shù)據(jù)集實驗結(jié)果Table 1 Seeds experimental result
表2 Wine數(shù)據(jù)集實驗結(jié)果Table 2 Wine experimental result
3.2.1 實驗一
選取江蘇科技大學東校區(qū)在2017年4月14日獲取的遙感數(shù)據(jù)作為實驗數(shù)據(jù),圖像的像素大小為450×350,實驗區(qū)主要包括7個類別,分別為草地、樹木、操場、建筑物、水體、道路和陰影.圖1為實驗區(qū)的遙感影像.
參數(shù)設置如下,種群進化次數(shù)為200,種群數(shù)量為20,學習因子c1=1.5,學習因子c2=1.7,慣性權重wmax=0.9,wmin=0.4,SVM參數(shù)C的范圍為0.01~100,核參數(shù)r的范圍為0.01~10.實驗操作系統(tǒng)為Windows 7,編譯軟件為Matlab R2014a,硬件為Inter(R) Core (TM) i5-2450M CPU @2.50GHz.
圖1 江蘇科技大學遙感影像Fig.1 Jiangsu University of Science and Technologyremote sensing image
實驗選取了1 800個樣本作為訓練集,首先在訓練集上進行三折交叉驗證,找到平均分類準確率最高的SVM參數(shù)組合,又隨機選取了520個樣本作為測試集,最后使用最優(yōu)參數(shù)組合的SVM模型對測試集進行預測,并采用分類混淆矩陣對分類結(jié)果進行精度評價.訓練集和測試集的具體樣本數(shù)量如表3,實驗結(jié)果如表4,5和6.
從表4可以看出,PSO-SVM算法對水體和操場的分類效果較好,均達到了90%以上,但對建筑物和道路的分類較差,部分建筑物被誤認為是道路和樹木,部分道路被誤認為是建筑物和草地.從表4可以看出,WPSO-SVM算法對建筑物和道路的分類效果得到了提升,WPSO-SVM的分類精度相較于PSO-SVM算法提高了2.12%.從表5可以看出,SAPSO-SVM算法的分類精度要優(yōu)于WPSO-SVM算法,WPSO-SVM算法相較于PSO-SVM算法分類精度提高了2.89%.綜上所述,WPSO-SVM算法和SAPSO-SVM算法在一定程度上提高了遙感圖像的分類精度.
表3 數(shù)據(jù)集1Table 3 Dataset 1
表4 PSO-SVM分類混淆矩陣Table 4 PSO-SVM classification confusion matrix
表5 WPSO-SVM分類混淆矩陣Table 5 WPSO-SVM classification confusion matrix
表6 SAPSO-SVM分類混淆矩陣Table 6 SAPSO-SVM classification confusion matrix
3.2.2 實驗二
為了進一步驗證算法的有效性,選取了蘇州工業(yè)園區(qū)在2017年7月28日獲取的遙感數(shù)據(jù)作為實驗數(shù)據(jù).實驗區(qū)圖像的像素大小為460×300,實驗區(qū)主要包括7個類別,分別為樹木、居民區(qū)、湖泊、廣場、裸地、建筑物和陰影.圖2為實驗區(qū)的遙感影像.實驗步驟以及實驗參數(shù)設置同實驗一,測試集以及訓練集具體設置如表7,實驗結(jié)果如表8.從表8可以看出,WPSO-SVM和SAPSO-SVM的分類精度均優(yōu)于PSO-SVM,其中WPSO-SVM的分類精度提高了4.33%,SAPSO-SVM的分類精度提高了3.67%.
圖2 蘇州工業(yè)園區(qū)遙感影像Fig.2 Suzhou industrial park remote sensing image
表7 數(shù)據(jù)集2Table 7 Dataset 2
表8 分類精度評價Table 8 Classification accuracy evaluation
(1) 針對粒子群算法在優(yōu)化SVM參數(shù)時易陷入局部最優(yōu)的問題,文中提出了WPSO-SVM算法和SAPSO-SVM算法,WPSO-SVM算法引入自適應權重進行優(yōu)化,使得粒子的全局和局部優(yōu)化能力能達到良好的平衡,避免了粒子早熟收斂.
(2) SAPSO-SVM算法引入SA算法進行優(yōu)化,賦予粒子一定的突跳概率,能夠跳出局部最優(yōu)解,從而達到全局最優(yōu).
(3) 通過UCI數(shù)據(jù)集和遙感影像進行實驗論證,結(jié)果表明,文中提出的WPSO-SVM和SAPSO-SVM兩種算法相較于PSO-SVM算法能夠更容易提取地物特征,提高了遙感影像的分類精度.