首页> 中国专利> 基于模拟退火算法的近红外光谱波长子区间选择方法

基于模拟退火算法的近红外光谱波长子区间选择方法

摘要

本发明公开了一种对农产品或食品品质进行分析的基于模拟退火算法的近红外光谱波长子区间选择方法,先对近红外光谱进行预处理,将预处理后的近红外光谱的全光谱划分为k个子区间;采用模拟退火算法选择最佳特征子区间的个数及组合方式,选择完成后递增子区间数;再重复执行模拟退火算法,结束时比较各种区间划分方式时的特征子区间最优组合得到全局最优特征子区间组合;最后建立校正集与预测集模型。本发明光谱子区间的划分科学、合理;采用Metropolis准则判断新入选子区间的重要性,保证了算法快速收敛,避免了算法陷入局部最优解而错过全局最优解;减少建模计算量、加快建模速度,在得到全局最优解的前提下快速地获取到高质量的近红外光谱模型。

著录项

  • 公开/公告号CN101807228A

    专利类型发明专利

  • 公开/公告日2010-08-18

    原文格式PDF

  • 申请/专利权人 江苏大学;

    申请/专利号CN201010123945.4

  • 申请日2010-03-12

  • 分类号G06F19/00(20060101);G01N21/35(20060101);

  • 代理机构32207 南京知识律师事务所;

  • 代理人汪旭东

  • 地址 212013 江苏省镇江市学府路301号

  • 入库时间 2023-12-18 00:39:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-07-04

    授权

    授权

  • 2010-10-06

    实质审查的生效 IPC(主分类):G06F19/00 申请日:20100312

    实质审查的生效

  • 2010-08-18

    公开

    公开

说明书

技术领域

本发明涉及一种对农产品或食品品质进行分析的近红外光谱特征波长特征子区间选择方法,特指基于模拟退火算法的近红外光谱波长特征子区间的选择方法。

背景技术

目前,近红外光谱技术在农产品、食品品质分析方面的运用越来越广泛。但近红外技术本身也存在一定的不足,如背景复杂、信息强度低,谱峰重叠等,使得难以用常规的谱图解析方法解析近红外光谱,如何有效的从大量近红外光谱数据中提取特征信息成为了国内外学者研究的重点。样品在近红外光谱的某个或者某几个波段发生特征吸收,决定了高信息量波数点邻近的波数点也具有较高的信息量,即近红外光谱数据具有一定的连续相关性。根据近红外光谱数据的这一特点,兼顾减少波长选择算法计算量,提高算法效率等要求,通常将近红外全光谱分成若干个子区间,以区间为单位进行波长选择。经典光谱区间选择算法有间隔偏最小二乘法,该算法是将全光谱分成若干个子区间,分别计算各个子区间的交互验证均方根误差RMSECV(Root Mean Square of Cross Validation),将交换验证均方根误差最小的一个区间作为建模区间。间隔偏最小二乘算法的衍生算法有联合区间偏最小二乘法、向前/向后区间偏最小二乘算法、移动窗口偏最小二乘等,同经典区间偏最小二乘算法相比,衍生算法不仅考察单一区间,还有几个区间的联合。这些算法虽然能提取光谱的特征信息,但划分子区间的过程具有一定的主观性,同时,区间组合方式单一,不能确保得到全局最优组合。

模拟退火算法(SAA)是一种适合解决大规模组合化问题,特别是NP完全类问题的通用有效近似算法,具有描述简单、使用灵活、运用广泛、运行效率高和受初始解约束小等有点。

发明内容

为了克服上述技术的不足,本发明提出一种基于模拟退火算法的食品、农产品近红外光谱波长特征子区间选择方法,可客观地划分子区间,区间组合方式不单一,确保得到全局最优组合。

本发明采用的技术方案是包含如下步骤:先对近红外光谱进行预处理,包括对校正集和预测集样本的划分,将预处理后的近红外光谱的全光谱划分为k个子区间;采用模拟退火算法选择最佳特征子区间的个数及组合方式,选择完成后递增子区间数;再重复执行模拟退火算法,在模拟退火算法结束时比较各种区间划分方式时的特征子区间最优组合,得到全局最优特征子区间组合;最后根据全局最优特征子区间组合建立校正集与预测集模型。

本发明的有益效果是:

1、通过窗口动态递增解决了间隔偏最小二乘建模过程人工划分光谱子区间带来的不足,使得光谱子区间的划分更具科学、合理。

2、采用Metropolis准则判断新入选子区间的重要性,既保证了算法快速收敛,同时又避免了算法陷入局部最优解而错过全局最优解。

3、农产品、食品近红外光谱经过模拟退火算法优选波长子区间后,能减少建模计算量、加快建模速度,在得到全局最优解的前提下快速的获取到高质量、效果更好近红外光谱模型。

附图说明

以下结合附图和具体实施方式对本发明作进一步详细说明。

图1是本发明流程图;

图2是Metropolis接受准则示意图;

图3是子区间个数交换函数图。

具体实施方式

本发明先对近红外光谱进行预处理,光谱预处理是为了消除数据采集过程中仪器信号漂移,环境条件波动引起的噪声,常用的光谱预处理方法有SNV(标准正交变换)、MSC(多元散射校正)、小波变换等,同时光谱预处理过程还包括对校正集和预测集样本的划分。

光谱预处理后,将全光谱划分为k个子区间,如果总波数点数除以k等于n,存在余数m,则前m个子区间中每个子区间波数点个数为n+1,剩余子区间中每个子区间波数点个数为n。将全光谱划分为k个子区间时,采用模拟退火算法选择最佳特征子区间的个数及组合方式,得到特征子区间的最优组合,完成后递增光谱子区间数,再重复执行模拟退火算法,并在算法结束时比较各种区间划分方式时的特征子区间的最优组合,从而得到全局最优特征子区间组合,并给出建模结果。

本发明在用模拟退火算法选择最佳特征子区间的个数及组合方式时,需设置以下参数

最小子区间数Io:指至少将全光谱划分为Io个子区间。

最大子区间数If:指至多将全光谱划分为If个子区间。

目标函数f(x):目标函数的作用是判断当前解x的质量,一般情况下f(x)值越高,代表当前解x的质量越好。本模拟退火算法的目标是优选特征子区间,当前被选入所有特征子区间被看成是当前解x,目标函数f(x)定义为1/(1+RMSECV),其中RMSECV为选入的所有子区间PLS校正模型对应的交互验证均方根误差。

初始化温度t0:对应于固体退火过程中的初始温度,通常设置初始温度为200~1000度。

温度衰减函数g(α):用于控制固体退火过程中的温度冷却速率,通常设tk+1=tkg(α)=αtk,α取值范围通常为0.5~0.99。

结束温度tf:当退火温度达到结束温度时,固体将达到某一稳定状态,固体退火过程结束,一般设置退火温度tf为0度左右。

马尔可夫链长度Lk:指当温度为t时,算法搜索迭代的次数。

Metropolis(人名)接受新解准则:Metropolis准则根据旧解、新解对应的目标函数,判断旧解、新解中哪个解是重要解,如果新解被认为是重要解,则用新解取代旧解进入下一次迭代;反之则维持旧解不变。本发明针对优选特征子区间,第m次迭代过程中选入了k个子区间,记为旧解x,在第m+1次迭代过程中,在旧解x的基础上替换少数子区间得到新解y;旧解x、新解y对应的目标函数值分别为f(x)和f(y),那么Metropolis准则基于如下规则判断旧解x、新解y的重要性:当f(y)>f(x)时,新解为重要解,否则判断下式是否成立,其中Pt是新解转移概率,r由范围为[0,1],的均匀概率密度函数随机产生;如果上式成立,则认为新解是重要解x,否则认为旧解是重要解y。

子区间交换函数h(t):随着退火温度逐渐降低,将向全局最优解逼近,模拟退火算法根据旧解产生新解过程中需要交换子区间的个数逐渐减少,设计如下子区间个数交换函数:h(t)=1-exp(-t),当温度由t降低至tn+1时,对应子区间交换个数分别为c和cn+1,它们与交换函数的关系由以下公式确定:cn+1=ch(t)。

本发明在以上参数设置的基础上,按如下步骤实施模拟退火算法:

(1)将全光谱划分为k个子区间,温度为t=t0时,随机选择m个子区间作为旧解x;

(2)在旧解x和未选中的k-m个子区间中,根据子区间交换函数交换子区间后产生新解y;

(3)计算新解y、旧解x的目标函数值;

(4)根据(3)的计算结果,采用Metropolis接受新解准则判断新解y、旧解x的重要性;

(5)判断迭代次数是否等于马尔可夫链长度Lk,如果不等于则重复步骤(2)~(5);否则执行下步骤(6);

(6)根据温度衰减函数g(α)降低冷却温度t;

(7)判断是否达到结束温度tf,没有达到结束tf则重复执行(2)~(7),否则执行步骤(8);

(8)递增光谱子区间个数,重复执行(2)~(8),直至计算完最大光谱子区间数后进入步骤(9);

(9)返回最佳子区间数和入选的特征子区间;

如图1,本发明的主要流程如下:

(1)当子区间总数i=Io时,随机从全光谱中挑选出k个不相同的子区间,作为初始解x。

(2)确定初始解x后,退火温度t从初始化温度t0开始,根据温度衰减函数g(α)徐徐降低,每当温度t降低时,程序执行Lk次马尔可夫链寻找当前温度对应的优化解。

(3)搜寻优化解的详细过程如下:在旧解x包含的子区间和没有选入x的剩余子区间中根据子区间交换函数h(t)进行特征子区间交换,把交换子区间后得到的解称为新解y。

(4)根据目标函数分别计算旧解x、新解y对应的目标函数值f(x)、f(y),将计算所得的f(x)、f(y)代入Metropolis准则中判断x、y的重要性,如果y为重要解,则用新解y代替旧解x执行下一次马尔科夫链;如果y不是重要解,则保持旧解x不变并执行下一次马尔科夫链。

(5)反复执行步骤(4)的过程至退火温度达到结束温度tf时,保存子区间总数i=Io时对应的最优解,并按i=i+1的方式递增。

(6)按照相同步骤计算新子区间总数对应的最优解,重复上述过程直到子区间总数i大于结束窗口宽度If。此时已经得到了不同子区间总数i∈[I0,If]对应的优化解。

(7)从这些优化解中选择目标函数值f(x)最大的解记为xk,xk为近红外光谱的全局最优特征子区间集合,下标k为取得最优解时对应的子区间总数。

(8)根据选出的全局最优解建立校正集与预测集模型。

图2显示了Metropolis准则判断新解旧解重要性的过程。将新解转移概率pt和随机概率密度函数r∈[0,1]进行比较,如果pt>r成立则表示新解被接受,否则维持旧解不变。具体判断过程如下:(1)Metropolis准则首先计算旧解x新解y对应的目标函数值f(x)f(y);(2)生产随机概率密度函数值r;(3)计算新解转移概率pt;(4)比较新解转移概率pt和随机概率函数值r的大小,若pt大于或者等于r,则用新解代替旧解,否则,旧解保持不变。根据此准则可以得出如下:Metropolis准则不但可以接受优化解,而且能够以一定的概率接受恶化解,为避免算法陷入局部最优解提供了保障。

图3显示了子区间交换函数h(t)随退火温度降低时的变化曲线,下面结合该图显示说明该函数随退火温度的变化规律。设计子区间交换函数h(t)=6(1-exp(-t/50))指定根据旧解产生新解时,需要交换的子区间的个数。图3中横坐标为退火温度,纵坐标为交换的函数值。由于h(t)包含小数,而子区间交换个数必须为整数,因此定义子区间交换个数n为h(t)+1的整数部分。从图3中可以看出,随着退火温度逐渐降低,h(t)逐渐变小。如此设计该函数是基于如下原因,在模拟退火算法优选特征子区间的前期,搜索的初始解是随机产生的,因此该初始解的质量是不确定的,为了让初始解向全局最优解靠近,需要扩大搜索方向,也就是要求解进行大面积的交换,所以要求较大的子区间交换数;而在优选特征子区间的后期,解经过前期大量的交换、Metropolis准则判断验证,解的质量已经较高,只要求较小的交换子区间以达到更好的质量,所以只要较小的子区间交换数就可以满足要求,综合上述原因,本发明设计了该函数,该函数的特征是:在温度较高时,对应较大的子区间交换个数,而在温度较低时,对应较小的子区间交换个数。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号