[发明专利]基于有导向模型变异的深度学习库测试方法有效
申请号: | 202011153213.X | 申请日: | 2020-10-26 |
公开(公告)号: | CN112183749B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 陈俊洁;闫明;王赞;刘爽;张栋迪 | 申请(专利权)人: | 天津大学 |
主分类号: | G06N3/08 | 分类号: | G06N3/08;G06N3/0464;G06N3/126 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 李素兰 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 导向 模型 变异 深度 学习 测试 方法 | ||
1.一种基于有导向模型变异的深度学习库测试方法,其特征在于,该方法包括以下步骤:
步骤一:进行算法初始化,即:对于给定的初始模型和给定的一组DL库,首先加载输入数据集和初始模型到内存中,获取输入数据集在使用初始模型时在所有DL库下输出的预测概率向量(O1,O2,......,Om),并基于公式(3)、公式(4)计算不同DL库下的输出的预测概率向量之间的D_MAD值,将初始模型加入到种子池作为初代种子;模型在DL库J和DL库K下输出的预测概率向量分别为OJ和OK,D_MAD的值;
公式(3)计算预测概率向量O和事实向量G的差异值;
其中,oi和gi分别表示向量O和G对应位置的元素,m表示向量中元素的个数,i表示求和公式中的任一元素索引;
公式(4)基于公式(3)来计算D_MAD的值;
其中,G为事实向量,OJ和OK表示模型在DL库J和DL库K下输出的预测概率向量;
步骤二:生成基于启发式索策略的变异模型,即:在每一次迭代中,依据优先级分数分别选择当前迭代所需的种子模型和变异规则;在种子模型选择阶段,首先根据公式(5)计算种子池中所有种子的优先级分数;基于公式(6)计算对应的种子模型此轮迭代被选中的概率值;在种子模型选择阶段,采用轮盘选择策略依据各个种子模型的概率值来选出所需种子模型;在变异规则的选择阶段,依据上轮迭代选择的变异规则,通过公式(7)计算出各个变异规则的优先级分数,基于公式(8)所表示的MH算法来计算当前阶段所需变异规则;在种子模型选择和变异规则选择完毕之后,将变异规则应用到种子模型上,生成变异模型;当获得100个变异模型之后,算法过程终止;
针对种子模型的优先级分数来衡量模型在下一迭代中被选择的优先级大小如公式(5)所示:
其中,ci表示种子模型si在历史迭代中被选择进行变异的次数;
种子模型在历史上的被选中的次数越少,其在下一迭代中的优先级分数越高;
基于轮盘选择策略来选择下一迭代的种子模型,选择概率pi计算如公式(6)所示:
根据种子模型si的分数值scorei计算其在下一次迭代中的被选中进行变异的概率pi,而后利用轮盘选择策略来选择用于变异的种子模型,其中,r表示种子池中模型的数量,k表示当前种子池中任一种子模型的索引;
对于每个变异规则MU,使用Ration(MU)表示被选择的优先级分数,计算方法如公式7所示:
其中,amplify_time表示使用MU生成的模型相比种子模型提升了DL库之间不一致性的次数,total_time表示选择MU进行变异的总次数;
假定每个试验的成功概率为p,则第k次试验为首次成功的概率为Ps(X=k)=(1-p)k-1p,在选择MUa的情况下,选择MUb的可能性计算如公式(8)所示:
其中,ka和kb表示MUa和MUb在变异规则按照优先级分数排序中的次序数,
当PS(MUb)>PS(MUa)时,Pa(MUb|MUa)=1,如果无法成功使用选择的变异规则对种子模型进行变异,该变异规则会被跳过;
步骤三:基于差异测试,设计三种具体测试预言策略进行不一致性缺陷计算,即:在对种子模型MS应用变异规则产生变异模型Mm之后,获取该模型在不同的DL库下输出的预测概率序列向量,使用公式(3)、公式(4)计算每个输入在不同的DL库组合之间输出的预测概率向量之间的D_MAD值;通过判定该变异模型Mm相比种子模型MS放大不一致性程度的情况来决定是否将该模型放入种子池;具体判定过程为:输入给定的一组{I1,I2,......,In)和给定的一组DL库{L1,L2,......,Lm},表示对于所有输入,模型M在所有DL库的两两组合下的输出之间的不一致数值的累计,如果满足ACC(Mm)>ACC(Ms),则称Mm相比Ms放大了不一致性;在每次迭代结束时,将相比种子模型提升了不一致性程度的变异模型放入种子池中供下一迭代使用;同时,更新种子模型和变异规则对应的优先级分数;
步骤四:进行缺陷定位,实现DL库内部存在的不一致性缺陷、崩溃缺陷和NaN缺陷检测,即:对于崩溃缺陷和NaN缺陷,对模型在不同DL库下的输出进行实时检测:当检测到模型仅在部分DL库下输出为NaN形式而不是正常的数值形式,或者程序仅在部分DL库下运行崩溃时,报告有崩溃缺陷或NaN缺陷检出;对于DL库内部存在的不一致性缺陷,采用CRADLE定位方法:对于不一致性大于阈值t的三元组其中M表示某一模型,I表示输入,Li、Lj表示后端i和后端j;在多个DL库之间进行投票来决定出错的DL库;对于每种不一致缺陷,启动定位过程,逐个比较每一层在不同DL库下输出的差异来定位最可疑的层,并标记为DL库中的缺陷。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011153213.X/1.html,转载请声明来源钻瓜专利网。