1.基于三元比较代理辅助的粒子群神经架构搜索方法,其特征在于,包括以下步骤:步骤1,在搜索空间中初始化粒子种群,每个粒子代表一个神经网络架构,使用粒子群算法演化G代并真实评估种群内的所有架构个体,获得真实性能,并记录所有被真实评估的架构性能数据;
步骤2,将经过真实评估过的架构做成三元组样本,根据真实性能之差为每个三元组中的两两组合打上性能差标签,从而作为代理模型的训练数据集,并训练代理模型;
步骤3,通过粒子群算法的更新公式,继续产生架构个体,并利用代理模型对当前架构与当前粒子的局部最优架构进行双重比较并采取松弛操作,从而得到当前架构与当前粒子的局部最优架构之间的优劣关系,当局部最优发生更替时,再将当前架构与粒子群的全局最优架构放入代理模型做双重比较,并采取松弛操作来判断是否更替全局最优架构;
步骤4,每当发生局部最优架构更替时,则评估更新后的局部最优架构的真实性能,并将更新后的局部最优架构加入架构池中,当架构池中不同架构数量达到设定的阈值时,则使用最新架构性能数据更新代理模型,优化模型的性能以适应不同搜索阶段;
步骤5,重复步骤3至步骤4,直至满足停止条件,输出全局最优架构。
2.根据权利要求1所述的方法,其特征在于,步骤1中,初始化一个粒子种群,Ni代表第i个神经网络架构,n为种群粒子数量;同时随机初始化 的位置和速度,Ni的位置表示为 , 为第i个粒子在第d维上的位置;Ni的速度为 , 为第i个粒子在第d维上的速度;然后演化G代,评估得到每一个架构在任务数据集上的性能指标,并保存在架构池 中,其
中N是架构池Archive中架构性能对的总对数,(Archi,yi)表示一个架构性能对,Archi是记录里的第i个架构,yi是第i个架构对应的性能。
3.根据权利要求2所述的方法,其特征在于,步骤2包括:
步骤2.1,制作三元组训练数据集:
3
对于架构池Archive中的架构无重复的组合成数量级为N的三元组训练数据集,单个三元组 ,对应的三元组标签为,其中i、j、k满足i≠j,k>j;
步骤2.2,设计代理模型的结构:
所述代理模型包括架构特征提取器和性能差预测器,所述架构特征提取器和性能差预测器相互耦合,共同训练和完成架构特征提取和性能差预测的任务;
所述架构特征提取器包括图卷积层,架构特征提取器基于节点间信息的传输和聚合完成对神经网络架构特征的提取,获得架构表示;
所述性能差预测器包括全连接层,性能差预测器基于架构表示的学习完成对输入的一对神经网络架构性能差预测;
在图卷积层中,节点信息为每个节点特有的特征向量,节点之间的信息传递操作称作聚合操作,聚合操作公式为:,
其中,是激活函数;是含自环的图的邻接矩阵;D是所有节点构成的度矩阵; 是一个含自环的度矩阵, 是第l层架构特征提取器的可训练权重矩阵; 表示第l层架构特征提取器的节点特征向量,并且 , 表示整个架构特征提取器的输入 就是初始的节点特征向量X;通过图卷积层提取到的节点特征信息,再经过一个全局池化层整合所有特征信息,从而获得架构图在隐空间中的表示;
接着,架构表示将被输入到性能差预测器中,预测两个架构之间的性能差;
步骤2.3,设计损失函数,指导代理模型的训练过程:
设计代理模型的损失函数,表示为:
,
,
,
其中,L1为交叉熵损失函数,m是输入数据的批量大小, predicti是代理模型预测的性能差值,targeti是第i个架构对应的真实性能差;L2为设计的符号损失函数,函数 是下限为0的铰链函数, 是符号函数;和 是自适应权重系数;采用总损失函数L指导代理模型的训练,直至收敛。
4.根据权利要求1所述的方法,其特征在于,步骤3包括:
步骤3.1,通过粒子群算法的更新公式对种群中粒子的状态进行更新;
步骤3.2,利用代理模型预测新生成的架构与局部最优架构之间的性能差,以及新生成的架构与全局最优架构之间的性能差;
步骤3.3,基于双重比较和松弛操作判断是否需要对新生成的架构进行真实评估;
步骤3.4,根据新生成的架构的真实评估的结果进一步判断是否需要更替局部最优架构,以及全局最优架构。
5.根据权利要求4所述的方法,其特征在于,步骤3.1中,所述粒子群算法的更新公式为:,
,
其中,为惯性因子;k表示当前迭代的次数; c1、c2是加速系数;rand1、rand2为0~1之间的随机数; 为第k代第i个粒子在第d维上的速度, 为第k代第i个粒子在第d维上的位置; pbestid是第i个粒子在第d维的个体极值点的位置,gbestd是整个种群在第d维的全体极值点的位置。
6.根据权利要求4所述的方法,其特征在于,步骤3.2中,遍历当前种群中的全部个体,对于任意个体Ni,将Ni和Ni所对应的局部最优架构 分别进行one‑hot编码,得到的编码结 构 分 别 为 ,将 直 接 连 接,构 成 代 理模 型 输 入,将代理模型输入inputip送入代理模型中得到对应的新生成的架构与局部最优架构之间的性能差的预测值outputip;将当前迭代代数的全局最优架构gbesti进行one‑hot编码,得到的编码为 ,将 直接连接,构成代理模型输入 ,将代理模型输入inputig送入代理模型中得到对应的新生成的架构与全局最优架构之间的性能差的预测值outputig;从架构池Archive中直接获取pbesti的真实性能yip与gbesti的真实性能yig,并得到真实性能差yipg=yip ‑ yig;最后根据outputip、outputig、yipg来直接判断当前粒子个体是否要对局部最优架构与全局最优架构进行更替。
7.根据权利要求6所述的方法,其特征在于,步骤3.3中,通过outputip、outputig、yipg计算得到 , ,其中sign1是对当前粒子新生成的架构与当前粒子的局部最优架构之间性能差值做松弛操作后得到的差值符号,符号为正,则说明当前粒子新生成的架构性能比当前粒子的局部最优架构性能要高,符号为负,则说明当前粒子新生成的架构性能比当前粒子的局部最优架构性能要低;sign2是以当前全局最优架构作为锚点,并借助已知真实性能差yipg,从而间接比较当前粒子新生成的架构性能与当前粒子的局部最优架构性能的高低,sign2同样是一个差值符号,符号为正,则说明当前粒子新生成的架构性能比当前粒子的局部最优架构性能要高,符号为负,则说明当前粒子新生成的架构性能比当前粒子的局部最优架构性能要低;基于sign1与sign2的双重比较得到的符号做一真即真的判断,也就是sign1与sign2中只要有一个为正号就对当前粒子新生成的架构进行真实评估,获得其真实性能,最后再判断是否需要更新当前粒子的局部最优架构与当前种群的全局最优架构。
8.根据权利要求7所述的方法,其特征在于,步骤3.4中,当新生成架构的真实评估的性能yi大于架构池Archive中获取到的新生成架构对应粒子的局部最优架构的真实评估的性能 时,则使用Ni替代新生成架构对应粒子的局部最优架构pbesti;当yi大于架构池Archive中获取到全局最优架构的真实评估的性能ygbest,则使用Ni替代全局最优架构gbest。
9.根据权利要求7所述的方法,其特征在于,步骤4中,当新生成架构进行了真实评估,得到真实评估的性能yi后,则将架构性能对 去重的存入架构池Archive,当架构池Archive中架构性能对(Archi,yi)的数量达到阈值T时,则重复步骤3,利用架构池Archive中的架构性能对(Archi,yi)做成三元组的训练数据集,从而对代理模型进行重新训练,以保证代理模型的预测准确度。
10.根据权利要求1 9任一项所述的方法实现的基于三元比较代理辅助的粒子群神经~架构搜索,其特征在于,包括:
基于粒子群算法的演化模块:用于产生新的神经网络架构以及推动粒子群的迭代;
基于图神经网络的架构特征提取模块:用于提取网络架构的拓扑结构信息和操作信息,从而生成一个能完整表述网络结构信息的编码;
基于三元组的代理模型训练模块:用于产生代理模型的训练数据样本,基于三元组的数据增强可以让代理模型学习到更加丰富的特征;
基于双重比较和松弛操作的神经网络架构性能差值预测模块:使用代理模型的预测结果替代真实评估,从而降低架构评估的时间成本。