管雪梅 楊渠三 吳 言
(東北林業(yè)大學(xué)機(jī)電學(xué)院,黑龍江 哈爾濱 150040)
木材作為常見的建筑材料,被廣泛應(yīng)用于工業(yè)生產(chǎn)中。在禁止天然林商業(yè)性采伐之前,為了經(jīng)濟(jì)發(fā)展而犧牲林業(yè)資源,導(dǎo)致林業(yè)資源消耗過大[1-3]。木材染色對(duì)解決這一問題具有極其重要的作用[4-8]。計(jì)算機(jī)配色為木材染色提供了許多優(yōu)異的方法[9-12]。將計(jì)算機(jī)配色應(yīng)用到木材染色中,可以加快染色配方的生成速率,提高染料配比的準(zhǔn)確度。近年來,越來越多的研究者將神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)模型應(yīng)用到木材配色中,并取得了較多成果。反向傳播(BP)神經(jīng)網(wǎng)絡(luò)在預(yù)測精度和泛化能力上存在很大缺陷,若用粒子群算法對(duì)其進(jìn)行優(yōu)化,將會(huì)提高預(yù)測效果。然而,受限于樣本數(shù)量,其收斂速度不理想[13]。將K值聚類算法融合徑向基(Radical Basis Function)神經(jīng)網(wǎng)絡(luò),可進(jìn)一步提高其配色精度,配色速度也會(huì)更快[14]。用粒子群優(yōu)化Friele光學(xué)模型,平均擬合色差明顯提高[15]。將全光譜配色融入Friele算法,將能有效改善色差均值[16]。對(duì)Stearns-Noechel模型中的參數(shù)M循環(huán)賦值,可進(jìn)一步減小其擬合色差[17]。采用粒子群算法( PSO )對(duì)Stearns-Noechel模型進(jìn)行優(yōu)化,精度和速度都有所提高[18]。
目前針對(duì)智能配色已開展了很多研究,提高配色精度始終是研究人員不斷追求的目標(biāo)。鑒于支持向量回歸(SVR)法具有很強(qiáng)的泛化能力,且容易實(shí)現(xiàn),在各種預(yù)測中均有出色的表現(xiàn)[19]。本文基于SVR建立預(yù)測模型,并用灰狼算法進(jìn)行優(yōu)化,對(duì)灰狼算法(Grey Wolf Optimization)算法的不足加以改進(jìn)[20],以光譜反射率作為輸入,染色配比作為輸出,可以減小配色誤差,提高生產(chǎn)效率,從而推動(dòng)木材染色技術(shù)的發(fā)展,實(shí)現(xiàn)人工速生材的高值化利用。
樟子松(Pinus sylvestrisvar.mongolica Litv)旋切單板,并加工成40 mm×60 mm×0.5 mm的尺寸,用于染色處理。漂白劑(H2O2溶液),染色材料包括活性紅(X-3B)染料、活性黃(X-RG)染料和活性藍(lán)(X-3G)染料,染色助劑包括滲透劑(水性JFC溶液)、固色劑(無水碳酸鈉)、促染劑(NaCl)等,材料購置于北京化工廠。
芬蘭SPECIM高光譜分析儀、數(shù)顯恒溫水浴鍋(上海力辰邦西儀器科技有限公司)、電子天平、燒杯、202-Ⅰ型電熱恒溫干燥箱(天津泰斯特儀器公司)。
為消除木材本身顏色的影響,染色前對(duì)試樣進(jìn)行漂白處理。配置濃度為4%H2O2漂白液500 mL,加入 7.5 g Na2SiO3后攪拌均勻,放入試樣,設(shè)置浴比為1∶20,在65 ℃水浴鍋中靜置2 h。漂白結(jié)束后,用清水沖洗試樣,并進(jìn)行干燥。
干燥后,用蒸餾水配置500 mL的染液,染液中加入濃度為1 g/L的滲透劑JFC與15 g/L的NaCl,將三種染料按照設(shè)置的染料濃度分別加入,攪拌均勻后將漂白試樣放入其中,在65 ℃水浴鍋中靜置2 h。然后加入20 g/L的Na2CO3固色30 min,結(jié)束后,用清水沖洗染色單板表面,并進(jìn)行干燥,使其含水率降至8%,本文共設(shè)計(jì)120組染料濃度配比,每組6個(gè)木材單板試樣,共計(jì)720個(gè)染色單板。部分染料濃度如表1所示,部分染色單板如圖1所示。
圖1 染色后部分木材單板照片F(xiàn)ig.1 Pictures of partial wood veneer after dyeing
表1 部分木材單板染液染料配比Tab.1 Dye ratio of partial wood veneer dyeing solution
采用高光譜分析儀對(duì)染色后的木材單板進(jìn)行光譜反射率提取,得到單板在400~700 nm波段各波長的光譜反射率,每隔20 nm取一個(gè)波長,共16個(gè)波長。部分染色單板各波長的光譜反射率如表2所示。
表2 部分樣本不同波長對(duì)應(yīng)的光譜反射率Tab.2 Spectral reflectance corresponding to different wavelengths of some samples
SVR是支持向量機(jī)(SVM)的一個(gè)應(yīng)用分支[21],但兩者有明顯不同。SVR的樣本點(diǎn)只有一類,找到一個(gè)超平面使得所有樣本點(diǎn)距離該超平面距離最近,從而達(dá)到擬合的目的。即給定樣本集合:
筆者希望得到形如
的回歸模型,使得f(x)和y趨近一致。
在SVR中允許存在偏差ε,當(dāng)|y-f(x)|≤ε時(shí)定義該模型無損失,如圖2 所示。當(dāng)樣本數(shù)據(jù)在虛線外時(shí),|yf(x)|>ε定義為有損失,損失函數(shù)為|y-f(x)|-ε。根據(jù)圖2可知,當(dāng)ε變大時(shí),模型的靈敏度降低,會(huì)導(dǎo)致“欠學(xué)習(xí)”問題,ε過大會(huì)導(dǎo)致“過學(xué)習(xí)”。
圖2 SVR原理Fig.2 Schematic diagram of SVR algorithm
圖3 灰狼算法原理Fig.3 Grey wolf algorithm principle
在SVR中還有兩個(gè)參數(shù)分別是懲罰系數(shù)C和gamma。C代表對(duì)誤差樣本的寬容度,當(dāng)C過大時(shí),對(duì)誤差容忍小,容易過擬合,反之易陷入欠擬合。gamma是選擇RBF函數(shù)作為核函數(shù)自帶的參數(shù),gamma決定支持向量的數(shù)目,影響訓(xùn)練速度[22]。對(duì)于SVR的改進(jìn)即對(duì)此三個(gè)參數(shù)進(jìn)行尋優(yōu)。
灰狼算法來自于灰狼群體捕獵行為,將灰狼捕獵時(shí)的位置類比于求解問題中的可行解,狼群可以分為四部分,分別是α狼、β狼,δ狼和ω狼。在算法中,由α狼、β狼,δ狼作為引導(dǎo),狼群中的個(gè)體會(huì)向著位置最優(yōu)的三個(gè)個(gè)體移動(dòng)[23]。數(shù)學(xué)描述如下:
1)包圍?;依菚?huì)向著頭狼前進(jìn),計(jì)算其位置;
式中:XP(t)為t代時(shí)獵物位置;X(t)為t代灰狼位置;r1、r2是取值在[0,1]內(nèi)的隨機(jī)向量。隨機(jī)數(shù)C決定了灰狼位置與獵物的距離,隨著不斷迭代,該灰狼位置與獵物之間的距離會(huì)趨于減小。
2)狩獵。設(shè)α狼、β狼,δ狼的位置為X1、X2、X3,迭代過程中用α狼、β狼,δ狼指導(dǎo)ω狼的移動(dòng),那么根據(jù)α狼、β狼,δ狼的位置和式(5)得出的三個(gè)位置為X1、X2、X3,灰狼ω將要移動(dòng)到的位置為:
可以看出,A決定向目標(biāo)位置靠近還是向目標(biāo)位置遠(yuǎn)離。所以只有當(dāng)|A|≥1,才有更好的全局搜索能力。為此,a采用以下公式進(jìn)行計(jì)算,
式中:t為當(dāng)前迭代次數(shù);T為設(shè)置最大迭代次數(shù);可知a的取值范圍為[0,2],且遞減。a值增大時(shí),|A|≥1,狼群在此時(shí)進(jìn)行全局搜索尋優(yōu);a值減小時(shí),|A|≤1,狼群將在小范圍內(nèi)進(jìn)行局部尋優(yōu)。
群體中灰狼個(gè)體的尋優(yōu)過程對(duì)該算法的收斂速度和預(yù)測精度有較大的影響,同大部分算法一樣,灰狼算法也存在會(huì)陷入局部最優(yōu)解的缺點(diǎn),為解決這一問題需要對(duì)灰狼算法進(jìn)行改進(jìn)[24-25]。
2.3.1 優(yōu)化收斂因子
由上可知,當(dāng)|A|≥1時(shí),狼群進(jìn)行全局搜索尋優(yōu);當(dāng)a值減小時(shí),|A|≤1,狼群將在小范圍內(nèi)進(jìn)行局部尋優(yōu);A的大小又取決于a,傳統(tǒng)的灰狼算法中,這是一個(gè)線性遞減變化,但這種線性遞減方式在實(shí)際尋優(yōu)過程中不符合尋優(yōu)規(guī)律,在尋優(yōu)過程中容易陷入局部最優(yōu)[26-28]。為改進(jìn)這一問題,本文對(duì)a提出一種非線性收斂方式:
a隨迭代次數(shù)變化曲線如圖4所示。由圖可知,a改為非線性函數(shù)后,在a較大時(shí),衰減程度比較低;在a較小時(shí),衰減程度比較高,能有效避免陷入局部最優(yōu)。
圖4 a值變化曲線Fig.4 a-value change curve
2.3.2 改進(jìn)位置更新策略
原始的灰狼算法位置更新公式為式(6),初始化得到三只頭狼(α狼、β狼、δ狼)的位置會(huì)被保存,然后在迭代過程中根據(jù)式(6)不斷更新個(gè)體位置,直至能夠出現(xiàn)適應(yīng)度值更小的灰狼個(gè)體。未出現(xiàn)適應(yīng)度更優(yōu)異的個(gè)體之前,其他灰狼始終以這三只灰狼為目標(biāo)前進(jìn)。文獻(xiàn)[25]提出了一種自適應(yīng)位置更新策略。在此基礎(chǔ)上,本文提出一種尋優(yōu)效果更好的位置自適應(yīng)策略:
另外,三只頭狼的位置在更新位置時(shí)的重要程度不同,引入基于指導(dǎo)位置的動(dòng)態(tài)比例權(quán)重:
則式(14)為:
2.4.1 確定模型輸入和輸出
在傳統(tǒng)的計(jì)算機(jī)配色中,常選用三刺激值作為輸入,但是容易出現(xiàn)“同色異譜”現(xiàn)象,而一種顏色的光譜反射率曲線在固定光照條件下是唯一的,將其作為輸入能夠很好地避免這一現(xiàn)象。因此,筆者選擇以各波長的光譜反射率為輸入,三種染料的配比作為輸出。
2.4.2 融合IGWO和SVR
灰狼算法優(yōu)化原理是利用算法中的尋優(yōu)能力對(duì)SVR中的參數(shù)進(jìn)行不斷賦值,從而找到達(dá)到最好預(yù)測效果的參數(shù),該模型的原理如圖4所示,具體步驟為:
1)讀取制作好的染料配比和光譜反射率數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行歸一化處理,以光譜反射率作為輸入,染料配比作為輸出;
2)SVR參數(shù)尋優(yōu),將每只灰狼個(gè)體位置設(shè)置為xi=[Ci,εi,gammai],賦值后在樣本集上訓(xùn)練,適應(yīng)度函數(shù)選取預(yù)測值與真實(shí)值的均方誤差,將誤差最好的灰狼位置保留,然后根據(jù)式(14)更新灰狼位置,并不斷重復(fù)計(jì)算適應(yīng)度,與之前的適應(yīng)度進(jìn)行對(duì)比,根據(jù)設(shè)置好的迭代次數(shù)進(jìn)行迭代,當(dāng)超過最大迭代次數(shù)時(shí),結(jié)束學(xué)習(xí)過程,并得到位置最好的灰狼(位置)。
3)將2)中得到的三個(gè)[C,ε,gamma](最優(yōu)位置)帶入SVR模型,運(yùn)行SVR程序訓(xùn)練數(shù)據(jù)并對(duì)測試集進(jìn)行預(yù)測,將數(shù)據(jù)反歸一化后輸出。因?yàn)榕浞綕舛容^小,采用的評(píng)價(jià)指標(biāo)為配方相對(duì)偏差,配方相對(duì)偏差公式為:,yi(i=1,2,3)為測試樣本真實(shí)配比,pi(i=1,2,3)為測試樣本預(yù)測染料配比。
本研究對(duì)灰狼算法設(shè)置參數(shù)種群規(guī)模為50,狼群尋值(C、ε、gamma)范圍為[0,100],最大迭代次數(shù)設(shè)置為500。
為了驗(yàn)證IGWO算法的優(yōu)越性,采用IGWO算法與傳統(tǒng)GWO算法分別對(duì)SVR模型進(jìn)行優(yōu)化。算法在迭代過程中適應(yīng)度值隨迭代次數(shù)變化的曲線如圖5所示。IGWO-1為引入非線性收斂因子適應(yīng)度值變化曲線,IGWO-2為改進(jìn)位置更新策略適應(yīng)度值變化曲線,IGWO為引入收斂因子和融合位置更新策略并引入自適應(yīng)權(quán)重的適應(yīng)度值變化曲線。對(duì)比曲線可以看出,IGWO收斂速度和精度都有明顯提高,說明改進(jìn)后的IGWO對(duì)SVR進(jìn)行優(yōu)化是合理的。
圖5 IGWO-SVR原理圖Fig.5 IGWO-SVR schematic diagram
圖6 不同GWO的適應(yīng)度值變化曲線Fig.6 Variation curve of fitness value of different GWOs
利用Python驗(yàn)證模型預(yù)測能力。選取的測試集樣本染料配比情況如表3。
表3 選取的10 組測試集數(shù)據(jù)Tab.3 Selected 10 groups of test set data
為進(jìn)一步驗(yàn)證IGWO對(duì)于SVR優(yōu)化的優(yōu)越性,用IGWO-SVR對(duì)模型進(jìn)行預(yù)測,并與標(biāo)準(zhǔn)SVR和GWOSVR的預(yù)測結(jié)果進(jìn)行比較。無優(yōu)化的SVR模型對(duì)配方進(jìn)行預(yù)測時(shí),根據(jù)經(jīng)驗(yàn)和手動(dòng)尋優(yōu)對(duì)SVR參數(shù)設(shè)置為C=10,ε=0.1,gamma=1,得到的預(yù)測結(jié)果如表4 所示。用GWO-SVR進(jìn)行預(yù)測時(shí),設(shè)置的種群規(guī)模,狼群尋值范圍和迭代次數(shù)與IGWO-SVR相同,預(yù)測結(jié)果如表5所示。
表5 GWO-SVR配色模型的預(yù)測結(jié)果Tab.5 Prediction results of GWO-SVR color matching model
表6 IGWO-SVR配色模型的預(yù)測結(jié)果Tab.6 Prediction results of IGWO-SVR color matching model
根據(jù)SVR、GWO-SVR、IGWO-SVR的配方預(yù)測結(jié)果,繪制三種模型的配方相對(duì)偏差曲線圖,如圖7所示。此外,計(jì)算三種模型預(yù)測結(jié)果的平均配方相對(duì)偏差,如表7所示。由曲線和平均配方的相對(duì)偏差可以看出,相較于前兩種模型,IGWO-SVR的預(yù)測精度更高,評(píng)價(jià)偏差只有0.177,明顯低于GWO-SVR和SVR模型。測試樣本最大偏差0.418,最小偏差為0.070,誤差波動(dòng)更小,預(yù)測穩(wěn)定性更強(qiáng),證明了IGWO對(duì)SVR優(yōu)化的有效性。
圖7 SVR、GWO-SVR、IGWO-SVR配方相對(duì)偏差曲線對(duì)比Fig.7 Comparison of relative deviation curves of SVR, GWOSVR and IGWO-SVR formulations
表7 三種配色模型的平均配方相對(duì)偏差Tab.7 Average formula relative deviation of three color matching models
同時(shí),為了說明此模型在配方預(yù)測中的適用性,本研究將其與BP神經(jīng)網(wǎng)絡(luò)、RBF神經(jīng)網(wǎng)絡(luò)、遺傳算法(GA)優(yōu)化SVR(GA-SVR)模型、粒子群算法(PSO)優(yōu)化的SVR模型(PSO-SVR)的配方預(yù)測結(jié)果進(jìn)行了對(duì)比。其中,GA算法將種群規(guī)模設(shè)置為10,最大進(jìn)化代數(shù)為100,變異率和交叉率分別設(shè)置為0.1和0.3;PSO算法將粒子數(shù)設(shè)置為20,粒子加速因子設(shè)置為C1=2,C2=0,慣性常數(shù)設(shè)置為0.4;得到的所有預(yù)測配方相對(duì)偏差曲線如圖8所示,其平均配方相對(duì)偏差如表8所示。由曲線圖和平均配方模型可知,IGWO-SVR達(dá)到了理想效果。
圖8 四種模型配方平均偏差曲線Fig.8 Average deviation curve of four model formulations
表8 各種配色模型的平均配方相對(duì)偏差Tab.8 Average formula relative deviation of various color matching models
本文通過改進(jìn)灰狼算法對(duì)支持向量回歸(SVR)進(jìn)行優(yōu)化,得到染料配方預(yù)測模型,將SVR參數(shù)帶入灰狼算法進(jìn)行尋優(yōu),為避免陷入局部最優(yōu)的情況,改進(jìn)了位置更新策略和引入了非線性因子,得到的配方相對(duì)偏差為0.177,配色效果得到提高。與其他算法相比,更接近真實(shí)配方,表明IGWO-SVR在配方預(yù)測上的優(yōu)越性。
與其他神經(jīng)網(wǎng)絡(luò)等模型不同,SVR對(duì)于數(shù)據(jù)集較小的情況有很強(qiáng)的適應(yīng)性,屬于小樣本學(xué)習(xí)方法。本研究減小了數(shù)據(jù)集大小對(duì)模型的影響,使其能夠適應(yīng)實(shí)際生產(chǎn)需要,對(duì)于擴(kuò)大人工速生材的應(yīng)用具有重要意義。未來,可加入自定義初始化灰狼位置,或增加數(shù)據(jù)集,對(duì)其他優(yōu)化算法進(jìn)行深入探索。