專利名稱:基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對農(nóng)產(chǎn)品或食品品質(zhì)進(jìn)行分析的近紅外光譜特征波長特征子區(qū) 間選擇方法,特指基于模擬退火算法的近紅外光譜波長特征子區(qū)間的選擇方法。
背景技術(shù):
目前,近紅外光譜技術(shù)在農(nóng)產(chǎn)品、食品品質(zhì)分析方面的運用越來越廣泛。但近紅外 技術(shù)本身也存在一定的不足,如背景復(fù)雜、信息強(qiáng)度低,譜峰重疊等,使得難以用常規(guī)的譜 圖解析方法解析近紅外光譜,如何有效的從大量近紅外光譜數(shù)據(jù)中提取特征信息成為了國 內(nèi)外學(xué)者研究的重點。樣品在近紅外光譜的某個或者某幾個波段發(fā)生特征吸收,決定了高 信息量波數(shù)點鄰近的波數(shù)點也具有較高的信息量,即近紅外光譜數(shù)據(jù)具有一定的連續(xù)相關(guān) 性。根據(jù)近紅外光譜數(shù)據(jù)的這一特點,兼顧減少波長選擇算法計算量,提高算法效率等要 求,通常將近紅外全光譜分成若干個子區(qū)間,以區(qū)間為單位進(jìn)行波長選擇。經(jīng)典光譜區(qū)間選 擇算法有間隔偏最小二乘法,該算法是將全光譜分成若干個子區(qū)間,分別計算各個子區(qū)間 的交互驗證均方根誤差RMSECV(Root Mean Square of Cross Validation),將交換驗證均 方根誤差最小的一個區(qū)間作為建模區(qū)間。間隔偏最小二乘算法的衍生算法有聯(lián)合區(qū)間偏最 小二乘法、向前/向后區(qū)間偏最小二乘算法、移動窗口偏最小二乘等,同經(jīng)典區(qū)間偏最小二 乘算法相比,衍生算法不僅考察單一區(qū)間,還有幾個區(qū)間的聯(lián)合。這些算法雖然能提取光譜 的特征信息,但劃分子區(qū)間的過程具有一定的主觀性,同時,區(qū)間組合方式單一,不能確保 得到全局最優(yōu)組合。模擬退火算法(SAA)是一種適合解決大規(guī)模組合化問題,特別是NP完全類問題的 通用有效近似算法,具有描述簡單、使用靈活、運用廣泛、運行效率高和受初始解約束小等 有點。
發(fā)明內(nèi)容
為了克服上述技術(shù)的不足,本發(fā)明提出一種基于模擬退火算法的食品、農(nóng)產(chǎn)品近 紅外光譜波長特征子區(qū)間選擇方法,可客觀地劃分子區(qū)間,區(qū)間組合方式不單一,確保得到 全局最優(yōu)組合。本發(fā)明采用的技術(shù)方案是包含如下步驟先對近紅外光譜進(jìn)行預(yù)處理,包括對校 正集和預(yù)測集樣本的劃分,將預(yù)處理后的近紅外光譜的全光譜劃分為k個子區(qū)間;采用模 擬退火算法選擇最佳特征子區(qū)間的個數(shù)及組合方式,選擇完成后遞增子區(qū)間數(shù);再重復(fù)執(zhí) 行模擬退火算法,在模擬退火算法結(jié)束時比較各種區(qū)間劃分方式時的特征子區(qū)間最優(yōu)組 合,得到全局最優(yōu)特征子區(qū)間組合;最后根據(jù)全局最優(yōu)特征子區(qū)間組合建立校正集與預(yù)測 集模型。本發(fā)明的有益效果是1、通過窗口動態(tài)遞增解決了間隔偏最小二乘建模過程人工劃分光譜子區(qū)間帶來 的不足,使得光譜子區(qū)間的劃分更具科學(xué)、合理。
2、采用Metropolis準(zhǔn)則判斷新入選子區(qū)間的重要性,既保證了算法快速收斂,同 時又避免了算法陷入局部最優(yōu)解而錯過全局最優(yōu)解。3、農(nóng)產(chǎn)品、食品近紅外光譜經(jīng)過模擬退火算法優(yōu)選波長子區(qū)間后,能減少建模計 算量、加快建模速度,在得到全局最優(yōu)解的前提下快速的獲取到高質(zhì)量、效果更好近紅外光 譜模型。
以下結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)說明。
圖1是本發(fā)明流程圖;圖2是Metropolis接受準(zhǔn)則示意圖;圖3是子區(qū)間個數(shù)交換函數(shù)圖。
具體實施例方式本發(fā)明先對近紅外光譜進(jìn)行預(yù)處理,光譜預(yù)處理是為了消除數(shù)據(jù)采集過程中儀 器信號漂移,環(huán)境條件波動引起的噪聲,常用的光譜預(yù)處理方法有SNV(標(biāo)準(zhǔn)正交變換)、 MSC(多元散射校正)、小波變換等,同時光譜預(yù)處理過程還包括對校正集和預(yù)測集樣本的 劃分。光譜預(yù)處理后,將全光譜劃分為k個子區(qū)間,如果總波數(shù)點數(shù)除以k等于n,存在余 數(shù)m,則前m個子區(qū)間中每個子區(qū)間波數(shù)點個數(shù)為n+1,剩余子區(qū)間中每個子區(qū)間波數(shù)點個 數(shù)為η。將全光譜劃分為k個子區(qū)間時,采用模擬退火算法選擇最佳特征子區(qū)間的個數(shù)及 組合方式,得到特征子區(qū)間的最優(yōu)組合,完成后遞增光譜子區(qū)間數(shù),再重復(fù)執(zhí)行模擬退火算 法,并在算法結(jié)束時比較各種區(qū)間劃分方式時的特征子區(qū)間的最優(yōu)組合,從而得到全局最 優(yōu)特征子區(qū)間組合,并給出建模結(jié)果。本發(fā)明在用模擬退火算法選擇最佳特征子區(qū)間的個數(shù)及組合方式時,需設(shè)置以下 參數(shù)最小子區(qū)間數(shù)Io 指至少將全光譜劃分為Io個子區(qū)間。最大子區(qū)間數(shù)If 指至多將全光譜劃分為If個子區(qū)間。目標(biāo)函數(shù)f(x)目標(biāo)函數(shù)的作用是判斷當(dāng)前解χ的質(zhì)量,一般情況下f(x)值越 高,代表當(dāng)前解X的質(zhì)量越好。本模擬退火算法的目標(biāo)是優(yōu)選特征子區(qū)間,當(dāng)前被選入所有 特征子區(qū)間被看成是當(dāng)前解X,目標(biāo)函數(shù)f(X)定義為1/(1+RMSECV),其中RMSECV為選入的 所有子區(qū)間PLS校正模型對應(yīng)的交互驗證均方根誤差。初始化溫度、對應(yīng)于固體退火過程中的初始溫度,通常設(shè)置初始溫度為200 1000 度。溫度衰減函數(shù)g(a)用于控制固體退火過程中的溫度冷卻速率,通常設(shè)tk+1 = tkg(a) = a tk, α取值范圍通常為0. 5 0. 99。結(jié)束溫度tf 當(dāng)退火溫度達(dá)到結(jié)束溫度時,固體將達(dá)到某一穩(wěn)定狀態(tài),固體退火過 程結(jié)束,一般設(shè)置退火溫度tf為0度左右。馬爾可夫鏈長度Lk 指當(dāng)溫度為t時,算法搜索迭代的次數(shù)。Metropolis (人名)接受新解準(zhǔn)則Metropolis準(zhǔn)則根據(jù)舊解、新解對應(yīng)的目標(biāo)函數(shù),判斷舊解、新解中哪個解是重要解,如果新解被認(rèn)為是重要解,則用新解取代舊解進(jìn)入 下一次迭代;反之則維持舊解不變。本發(fā)明針對優(yōu)選特征子區(qū)間,第m次迭代過程中選入 了 k個子區(qū)間,記為舊解X,在第m+1次迭代過程中,在舊解χ的基礎(chǔ)上替換少數(shù)子區(qū)間得到 新解y ;舊解X、新解y對應(yīng)的目標(biāo)函數(shù)值分別為f (X)和f (y),那么Metropolis準(zhǔn)則基于 如下規(guī)則判斷舊解χ、新解y的重要性當(dāng)f (y) >f(x)時,新解為重要解,否則判斷下式/V
<formula>formula see original document page 5</formula>是否成立,其中Pt是新解轉(zhuǎn)移概率,r由范圍為W,1],的均勻概
率密度函數(shù)隨機(jī)產(chǎn)生;如果上式成立,則認(rèn)為新解是重要解χ,否則認(rèn)為舊解是重要解y。子區(qū)間交換函數(shù)h(t)隨著退火溫度逐漸降低,將向全局最優(yōu)解逼近,模擬退火 算法根據(jù)舊解產(chǎn)生新解過程中需要交換子區(qū)間的個數(shù)逐漸減少,設(shè)計如下子區(qū)間個數(shù)交換 函數(shù)h(t) = l-exp(-t),當(dāng)溫度由t降低至tn+1時,對應(yīng)子區(qū)間交換個數(shù)分別為c和cn+1, 它們與交換函數(shù)的關(guān)系由以下公式確定cn+1 = ch (t)。本發(fā)明在以上參數(shù)設(shè)置的基礎(chǔ)上,按如下步驟實施模擬退火算法(1)將全光譜劃分為k個子區(qū)間,溫度為t =、時,隨機(jī)選擇m個子區(qū)間作為舊解 χ ;(2)在舊解χ和未選中的k-m個子區(qū)間中,根據(jù)子區(qū)間交換函數(shù)交換子區(qū)間后產(chǎn)生 新解y ;(3)計算新解y、舊解χ的目標(biāo)函數(shù)值;(4)根據(jù)(3)的計算結(jié)果,采用Metropolis接受新解準(zhǔn)則判斷新解y、舊解χ的重 要性;(5)判斷迭代次數(shù)是否等于馬爾可夫鏈長度Lk,如果不等于則重復(fù)步驟(2) (5);否則執(zhí)行下步驟(6);(6)根據(jù)溫度衰減函數(shù)g ( α )降低冷卻溫度t ;(7)判斷是否達(dá)到結(jié)束溫度tf,沒有達(dá)到結(jié)束tf則重復(fù)執(zhí)行(2) (7),否則執(zhí)行 步驟⑶;(8)遞增光譜子區(qū)間個數(shù),重復(fù)執(zhí)行(2) (8),直至計算完最大光譜子區(qū)間數(shù)后 進(jìn)入步驟(9);(9)返回最佳子區(qū)間數(shù)和入選的特征子區(qū)間;如圖1,本發(fā)明的主要流程如下(1)當(dāng)子區(qū)間總數(shù)i = Io時,隨機(jī)從全光譜中挑選出k個不相同的子區(qū)間,作為初 始解X。(2)確定初始解χ后,退火溫度t從初始化溫度tQ開始,根據(jù)溫度衰減函數(shù)g ( α ) 徐徐降低,每當(dāng)溫度t降低時,程序執(zhí)行Lk次馬爾可夫鏈尋找當(dāng)前溫度對應(yīng)的優(yōu)化解。(3)搜尋優(yōu)化解的詳細(xì)過程如下在舊解χ包含的子區(qū)間和沒有選入χ的剩余子 區(qū)間中根據(jù)子區(qū)間交換函數(shù)h(t)進(jìn)行特征子區(qū)間交換,把交換子區(qū)間后得到的解稱為新 解y。(4)根據(jù)目標(biāo)函數(shù)分別計算舊解χ、新解y對應(yīng)的目標(biāo)函數(shù)值f(x)、f(y),將計算 所得的f (χ)、f (y)代入Metropolis準(zhǔn)則中判斷x、y的重要性,如果y為重要解,則用新解 y代替舊解χ執(zhí)行下一次馬爾科夫鏈;如果y不是重要解,則保持舊解χ不變并執(zhí)行下一次馬爾科夫鏈。(5)反復(fù)執(zhí)行步驟(4)的過程至退火溫度達(dá)到結(jié)束溫度tf時,保存子區(qū)間總數(shù)i=Io時對應(yīng)的最優(yōu)解,并按i = i+1的方式遞增。(6)按照相同步驟計算新子區(qū)間總數(shù)對應(yīng)的最優(yōu)解,重復(fù)上述過程直到子區(qū)間總 數(shù)i大于結(jié)束窗口寬度If。此時已經(jīng)得到了不同子區(qū)間總數(shù)i e [10,If]對應(yīng)的優(yōu)化解。(7)從這些優(yōu)化解中選擇目標(biāo)函數(shù)值f(x)最大的解記為xk,xk為近紅外光譜的 全局最優(yōu)特征子區(qū)間集合,下標(biāo)k為取得最優(yōu)解時對應(yīng)的子區(qū)間總數(shù)。(8)根據(jù)選出的全局最優(yōu)解建立校正集與預(yù)測集模型。圖2顯示了 Metropolis準(zhǔn)則判斷新解舊解重要性的過程。將新解轉(zhuǎn)移概率pt和 隨機(jī)概率密度函數(shù)r e
進(jìn)行比較,如果pt > r成立則表示新解被接受,否則維持舊 解不變。具體判斷過程如下(DMetropolis準(zhǔn)則首先計算舊解χ新解y對應(yīng)的目標(biāo)函數(shù) 值f(x)f(y) ; (2)生產(chǎn)隨機(jī)概率密度函數(shù)值r; (3)計算新解轉(zhuǎn)移概率pt ; (4)比較新解轉(zhuǎn) 移概率pt和隨機(jī)概率函數(shù)值r的大小,若pt大于或者等于r,則用新解代替舊解,否則,舊 解保持不變。根據(jù)此準(zhǔn)則可以得出如下Metropolis準(zhǔn)則不但可以接受優(yōu)化解,而且能夠 以一定的概率接受惡化解,為避免算法陷入局部最優(yōu)解提供了保障。圖3顯示了子區(qū)間交換函數(shù)h(t)隨退火溫度降低時的變化曲線,下面結(jié)合該圖顯 示說明該函數(shù)隨退火溫度的變化規(guī)律。設(shè)計子區(qū)間交換函數(shù)h(t) =6(l-eXp(-t/50))指 定根據(jù)舊解產(chǎn)生新解時,需要交換的子區(qū)間的個數(shù)。圖3中橫坐標(biāo)為退火溫度,縱坐標(biāo)為交 換的函數(shù)值。由于h(t)包含小數(shù),而子區(qū)間交換個數(shù)必須為整數(shù),因此定義子區(qū)間交換個 數(shù)η為h(t)+l的整數(shù)部分。從圖3中可以看出,隨著退火溫度逐漸降低,h(t)逐漸變小。 如此設(shè)計該函數(shù)是基于如下原因,在模擬退火算法優(yōu)選特征子區(qū)間的前期,搜索的初始解 是隨機(jī)產(chǎn)生的,因此該初始解的質(zhì)量是不確定的,為了讓初始解向全局最優(yōu)解靠近,需要擴(kuò) 大搜索方向,也就是要求解進(jìn)行大面積的交換,所以要求較大的子區(qū)間交換數(shù);而在優(yōu)選特 征子區(qū)間的后期,解經(jīng)過前期大量的交換、Metropolis準(zhǔn)則判斷驗證,解的質(zhì)量已經(jīng)較高, 只要求較小的交換子區(qū)間以達(dá)到更好的質(zhì)量,所以只要較小的子區(qū)間交換數(shù)就可以滿足要 求,綜合上述原因,本發(fā)明設(shè)計了該函數(shù),該函數(shù)的特征是在溫度較高時,對應(yīng)較大的子區(qū) 間交換個數(shù),而在溫度較低時,對應(yīng)較小的子區(qū)間交換個數(shù)。
權(quán)利要求
一種基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法,其特征是采用如下步驟1)對近紅外光譜進(jìn)行預(yù)處理,包括對校正集和預(yù)測集樣本的劃分,將預(yù)處理后的近紅外光譜的全光譜劃分為k個子區(qū)間;2)采用模擬退火算法選擇最佳特征子區(qū)間的個數(shù)及組合方式,選擇完成后遞增子區(qū)間數(shù);3)重復(fù)執(zhí)行模擬退火算法,在模擬退火算法結(jié)束時比較各種區(qū)間劃分方式時的特征子區(qū)間最優(yōu)組合,得到全局最優(yōu)特征子區(qū)間組合;4)根據(jù)全局最優(yōu)特征子區(qū)間組合建立校正集與預(yù)測集模型。
2.根據(jù)權(quán)利要求1所述的基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法,其特 征是步驟1)將全光譜劃分為k個子區(qū)間時,若總波數(shù)點數(shù)除以k等于n,存在余數(shù)m,則前 m個子區(qū)間中每個子區(qū)間波數(shù)點個數(shù)為n+1,剩余子區(qū)間中每個子區(qū)間波數(shù)點個數(shù)為η。
3.根據(jù)權(quán)利要求1所述的基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法,其特 征是用模擬退火算法選擇最佳特征子區(qū)間的個數(shù)及組合方式時需設(shè)置的參數(shù)有最小子 區(qū)間數(shù)Ιο、最大子區(qū)間數(shù)If、目標(biāo)函數(shù)f (χ)、初始化溫度、、溫度衰減函數(shù)g( α )、結(jié)束溫度 tf、馬爾可夫鏈長度Lk和Metropolis接受新解準(zhǔn)則,
4.根據(jù)權(quán)利要求3所述的基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法,其特 征是所述模擬退火算法的步驟包括(1)將全光譜劃分為k個子區(qū)間,溫度為t=、時,隨機(jī)選擇m個子區(qū)間作為舊解χ ;(2)在舊解χ和未選中的k-m個子區(qū)間中,根據(jù)子區(qū)間交換函數(shù)交換子區(qū)間后產(chǎn)生新解y ;(3)計算新解y、舊解χ的目標(biāo)函數(shù)值;(4)根據(jù)(3)的計算結(jié)果,采用Metropolis接受新解準(zhǔn)則判斷新解y、舊解χ的重要性;(5)判斷迭代次數(shù)是否等于馬爾可夫鏈長度Lk,如果不等于則重復(fù)步驟(2) (5);否 則執(zhí)行下步驟(6);(6)根據(jù)溫度衰減函數(shù)g(α )降低冷卻溫度t ;(7)判斷是否達(dá)到結(jié)束溫度、,沒有達(dá)到結(jié)束、則重復(fù)執(zhí)行⑵ (7),否則執(zhí)行步驟(8);(8)遞增光譜子區(qū)間個數(shù),重復(fù)執(zhí)行(2) (8),直至計算完最大光譜子區(qū)間數(shù)后進(jìn)入 步驟(9);(9)返回最佳子區(qū)間數(shù)和入選的特征子區(qū)間。
5.根據(jù)權(quán)利要求4所述的基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法,其特 征是步驟(4)中判斷新解y、舊解χ的重要性的方法是將新解轉(zhuǎn)移概率Pt和隨機(jī)概率密 度函數(shù)r e
進(jìn)行比較,若Pt >r成立則表示新解被接受,否則維持舊解不變。
6.根據(jù)權(quán)利要求4所述的基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法,其特 征是步驟(2)中的子區(qū)間交換函數(shù)的特性為在退火溫度較高時對應(yīng)較大的子區(qū)間交換 個數(shù),在退火溫度較低時對應(yīng)較小的子區(qū)間交換個數(shù)。
全文摘要
本發(fā)明公開了一種對農(nóng)產(chǎn)品或食品品質(zhì)進(jìn)行分析的基于模擬退火算法的近紅外光譜波長子區(qū)間選擇方法,先對近紅外光譜進(jìn)行預(yù)處理,將預(yù)處理后的近紅外光譜的全光譜劃分為k個子區(qū)間;采用模擬退火算法選擇最佳特征子區(qū)間的個數(shù)及組合方式,選擇完成后遞增子區(qū)間數(shù);再重復(fù)執(zhí)行模擬退火算法,結(jié)束時比較各種區(qū)間劃分方式時的特征子區(qū)間最優(yōu)組合得到全局最優(yōu)特征子區(qū)間組合;最后建立校正集與預(yù)測集模型。本發(fā)明光譜子區(qū)間的劃分科學(xué)、合理;采用Metropolis準(zhǔn)則判斷新入選子區(qū)間的重要性,保證了算法快速收斂,避免了算法陷入局部最優(yōu)解而錯過全局最優(yōu)解;減少建模計算量、加快建模速度,在得到全局最優(yōu)解的前提下快速地獲取到高質(zhì)量的近紅外光譜模型。
文檔編號G06F19/00GK101807228SQ20101012394
公開日2010年8月18日 申請日期2010年3月12日 優(yōu)先權(quán)日2010年3月12日
發(fā)明者殷曉平, 石吉勇, 蔡建榮, 趙杰文, 鄒小波, 陳全勝, 陳正偉, 黃星奕 申請人:江蘇大學(xué)