李浩光, 于云華, 逄 燕, 沈?qū)W鋒
1. 山東石油化工學(xué)院機(jī)械與控制工程學(xué)院, 山東 東營 257061 2. 中國石油大學(xué)(華東)新能源學(xué)院, 山東 東營 257061
在近紅外光譜定性分析時, 為取得最優(yōu)識別效果, 首先需對原始光譜數(shù)據(jù)預(yù)處理, 并進(jìn)行特征提取。 預(yù)處理主要目的是為消除樣品自身與外界環(huán)境干擾因素對近紅外光譜數(shù)據(jù)影響, 常用預(yù)處理方法包括平滑、 一階導(dǎo)、 歸一化等[1-2]; 而特征提取方法能夠剔除近紅外光譜數(shù)據(jù)中的無關(guān)信息, 保留有效信息, 常用特征提取方法有偏最小二乘(partial least squares,PLS)、 主成分分析(principal component analysis, PCA)、 線性判別分析(linear discriminant analysis,LDA)、 正交線性判別分析(orthogonal linear discriminant analysis,OLDA)等[3-5]。 不同預(yù)處理方法及特征提取方法具有不同特點(diǎn), 構(gòu)建近紅外定性分析數(shù)學(xué)模型時, 單獨(dú)使用某種預(yù)處理方法或特征提取方法往往難以取得理想結(jié)果, 常將多種預(yù)處理方法及多種特征提取方法組合使用以提升模型性能, 在各種預(yù)處理及特征提取方法中往往需要設(shè)定一些可變參數(shù), 這些可變參數(shù)對定性分析的性能有重要影響, 因此采用多個預(yù)處理方法及多個特征提取方法就存在多個參數(shù)需要確定的問題。
常用的確定各參數(shù)的方法包括試湊法及多重循環(huán)嵌套尋優(yōu)方法。 試湊法求取各待定參數(shù)最優(yōu)值時難以求得全局最優(yōu)解; 多重循環(huán)嵌套尋優(yōu)方法需要消耗大量計(jì)算機(jī)內(nèi)存與時間, 存在效率低的缺點(diǎn)。 為高效確定預(yù)處理環(huán)節(jié)及特征提取環(huán)節(jié)的多個待定參數(shù), 提出了一種基于粒子群算法的近紅外光譜預(yù)處理及特征提取參數(shù)組合尋優(yōu)方法, 并以玉米籽粒單倍體二倍體光譜為例, 對兩種方法進(jìn)行了實(shí)驗(yàn)驗(yàn)證。 可以快速獲得預(yù)處理與特征提取環(huán)節(jié)的最優(yōu)參數(shù)組合, 并保證代入最優(yōu)參數(shù)組合的近紅外定性分析模型具有最優(yōu)的識別性能。
粒子群算法(particle swarm optimization,PSO)首先由Eberhart博士和Kennedy博士在1995年提出, 該算法是一種進(jìn)化算法, 從隨機(jī)解出發(fā), 通過迭代搜尋最優(yōu)解, 具有較強(qiáng)的自適應(yīng)能力及解決問題能力, 在很多領(lǐng)域獲得了成功應(yīng)用[4]。
PSO算法基于對鳥群覓食行為的模仿: 鳥群在自然界隨機(jī)搜尋食物時, 若所在區(qū)域里只有一塊食物, 所有的鳥在搜索前均不知食物具體位置, 但是鳥群可以判斷感知當(dāng)前位置與食物的距離, 最有效食物搜索策略就是搜索當(dāng)前離食物目標(biāo)距離最近的鳥的附近空間。
用于參數(shù)組合尋優(yōu)的PSO算法流程如圖1所示。
圖1 預(yù)處理及提取最優(yōu)參數(shù)組合粒子群算法流程圖Fig.1 Flow chart of Pretreatment and extraction parameters combination search based on PSO method
在參數(shù)尋優(yōu)過程中, 待求最優(yōu)解等價于鳥類欲搜尋的食物, 而鳥類覓食的搜索區(qū)域則對應(yīng)于待求解問題的變量范圍, 在搜尋食物目標(biāo)過程中, 各個個體的鳥不僅需要自己的知識積累, 還需根據(jù)整個鳥群的搜索經(jīng)驗(yàn)來修正自己的速度, 從而使自己不斷靠近食物。
提出的基于粒子群算法的特征提取參數(shù)優(yōu)化方法實(shí)現(xiàn)步驟如下:
(1)參數(shù)初始化: 首先設(shè)定各待定參數(shù)變化范圍, 學(xué)習(xí)因子設(shè)定為C1和C2, 最大進(jìn)化代數(shù)G,kg表示當(dāng)前進(jìn)化代數(shù)。 在一個D維的搜索空間中, 粒子種群規(guī)模為size, 每個粒子代表解空間的一個候選解。 其中, 第i(1
(2)個體評價(適應(yīng)度評價): 將各粒子初始位置作為個體極值, 計(jì)算群體中各粒子的初始適用值f(xi), 并求出種群最優(yōu)位置, 在本節(jié)中使用預(yù)處理、 特征提取、 分類器等環(huán)節(jié)構(gòu)成近紅外定性分析模型對實(shí)驗(yàn)數(shù)據(jù)所得的鑒別準(zhǔn)確率作為適應(yīng)度函數(shù)值。
(3)更新粒子速度和位置, 生成新種群, 并對粒子速度與位置進(jìn)行越界檢查。
其中, kg=1,2,…,G, i=1,2,…,size, r1和r2為0到1的隨機(jī)數(shù), c1為局部學(xué)習(xí)因子, c2為全局學(xué)習(xí)因子, 一般取c2為較大值。
(4)比較粒子當(dāng)前適應(yīng)值f(xi)與自身歷史最優(yōu)值Pi, 如果f(xi)優(yōu)于Pi, 則設(shè)置為當(dāng)前值f(xi), 并更新粒子位置。
(5)比較粒子當(dāng)前適應(yīng)f(xi)與種群最優(yōu)值BestS, 如果f(xi)優(yōu)于BestS, 則BestS為當(dāng)前值f(xi), 更新種群全局最優(yōu)值。
(6)判斷粒子群算法收斂條件, 若滿足, 則結(jié)束尋優(yōu), 輸出最優(yōu)參數(shù)組合及其對應(yīng)適應(yīng)度函數(shù)值, 否則kg=kg+1, 轉(zhuǎn)至步驟(3)。 結(jié)束條件一般是最大迭代次數(shù)或評價值小于設(shè)定精度。
基于上述粒子群算法原理, 未對該算法進(jìn)行驗(yàn)證, 選擇如下近紅外光譜數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集:
以中國農(nóng)業(yè)大學(xué)國家玉米改良中心提供的某品種玉米單倍體和二倍體籽粒作為研究對象, 分5日連續(xù)采集其近紅外光譜, 使用自制近紅外光譜采集裝置[5-7], 并以漫透射采集方式交替采集單倍體、 二倍體單籽粒近紅外光譜各100條, 共5組數(shù)據(jù), 5個實(shí)驗(yàn)數(shù)據(jù)集按時間順序依次編號為T1—T5。
針對近紅外光譜定性分析模型中預(yù)處理及特征提取參數(shù)優(yōu)化問題對算法設(shè)計(jì)如下:
(1)適應(yīng)度函數(shù)設(shè)計(jì)
適應(yīng)度函數(shù)可用于評價粒子群算法所搜尋的各個參數(shù)組合的質(zhì)量, 根據(jù)適應(yīng)度函數(shù)值的變化, 進(jìn)行迭代進(jìn)化搜索粒子最優(yōu)值, 并對粒子群中其他粒子狀態(tài)進(jìn)行更新, 利用粒子適應(yīng)度函數(shù)值能夠反映粒子質(zhì)量, 即粒子是否能夠使適應(yīng)度函數(shù)取得最優(yōu)值。 擬進(jìn)行參數(shù)優(yōu)化的適應(yīng)度函數(shù)模型如圖2所示, 在特征提取參數(shù)優(yōu)化問題中將整個定性分析模型作為適應(yīng)度函數(shù), 由圖2可知, 適應(yīng)度函數(shù)由平滑、 一階導(dǎo)、 歸一化、PLS特征提取、OLDA特征提取、SVM分類器等環(huán)節(jié)構(gòu)成, 其中待尋優(yōu)參數(shù)有: 平滑系數(shù)、 一階導(dǎo)系數(shù)、PLS特征提取維數(shù)、OLDA特征提取維數(shù)。
圖2 粒子群算法適應(yīng)度函數(shù)流程圖Fig.2 Flow chart of fitness function of PSO algorithm
(2)算法參數(shù)設(shè)計(jì)
粒子群算法相對于其他優(yōu)化算法, 其特點(diǎn)是需要設(shè)置參數(shù)相對較少, 參數(shù)變化與算法尋優(yōu)能力、 收斂速度密切相關(guān)。
算法中需要確定的參數(shù)有: 種群規(guī)模、 粒子長度、 粒子范圍、 粒子速度范圍、 加速度常數(shù)等。
①種群規(guī)模
圖3是模型識別率隨粒子種群規(guī)模變化曲線, 由圖3可以看出, 種群規(guī)模, 即同一批粒子的種群數(shù)量增加到40后便對識別率的影響很小, 種群數(shù)目取 40時, 適應(yīng)度函數(shù)值即分類器對待分類數(shù)據(jù)的識別率就能夠達(dá)到95%左右, 其后識別率增長速度較慢。
圖3 識別率隨粒子種群規(guī)模變化曲線圖Fig.3 Recognition rate curve with particlepopulation size changing
圖4是算法收斂速度隨粒子種群規(guī)模變化曲線, 由圖4可以看出。 隨著粒子種群數(shù)目增大, 粒子間相互配合能力隨之增強(qiáng), 每個粒子負(fù)責(zé)搜尋空間相對變小, 較大的粒子種群數(shù)更易搜索到全局最優(yōu)解, 但易帶來負(fù)面問題, 即算法運(yùn)行時間直線上升。
圖4 算法收斂速度隨粒子種群規(guī)模變化曲線圖Fig.4 Curve of convergence time with particlepopulationsize changing
綜合考慮尋優(yōu)能力與收斂時間, 本節(jié)中粒子群種群規(guī)模適宜設(shè)置為40。
②粒子長度
粒子長度即每個粒子所包含的待定參數(shù)的維數(shù), 對應(yīng)本節(jié)中的適應(yīng)度函數(shù), 本節(jié)中粒子的長度為4維。
③粒子范圍
粒子范圍指粒子在多維解空間中尋優(yōu)區(qū)域, 由具體優(yōu)化問題與目標(biāo)確定, 一般將待優(yōu)化參數(shù)取值范圍固定為粒子范圍, 本研究中粒子的每一維搜索范圍并不相同, 具體設(shè)置如下:
平滑參數(shù)(smooth parameter)用SP表示, 其最大值用maxSP表示, 步長為2, 變化范圍為[3,5,7,…,maxSP]; 一階導(dǎo)參數(shù)(FD parameter)用FDP表示, 其最大值用maxFDP表示, 步長為2, 變化范圍為[3,5,7,…,maxFDP]; PLS特征提取的維數(shù)(PLS parameter)用PLS表示, 其最大值用maxPLS表示, 步長為1, 變化范圍為[3,4,5,…,maxPLS]; OLDA特征提取后的維數(shù)(OLDA parameter)用FDP表示, 因?yàn)槠渥畲笾挡豢赡艹^PLS特征提取后的維數(shù), 因此其最大值用PLS表示。
④粒子速度范圍
粒子飛行速度范圍表示粒子搜索過程中單次運(yùn)動距離, 若粒子飛行的速度過高, 粒子飛行跨度過大, 易錯過最優(yōu)解。 若飛行的速度太低, 粒子只能在一個小的局部范圍內(nèi)進(jìn)行搜索, 可能搜尋到局部最優(yōu)解。 本節(jié)規(guī)定粒子飛行速度為k·xmax, 其中k在0.1至1之間變化,xmax為各維粒子飛行速度的最大值, 粒子每一維都采用相同取值方法。
⑤加速度常數(shù)c1,c2
加速度常數(shù)代表粒子群算法中的學(xué)習(xí)因子, 兩值分別代表各粒子向個體極值與全局極值飛行時的加速度權(quán)重比值。 較小的加速度值允許粒子在被拉回目標(biāo)值前能夠擴(kuò)展搜索目標(biāo)值范圍之外的區(qū)域。 加速度值設(shè)置過大則會導(dǎo)致粒子越過目標(biāo)搜索范圍。 根據(jù)實(shí)際調(diào)試過程, 本節(jié)中PSO算法加速度常數(shù)c1為1.48,c2設(shè)為1.85。
基于上述分析, 針對參數(shù)優(yōu)化問題, 粒子群算法參數(shù)設(shè)置如下:
粒子種群規(guī)模為40, 最大進(jìn)化代數(shù)為200,c1為1.48,c2設(shè)為1.85。
適應(yīng)度函數(shù): 使用平滑、 一階導(dǎo)、 歸一化、 PLS特征提取、 OLDA特征提取、 SVM分類器等環(huán)節(jié)構(gòu)成近紅外定性分析模型, 隨機(jī)抽取T1數(shù)據(jù)集的一半作為訓(xùn)練集, 另一半作為測試集, 重復(fù)20次, 將識別率取平均后作為適應(yīng)度函數(shù)值。
對比實(shí)驗(yàn)算法設(shè)計(jì): 循環(huán)嵌套方法與所提出的粒子群算法進(jìn)行對比實(shí)驗(yàn), 循環(huán)嵌套方法的流程圖如圖5所示, 程序利用4個循環(huán)嵌套實(shí)現(xiàn)4個待確定參數(shù)尋優(yōu)。
圖5 預(yù)處理參數(shù)及特征提取參數(shù)循環(huán)嵌套尋優(yōu)流程圖Fig.5 Flow chart of loop nesting optimization method
圖5中近紅外定性鑒別子程序包括平滑、 一階導(dǎo)、 歸一化、 PLS特征提取、 OLDA特征提取、 SVM分類器等環(huán)節(jié), 多個環(huán)節(jié)組合實(shí)現(xiàn)對單倍體與二倍體兩類籽粒的分類。 在分類時, 隨機(jī)抽取T1數(shù)據(jù)集的一半作為訓(xùn)練集, 另一半作為測試集, 重復(fù)20次, 將識別率取平均得到平均識別率, 分類完成后保存所得平均識別率與對應(yīng)的參數(shù)組合, 并對識別率進(jìn)行排序。
利用圖2所示的PSO算法流程以及圖5所示的多重循環(huán)嵌套方法分別對上述近紅外定性分析模型最優(yōu)參數(shù)組合進(jìn)行搜尋, 近紅外光譜定性分析模型中待尋優(yōu)的參數(shù)包括平滑參數(shù)、 一階導(dǎo)系數(shù)、 PLS維數(shù)、 OLDA維數(shù)共4個。
實(shí)驗(yàn)數(shù)據(jù): 使用玉米單倍體二倍體光譜數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)集。
針對上述數(shù)據(jù)建立近紅外光譜定性分析模型, 定性分析模型中數(shù)據(jù)預(yù)處理采用平滑(Smoothing)、 一階導(dǎo)(first Derivative, FD)、 矢量歸一化(vector normalization, VN)三種方法相結(jié)合[8-9], 特征提取環(huán)節(jié)采用PLS+OLDA組合的方式, 最后利用SVM方法進(jìn)行分類鑒別。
將T1作為預(yù)處理與特征提取參數(shù)組合優(yōu)化算法的實(shí)驗(yàn)數(shù)據(jù)集, T2—T5數(shù)據(jù)集作為測試集驗(yàn)證所獲得優(yōu)化參數(shù)組合的推廣性能, 使用上述兩種方法所得實(shí)驗(yàn)結(jié)果及其分析見表1和表2。
表1 識別率及其對應(yīng)參數(shù)列表(PSO方法)Table 1 Recognition rate and its correspondingparameter list (PSO method)
表2 識別率及其對應(yīng)參數(shù)列表(多重循環(huán)嵌套方法)Table 2 Recognition rate and its corresponding parameter list (multiple loop nesting method)
表1及表2是分別使用粒子群算法與多重循環(huán)嵌套方法尋優(yōu)得到模型識別率最高時的幾組參數(shù)組合, 由兩表可以看出, 在兩種方法中識別率較高時對應(yīng)參數(shù)有多種組合。
選擇表2中任意一組數(shù)據(jù)可以發(fā)現(xiàn): PSO算法與多重循環(huán)嵌套方法獲得的參數(shù)值比較接近, PSO算法與多重循環(huán)嵌套方法所獲的第二組參數(shù)組合則完全一致。
此外, 在同一種方法所獲的幾種參數(shù)組合中, 參數(shù)之間相差并不大, 基本在小范圍內(nèi)波動。 以PSO算法為例, 平滑參數(shù)在9~11范圍內(nèi)波動, 而OLDA維數(shù)在4~5之間波動。 因此, 在模型實(shí)際使用時, 為獲得較優(yōu)或者最優(yōu)的識別性能, 可以將參數(shù)設(shè)置在一定范圍內(nèi)。
對于本實(shí)驗(yàn)數(shù)據(jù)與對應(yīng)分類任務(wù), 最優(yōu)識別效果對應(yīng)平滑參數(shù)一般可設(shè)置為9, 11和13, 而一階導(dǎo)參數(shù)可設(shè)置為7, 9, 11和13, PLS參數(shù)可設(shè)置為7, 9和11, OLDA可設(shè)置為4和5。
在構(gòu)建近紅外光譜定性分析模型時, 選擇表格中任一組參數(shù)組合代入模型, 均可獲得最優(yōu)或者較優(yōu)的預(yù)測性能。
表3是利用PSO方法在數(shù)據(jù)集T1上獲得的最優(yōu)預(yù)處理與特征提取參數(shù)組合代入近紅外定性鑒別模型后, 在多個測試數(shù)據(jù)集上所得識別率。 對每一個數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)時, 從各數(shù)據(jù)集中隨機(jī)抽取一半作為訓(xùn)練集建立定性分析模型, 剩余一半作為測試集對所建模型進(jìn)行測試, 抽取樣本時, 兩類樣本各占50%, 20次實(shí)驗(yàn)所得識別率取均值。
表3 最優(yōu)參數(shù)組合在其他數(shù)據(jù)集的識別結(jié)果表Table 3 Recognition results of optimal parameter combination tested with other data sets
建立模型階段代入PSO方法搜尋得到的預(yù)處理與特征提取參數(shù)組合SP=9, FDP=9, PLS=11, OLDA=4。 由表3可以看出, 所獲參數(shù)組合在幾個數(shù)據(jù)集上均能獲得高于95%的識別率, 說明粒子群方法所獲取優(yōu)化參數(shù)組合在不同數(shù)據(jù)集均具有較好推廣性能。
表4是在同一臺計(jì)算機(jī)分別使用多重循環(huán)嵌套方法以及PSO方法對最優(yōu)參數(shù)組合進(jìn)行尋優(yōu)所消耗的時間。 由表4可知, PSO方法只需586 s, 而循環(huán)嵌套方法需要2 825 s, PSO方法尋優(yōu)效率較高, 而多重循環(huán)嵌套方法尋優(yōu)效率需要消耗大量的計(jì)算機(jī)內(nèi)存與計(jì)算時間, 效率較低。
表4 程序消耗時間對比表Table 4 Comparison of program consumption time
針對近紅外光譜定性分析模型中預(yù)處理及特征提取環(huán)節(jié)多參數(shù)需要尋優(yōu), 當(dāng)前常用試湊法及多重循環(huán)嵌套方法存在無法獲得全局最優(yōu)解、 效率低的問題。 研究中提出了一種基于粒子群算法的定性分析模型預(yù)處理與特征提取參數(shù)組合優(yōu)化方法, 首先采用粒子群算法與SVM算法對預(yù)處理與特征提取的多環(huán)節(jié)參數(shù)組合進(jìn)行尋優(yōu), 再利用多個測試集對代入最優(yōu)參數(shù)組合的定性分析模型進(jìn)行測試, 實(shí)驗(yàn)結(jié)果證明了方法的有效性。