一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于新型特征自动构造的人群行为规则自动提取方法与流程

2021-11-22 13:00:00 来源:中国专利 TAG:


1.本发明涉及人群仿真和智能计算领域,特别涉及基于新型特征自动构造的人群行为规则自动提取方法。


背景技术:

2.近年来,人群行为建模与仿真已成为国内外学者、工业界和各国政府都十分关注的一个研究热点问题。人群行为建模与仿真是指运用数学模型对人群的各种行为进行建模,并使用计算机仿真技术模拟并逼真地还原出人群的行为。人群行为建模与仿真具有多种应用场景,包括异常行为检测、公共场所布局设计与管理、军事训练、游戏设计等。
3.人群行为建模的一个关键问题是如何设计可信可靠的人群行为规则。人群行为规则对于人群行为建模与仿真具有重要意义。这是因为其显式的句法结构赋予了人群行为规则以可解释性,从而使得模型比其他不具有可解释性的黑箱模型更加安全与可靠,更有利于模型被政府、企业接受和采纳。此外,具有可解释性的人群行为规则本身反映和揭示了人群行为的可观规律,将有助于社会学、心理学、认知科学等其他相关领域学科的发展。
4.人群行为规则设计技术大体可分为两类。第一类技术主要依赖人类专家根据经验知识经反复尝试设计出人群行为规则。该过程繁琐耗时,同时所设计的规则有可能引入因知识局限与个人偏见所带来的偏差,规则质量有待提高。相对的,第二类技术是人群行为规则自动提取。该技术主要运用计算机智能算法,如决策树算法,遗传编程算法等,从人群行为数据中自动地提取出人群行为规则,从而节省人力和时间成本,消除人类经验的偏差。通过充分利用大量的人群行为数据,人群行为规则自动提取技术找到的规则能逼真地仿真出人群行为,准确地反映出人群行为的客观规律,具有较高的泛化能力与普适性。
5.遗传编程算法是一类特殊的演化计算方法。该算法首先将问题变量符号化为基因,将问题的解编码成一系列链式或树形的染色体,每条染色体都表示着问题的一个候选解,这些染色体共同构成了一个种群。通过对染色体进行变异、交叉、评估、选择等操作,算法得以引导种群进化,并经迭代后最终搜索出高质量的解。遗传编程算法无需确定数学模型,全局搜索能力强,计算开销较小,其解具有可解释性,十分适合于求解机器学习中的回归和分类问题,如符号回归问题等。一条人类可读的人群行为规则本质上是由多种变量与运算按照一定顺序排列组合成的符号序列,因此十分适合建模为符号回归问题并使用遗传编程算法求解。
6.然而,人群行为建模问题本身涉及大量的潜在因素,如行人到目的地的距离与方向,行人到障碍物的距离与方向,人群本身的密度,场景的布局形状,行人之间的相互影响与作用,以及一些心理学与社会学的因素,如行人的性格与年龄等。目前,关于哪些因素对人群行为具有重要影响,以及各种影响因素间是如何协同作用于行人行为的这两个重要问题,学界一直未有统一定论。这使得人群行为规则自动提取技术尚且不够高效。一方面,根据专家经验和先验知识人为地选择一些可能有效的特征将耗费大量的人力时间成本,不利于规则提取技术的广泛应用。另一方面,倘若人为地手动预设一些可能有效的特征,则有可
能引入人类偏见,并且这些不一定广泛适用于不同场景,同时有机会使得个别决定性特征被漏选,最终影响提取出的规则的有效性。


技术实现要素:

7.针对现有技术存在人群建模问题包含大量隐含特征、现有技术难以甄别和合理利用有效特征、手动设计的特征严重受限于人类知识经验等问题,本发明提供基于新型特征自动构造的人群行为规则自动提取方法,本发明能实现对人群行为规则所涉及的大量潜在特征进行自动提取,从而进一步提高人群行为规则自动提取技术的效率,发现更准确有效、真实可信的人群行为规则。
8.为了实现本发明目的,本发明提供的基于新型特征自动构造的人群行为规则自动提取方法,包括以下步骤:
9.(1)输入一组由n个样本组成、每个样本是一组状态动作对(state

action pair)的训练数据集,其样本中的状态作为输入特征,动作属于数据标签;在该发明中,状态由一些基本初阶特征表示,动作则是每个行人下一时刻的速度;输入主程序和自动定义特征(automated defined terminal,adt)子程序使用的函数原语集(function primitive set)和终端集(terminal set),分别记作f
m
、t
m
、f
a
、t
a
;随机初始化规模为k的种群p,初始化adt库
10.(2)基于遗传算子对种群p中个体逐一进行突变,使得种群p突变为子代种群o。
11.(3)逐一评估种群o中个体,以获得每一株表达树中所有节点的语义。
12.(4)对o中的个体逐一进行语义反向传播(semantic back

propagation,sbp),以确定能够使个体输出最优语义的adt期望语义从adt库中挑选语义与最贴近的adt,以之替换染色体中的一条adt。于是,子代种群o突变为种群q。
13.(5)逐一评估种群q中个体的适应度。
14.(6)对p和q进行(1 1)互斥选择(exclusive 1 1 selection),以挑选m条新染色体组成新一代种群p
t 1
,t为进化代数。
15.(7)搜集o中的新adt加入到adt库l中。同时根据l中的旧adt以及种群q相对于种群o的改善程度,更新l中的adt评分,把评分过低的adt筛除出库。
16.(8)若满足停机条件,则结束算法,否则返回步骤(2)。
17.与现有技术相比,本发明能够实现的有益效果至少如下:
18.1、本发明通过同时对人群行为规则及其所用到的相关特征进行符号化、序列化的复合型编码,实现对规则和特征的同时自动构造,从而解决手动设计的特征严重受限于人类知识经验的问题。
19.2、本发明设计了一种综合考虑特征相关性、独特性、表现性能的评价指标,以衡量自动构造的特征的质量,从而筛选出优秀的特征,并通过语义反向传播法,自适应地为人群行为规则选择合适特征并加以使用,最终增强所构造的人群行为规则的有效性,解决现有技术难以甄别和合理利用有效特征的问题。
附图说明
20.图1为本发明实施例中gp染色体结构示意图。
21.图2为本发明实施例语义反向传播原理示意图。
22.图3为本发明方法的流程图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都是本发明保护的范围。
24.步骤1:输入一组由n个样本组成、每个样本是一组状态动作对的训练数据集,其样本中的状态作为输入特征,动作属于数据标签;状态由基本初阶特征表示,动作则是每个行人下一时刻的速度;分别输入主程序和自动定义特征子程序使用的函数原语集和终端集,分别记作f
m
、t
m
、f
a
、t
a
;随机初始化规模为k的种群p,初始化adt库
25.在本发明其中一个实施例中,请参阅图1,在程序层级,一条染色体由主程序和多条adt子程序串联构成。其中,主程序定义解的总体行为,负责最终的程序输出;而每一条adt子程序则是一个自动构造的高阶特征,同时这些高阶特征将会被用作主程序的输入。在下一层级,主程序和子程序都可被拆解为头部和尾部。通过基因层级可知,程序的头部包括函数原语和终端符号两种类型的基因,而其尾部则只能由终端符号组成。adt子程序的终端符号是一些基本初等特征,如行人上一时刻的速度,目的地的位置,离行人最近的障碍物的位置,行人当前的位置等,而主程序的终端集合则既可以是高阶特征adt,也可以是初阶特征。
26.图1给出了本发明中gp算法的染色体结构示意图。如图1所示,染色体的结构可分为四个层级。在程序层级,即图中的最上层级,染色体可分为一个主程序和若干个adt子程序。其中,主程序定义了解的总体行为,负责最终的程序输出;而每一条adt子程序则是一个独立的自动构造的高阶特征,将被主程序用作程序的输入。其次是功能层级,主程序和adt子程序都由头部和尾部构成。功能层级的下一层级为基因层级,程序的头部由函数原语和终端符号构成,而尾部只包含终端符号。主程序的终端符号既可以是adt特征(如第1个adt程序λ1),也可以是一些基本特征(如行人的上一时刻速度),而adt子程序的终端符号则只能是基本特征(如行人的上一时刻速度)。最后,在最底层的是表达层级,此时主程序和adt子程序的基因片段分别根据宽度优先遍历法转译成表达树。adt子程序表达树的根节点输出是一个高阶特征的语义,同时作为主程序表达树中某一叶子节点(如λ8)处的特征输入。
27.步骤2:对种群p中个体基于遗传算子进行进化,使得种群p进化为子代种群o。
28.在遗传编程算法中,个体通过遗传算子自我更新和搜索解空间,并通过选择操作实现种群的不断进化。
29.在本发明其中一个实施例中,使用的遗传算子为基于差分进化的突变操作
(differential evolution

based mutation,dem),对种群p中个体基于逐一进行基于差分进化的突变,使得种群p突变为子代种群o。可以理解的是,在其他的实施例中,可以使用其他的遗传算子来进行突变操作。
30.对于种群中的第i个个体,差分进化突变的具体过程如下所示:
31.步骤2.1:定义种群p中具有最优适应度值的染色体为精英个体确定染色体c
i
中属于主程序或属于未使用adt的基因位点集合通过随机均匀采样确定两个取值介于0到1之间的随机变量f和cr的值,即f,通过无放回随机均匀采样确定两条不同于i的染色体c
r
和c
w
,即r,,即r,s.t.,r≠w≠i;
32.步骤2.2:对于基因位点集合中的每一个基因位点j,若满足或则跳至步骤2.3,否则j

j 1;
33.步骤2.3:定义函数原语集和终端特征集若基因位点j位于主程序上,则有和否则基因位点j位于adt子程序上,有和定义两个布尔型变量u1和u2,分别定义为u1为真当且仅当染色体c
i
于基因位点j的基因c
i,j
与精英个体对应位点上的基因不同,以及u2为真当且仅当两条随机染色体c
r
与c
w
于基因位点j上的基因c
r,j
与c
s,j
不同,即u2←
(c
r,j
≠c
s,j
);
34.步骤2.4:若成立,则跳至步骤2.5,否则跳至步骤2.2;
35.步骤2.5:若基因c
i,j
属于主程序的头部h
m
或adt子程序的头部h
a
,即c
i,j
∈(h
m
∪h
a
),则从函数原语集或终端特征集中随机挑选一个原语符号作为新基因,即否则基因c
i,j
属于主程序的尾部t
m
或adt子程序的尾部t
a
,即c
i,j
∈(t
m
ut
a
),则从终端特征集中随机挑选一个终端符号作为新基因,即
36.需要说明,步骤2.1限定了突变的发生仅限于主程序上或未被使用的adt上的基因;而对于那些属于被主程序使用的adt中的基因,突变dem不会加以改变。该种限制是为了维持进化的稳定性。倘若同时对主程序和被主程序使用的adt子程序进行突变,那么新产生的个体有可能难以有效利用旧个体中一些非常高效的adt子程序,因为它们已经改变了,同时亦可能难以适应经突变产生的新adt子程序,因为这些新adt很有可能从未被种群遇到过。相反地,通过固定那些被使用的adt保持不变,转而突变染色体主程序,则有可能使个体通过进化更好地与adt特征相互适配与融合。然而,与此同时,若固定所有adt程序使其保持不变,则种群中将永远不会诞生新的adt特征。为了解决这种问题,本发明使未被利用的adt跟随主程序一同突变,因为它们的突变并不会大幅影响主程序的表达。
37.两个重要的布尔变量显著影响种群的进化路线,即u1与u2。一方面,u1控制整个种群朝向当前的历史最优解(即)的方向演化,驱使种群收敛;另一方面,为防止所有个体均
突变为从而导致种群陷入局部最优,u2控制个体朝向区别于种内其他个体的方向独立演化,驱使种群发散。需要补充的是,步骤(3)使得u1和u2为真的取等条件不是符号判断,而是数学含义上的判断。举例而言,若两个基因符号c
r,j
和c
w,j
均为“ ”号,则u2的等式成立;然而,若两个基因符号c
r,j
和c
w,j
均为“adt
1”,则它们有可能不相等,因为它们所指示的是各自染色体上的第一条adt子程序,而这两个adt不一定相等。
38.步骤s3:逐一评估子代种群o中个体,以获得每一株表达树中所有节点的语义。
39.在本发明其中一个实施例中,评估的步骤如下:
40.依次将数据集中的n个样本输入到表达树的叶子节点;
41.经过逐层的节点运算,表达树最终在根节点处输出预测值,即某一行人下一时刻的速度。待所有样本运算完成后,n个预测值组成一个n维的向量称为该表达树的语义;
42.将该输出语义与同为n维的真实数据标签作对比,求取两者之间的误差(如均方根误差),该误差值最终作为评估个体质量的指标。
43.此外,表达树中的所有其他节点在运算过程中也都有着自己的语义,这些中间节点的语义将在步骤4中语义反向传播法被用到。
44.步骤:4:对子代种群o中的个体逐一进行语义反向传播,以确定能够使个体输出最优语义的adt期望语义从adt库中挑选语义与期望语义最贴近的adt,以之替换染色体中的一条adt,于是,子代种群o突变为种群q。
45.步骤4.1:对子代种群o中的个体逐一进行语义反向传播,以确定能够使个体输出最优语义的adt期望语义
46.在本发明其中一个实施例中,通过语义反向传播法(semantic back

propagation,sbp)从adt库中为染色体挑选最合适的adt。
47.步骤4.1.1:随机选择表达树中某一叶子节点作为目标节点tn,初始化一条从根节点rn到目标节点tn的路径τ={tn};同时初始化期望语义为数据标签,即
48.步骤4.1.2:把目标节点tn的父节点pntn加入到路径头部,即路径τ

{pn
tn
,τ},同时把tn更改为tn的父节点,即tn

pn
tn

49.步骤4.1.3:若路径τ中的第一个元素τ0非根节点rn,则返回步骤(4.1.2);
50.步骤4.1.4:若路径τ中第一个元素τ0是函数节点,则使用第一个元素τ0对应运算符的逆运算更新期望语义若第一个元素τ0是终端节点(即叶子节点),则终止算法;
51.步骤4.1.5:从路径τ中删除第一个元素τ0;若路径则返回步骤(4.1.4);否则输出即得到所述能够使个体输出最优语义的adt期望语义
52.具体地,图2为本发明其中一个实施例中语义反向传播原理示意图。如图2所示,首先,在所有adt叶子节点(本实施例的叶子节点为λ1,λ2,λ3,λ4)中随机选择叶子结点λ3进行adt替换。随后,一条从根节点出发直至叶子结点λ3的路径τ被确定,即τ=(

*
→‑→
λ3)。紧接着,假设表达树中所有其他节点的输出语义(即实现方框中的数值)都是正确的,而只有路径τ中叶子节点的输出语义不正确,则这种语义错误是由于叶子结点λ3的语义错误引起的,则说明叶子结点λ3不是合适的特征。于是,期望语义沿着路径τ由根节点至叶子节点迭代传导,其中每一个节点
的期望语义由其父节点的逆运算求取。具体地,本实施例中,路径τ中四个节点的期望语义的计算方式分别为计算方式分别为其中分别为节点 ,*,

,λ3的期望语义,分别为节点
÷
,exp,λ1的输出语义,是数据标签。最终,得到路径τ中叶子节点的输出语义(如虚线框中数值所示)。
53.gp染色体的语义定义为其表达树的输出向量,其中的每一维对应一个训练样本的预测标签。语义反向传播法的原理是把期望语义(即所有训练样本的真实标签)从基因表达树顶端的根节点传输至某一目标节点,从而获得能使表达树输出期望语义的目标节点处的应有语义。具体地,该方法分为以下步骤:
54.具体地,步骤4.1.4中的逆运算针对不同的运算符与操作符而有所不同,如表1所示。其中,s,v为节点τ0的子节点的输出语义,s对应属于路径τ中的节点,v则对应另一子节点;,d为τ0的期望语义,e
s
表示以自然常数为底的指数运算,∈为取值很小的常数,如10

10
,sign(s)输出s每一维的正负号。
55.表1.常见函数原语的逆运算
[0056][0057]
由于语义反向传播法被应用于adt特征选择,因此步骤4.1.1中的目标节点被限定为主程序中的叶子节点。针对某一条染色体,假定其目标节点为adt
k
,则在完成语义反向传播法操作后,算法获得了adt
k
在主程序中对应位置的期望语义也就是说,为了使得主程序最终能够输出主程序中在基因adt
k
的位置应输出期望语义而非adt
k
的输出语义
[0058]
步骤4.2:从adt库中挑选语义与期望语义最贴近的adt,以之替换子代种群o中染色体在语义反向传播法中选择的叶子节点tn对应的adt,于是,子代种群o突变为种群q。
[0059]
在本发明其中一个实施例中,采用基于语义反向传播的adt特征确定机制根据期望语义到adt库l中寻找语义匹配的替代adt,一个最优的替代adt通过下式确定:
[0060][0061]
其中,是adt库l中的某个adt的语义,rmse是均方根误差(rooted mean square error)的计算函数,adt
opt
是指在adt库中,其语义与期望语义之间最接近的那个adt。
[0062]
需要指出,由于一个adt特征可能被主程序中不止一个叶子结点占用(例如以下染色体:| |adt1|*|adt1|adt2|),因此简单地替换某一adt程序有可能导致主程序中的其他叶
子节点也被一并改变,从而最终使得替换adt后的主程序仍然无法输出或逼近的语义。例如,假设对上述染色体中的第一个adt1进行语义反向传播,最终获得期望语义那么由此可得此可得此时若把adt1子程序替换为库中的adt
opt
,同时假设adt
opt
足够好(即),则有即语义反向传播sbp失效了。为了避免这种情况的发生,对于一条头部长度为h
m
,主程序总长为(2h
m
1)的染色体,其主程序后应衔接(h
m
2)条adt子程序。这保证了在任何情况下染色体中至少有一条adt程序是空闲的,即未被主程序占用。于是,在语义反向传播sbp发生时,该空闲的adt程序将被替换为adt
opt
,而主程序中除了目标节点外的其他节点即可保持不变。
[0063]
步骤5:逐一评估种群q中个体的适应度。
[0064]
根据步骤3和步骤5,种群的一次进化需执行两次评估,其中步骤3中的第一次评估的目的是为了确定种群o中表达树每一个节点的语义,以便为步骤4中的语义反向传播做准备;而步骤5中的第二次评估的目的则是为了确定种群q中染色体的适应度值,以便为步骤6中的选择操作准备。需要指出,在完成语义反向传播后,每条染色体的主程序所对应的表达树中实际仅有一个adt叶子节点被更新。也就是说,仅有从该节点至根节点的路径τ上的节点的语义发生了变化,需要被重新计算,而路径τ以外的其他节点的语义则维持不变。因此,步骤5的第二次评估操作只需逐一前向计算路径τ中的节点的原运算即可。具体地,计算从更新后的adt叶子节点出发,若路径τ中某一中间节点的原运算为一元运算,则只需把路径中的上一节点(即其子节点)的输出作为输入计算;若该中间节点为二元运算符,则只需把τ中的上一节点与其另一个路径τ以外的子节点(语义已在步骤3中求取并保持不变)的输出作为输入计算;最终,当计算至根节点处时,输出整株表达树的语义。由此可得,对于一株拥有n个节点的表达树,基于路径τ的前向计算可将计算复杂度由o(n)降至o(log n),提升算法效率。
[0065]
步骤6:对种群p和种群q进行选择,以挑选k条新染色体组成新一代种群p
t 1
,t为进化代数。
[0066]
采用演化算法对种群p和种群q进行选择,演化算法可以采用(1 1)互斥选择、(1 1)选择法、轮盘赌选择法和锦标赛选择法等。其中,(1 1)互斥选择是以上几种选择策略中与基于差分进化算法的变异策略结合得最好的一种策略。(1 1)互斥选择法在本发明方法中表现良好的原因在于,它能平衡开发(exploitation,即保留直至目前为止的最优解)和探索(exploration,即搜索新的解)两种行为,使得步骤2.4中决定种群中个体变异的关键条件条件能够根据种群朝向当前历史最优解的收敛情况(对应于开发行为),以及种群内的多样性情况(对应于探索行为)自适应地做出调整。在本发明其中一个实施例中,使用基于差分进化的突变法进化种群,并选择与之相适应的(1 1)互斥选择法。
[0067]
在本发明其中一个实施例中,使用互斥(1 1)选择法(exclusive(1 1)

selection)筛选出新一代的种群。该选择法基于差分进化中常用的(1 1)选择法,并在其基础上添加了一条额外的互斥约束,以保证子代种群中的个体不仅优于或等于父代种群中的
对于父本,而且在子代种群中具有唯一存在性。具体地,(1 1)互斥选择法的过程定义如下:
[0068][0069]
其中,为突变后种群q
t
中的第i和第k个个体,为父本种群p
t
中的第i个个体,为下一代种群p
t 1
中的个体,和分别为对个体和求取适应度函数,本发明中的适应度函数为均方根误差(rooted mean square error,rmse)、均方误差,平均绝对误差中的任一种,其中,本发明其中一个实施例中采用的适应度函数为均方根误差,定义如下:
[0070][0071]
其中为的输出向量,为数据的真实标签,n为样本数量,||
·
||2为二范数。
[0072]
步骤7:搜集子代种群o中的新adt加入到adt库l中,同时根据adt库l中的旧adt以及种群q相对于子代种群o的改善程度,更新adt库l中的adt评分,把评分低于预设值的adt筛除出到adt库l。
[0073]
在本发明其中一个实施例中,采用基于cup标准的adt特征筛选机制来对adt特征进行筛选。
[0074]
从所有adt中挑选少数优秀的adt存入adt库中的特征筛选机制主要通过本发明所提出的一种新型特征评价方案实现,简称为cup标准。具体地,cup标准包括三个指标,分别为相关性(correlation),独特性(uniqueness)和基于包装器的性能(wrapper

based performance)。
[0075]
其中,相关性考虑adt特征的语义与数据标签之间的联系程度。一个adt特征的语义与数据标签之间的相关性越强,则该特征越优秀。可以采用皮尔逊相关系数、斯皮尔曼相关系数、最大信息系数中的任一种系数来衡量相关性。相比于斯皮尔曼相关系数,皮尔逊相关系数对特征和数据标签之间的相关性更为敏感,即更容易检测出两者间的事实相关关系。相比于最大信息系数,皮尔逊相关系数的计算耗时更短,因此更有利于节省算力、提高算法效率。在本发明其中一个实施例中,使用皮尔逊相关系数(pearson correlation coefficient,pcc)的绝对值衡量相关性,特征相关性指标的计算方式如下:
[0076][0077]
其中e统计的是一组样本数据的期望,为三个n维向量,代表三种基于原始特征和数据标签的新的数据分布,分别定义为
pcc衡量了两组数据之间的线性相关性,其取值范围为[

1,1],

1表示语义与数据标签完全负相关,1表示两者完全正相关,0表示两者完全独立无关。在adt库中,本实施例希望adt特征与数据标签强相关,无论该相关性为正或为负,因此对pcc取绝对值。
[0078]
只有相关性对于特征筛选而言是不够的,因为这有可能导致adt库中的特征与数据标签尽管高度相关,但同时特征与特征之间高度相似。这将导致冗余的特征不断挤占adt库的有限容量,拖慢算法执行时间,同时剥夺了另外一些独特的、描述其他不同信息的特征在adt库中的空间。因此,本发明考虑了特征独特性度量,以舍弃冗余特征,并筛选出那些与众不同的特征。独特性度量定义为特征与adt库中所有其他特征的平均相关性取反,其表达式如下:
[0079][0080]
其中,|l|为adt库l的大小,为特征关于特征的相关性,计算方式如公式(4)所示。
[0081]
然而,相关性和独特性都是基于过滤器(filter)的度量,它们都只关注特征本身,而并未结合具体模型本身的特点,考虑特征之于模型的适宜程度。基于此,本发明设计了第三种基于包装器(wrapper)的特征性能度量,以衡量特征在应用于具体算法时的实际表现情况,其定义如下:
[0082][0083]
其中,和分别为种群第t和t

1代时,特征的基于包装器的性能值,为公式(4)中的特征相关性。
[0084]
其中,α为取值为(0,1)之间的衰减因子,为奖励因子,定义如下:
[0085][0086]
式(3)和(4)把相关性、独特性结合到基于包装器的性能度量中,构成了最终的cup特征评价标准。通过把adt特征的相关性值设置为其基于过滤器的性能的初始值,那些与数据标签强相关的特征将拥有较大的容错性,即获得更多的机会以尝试优化gp个体。同时,由于特征独特性u的取值取决于adt库中的所有adt,而adt库是一直动态更新的,这使得特征独特性u值也一直在波动。通过把特征独特性u融入到基于过滤器的性能p值的奖励因子中,cup标准能够根据adt特征的独特性及时地、动态地调整adt特征在adt库中的重要性。最终,本方法迭代地把每一代种群中新出现的adt特征加入到adt库中,同时把那些基于过滤器的性能p值过低的特征剔除出库。具体的剔除p值的方法有很多种,譬如,当adt库的当前
容积超过其最大容量(比如500个adt特征)时,依次删除库中性能p值最低的那一个adt,直至库的容积降至最大容量为止;或者,把库中所有当前性能p值低于某一预设阈值(如0.01)的adt特征删除。基于此,adt库得以保留那些相关性强的、独特的、且能经常优化种群的特征,同时筛除那些弱相关的、冗余的、或不适配gp模型本身的特征,从而始终维持合理的库规模。
[0087]
步骤8:若满足停机条件,则结束算法,否则返回步骤(2)。
[0088]
停机条件是指用户根据自身需求设置的终止算法执行的判定条件,如种群已进化至最大代数(如10000代),或者当前历史最优解的均方根误差已收敛至预设值,该预设值要足够小(如小于0.0001)。
[0089]
本发明中的adt特征选择机制包含两层含义。一方面,进化过程中出现的adt被保留到一个adt库中,以供将来的种群使用;而adt库的容量是有限的,这需要一种特征选择机制以便确保只保留少数优秀的adt,从而提高算法的执行效率。另一方面,将来的种群在利用adt库中的adt时,也需要一种特征选择机制来帮助个体挑选出最合适的adt特征。
[0090]
本发明从两个方面实现自动发现高级特征的功能;一方面,本发明设计了新型的复合型染色体结构与解的编码形式,使得高级特征跟随人群行为规则一同迭代进化;另一方面,本发明设计了新型特征选择方案,自动筛选有效的高级特征。
[0091]
本发明从两个方面从海量高级特征中筛选出最合适的特征;一方面,本发明通过相关性、独特性和基于包装器性能指标,综合评价每一个高级特征,从而把优秀的特征保存起来以供将来使用;另一方面,本发明采用语义反向传播法,为问题解挑选最贴合的高级特征,从而提高搜索效率。
[0092]
本发明提出了新型的高级特征自动构造技术,以及一套辅助的特征选择技术,以构造出一系列高性能特征,提高人群行为规则的有效性。针对一个广泛应用于人群建模研究的真实数据集,本发明通过充分的实验,验证了所发明技术的高效性。具体地,发明人把所发明方法同另外几种常用或前沿的方法作对比,经过30次重复实验,本发明方法在测试集上测得的平均均方根误差值为0.5920,优于社会力模型的1.8852,自学习基因表达式编程算法的0.9708,以及社会型长短期记忆网络的0.8090。
[0093]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献