Exploiting Hybrid Kernel-Based Fuzzy Complementary Mutual Information for Selecting Features
-
摘要:
模糊粗糙集理论目前在数据挖掘和机器学习等领域受到了广泛的关注. 该理论提供了一种能克服离散化问题的有效工具,并能直接应用于数值或混合属性数据. 在模糊粗糙集模型中,定义模糊关系来测量对象之间的相似性,数值属性值不再需要离散化. 模糊粗糙集理论已经被成功应用于许多领域,如属性约简、规则提取、聚类分析和离群点检测. 信息熵被引入到模糊粗糙集理论进行模糊和不确定信息的表示,产生了不同形式的模糊不确定性度量,如模糊信息熵、模糊补熵和模糊互信息等. 然而,大部分所提关于决策的模糊互信息都是非单调的,这可能导致一个不收敛的学习算法. 为此,基于混杂核模糊补熵,定义了关于决策的模糊补互信息,证明了其随特征呈单调性变化. 进而,利用混杂核模糊补互信息探索特征选择方法并且设计了相关的算法. 实验结果展示了在大多数情况下所提算法可以选取更少的特征且能保持或提高分类准确率.
Abstract:Fuzzy rough set theory is currently receiving a lot of attention in the fields of data mining and machine learning. The theory provides an effective tool to overcome the discretization problem and can be applied directly to numerical or mixed attribute data. In the fuzzy rough set model, fuzzy relations are defined to measure the similarity between objects and numerical attribute values no longer need to be discretized. The theory has been successfully applied to many fields such as attribute reduction, rule extraction, cluster analysis and outlier detection. Information entropy has been introduced into fuzzy rough set theory for the representation of fuzzy and uncertainty information, resulting in different forms of fuzzy uncertainty measures such as fuzzy information entropy, fuzzy complementary entropy, and fuzzy mutual information. However, most of the proposed fuzzy mutual information on decisions is non-monotonic, which may lead to a non-convergent learning algorithm. To this end, the fuzzy complementary mutual information on decisions is defined based on the hybrid kernel fuzzy complementary entropy, which is shown to vary monotonically with features. Then, the feature selection method is explored by using the hybrid kernel-based fuzzy complementary mutual information and a corresponding algorithm is designed. Experimental results show that the proposed algorithm can select fewer features and maintain or improve the classification accuracy in most cases.
-
如今,无论是生产软件还是科学计算应用都变得越来越复杂,其中软件包含的大量库依赖项以及复杂的控制和数据流使得软件效率难以得到保证. 并且,如此高的复杂性很容易导致意料之外的低执行效率,从而阻碍软件达到最佳性能. 软件效率低下往往涉及冗余操作,例如从内存中反复加载相同的值[1]、写入从未使用过的值[2]、使用从未使用过的中间值来覆盖同一位置的值[3]以及重复计算相同的值[4-5]. 此外,大量的应用将稀疏数据作为输入,而使用稠密数据结构处理该稀疏数据将会导致资源的大量浪费[6-8]. 以往的研究已经证明上述低效率的根本原因之一是一些指令和数据结构经常处理冗余零[9].
目前已经有大量的真实应用报告了大量冗余零的存在并对其进行针对性优化来达到更好的效果. 例如在深度神经网络领域,研究人员[7-8]已经提出了软件或者硬件的优化方法来实现对神经网络中稀疏性的自动检测以及特定的稀疏优化来达到更好的性能;在视频编码领域,研究人员[6]提出了一些全0块(all-zero block)检测方法来跳过这些块的计算从而达到更高的性能. 而这些方法都是针对特定领域上的工作,并不能对其他领域的应用提供冗余零的检测或优化指导.
此外,现代编译器优化无法识别访存和计算操作中涉及的冗余零以进行进一步的代码优化. 而诸如perf[10], HPCToolkit[11], VTune[12], Gprof[13], CrayPat[14], Oprofile[15]这些性能分析工具也不会识别与冗余零相关的低效率行为,从而无法提供相应的优化指导. ZeroSpy[9]虽然能够正确识别冗余零相关的低效行为并给出相应的指导建议,其检测方法仍然局限于Intel平台,且不支持目前逐渐流行的ARM计算平台. 此外,ZeroSpy的高性能开销也大大加剧了真实应用的性能分析开销. 而目前ARM架构在高性能领域已经越来越受到重视,在Top500中取得世界第一性能的富岳超级计算机[16]的中央处理器就是基于ARMv8架构设计的,而目前并没有一款编译器或性能分析工具可以在ARM平台识别冗余零相关的低效行为,从而错失大量潜在的性能优化机会.
因此,本文提出了DrZero[17],它是一款基于冗余零检测的可跨平台的、具有更低分析开销的性能分析工具. DrZero实现了一种检测应用程序执行过程中冗余零的方法,包括:1)识别由于数据结构使用不当、数据宽度过大以及无用计算造成的冗余零;2)提示冗余零发生的源代码行与执行上下文来提供直观的优化指导;3)依据应用检测出的冗余零信息进行针对性优化显著提高应用的执行性能或能效. 此外,DrZero基于Dynamorio二进制动态插桩框架[18]实现,并通过基于数据流分析的数据类型推断来识别ARM访存指令读取的数据类型,以及实现在线细粒度缓存迹分析方法来进一步减少性能开销. 相较于ZeroSpy,DrZero支持跨平台的冗余零检测,并拥有更低的开销以及更加友好的报告界面来提示足够充分的冗余零信息以及对应的优化建议.
1. 冗余零的定义与来源
类似文献[9]中所提出的冗余零定义,本文也使用冗余映射(redmap)以及冗余零比例(redundant zeros fraction)作为冗余零的检测目标. 其中,冗余零为指令读取值的高位0值,因此理论上完全消除冗余零对值的表达与计算的正确性不会造成任何影响. 因此高冗余零比例表示具有较大的优化空间,冗余映射则展现读取值的模式,从而为优化策略的设计提供参考. 其中,冗余零主要来自3个方面:数据宽度过大、数据结构使用不当以及0值相关的无用计算.
1)数据宽度过大是造成访存过程中某个指令或者从某个数据对象读取的值中高位字节总是为0 的主要原因之一. 例如,访存指令频繁地从内存读取64b 整型值(占8B),且该值的高7B总是为0,即该访存指令访问了大量的冗余零. 造成该冗余零现象的主要原因就是数据宽度过大,该数据使用8b整型(占1B)即可保证数值的等价性,而不必使用过长的64b整型来存储、访问该数据. 这些冗余零会造成有限的多级缓存资源的浪费,从而造成潜在的性能损失.
2)使用不当的数据结构也会造成大量的冗余零,从而造成大量的资源浪费. 如图1所示,使用稠密数据结构与稠密算法对该稀疏数据进行处理会造成大量的完全冗余零. 而如果应用稀疏数据结构以及对应的稀疏算法会大幅度减少存储、访存开销,并避免大量无用的0值相关的计算,从而得到更好的性能.
3)0值相关的无用计算则是另一类常见的冗余零来源. 图2展示了bwaves应用程序中0值相关的无用计算示例代码. 通过DrZero检测以及人工插桩等细致分析后,该示例代码中u,v,w这3个变量常常读取完全冗余零(0值),从而进一步造成在计算mu变量值时引入繁重的0值相关的无用计算. 0值相关的无用计算并不是所有的冗余零都值得进行优化,原则上高冗余零比例的、复杂且高计算开销的操作更加值得进一步优化.
2. 相关工作
值得注意的是,传统的基于硬件计数器的性能分析工具[10-15,18]往往由于其中存在的大量冗余访存与计算反而会充分利用硬件资源,从而得到较好的性能结果. 因此,若含有大量冗余零的访存、计算操作浪费了大量资源,基于硬件计数器的性能分析工具并不能有效地识别类似冗余零的资源浪费导致的软件低效行为,从而无法给出有效的优化建议.
值分析器(value profiler)的开发是为了查明软件中含有的冗余计算. 值分析器最早由Calder等人[19]提出,它可以检测程序代码并查明存储在寄存器或存储器中的不变变量或半不变变量. 其后续研究提出了此值分析器的一种变体[20]. Wen等人[4]开发了一种细粒度的探查器(RedSpy)来识别静默写入(scilent writes)并给出相关指导优化. RedSpy不但检测到计算结果以及数据移动中的冗余,还可以通过报告调用上下文及其在源代码中的位置来报告冗余,从而精确定位冗余代码区域. 此外,Su等人[1]开发了另一个细粒度的探查器LoadSpy,以识别软件中的冗余负载,他们声称,在软件的指令中加载相同的值效率很低. LoadSpy跟踪每个加载指令以查明这些冗余负载,并报告涉及冗余负载的指令对. 此外,Tan等人[21]开发了CIDetector,并证明即使使用现代的优化编译器,无效操作和冗余操作仍然存在. ZeroSpy[9]可以查明与零相关的冗余算术和内存操作,但ZeroSpy基于Intel Pin[22]实现,且ARM指令集与x86指令集不同,访存与计算是分离的,所以不能通过指令来识别访问内存数据的类型. 因此,ZeroSpy的检测方法与实现手段都局限在Intel平台,不能直接应用在跨平台冗余零检测中.
另外,有一些方法致力于通过减少数据类型的长度来利用冗余零. Stephenson等人[23]提出了一种位宽分析方法来静态标识变量的最大所需位宽,从而尽可能减少数据类型的长度. 当在目标FPGA平台上进行评估时,他们的方法可能对面积、速度和功耗产生积极影响. 另一方面,Precimonious[24]工具可用来权衡浮点精度和性能. 这些方法与工具都只能检测数据长度中的冗余,而DrZero还可以检测不适当的数据结构以及零相关导致的冗余计算. 此外,DrZero也不需要任何源代码即可进行冗余零检测.
3. 冗余零检测方法
本文提出并实现了针对冗余零的跨平台细粒度性能分析工具DrZero. 具体来讲,DrZero基于Dynamorio动态二进制插桩框架[25]实现. 相较ZeroSpy选用的Intel Pin[22],Dynamorio具有可跨平台(支持x86与ARM)、支持细粒度的分析与插桩、开源等特性,从而可以支持跨平台更加细粒度的插桩、分析工具. Dynamorio框架是基于事件来触发分析与插桩过程,例如线程启动和终止、基础块载入等事件. 当事件发生时,Dynamorio会触发初始化时注册的回调函数来对目标事件进行分析、插桩. 其中,当基础块载入事件发生时,Dynamorio可以获取该基础块将要执行的所有指令,因此DrZero基于各个基础块对所有包含内存读取操作的指令进行分析,并进行基础块级别的动态二进制插桩. DrZero的跨平台冗余零检测技术总览如图3所示,包含:①基于数据流分析的数据类型推断;②细粒度缓存迹插桩与在线分析. 其中,根据检测目标的不同,在线分析又分为以代码为中心的分析模式和以数据为中心的分析模式. 在目标程序执行完毕后,DrZero会生成一系列报告文件,并通过定制的VSCode扩展来将冗余零报告可视化,并基于检测结果提供优化建议. 下文将对DrZero的各个核心技术进行详细讲解.
3.1 基于数据流的数据类型推断
与x86指令集不同,ARM指令集集中访存与计算为不同的指令,即计算操作不能直接访问内存,而同一访存指令可能读取整型值或浮点值. 此外,通用寄存器除了保存整型值以外,也可能保存浮点值并在计算时移动到浮点寄存器来进行浮点计算,因此也不能只通过内存读取操作的目标寄存器类型来判断读取值是浮点值还是整型值. 为了解决上述挑战,DrZero采用基于数据流的数据类型推断来尽可能推断出读取值的数据类型,从而可以采用对应的冗余零分析策略来获取冗余映射以及冗余零比例.
基于数据流的数据类型推断算法如算法1所示. 由于数据类型中的数据宽度可以直接由访存宽度直接获取,因此算法1的主要目的在于推断该指令读取值是否为浮点数. 首先,算法1根据目标寄存器类型推断是否为浮点指令(行①). 如果目标寄存器为浮点寄存器则推断为浮点指令,返回真值. 由于本文主要关注访存指令中存在的冗余零现象,因此只在指令读取内存中的值时才进一步基于数据流进行推断(行②). 若该指令读取内存值,算法则枚举所有目标寄存器对象,并对每个目标寄存器对象查找该基础代码块中在该指令后执行的所有指令的源寄存器中是否存在定义-使用关系(行③~⑫),若存在,则返回使用目标寄存器的指令的类型(行⑬). 如果上述数据流分析过程都没有找到定义-使用关系,则返回先前推断的instr指令类型(行⑳).
算法1. 数据类型推断算法.
输入:目标访存指令instr;
输出:是否为浮点指令.
① bool is_float = instr_is_floating_self(instr);
② if(!is_float && instr_reads_memory(instr))
③ int num_dsts = instr_num_dsts(instr);
④ for(int i=0;i<num_dsts;++i)
⑤ opnd_t opnd = instr_get_dst(instr, i);
⑥ if(opnd_is_reg(opnd))
⑦ reg_id_t reg_def = opnd_get_reg(opnd);
⑧ for (instr_t* ins = instr;ins != NULL; ins = instr_get_next(ins))
⑨ int num_srcs = instr_num_srcs(ins);
⑩ for(int j=0;j<num_srcs;++j)
⑪ opnd_t opnd = instr_get_src(ins, j);
⑫ if (opnd_is_reg(opnd) &&
opnd_get_reg(opnd) == reg_def)
⑬ return instr_is_floating_self(ins);
⑭ end if
⑮ end for
⑯ end for
⑰ end if
⑱ end for
⑲ end if
⑳ return is_float.
在ARM平台上,算法1可以有效地识别大部分浮点数内存访问指令,从而应用适当的冗余零分析方法来建立冗余映射并识别冗余零. 但由于程序执行过程的不确定性,基础代码块最后的跳转指令的目标地址往往无法静态确定,因此基于数据流的数据类型推断仅受限于单个基础代码块,从而某些存在跨基础代码块的定义-使用关系的浮点值读取指令时可能仍会推断为读取整型值. 然而,由于时空局部性的存在,这些推断错误依旧可以认为是较少的,不会影响最终报告的冗余映射与冗余零比例.
3.2 在线细粒度缓存迹分析
为了分析得到所有访存操作读取内存值的冗余映射与冗余零信息,本文提出了在线细粒度缓存迹分析在细粒度缓存区中缓存一定量的访存操作信息并基于该缓存区进行针对冗余零的在线分析来检测冗余零导致的软件低效行为. 具体来讲,该过程主要分为4步:细粒度缓存区的创建、细粒度缓存迹插桩、细粒度缓存迹更新以及在线冗余零分析.
在工具初始化时,DrZero需要创建细粒度缓存区来保存程序运行过程中内存读取操作的信息,包括目标地址、调用上下文以及读取的值. 为了避免插桩后的代码执行时频繁检查读取值的数据类型从而造成繁重的分支操作,DrZero对每个可能的数据类型都建立缓存区,包括1b,2b,4b,8b整型值,单、双精度浮点值以及128b,256b整型向量,单、双精度浮点向量. 对于每个缓冲区,DrZero分配大小为4096个元素的缓冲区.
在目标应用程序执行时,Dynamorio会触发基础代码块载入事件. 在经过3.1节所述的数据类型推断后,DrZero向基础代码块中插入细粒度缓存迹更新以及在线冗余零分析代码. 由于读取内存值的数据类型可静态推断,DrZero根据推断的数据类型来插入相应的指令,向对应缓存区存储目标内存地址、调用上下文句柄(通过DrCCTProf[26]获取)以及读取值. 例如,图3中内存读取操作被推断为32b浮点类型(FP32),然后插入指令将相应信息缓存到FP32对应的细粒度缓存迹中以便后续在线分析. 此外,在每个基础代码块级别都需要静态推断各个细粒度缓存迹将要填充的数量,并对每个将要填充的细粒度缓存迹都在基础代码块入口进行插桩:
1) 插入指令,检查是否将满或溢出;
2) 插入条件跳转指令与函数调用,从而保证在将满或溢出时调用在线冗余零分析代码;
3) 在在线冗余零分析后清空该缓存迹.
在插桩完成后,Dynamorio将会负责执行插桩后的代码,因此所有内存读取操作的信息都会被记录到细粒度缓存迹中,并及时更新细粒度缓存迹,以及在将满或溢出时触发在线冗余零分析. 该过程也称为细粒度缓存迹更新. 在线冗余零分析过程根据检测模式的不同分为以代码为中心的在线分析和以数据为中心的在线分析. 由于具体DrZero的冗余零检测算法与ZeroSpy[9]中的冗余零检测算法类似,本文仅介绍在线分析的核心思想.
1) 以代码为中心(code-centric)的在线分析. 该分析过程旨在发现指令级别的冗余零现象,可以检测冗余零导致的无用计算以及数据宽度过长导致的资源浪费. 由于触发在线分析的细粒度缓存迹都已经静态确定其数据类型,在线分析过程中便不用检查其类型并直接进行冗余零检测. 在冗余零检测后,所有检测数据都被记录、累计在以调用上下文句柄为键值的散列映射表中.
2) 以数据对象为中心(data-centric)的在线分析.该分析过程旨在发现数据对象级别的冗余零现象,可以检测数据结构使用不当以及数据宽度过长的问题. 类似以代码为中心的在线分析,在线分析过程中不用检查其数据类型. 数据对象信息则在在线分析过程中通过缓存迹中的目标内存地址从DrCCTProf获取数据对象信息,包括静态数据对象的变量名以及动态数据对象分配时的调用上下文. 由于只有静态数据对象与动态数据对象可以获取到足够的调试信息以供后续优化,本文只对静态与动态数据对象进行冗余零检测与报告.
相较ZeroSpy[9]的检测方法,在线细粒度缓存迹分析拥有3点优势:1)尽可能避免频繁、高开销的算数状态保存操作;2)避免对每次内存读取的值进行分析、记录,从而减轻工具对应用的缓存污染;3)集中批处理冗余零检测与记录操作,具有更好的时空局部性.
3.3 冗余零报告与性能优化指导的可视化界面
为了更好地展示冗余零检测结果,DrZero提供基于VSCode的插件来将检测结果可视化. DrZero的性能报告分为总览(metric overview)和按线程划分的详细报告(detailed metrics). 如图4所示,ZeroSpy用户界面的总览页面分为全局整数冗余零字节(total integer redundant byte)以及全局浮点数冗余零字节(total floating point redundant byte)两个部分,并分别列出了冗余零与总访问字节. 此外,各个线程所统计的冗余零数量以及冗余零比例也可以在此页面查看. 按线程划分的详细报告则可通过图4中“detail”链接查看. DrZero可以分别生成以代码为中心的分析模式与以数据对象为中心的分析模式报告,其线程详细报告页面如图5所示.
1) 以代码为中心的分析模式. 如图5所示,各个线程的以代码为中心模式的报告页面分为整数冗余信息以及浮点冗余信息2个部分. 对于以代码为中心的模式报告,页面将会显示发生冗余的程序指令的记录,且每条记录是按照检测到的冗余字节数量从高到低排列. 对于每条记录,“Redundancy”是该指令的冗余零在所有检测到的冗余零中的比例,“local redundancy”则是该指令的冗余零在所有执行该特定指令检测到的冗余零中的比例. 使用者可以进一步点击每条记录以显示更多冗余零信息,包括完全冗余零占比、指令的冗余映射(从最低到最高). 此外,每条记录会给出包含源代码行号与文件路径的调用上下文信息,从而指导开发者进一步的代码优化.
2) 以数据对象为中心的分析模式. 如图5所示,各个线程的以数据对象为中心的模式报告页面同样分为整数冗余信息以及浮点冗余信息2个部分. 对于以数据对象为中心的模式报告,页面将会显示发生冗余的静态或动态数据对象的记录,且每条记录是按照检测到的冗余字节数量从高到低排列. 对于静态数据对象,每一条记录都会显示对象的名称,以帮助使用者在源代码中定位该静态数据对象. 对于动态分配的数据对象,报告会提供其调用上下文信息(CCT info)指示其动态数据对象创建的位置. 每条记录均会显示静态或动态数据对象的数据大小、以字节为单位的未访问数据比例信息以及冗余零比例信息. 此外,使用者还可以点击“redmap”字样以跳转到链接的数据对象的以字节为单位的冗余映射热力图,如图6所示.
4. 实验结果与分析
4.1 实验设置
本文使用如表1所示的x86和ARM实验平台对DrZero进行评测. 为了检验DrZero的跨平台冗余零检测的性能开销以及检测效果,本文选用NAS Parallel Benchmarks(NPB-3.4)[27]和Rodinia[28]基准测试程序集进行评测. 其中NPB基准测试使用C CLASS输入问题规模. 此外,为了评测实际应用规模的冗余零检测能力,本文也选用SPEC CPU2017[29]中的NAB生命科学应用(ref输入大小)以及Fotonik3D计算电磁学应用(ref输入大小)作为案例研究来详细讲解DrZero的冗余零检测结果以及优化流程. 所有程序都使用GCC 11.0-O3-g-fopenmp编译,并在单个CPU上(x86平台上14线程,ARM平台上32线程)并行执行.
表 1 x86和ARM评测平台详细软硬件配置信息Table 1. The Detailed Software and Hardware Configurations of Evaluated X86 and ARM Platform平台 x86 ARM 处理器 Xeon E5-2680v4@2.40GHz Cavium ThunderX2@2.50GHz 核数 14 32 内存 256GB DDR4 128GB DDR4 编译器 GCC 11.0 GCC 11.0 系统 Linux 5.8.0-55-generic #62~20.04.1-Ubuntu Linux 5.4.0-74-generic #83-Ubuntu 4.2 冗余零识别效果
DrZero在x86和ARM平台上的冗余零检测结果分别如表2和表3所示. 其中,CC表示以代码为中心的冗余零分析模式,其冗余零比例按照所有整数或浮点数累计的冗余零数量除以总访问字节数得到,CC数值越大表明执行过程中冗余零相关的冗余计算、资源浪费越严重;DC表示以数据为中心的冗余零分析模式,其冗余零比例按照所有数据对象中含有的冗余零数量除以所有数据对象的数量大小之和得到,DC数值越大表明数据对象的稀疏性越高或潜在的数据宽度过长问题越严重. 此外,在x86和ARM平台上DrZero使用以代码为中心(CC)以及以数据为中心(DC)的冗余零分析模式的评测,结果对比分别如图7、图8所示. 评测结果证明DrZero拥有跨平台检测冗余零导致的软件低效行为的能力. 此外,本文还展示了在x86平台上ZeroSpy与DrZero报告的冗余零比例的比较,如图7所示. 其中,由于ZeroSpy报告中冗余零比例在CC与DC模式下的计算方式相同,本文仅展示CC模式下的冗余零比例检测比较. DrZero在大部分测试程序中检测的冗余零比例与ZeroSpy相当. 然而,有些程序的冗余零比例则有较明显的差距(如heartwall). 通过细致分析发现,DrZero与ZeroSpy所检测的冗余零数量差别不大. 而由于Dynamorio不能完全识别所有的指令,DrZero可能会将有些特殊的访存指令识别为空指令(nop),从而大大低估了总访问字节数. 此外,通过图7所示的同一代码在不同平台上的冗余零比例对比,本文发现虽然某些代码在不同平台上展现一定的冗余零比例的一致性,但仍然有一些基准测试程序在同样的代码、不同平台下的冗余零情况具有较大的差异性(例如LU). 这表明x86和ARM指令集对程序的针对冗余零的低效行为拥有不同的敏感度. 不同指令集之间的冗余零发散现象需要进一步详细研究.
表 2 DrZero报告在x86平台上的冗余零比例以及检测分析开销Table 2. Fraction of Redundant Zero and Profiling Overheads Reported by DrZero on x86 Platform模式 名称及统计项 冗余零比例/% 时间开销 内存开销 模式 名称及统计项 冗余零比例/% 时间开销 内存开销 整数 浮点数 整数 浮点数 NPB CC BT 2.02 20.30 54.83 1.25 NPB DC BT 0.00 0.01 32.15 29.52 CG 10.38 0.00 19.33 1.14 CG 0.86 0.00 57.04 28.68 EP 5.44 0.00 15.61 6.88 EP 0.44 0.00 6.57 135.49 FT 2.46 0.00 18.18 1.02 FT 0.00 0.00 18.46 25.88 IS 22.96 0.00 14.40 1.17 IS 9.28 0.00 47.76 28.46 LU 6.06 12.11 24.94 1.28 LU 0.00 0.01 29.36 31.01 MG 10.33 7.38 4.45 1.03 MG 0.00 0.03 23.05 25.93 SP 4.09 1.64 23.10 1.22 SP 0.00 0.01 39.74 29.32 UA 23.54 5.08 33.98 1.47 UA 1.07 0.07 27.94 31.92 中位数 6.06 1.64 19.33 1.22 中位数 0.00 0.01 29.36 29.32 最大值 23.54 20.30 54.83 6.88 最大值 9.28 0.07 57.04 135.49 平均值 9.70 5.17 23.20 1.83 平均值 1.29 0.01 31.34 40.69 Rodinia CC 中位数 38.41 0.13 64.76 3.4 Rodinia DC 中位数 34.17 0.01 64.98 82.42 最大值 56.15 11.58 111.58 99.76 最大值 91.14 10.23 157.45 2480.46 CC 中位数 23.25 0.17 40.32 2.95 DC 中位数 21.72 0.01 44.02 58.91 平均值 24.47 2.83 45.31 7.96 平均值 27.14 2.71 54.20 188.40 表 3 DrZero报告在ARM平台上的冗余零比例以及检测分析开销Table 3. Fraction of Redundant Zero and Profiling Overheads Reported by DrZero on ARM Platform模式 名称及统计项 冗余零比例/% 时间开销 内存开销 模式 名称及统计项 冗余零比例/% 时间开销 内存开销 整数 浮点数 整数 浮点数 NPB CC BT 1.85 25.95 12.49 1.34 NPB DC BT 0.00 0.01 2.82 32.64 CG 12.74 0.00 4.29 1.16 CG 0.30 0.00 4.80 31.61 EP 3.65 0.00 5.65 4.65 EP 1.57 0.00 4.03 151.07 FT 0.44 0.00 7.96 1.03 FT OOM IS 28.15 0.00 6.04 1.08 IS 7.25 0.00 24.84 31.61 LU 70.53 1.69 4.47 1.39 LU 0.00 0.00 2.67 34.68 MG 7.61 11.51 4.90 1.05 MG 0.01 0.01 21.99 26.85 SP 3.99 1.52 5.23 1.30 SP 0.00 0.01 5.31 32.48 UA 29.74 2.14 6.86 1.68 UA 0.25 0.01 7.09 38.40 中位数 7.61 1.52 5.65 1.30 中位数 0.13 0.01 5.06 32.56 最大值 70.53 25.95 12.49 4.65 最大值 7.25 0.01 24.84 151.07 平均值 17.63 4.76 6.43 1.63 平均值 1.17 0.01 9.20 47.42 Rodinia CC 中位数 40.94 0.00 12.33 3.28 Rodinia DC 中位数 0.66 0.00 13.07 111.69 最大值 58.09 10.59 60.47 47.75 最大值 8.63 0.01 36.86 2794.66 CC 中位数 32.02 0.00 8.76 2.74 DC 中位数 0.53 0.00 10.20 55.68 平均值 30.21 2.51 14.12 6.06 平均值 1.28 0.00 13.40 265.52 4.3 性能与内存开销
本文评测的DrZero的性能与内存开销如表2与表3所示. 实验结果表明DrZero在x86平台上的以CC与DC性能开销的中位数分别为40.32倍与44.02倍. 与ZeroSpy所报告的性能开销的中位数64.17倍(CC)与99.52倍(DC)相比[9],DrZero的平均性能开销分别降低了37.2%和55.8%. 此外,在ARM平台,DrZero的CC和DC的平均性能开销仅为14.12倍和13.40倍,性能开销中位数则仅分别为8.76倍和10.20倍. DrZero的性能开销与常见的二进制插装工具[1-4]持平甚至更低,因此具有良好的应用前景.
ZeroSpy(x86平台运行)、DrZero-x86(x86平台上运行)以及DrZero-ARM(x86平台上运行)之间在以代码为中心的和以数据对象为中心的分析模式下的详细性能开销对比分别如图9与图10所示. 实验结果表明,本文提出的DrZero在大部分程序下CC和DC的性能开销都优于ZeroSpy,并且DrZero在ARM平台上相较在x86平台具有更低的性能开销. 更低的性能开销主要来自2个方面:1)DrZero调用上下文采集基于DrCCTProf实现,使用性能开销更低的指令内联方式来获取调用上下文,且DrCCTProf也针对ARM平台进行高度优化,因此DrZero调用上下文采集开销相较依赖Intel Pin的CCTLib[30]更低;2)DrZero的在线细粒度缓存迹分析方法可以有效避免冗余且高开销的频繁算数、寄存器状态缓存操作,从而带来可观的性能提升.
如图11所示,DrZero在CC模式下,在x86平台和ARM平台上内存开销都普遍低于ZeroSpy. 然而,如图12所示,DrZero在DC模式下则相反,其内存开销都普遍高于ZeroSpy. 具体情况如表2所示,DrZero在x86平台上的CC和DC的内存开销中位数分别为2.74倍和55.68倍. 相较ZeroSpy所报告的内存开销中位数4.47倍(CC)和6.56倍(DC),DrZero在CC模式下具有更低的内存开销(降低38.7%),而在DC模式下具有更高的内存开销(升高8.49倍). 经过进一步分析,DC模式下DrCCTProf[26] 为了更高的性能,将所有已静态、动态分配内存的数据对象的所有地址空间通过影射内存(shadow memory)方法按字节映射、存储其数据对象信息. 该方法相较ZeroSpy依赖的基于Intel Pin的CCTLib[30]支持的基于树的实现拥有更大的内存开销. 此外,由于需要DrZero的DC模式下的冗余零检测需要数据对象的起、止内存地址,在扩展DrCCTProf的数据对象信息实现后,每个数据对象在每个影射位需要存储的信息变为原来的3倍,使得内存开销问题变得更为严重,甚至在ARM平台上NPB FP会超出内存容量(out of memory,OOM)从而无法采集冗余零信息. 因此,未来工作需要提出更加内存友好且能保持低开销的数据对象采集方法来替代DrCCTProf的影射内存方法,以获取更低的内存开销.
4.4 NAB案例研究
NAB是一个包含在SPEC CPU2017基准测试套件[29]中的分子建模程序. NAB是生命科学模拟领域典型的计算密集型程序. 由于DrZero报告的NAB冗余零情况在x86和ARM平台上都类似,因此本文仅展示x86上的冗余零报告结果. DrZero的以代码为中心的冗余零分析模式检测出NAB包含11.52%的整数冗余零和6.57%的浮点冗余零. DrZero报告NAB中产生最多浮点冗余零的指令信息以及其对应于源代码中的位置如图13所示.
产生冗余零的代码区域如图14所示,其中
∗kappa 的值频繁为0. 由于完全冗余零的比例很高,本文使用基于条件判断的方法(如图15所示的if/else语句)来跳过处理冗余零的无用计算. 此外,该优化方法还可以通过在进入2个嵌套循环之前判断∗kappa 的值来进一步减少分支开销. 优化后的代码如图15所示,类似的优化也应用于具有类似冗余的其他代码区域. 经过我们的优化,NAB在x86平台实现9.7%的性能加速,ARM平台上实现6.08%的性能加速.4.5 Fotonik3D案例研究
Fotonik3D是一个包含在SPEC CPU2017基准测试套件[29]中的计算电磁学程序,其中包含了计算电磁学程序中常见的计算模式. Fotonik3D 使用麦克斯韦方程组的有限差分时域 (FDTD) 方法计算光子波导的传输系数. 在本文的评测中,Fotonik3D使用SPEC套件中提供的ref输入数据集进行评测. 由于Fotonik3D在x86和ARM上检测的冗余零含量类似,本文仅给出x86上的DrZero的冗余零检测结果. DrZero的以代码为中心的冗余零检测结果表明,Fotonik3D的执行过程中含有8.76%的整型冗余零以及32.30%的浮点冗余零. 通过进一步分析发现,其中数组Ex, Ey, Ez相关的计算都含有大量的完全冗余零. 具体情况如图16中左图所示,在计算过程中,数组Ex, Ey, Ez由大量完全冗余零构成,且其中大量x-z平面数据往往为0,即该数组是结构化稀疏的. 因此,稀疏数据使用稠密数据结构以及稠密算法是造成Fotonik3D应用程序中大量完全冗余零及其相关无用计算的根本原因.
为了优化并消除冗余零造成的冗余计算,本文针对该应用数据特点对结构化稀疏数据结构以及对应的算法进行设计. 如图16中右图所示,原Ex, Ey, Ez数组的三维数据存储格式由原来的(x, y, z)的存储顺序改为按照(x, z, y)顺序存储,使得x-z平面在内存中得以连续存储;此外,数组稀疏存储格式按照类似稀疏矩阵格式[31]进行存储,即数组中仅存储非零x-z平面,并将对应y轴方向上的坐标值记录在下标向量Indexy中. 经过本文所提出的优化,Fotonik3D在x86平台上实现1.76倍的性能加速,在ARM平台上实现2.12倍的性能加速.
5. 结束语
本文提出了一个针对冗余零的跨平台细粒度性能分析工具DrZero. 为了适配访存、计算指令分离的ARM指令集,本文提出了基于数据流分析的数据类型推断方法来自动推断访存指令读取内存数据的数据类型. 此外,为了更低的性能开销,本文也提出了在线细粒度缓存迹分析来检测、记录冗余零相关的指标. DrZero也提供了基于VSCode的可视化插件来展示冗余零检测报告以及相应的优化建议. 本文的实验展示了DrZero跨平台检测冗余零的能力. DrZero在以代码、数据为中心的冗余零分析中,分别以x86和ARM平台45.31倍、54.20倍和14.12倍、13.40倍平均性能开销检测冗余零并给出优化建议. 基于DrZero给出的性能优化指导,本文优化的应用程序在x86和ARM上分别达到了最高1.76倍和2.12倍的性能加速. DrZero 的实现代码已经开源:https://github.com/buaa-hipo/ZeroSpy-drcctprof.
在未来,我们认为还有3个问题需要解决. 首先,在ARM平台上数据对象信息采集需要过大的内存开销,这导致运行使用较多内存的应用无法使用以数据为中心的分析模式进行分析,从而错失一些潜在的优化机会. 其次,本文发现的x86和ARM平台之间同一代码下冗余零的发散现象需要进一步研究其原因,以便挖掘更多的性能优化机会. 最后,希望将来更多的ARM平台(例如天河三号原型机中使用的国产ARM处理器FT2000+)中测试本文提出的DrZero工具来发现更多的性能优化机会.
作者贡献声明:游心提出研究思路,设计实现研究方案,撰写论文;杨海龙负责论文起草以及最终版本修订;雷克伦负责采集实验数据并实现可视化界面;孔祥浩负责实现ARM平台部分功能; 徐筠、栾钟治、钱德沛负责最终版本修订.
-
表 1 数据集的基本信息
Table 1 Basic Information of Datasets
数据集 对象数 特征数 决策类 数据类型 Ann (Annealing) 798 38 5 混杂 Arrh (Arrhythmia) 452 279 13 混杂 Autos 205 25 6 混杂 Credit (Credit approval) 690 15 2 混杂 Ecoli 336 7 8 数值 Glass 214 10 6 数值 Heart 270 13 2 混杂 Move (Movement libras) 360 90 15 数值 Park (Parkinsons) 195 22 2 数值 Sick 3772 29 2 混杂 Spam (Spambase) 4601 57 2 数值 Wave (Waveform) 5000 21 3 数值 WDBC (Wisconsin Diagnostic Breast Cancer) 569 31 2 数值 Wine 178 13 3 数值 WPBC (Wisconsin Prognostic Breast Cancer) 198 34 2 数值 表 2 不同算法所选特征的平均数
Table 2 Average Number of Features Selected by Different Algorithms
数据集 原始特征数 FIE FRFS FDMAR FFRS DNCFS KFCMI Ann 38 15 1 17 11.7 15.7 11.7 Arrh 279 40 1 142 36.3 122.7 125.3 Autos 25 17 14 20 4.0 10.7 9.7 Credit 15 14 14 14 8.0 8.7 7.3 Ecoli 7 7 7 7 7.0 5.3 6.0 Glass 10 10 9 10 8.7 2.0 3.7 Heart 13 13 11 13 6.0 9.7 7.0 Move 90 69 39 72 66.3 71.7 64.3 Park 22 14 13 20 13.7 4.7 8.0 Sick 29 26 1 26 16.0 11.7 10.0 Spam 57 53 56 57 55.0 52.0 48.7 Wave 21 21 21 21 21.0 18.3 19.3 WDBC 31 22 25 31 22.7 13.0 5.7 Wine 13 13 11 13 11.7 5.0 5.0 WPBC 34 28 20 34 28.3 7.0 6.3 平均值 45.6 24.1 16.2 33.1 21.1 23.9 22.5 注:黑体数值表示没有去除任何冗余特征. 表 3 基于CART算法的不同算法分类准确率
Table 3 Classification Accuracy of Different Algorithms Based on CART Algorithm
% 数据集 原始数据 FIE FRFS FDMAR FFRS DNCFS KFCMI Ann 92.08±0.33 92.19±0.41 76.19±0.00 92.23±0.51 91.25±0.60 92.63±0.50 92.42±0.50 Arrh 65.15±1.56 64.98±0.79 54.20±0.00 64.31±1.77 53.34±0.93 66.02±1.27 66.06±1.82 Autos 74.00±3.98 75.76±1.83 75.32±1.78 75.90±2.63 51.02±2.58 76.54±1.74 77.90±1.90 Credit 80.43±0.80 81.25±1.25 81.30±1.05 81.14±0.86 69.93±1.36 85.36±0.66 85.43±0.90 Ecoli 80.68±1.53 81.88±1.09 80.45±1.68 80.51±1.52 81.88±1.86 81.73±1.17 81.88±1.36 Glass 98.50±0.43 98.69±0.37 98.50±0.30 98.55±0.41 98.32±0.33 98.83±0.33 98.88±0.39 Heart 76.89±2.38 76.22±1.65 75.26±1.59 76.26±1.68 82.44±1.04 79.11±2.30 81.07±1.12 Move 66.11±2.90 66.69±2.00 67.17±2.62 65.22±1.41 64.19±1.60 66.67±2.36 67.64±2.44 Park 85.59±1.67 86.72±1.99 86.82±2.20 86.10±2.20 88.31±1.51 87.33±1.64 87.79±1.41 Sick 98.83±0.12 98.49±0.11 93.88±0.00 98.79±0.10 98.34±0.08 98.86±0.08 98.87±0.08 Spam 91.80±0.36 91.62±0.49 91.71±0.18 91.83±0.27 91.98±0.27 91.92±0.28 92.16±0.28 Wave 75.23±0.45 75.36±0.38 75.27±0.48 75.11±0.62 75.63±0.49 75.06±0.60 75.60±0.37 WDBC 92.46±0.76 93.06±0.70 92.86±0.65 92.02±0.53 93.30±0.74 93.90±0.79 94.22±0.63 Wine 89.61±1.57 90.51±1.11 91.57±1.91 89.66±1.48 90.90±1.09 93.03±1.22 94.04±0.66 WPBC 66.21±3.25 67.63±2.83 67.58±1.87 68.79±2.18 69.55±2.43 73.08±3.88 73.69±2.23 平均值 82.24±1.47 82.74±1.13 80.54±1.09 82.43±1.21 80..03±1.13 84.00±1.25 84.51±1.07 注:黑体值为最高的分类准确率. 表 4 基于NB算法的不同算法分类准确率
Table 4 Classification Accuracy of Different Algorithms Based on NB Algorithm
% 数据集 原始数据 FIE FRFS FDMAR FFRS DNCFS KFCMI Ann 75.98±0.26 76.02±0.41 76.19±0.00 76.10±0.12 76.29±0.23 76.22±0.10 76.19±0.31 Arrh 62.83±0.59 66.55±0.93 54.20±0.00 60.69±0.76 62.43±0.62 66.97±0.80 68.14±0.42 Autos 60.20±2.08 65.32±1.67 68.34±0.96 63.22±1.32 43.61±1.28 68.73±1.83 70.83±1.07 Credit 66.74±0.39 67.73±0.46 67.56±0.45 67.65±0.69 72.14±0.34 84.86±0.24 86.26±0.34 Ecoli 84.46±0.61 84.38±0.86 84.85±0.45 84.26±0.68 85.00±0.68 84.76±0.44 84.91±0.37 Glass 90.70±0.87 90.47±0.55 92.20±1.15 90.61±0.64 91.54±0.60 98.55±0.46 98.41±0.45 Heart 79.63±0.78 80.04±0.54 79.63±1.00 79.70±0.46 82.41±0.53 82.22±0.43 82.30±0.55 Move 68.03±1.47 67.25±1.12 64.50±1.29 67.17±1.60 66.58±1.14 68.17±1.23 68.42±1.78 Park 74.56±0.65 78.87±0.90 81.38±0.87 74.41±0.61 82.51±1.20 85.74±0.83 85.95±0.36 Sick 93.75±0.03 93.72±0.05 93.88±0.00 93.71±0.04 93.85±0.04 96.70±0.06 96.78±0.04 Spam 54.21±0.12 53.81±0.13 54.33±0.16 54.36±0.19 54.33±0.17 54.17±0.22 56.04±0.17 Wave 80.71±0.10 80.68±0.08 80.73±0.06 80.69±0.06 80.76±0.06 81.50±0.08 81.57±0.09 WDBC 93.71±0.55 94.07±0.17 92.63±0.32 93.74±0.37 92.29±0.31 95.13±0.22 96.80±0.22 Wine 97.98±0.60 97.70±0.41 97.87±0.24 97.47±0.48 96.74±0.36 98.03±0.30 98.03±0.30 WPBC 65.71±2.29 67.22±1.36 68.18±2.01 66.06±2.10 67.88±1.85 78.99±0.90 78.99±1.07 平均值 76.61±0.76 77.59±0.64 77.10±0.60 76.65±0.67 76.56±0.63 81.38±0.54 81.97±0.50 注:黑体值为最高的分类准确率. 表 5 基于kNN算法的不同算法分类准确率
Table 5 Classification Accuracy of Different Algorithms Based on kNN Algorithm
% 数据集 原始数据 FIE FRFS FDMAR FFRS DNCFS KFCMI Ann 90.53±0.62 90.78±0.64 76.19±0.00 90.71±0.46 90.24±0.52 91.29±0.36 90.79±0.65 Arrh 54.29±0.66 54.60±0.88 0.66±0.00 52.94±0.84 51.35±0.78 55.44±0.84 56.66±0.65 Autos 74.20±0.90 70.83±1.56 75.37±1.08 72.98±1.15 51.80±1.07 82.93±0.92 82.49±1.44 Credit 80.51±0.54 80.26±0.94 80.67±0.57 80.51±0.49 68.23±0.78 81.35±0.40 81.33±0.67 Ecoli 80.60±0.48 80.89±0.86 80.89±0.52 81.16±0.44 81.28±0.89 80.95±0.61 81.19±0.50 Glass 90.89±0.67 91.31±0.59 91.64±0.60 91.26±0.99 91.12±0.66 98.27±0.44 98.50±0.48 Heart 75.41±0.84 75.74±1.25 78.96±0.94 75.89±0.83 74.04±0.85 79.59±0.79 80.26±1.00 Move 85.97±0.82 86.25±0.77 84.92±0.94 85.97±0.53 86.72±0.58 87.08±0.79 87.00±0.67 Park 95.74±0.59 95.28±0.68 95.08±0.60 95.74±0.73 96.46±0.38 96.87±0.78 97.03±0.47 Sick 96.17±0.08 96.43±0.12 93.88±0.00 96.19±0.14 96.28±0.14 96.69±0.14 96.99±0.12 Spam 90.93±0.09 90.80±0.19 90.84±0.25 90.90±0.09 90.99±0.16 90.69±0.23 91.04±0.14 Wave 77.29±0.24 77.22±0.11 77.34±0.20 77.25±0.20 77.47±0.27 77.12±0.28 77.50±0.17 WDBC 95.40±0.41 95.99±0.26 95.45±0.23 95.76±0.46 95.85±0.24 95.62±0.31 95.98±0.17 Wine 95.11±0.46 94.94±0.00 95.84±0.39 95.28±0.39 96.69±0.32 98.65±0.47 98.88±0.26 WPBC 69.24±0.97 71.52±1.70 73.13±1.54 70.20±1.47 72.88±1.31 74.85±0.92 75.10±1.22 平均值 83.48±0.56 83.52±0.70 79.39±0.52 83.52±0.61 81.43±0.60 85.83±0.55 86.05±0.58 注:黑体值为最高的分类准确率. -
[1] Liang Jiye, Wang Feng, Dang Chuangyin, et al. A group incremental approach to feature selection applying rough set technique[J]. IEEE Transactions on Knowledge and Data Engineering, 2012, 26(2): 294−308
[2] An Shuang, Hu Qinghua, Pedrycz W, et al. Data-distribution-aware fuzzy rough set model and its application to robust classification[J]. IEEE Transactions on Cybernetics, 2015, 46(12): 3073−3085
[3] Dai Jianhua, Chen Jiaolong. Feature selection via normative fuzzy information weight with application in biological data classification[J]. Applied Soft Computing, 2020, 92(7): 106299
[4] Sun Lin, Wang Lanying, Ding Weiping, et al. Feature selection using fuzzy neighborhood entropy-based uncertainty measures for fuzzy neighborhood multigranulation rough sets[J]. IEEE Transactions on Fuzzy Systems, 2021, 29(1): 19−33 doi: 10.1109/TFUZZ.2020.2989098
[5] Wang Chongzhong, Huang Yang, Ding Weiping, et al. Attribute reduction with fuzzy rough self-information measures[J]. Information Sciences, 2021, 49(5): 68−86
[6] 姚晟,徐风,赵鹏,等. 基于自适应邻域空间粗糙集模型的直觉模糊熵特征选择[J]. 计算机研究与发展,2018,55(4):802−814 doi: 10.7544/issn1000-1239.2018.20160919 Yao Sheng, Xu Feng, Zhao Peng, et al. Intuitionistic fuzzy entropy Feature selection algorithm based on adaptive neighborhood space rough set model[J]. Journal of Computer Research and Development, 2018, 55(4): 802−814 (in Chinese) doi: 10.7544/issn1000-1239.2018.20160919
[7] Wang Chongzhong, Huang Yang, Shao Mingwen, et al. Feature selection based on neighborhood self-information[J]. IEEE Transactions on Cybernetics, 2020, 50(9): 4031−4042 doi: 10.1109/TCYB.2019.2923430
[8] Dash M, Liu Huan. Consistency-based search in feature selection[J]. Artificial Intelligence, 2003, 151(1/2): 155−176
[9] Hu Qinghua, Xie Zongxia, Yu Daren. Hybrid attribute reduction based on a novel fuzzy-rough model and information granulation[J]. Pattern Recognition, 2007, 40(12): 3509−3521 doi: 10.1016/j.patcog.2007.03.017
[10] Wang Chongzhong, Huang Yang, Shao Mingwen, et al. Uncertainty measures for general fuzzy relations[J]. Fuzzy Sets and Systems, 2019, 360(4): 82−96
[11] Dubois D, Prade H. Rough fuzzy sets and fuzzy rough sets[J]. International Journal of General System, 1990, 17(2/3): 191−209
[12] Mi Jusheng, Zhang Wenxiu. An axiomatic characterization of a fuzzy generalization of rough sets[J]. Information Sciences, 2004, 160(1/4): 235−249
[13] 王金波,吴伟志. 双论域上的直觉模糊粗糙集[J]. 模糊系统与数学,2021,35(6):1−13 Wang Jinbo, Wu Weizhi. Intuitionistic fuzzy rough sets over two universes[J]. Fuzzy Systems and Mathematics, 2021, 35(6): 1−13 (in Chinese)
[14] Yeung D S, Chen Degang, Tsang E C C, et al. On the generalization of fuzzy rough sets[J]. IEEE Transactions on Fuzzy Systems, 2005, 13(3): 343−361 doi: 10.1109/TFUZZ.2004.841734
[15] Jensen R, Shen Qiang. Fuzzy-rough attribute reduction with application to Web categorization[J]. Fuzzy Sets and Systems, 2004, 141(3): 469−485 doi: 10.1016/S0165-0114(03)00021-6
[16] Hu Qinghua, Yu Daren, Xie Zongxia. Information-preserving hybrid data reduction based on fuzzy-rough techniques[J]. Pattern Recognition Letters, 2006, 27(5): 414−423 doi: 10.1016/j.patrec.2005.09.004
[17] Chen Degang, Hu Qinghua, Yang Yongping. Parameterized attribute reduction with Gaussian kernel based fuzzy rough sets[J]. Information Sciences, 2011, 181(23): 5169−5179 doi: 10.1016/j.ins.2011.07.025
[18] Wang Chongzhong, Qi Yali, Shao Mingwen, et al. A fitting model for feature selection with fuzzy rough sets[J]. IEEE Transactions on Fuzzy Systems, 2017, 25(4): 741−753 doi: 10.1109/TFUZZ.2016.2574918
[19] Yager R R. Entropy measures under similarity relations[J]. International Journal of General System, 1992, 20(4): 341−358 doi: 10.1080/03081079208945039
[20] Hu Qinghua, Yu Daren, Xie Zongxia, et al. Fuzzy probabilistic approximation spaces and their information measures[J]. IEEE Transactions on Fuzzy Systems, 2006, 14(2): 191−201 doi: 10.1109/TFUZZ.2005.864086
[21] Qian Yuhua, Liang Jiye, Wu Weizhi, et al. Information granularity in fuzzy binary GrC model[J]. IEEE Transactions on Fuzzy Systems, 2010, 19(2): 253−264
[22] Xu Jiucheng, Wang Yun, Xu Keqiang, et al. Feature genes selection using fuzzy rough uncertainty metric for tumor diagnosis[J]. Computational and Mathematical Methods in Medicine, 2019, 27(1): 1−9
[23] 樊雲瑞,张贤勇,杨霁琳. 模糊邻域粗糙集的决策熵不确定性度量[J]. 计算机工程与设计,2021,42(5):1300−1306 doi: 10.16208/j.issn1000-7024.2021.05.015 Fan Yunrui, Zhang Xianyong, Yang Jilin. Uncertainty measurement of decision-entropies based on fuzzy neighborhood rough sets[J]. Computer Engineering and Design, 2021, 42(5): 1300−1306 (in Chinese) doi: 10.16208/j.issn1000-7024.2021.05.015
[24] Zhang Xiao, Mei Changlin, Chen Degang, et al. Feature selection in mixed data: A method using a novel fuzzy rough set-based information entropy[J]. Pattern Recognition, 2016, 56(8): 1−15
[25] Lin Yaojin, Hu Qinghua, Liu Jinghua, et al. Streaming feature selection for multilabel learning based on fuzzy mutual information[J]. IEEE Transactions on Fuzzy Systems, 2017, 25(6): 1491−1507 doi: 10.1109/TFUZZ.2017.2735947
[26] Zhao Junyang, Zhang Zhili, Han Chongzhao, et al. Complement information entropy for uncertainty measure in fuzzy rough set and its applications[J]. Soft Computing, 2015, 19(7): 1997−2010 doi: 10.1007/s00500-014-1387-5
[27] Wang Chongzhong, Huang Yang, Shao Mingwen, et al. Fuzzy rough set-based attribute reduction using distance measures[J]. Knowledge-Based Systems, 2019, 164(1): 205−212
[28] Hu Qinghua, Zhang Lei, Chen Degang, et al. Gaussian kernel based fuzzy rough sets: Model, uncertainty measures and applications[J]. International Journal of Approximate Reasoning, 2010, 51(4): 453−471 doi: 10.1016/j.ijar.2010.01.004
[29] Hu Qinghua, Yu Daren, Pedrycz W, et al. Kernelized fuzzy rough sets and their applications[J]. IEEE Transactions on Knowledge & Data Engineering, 2010, 23(11): 1649−1667
[30] Hu Qinghua, Zhang Lingjun, Zhou YuCan, et al. Large-scale multimodality attribute reduction with multi-kernel fuzzy rough sets[J]. IEEE Transactions on Fuzzy Systems, 2017, 26(1): 226−238
[31] Yuan Zhong, Chen Hongmei, Yang Xiaoling, et al. Fuzzy complementary entropy using hybrid-kernel function and its unsupervised attribute reduction[J]. Knowledge-Based Systems, 2021, 231(11): 107398
[32] Liang Jiye, Chin K S, Dang Chuangyin, et al. A new method for measuring uncertainty and fuzziness in rough set theory[J]. International Journal of General Systems, 2002, 31(4): 331−342 doi: 10.1080/0308107021000013635
[33] Jensen R, Shen Qiang. New approaches to fuzzy-rough feature selection[J]. IEEE Transactions on Fuzzy Systems, 2009, 17(4): 824−838 doi: 10.1109/TFUZZ.2008.924209
[34] Chen Degang, Zhao Suyun. Local reduction of decision system with fuzzy rough sets[J]. Fuzzy Sets and Systems, 2010, 161(13): 1871−1883 doi: 10.1016/j.fss.2009.12.010
[35] Yang Yanyan Song Shiji, Chen Degang, et al. Discernible neighborhood counting based incremental feature selection for heterogeneous data[J]. International Journal of Machine Learning and Cybernetics, 2019, 11(8): 1115−1127
-
期刊类型引用(0)
其他类型引用(2)