第2章 基于划分-测试的实值检测器生成算法 (2.1-2.3)
2011-07-12 12:42
459 查看
第2章 基于划分-测试的实值检测器生成算法
检测器生成算法是实值非选择算法的重要组成部分,然而,目前的实值检测器生成算法基本都是随机产生候选检测器,具有很大随机性。尤其,当对监测精度要求很高时,为生成足够多的成熟检测器,随机算法所需的时间花费往往很高。
本章提出了一种基于划分测试的实值检测器生成算法,简记为PT-RNSA(Real-Valued Detector Generation Algorithm based on the Partition-Test Proess)。区别于以往的检测器生成算法,PT-RNSA是一种确定性的算法。通过PT-RNSA,可以确保除了在自我与非我的边界区域外,其他所有的非我区域都能被成熟检测器集合所覆盖,并且此种算法的成熟检测器生成所需时间也较少。
图2.1 PT-RNSA 核心思想
图2.1介绍了PT-RNSA的核心思想,其中的步骤2是PT-RNSA的测试阶段,步骤3是PT-RNSA的划分阶段。
本文使用一个二元组<c,r>表示一个超长方体。其中,c为检测器的中心点,r为检测器中心点到各维边界的距离。c = <c1, c2, c3, … , cN >,r = <r1, r2, r3, … , rN>,其中 c1, c2, c3, … , cN为N维空间中心点的坐标。,ri为中心点沿i维方向到超长方体边界处的距离。超长方体覆盖范围可以数学化描述为:(<x1, x2, … , xN>| |x1-c1|≤r1∧|x2-c2|≤r2∧……∧|xN-cN|≤rN, 1≤i≤N)。图2.2为一个二维空间长方形表示的例子,其中心点为c = <cx, cy>, r = <rx, ry>,长方形的覆盖范围数学化描述为{<x, y>| |x-cx|≤rx && |y-cy|≤ry}。
图2.2 二维空间长方形的表示 图2.3 给出了PT-RNSA在二维空间中的“划分-测试”过程,此过程直观显示了PT-RNSA的“划分-测试”思想。
图2.3 二维空间的划分测试过程
图2.3(a)展示了最初的候选检测器情况,此候选检测器有一部分区域与自我集合相交(图中黑色部分为相交区域)。在此,特别说明一下,本文中候选检测器与自我集合相交是指候选检测器至少与某一自我个体有交叉覆盖区域。
根据划分测试思想,首先测试此候选检测器是否与自我集合相交,测试结果为二者相交,因此,此候选检测器被均匀的划分为四个子候选检测器,如图2.3(b)。
在图2.3(b)中,有四个候选检测器,根据算法流程,需对每一个候选检测器进行测试划分。在测试阶段,其中有三个候选检测器不与自我集合相交,因此将此三个不与自我集合相交的候选检测器确定为成熟检测器。剩下的那一个与自我集合相交的候选检测器将再次执行划分测试过程如图2.3(c)。
图2.3(c),图2.3(d)以及图2.3(e)展示了相似的划分测试过程。值得注意的是,在图2.3(e)中,划分而成的候选检测器小于预定义的最小检测器,因此在执行完测试阶段后,不与自我集合相交的候选检测器被确定为成熟检测器,而那些与自我集合相交的候选检测器将不再继续划分下去。
由图2.3可以看出,非我区域被成熟检测器逐渐的平铺覆盖,尤其是那些未被检测器覆盖的非我区域仅仅存在于自我区域的边界之处。并且,随着划分深度的增加,这些未被成熟检测器覆盖的边界区域变得越来越小。此外,由图2.3也可观察到,各成熟检测器之间无交叉覆盖现象。
图2.4 PT-RNSA 在二维空间中实现时的伪代码
(1)候选检测器与自我区域相交;
(2)候选检测器与自我区域不相交。
如图2.5,其中第一类又可分为以下三种情况。
a 候选检测器在自我区域内部
b 候选检测器内部包含自我区域
c 候选检测器与自我区域边界相交
在PT-RNSA算法中,与自我集合不相交的候选检测器被确定为成熟检测器。也就是说,图2.5(d)中的候选检测器将被看作为成熟检测器。而与自我集合相交的候选检测器,则要根据其相交的类型,采取2种不同的策略:
候选检测器在自我区域内部时,则可确定此候选检测器为无效检测器,不再继续划分
当候选检测器内部包含自我区域或候选检测器与自我区域边界相交时,则将继续进行划分
也就是说,对于图2.5(a)这种情况不予理会。而对图2.5(b)和图2.5(c)这两种情况,则要对此候选检测器进行进一步的划分测试处理。
定义2.1 边界检测器:既与自我集合相交又包含部分非我空间的候选检测器称为边界检测器。
边界检测器对应于图2.5的(b)和(c)两种情况。显然,边界检测器不是成熟检测器。
定理2.1 在PT-RNSA算法结束后,只有边界检测器内的非我空间未被成熟检测器所覆盖。
证明:根据PT-RNSA算法(图2.4),整个表示空间被所有的候选检测器所平铺覆盖,而候选检测器的类型共有2种,一是与自我区域相交,一是与自我区域不相交。与自我区域不相交的候选检测器为成熟检测器,这里成熟检测器所覆盖的非我区域记为UM。而与自我区域相交的候选检测器又分为两种类型,边界检测器以及候选检测器完全在自我集合内部的情况。在这两种情况中,只有边界检测器包含部分非我区域, 边界检测器因其包含部分自我区域,所以不能成为成熟检测器。被边界检测器包含的部分非我区域记为UB整个非我空间记为U,则U=UM+UB。由此可见,非我空间U中只有UB未被成熟检测器所覆盖。因此,整个的非我空间中,只有边界检测器内部的非我区域未被成熟检测器所覆盖。
定理2.2 PT-RNSA算法结束时,边界检测器中心点到各维边界上的距离r小于预定义的最小的检测器中心点到各维边界上的距离r0。
证明:假设,PT-RNSA算法(图2.4)结束后,存在某个边界检测器的中心点到各维边界上的距离r大于r0。由图2.4可知,算法未达结束条件,仍要继续划分下去,这与算法已经结束相矛盾。因此,算法结束时,边界检测器的中心点到各维边界上的距离r小于r0。显然,当预定义的r0减小时,r也随之减小。
综上所述,随着预定义的r0的减小,边界检测器的中心点到各维边界上的距离r也随之减小,从而使得未被成熟检测器所覆盖的非我区域随着r0的减小而减小。与之相反,成熟检测器所覆盖的范围则随着r0的减小而呈增加。
假设总共有n个成熟检测器,其中第i个成熟检测器的覆盖范围表示为 (1≤i≤n),则所有成熟检测器所覆盖的非我空间范围为 。 假设整个非我空间的范围为SN,则被检测器集所覆盖的非我区域与整个非我空间区域的比率Pc为 。此比率Pc亦是检测器集的覆盖率。当非我空间都被成熟检测器覆盖时,Pc=1。 虽然被成熟检测器所覆盖的非我空间范围可以通过 获得,但整个非我空间的覆盖范围SN却是一个未知量,不易直接求得。为此,本文采用Monte Carlo方法来近似计算SN的值。 首先,在整个表示空间中随机生成t个样本点,这些样本点有一部分落入自我空间,另一部分落入非我空间。其次,假设有tm个样本点落入非我空间,当随机生成的样本点足够多时,也即t足够大时,非我空间的范围可以近似计算为 ,其中S0为整个表示空间的范围。 然而,Monte Carlo算法具有一定的误差,其统计误差约为 [66, 67]。因此,非我空间的范围近似等于
。此时,检测器集的覆盖率Pc为
在实验中,检测器集的覆盖率Pc可以作为检测率的一个估计。对于给定的期望检测率Pc,所要生成的检测器集的覆盖范围必须满足如下不等式
所用数据集2DSyntheticData.zip中的所有数据均取自二维空间,整个表示空间的形状为单位正方形。
在图2.6中,黑色阴影部分为被自我样本所覆盖的自我区域,浅颜色的各个小正方形为成熟检测器,而空白区域是未被成熟检测器所覆盖的非我区域。
由图2.6(a),可以看到,当r0=0.1时,有5个成熟检测器生成,而由图2.6(b)可以观察到,当r0降低至0.05时,则有更多的成熟检测器生成。图2.6(c)、图2.6(d)、图2.6(e)以及图2.6(f)展示了类似的情况。
由图2.6可以观察到,随着r0的减小,生成的成熟检测器越来越多,被成熟检测器所覆盖的非我空间范围越来越大,而未被成熟检测器所覆盖的非我范围则越来越小。可以预测,当r0非常小时,成熟检测器将覆盖整个非我空间。事实上,由图2.6可以观察到,当r0降低至0.001时,整个非我空间几乎全部被成熟检测器所覆盖。
在实验中,与PT-RNSA算法性能相比较的V-detector算法下载自如下网址http://www.zhouji.net/prof/vdetector.html,其算法主要控制参数设置为“no,no,yes”。通过与V-detector算法比较,PT-RNSA显示了其在时间花费上的优势。
算法比较中,主要的性能评价指标是生成一个成熟检测器所花费的平均代价Cost、检测率Pf以及所需的成熟检测器个数Dm。其中Pf为测试集合中被检测出的非我个体数目与测试集合中总的非我个体数目之比,生成代价Cost的定义如下
................................................................................... 由于实验数据太多 图片太多 系统不能继续上传了 所以实验数据这一部分就省略了。。。
检测器生成算法是实值非选择算法的重要组成部分,然而,目前的实值检测器生成算法基本都是随机产生候选检测器,具有很大随机性。尤其,当对监测精度要求很高时,为生成足够多的成熟检测器,随机算法所需的时间花费往往很高。
本章提出了一种基于划分测试的实值检测器生成算法,简记为PT-RNSA(Real-Valued Detector Generation Algorithm based on the Partition-Test Proess)。区别于以往的检测器生成算法,PT-RNSA是一种确定性的算法。通过PT-RNSA,可以确保除了在自我与非我的边界区域外,其他所有的非我区域都能被成熟检测器集合所覆盖,并且此种算法的成熟检测器生成所需时间也较少。
2.1 算法描述
本节首先给出了PT-RNSA算法的思想,然后给出了二维空间中的算法实现。2.1.1 算法思想
1. 初始化: 将整个表示空间看作一超长方体,并将其作为候选超长方体。 2. 测试: 判断此候选超长方体是否与自我集合相交,如果没有相交,则将其看作一成熟检测器。 3. 划分: 如果此长方体与自我集合相交(即至少与某一自我个体有交叉覆盖区域),则将其均匀划分成一些更小的候选超长方体。 4. 对于第三步中划分出来的每一个小的候选超长方体,转第2步,重复执行“测试-划分”过程,直到满足结束条件。 |
图2.1介绍了PT-RNSA的核心思想,其中的步骤2是PT-RNSA的测试阶段,步骤3是PT-RNSA的划分阶段。
本文使用一个二元组<c,r>表示一个超长方体。其中,c为检测器的中心点,r为检测器中心点到各维边界的距离。c = <c1, c2, c3, … , cN >,r = <r1, r2, r3, … , rN>,其中 c1, c2, c3, … , cN为N维空间中心点的坐标。,ri为中心点沿i维方向到超长方体边界处的距离。超长方体覆盖范围可以数学化描述为:(<x1, x2, … , xN>| |x1-c1|≤r1∧|x2-c2|≤r2∧……∧|xN-cN|≤rN, 1≤i≤N)。图2.2为一个二维空间长方形表示的例子,其中心点为c = <cx, cy>, r = <rx, ry>,长方形的覆盖范围数学化描述为{<x, y>| |x-cx|≤rx && |y-cy|≤ry}。
图2.2 二维空间长方形的表示 图2.3 给出了PT-RNSA在二维空间中的“划分-测试”过程,此过程直观显示了PT-RNSA的“划分-测试”思想。
图2.3 二维空间的划分测试过程
图2.3(a)展示了最初的候选检测器情况,此候选检测器有一部分区域与自我集合相交(图中黑色部分为相交区域)。在此,特别说明一下,本文中候选检测器与自我集合相交是指候选检测器至少与某一自我个体有交叉覆盖区域。
根据划分测试思想,首先测试此候选检测器是否与自我集合相交,测试结果为二者相交,因此,此候选检测器被均匀的划分为四个子候选检测器,如图2.3(b)。
在图2.3(b)中,有四个候选检测器,根据算法流程,需对每一个候选检测器进行测试划分。在测试阶段,其中有三个候选检测器不与自我集合相交,因此将此三个不与自我集合相交的候选检测器确定为成熟检测器。剩下的那一个与自我集合相交的候选检测器将再次执行划分测试过程如图2.3(c)。
图2.3(c),图2.3(d)以及图2.3(e)展示了相似的划分测试过程。值得注意的是,在图2.3(e)中,划分而成的候选检测器小于预定义的最小检测器,因此在执行完测试阶段后,不与自我集合相交的候选检测器被确定为成熟检测器,而那些与自我集合相交的候选检测器将不再继续划分下去。
由图2.3可以看出,非我区域被成熟检测器逐渐的平铺覆盖,尤其是那些未被检测器覆盖的非我区域仅仅存在于自我区域的边界之处。并且,随着划分深度的增加,这些未被成熟检测器覆盖的边界区域变得越来越小。此外,由图2.3也可观察到,各成熟检测器之间无交叉覆盖现象。
2.1.2 二维空间中的算法实现
图2.4给出了PT-RNSA算法在二维空间中实现的伪代码。在图2.4中,算法的终结条件是预定义的最小的检测器中心点到各维边界上的距离,也即r0。当然也可以设置其他的终结条件,比如所需的成熟检测器数目和预定义的检测率等等。d: 表示一候选检测器,d =<c, r> c: 检测器的中心点,c = <cx, cy> r: 检测器的中心点到各维边界上的距离,r=<rx, ry> r0: 预定义的最小的检测器中心点到各维边界上的距离 D: 成熟检测器集合 Q: 队列数据结构 |
1. PT-RNSA( ) 2. { 3. 初始化:d =<c, r> 设置候选检测器的初值,使其能够覆盖整个问题表示空间; 成熟检测器集合D 置为空; 队列 Q 置为空队列; 4. IF (候选检测器d 不与自我集合相交) THEN 5. { 6. D←D∪{d}; 7. RETURN; 8. } 9. EnQueue( d );// 将候选检测器 d 置入队列Q中 10. WHILE (Q! = NULL ) 11. { 12. d = DeQueue( Q );// 在队列Q中取出第一个元素并将之在队列中移除 13. PT-Detector( d ); 14. } 15. } |
16. PT-Detector( d ) // d = <c, r> 17. { 18. IF ( r < r0 ) THEN 19. RETURN; 20. 将候选检测器d 均匀划分成四个更小的候选检测器,即di (1≤i≤4); 21. FOR 每一个di (1≤i≤4) 22. { 23. IF (di 不与自我集合相交) THEN 24. D←D∪{ di }; 25. ELSE 26. IF (di 不被任何自我个体所完全覆盖) THEN 27. EnQueue( di ); 28. } 29. } |
2.2 PT-RNSA的检测器覆盖率
PT-RNSA有别于传统的实值检测器生产算法,其主要区别在于PT-RNSA是一个确定性的算法,稳定性较好。这一节,主要分析了算法所生成的候选检测器的类型以及最终所确定的成熟检测器对整个非我空间的覆盖率问题。2.2.1 边界检测器
根据候选检测器与自我集合相交情况,可以将之分为两类。(1)候选检测器与自我区域相交;
(2)候选检测器与自我区域不相交。
如图2.5,其中第一类又可分为以下三种情况。
a 候选检测器在自我区域内部
b 候选检测器内部包含自我区域
c 候选检测器与自我区域边界相交
在PT-RNSA算法中,与自我集合不相交的候选检测器被确定为成熟检测器。也就是说,图2.5(d)中的候选检测器将被看作为成熟检测器。而与自我集合相交的候选检测器,则要根据其相交的类型,采取2种不同的策略:
候选检测器在自我区域内部时,则可确定此候选检测器为无效检测器,不再继续划分
当候选检测器内部包含自我区域或候选检测器与自我区域边界相交时,则将继续进行划分
也就是说,对于图2.5(a)这种情况不予理会。而对图2.5(b)和图2.5(c)这两种情况,则要对此候选检测器进行进一步的划分测试处理。
定义2.1 边界检测器:既与自我集合相交又包含部分非我空间的候选检测器称为边界检测器。
边界检测器对应于图2.5的(b)和(c)两种情况。显然,边界检测器不是成熟检测器。
定理2.1 在PT-RNSA算法结束后,只有边界检测器内的非我空间未被成熟检测器所覆盖。
证明:根据PT-RNSA算法(图2.4),整个表示空间被所有的候选检测器所平铺覆盖,而候选检测器的类型共有2种,一是与自我区域相交,一是与自我区域不相交。与自我区域不相交的候选检测器为成熟检测器,这里成熟检测器所覆盖的非我区域记为UM。而与自我区域相交的候选检测器又分为两种类型,边界检测器以及候选检测器完全在自我集合内部的情况。在这两种情况中,只有边界检测器包含部分非我区域, 边界检测器因其包含部分自我区域,所以不能成为成熟检测器。被边界检测器包含的部分非我区域记为UB整个非我空间记为U,则U=UM+UB。由此可见,非我空间U中只有UB未被成熟检测器所覆盖。因此,整个的非我空间中,只有边界检测器内部的非我区域未被成熟检测器所覆盖。
定理2.2 PT-RNSA算法结束时,边界检测器中心点到各维边界上的距离r小于预定义的最小的检测器中心点到各维边界上的距离r0。
证明:假设,PT-RNSA算法(图2.4)结束后,存在某个边界检测器的中心点到各维边界上的距离r大于r0。由图2.4可知,算法未达结束条件,仍要继续划分下去,这与算法已经结束相矛盾。因此,算法结束时,边界检测器的中心点到各维边界上的距离r小于r0。显然,当预定义的r0减小时,r也随之减小。
综上所述,随着预定义的r0的减小,边界检测器的中心点到各维边界上的距离r也随之减小,从而使得未被成熟检测器所覆盖的非我区域随着r0的减小而减小。与之相反,成熟检测器所覆盖的范围则随着r0的减小而呈增加。
2.2.2 检测器集覆盖率分析
PT-RNSA算法的一个显著优点是,成熟检测器平铺覆盖非我空间且检测器之间无交叉覆盖情况。利用此特点,可以很容易的求出被全部成熟检测器所覆盖的非我空间范围。假设总共有n个成熟检测器,其中第i个成熟检测器的覆盖范围表示为 (1≤i≤n),则所有成熟检测器所覆盖的非我空间范围为 。 假设整个非我空间的范围为SN,则被检测器集所覆盖的非我区域与整个非我空间区域的比率Pc为 。此比率Pc亦是检测器集的覆盖率。当非我空间都被成熟检测器覆盖时,Pc=1。 虽然被成熟检测器所覆盖的非我空间范围可以通过 获得,但整个非我空间的覆盖范围SN却是一个未知量,不易直接求得。为此,本文采用Monte Carlo方法来近似计算SN的值。 首先,在整个表示空间中随机生成t个样本点,这些样本点有一部分落入自我空间,另一部分落入非我空间。其次,假设有tm个样本点落入非我空间,当随机生成的样本点足够多时,也即t足够大时,非我空间的范围可以近似计算为 ,其中S0为整个表示空间的范围。 然而,Monte Carlo算法具有一定的误差,其统计误差约为 [66, 67]。因此,非我空间的范围近似等于
。此时,检测器集的覆盖率Pc为
在实验中,检测器集的覆盖率Pc可以作为检测率的一个估计。对于给定的期望检测率Pc,所要生成的检测器集的覆盖范围必须满足如下不等式
2.3 测试实验
实验所用的数据集来自http://www.zhouji.net/prof/2DSyntheticData.zip。在本章的实验中,使用了2DSyntheticData.zip数据集中的“Cross-mid_train.txt”数据作为自我集合实例用来生成成熟检测器,使用与之配对的“Cross-mid_test.txt”数据作为测试集合,用来测试生成的检测器的性能。其中,本章实验选用“Cross-mid_train.txt”中的前100个个体作为实验所用的训练集合,选用“Cross-mid_test.txt”中的全部个体作为实验所用的测试集合。所用数据集2DSyntheticData.zip中的所有数据均取自二维空间,整个表示空间的形状为单位正方形。
2.3.1 PT-RNSA检测器与r0的关系
在图2.6中,黑色阴影部分为被自我样本所覆盖的自我区域,浅颜色的各个小正方形为成熟检测器,而空白区域是未被成熟检测器所覆盖的非我区域。
由图2.6(a),可以看到,当r0=0.1时,有5个成熟检测器生成,而由图2.6(b)可以观察到,当r0降低至0.05时,则有更多的成熟检测器生成。图2.6(c)、图2.6(d)、图2.6(e)以及图2.6(f)展示了类似的情况。
由图2.6可以观察到,随着r0的减小,生成的成熟检测器越来越多,被成熟检测器所覆盖的非我空间范围越来越大,而未被成熟检测器所覆盖的非我范围则越来越小。可以预测,当r0非常小时,成熟检测器将覆盖整个非我空间。事实上,由图2.6可以观察到,当r0降低至0.001时,整个非我空间几乎全部被成熟检测器所覆盖。
2.3.2 PT-RNSA与V-detector算法[49]比较
在这一子节中,对PT-RNSA与V-detector二者的算法性能做了比较,其中每次实验均独立的运行100次。在实验中,与PT-RNSA算法性能相比较的V-detector算法下载自如下网址http://www.zhouji.net/prof/vdetector.html,其算法主要控制参数设置为“no,no,yes”。通过与V-detector算法比较,PT-RNSA显示了其在时间花费上的优势。
算法比较中,主要的性能评价指标是生成一个成熟检测器所花费的平均代价Cost、检测率Pf以及所需的成熟检测器个数Dm。其中Pf为测试集合中被检测出的非我个体数目与测试集合中总的非我个体数目之比,生成代价Cost的定义如下
................................................................................... 由于实验数据太多 图片太多 系统不能继续上传了 所以实验数据这一部分就省略了。。。
相关文章推荐
- 第3章 基于划分-测试-扩展的实值检测器生成算法
- 基于粒子群算法的软件测试用例自动生成算法
- 基于最小生成树的实时立体匹配算法简介
- 基于模型生成自动化测试用例
- 图像处理之基础---肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法
- 基于c#的两种最小凸包的生成(三硬币法与串行算法)
- 基于高度图的三维地形生成算法入门篇 —— 均匀网格地形生成算法
- <编程>比较两种素数表生成算法+计算程序运行时间+通过CMD重定向测试程序
- 极限元语音算法专家刘斌:基于深度学习的语音生成问题
- 基础算法测试——生成一个1-10之间的随机整数组合
- vs下用FDDB数据测试自己的人脸检测算法并生成ROC曲线
- 基于邻接矩阵存储的图的最小生成树的Prime算法
- 算法导论-第23章-最小生成树:Prime算法(基于vector)的C++实现
- 基于AdaBoost的分类(测试算法)
- 基础算法测试——生成一个1-10之间的随机整数组合
- Qt基于opencv的人脸检测及相关算法测试工具
- 基于高度图的三维地形生成算法入门篇 —— 均匀网格地形生成算法
- 肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法
- 基于Excel的QR二维码生成工具——原理及算法详解(之四)
- 基础算法测试——生成一个1-10之间的随机整数组合