1.基于梯度相似性超网的多目标神经架构搜索方法,其特征在于,包括以下步骤:步骤1:构建包含两个以上子网的超网,通过训练超网来生成供所有子网共享的权重;
在超网训练过程中,计算各个子网在优化目标上的总梯度;
步骤2:获取每个子网的梯度范数,采用梯度范数的重要性采样策略,根据梯度范数的大小动态调整子网的采样概率;
步骤3:采用PCGrad投影法处理多目标优化过程中不同子网之间的梯度冲突问题,通过计算不同子网之间的梯度相似性,进行加权平均得到最终梯度更新方向;
步骤4:采用CIFAR‑10数据集,将数据集划分为两个部分:超网训练数据集:用于训练超网以获得共享权重;
种群性能评估数据集:用于对种群中各个架构的性能进行评估,并在进化过程中确定最优架构;
初始化一个种群,种群中的每个架构直接从超网中继承共享权重,并在目标数据集上进行训练,获取在目标上的性能;
步骤5:利用非支配排序遗传算法NSGA‑III对采样得到的架构进行非支配排序,从帕累托前沿中的架构选出前N个架构,形成下一代父代;
步骤6:重复步骤4至步骤5,直至满足预定停止条件,输出在各个目标均衡表现最优的帕累托前沿架构,并从中选择性能最好的架构,从超网继承权重进行单独训练;
步骤1包括:
步骤1.1,设计子网的损失函数:
在超网S的训练过程中,定义如下目标:精度Accuray、浮点计算次数FLOPs、参数量Params;针对每个子网,设计如下多目标损失函数L:其中,K为优化的目标数量,Lk是第k个目标的损失函数,λk是第k个目标的权重;
步骤1.2,计算子网各个目标上的梯度和多目标总梯度:对在超网训练过程中被采样到的子网,进行前向传播计算多目标损失函数L,然后通过反向传播分别计算子网在每个目标上的梯度:其中,gk表示子网在第k个目标上的梯度, 是对损失函数Lk的梯度;
将每个目标上的梯度按照损失函数中的加权方式进行加权求和,得到子网在多个目标上的总梯度:其中,G是多目标优化的总梯度。
2.根据权利要求1所述的方法,其特征在于,步骤1.1具体包括:步骤1.1.1,定义权重调整指标:在多目标优化过程中,设每个目标Lk的当前损失值为Lk(t‑1),定义rk(t‑1)为第k个目标在时间步t‑1的相对训练速度,公式为:其中,t表示为时间步,取值范围为t=1,2,3,...,Tmax,其中Tmax表示超网训练的最大迭代次数;Lk(t‑2)是在前一个时间步的损失值;
步骤1.1.2,权重的动态调整:计算第k个目标在时间步t时的权重:其中,K表示目标的总数,ri(t‑1)为第i个目标在时间步t‑1的相对训练速度,T为温度系数,exp是自然指数函数。
3.根据权利要求2所述的方法,其特征在于,步骤2包括:步骤2.1,计算子网的梯度范数:
对在超网训练过程中被采样到的子网,计算总梯度G的梯度范数:其中Gi为第i个子网在多个目标上的总梯度,‖Gi‖为第i个子网的梯度范数,Gij是第i个子网的总梯度向量Gi的第j个分量;
步骤2.2,计算子网采样的概率:
设每个子网i的梯度范数为‖Gi‖,则采样概率与‖Gi‖成正比:其中,M表示单次采样子网的数量,pi是第i个子网被采样的概率。
4.根据权利要求3所述的方法,其特征在于,步骤3包括:步骤3.1,检测梯度冲突:对于两个不同的子网Si和Sj,定义它们在多目标上的总梯度分别为Gi和Gj,通过计算梯度的余弦相似性cos(θij),判断它们之间是否存在梯度冲突:其中,如果余弦相似性cos(θij)<0,则表明两个子网之间存在梯度冲突;
步骤3.2:当检测到子网之间存在梯度冲突时,采用PCGrad投影法来处理冲突;
步骤3.3:权重更新与训练迭代:根据每轮计算得到的多目标上的总梯度G,对超网的共享权重进行更新。
5.根据权利要求4所述的方法,其特征在于,步骤3.2包括:步骤3.2.1,选择主导梯度:当检测到子网之间存在梯度冲突时,比较冲突的两个子网梯度范数,如果‖Gi‖>||Gj||,则选取‖Gi‖作为主导梯度,||Gj||作为待投影梯度;
步骤3.2.2,梯度投影:
计算待投影梯度Gj在主导梯度Gi上的投影分量,将梯度Gj投影到Gi的正交方向上:其中,Gj′为梯度Gj投影之后的梯度;
步骤3.2.3,对投影后的梯度进行加权平均:
其中,Gs表示的是超网训练时梯度更新的方向。
6.根据权利要求5所述的方法,其特征在于,步骤4包括:初始化一个种群P0,大小为N,每个个体代表一个架构;种群中的每个个体表示为架构Archi,i∈[1,N];架构Archi的结构和操作类型是通过从超网中随机采样得到的架构;
在父种群初始化之后,对父种群进行交叉变异得到N个新架构Q0,将父种群与新生成的架构进行合并得到种群R0=P0∪Q0;对R0中的每个架构Archi,从超网S中继承共享权重WS,并在训练数据集Datatrain上进行微调,得到每个架构在多个目标上的性能,具体表示为:其中,精英种群库Archive中初始存的是父种群的架构;Xi表示第i个架构在多个目标上的性能,具体表示为:其中Acci表示第i个架构Archi在训练数据集上的分类准确率;Flopsi表示第i个架构Archi的浮点计算次数;Pramasi表示第i个架构Archi的参数量。
7.根据权利要求6所述的方法,其特征在于,步骤5包括:步骤5.1,对合并之后的种群R0中的架构进行NSGA‑III非支配排序:非支配排序将架构个体分为两个以上层次,其中第一层是非支配的架构,表示架构在所有目标上都没有被其他个体所完全支配;第二层包含仅被第一层支配的架构;非支配排序的结果用来对整个种群进行分层,高层的架构优先进入下一代:F(Archi)=[Acci,Flopsi,Pramasi]其中,目标函数向量F(Archi)表示为第i个架构Archi在不同优化目标上的表现;
步骤5.2,选择参考点:在完成非支配排序后,NSGA‑III采用预先定义的参考点来指导个体的选择,对于每一个架构Archi,计算Archi与各个参考点之间的欧氏距离,将Archi分配到离Archi最近的参考点;
步骤5.3,选择生成下一代个体:通过非支配排序和参考点的关联,从最优的非支配层次即第一层开始,逐层选择个体,直至填满N个个体为止;被选择出来的N个个体作为下一代父代种群Pt+1,将Pt+1存入精英种群库Archive中;从Pt+1中通过锦标赛选择、交叉和变异操作后生成子种群Qt+1。
8.根据权利要求7所述的方法,其特征在于,步骤6中,对于新的父种群继续重复步骤4至步骤5,直至达到了设定的代数,最后更新的精英种群库Archive中包括了选择出来的在多个目标上都表现较优的架构,从精英种群库Archive中选择性能最好的架构,从超网继承权重进行单独训练。
9.根据权利要求1~8任一项所述的方法实现的基于梯度相似性超网的多目标神经架构搜索系统,其特征在于,包括:基于超网的共享权重继承模块:用于从超网中继承共享权重,确保架构在目标数据集上不必从头开始训练,而是通过继承超网权重直接进行微调,大幅减少训练时间和资源消耗;
基于梯度范数的重要性采样模块:在超网训练过程中,基于梯度范数的重要性采样模块用于计算各个子网的梯度范数,并基于这些范数进行重要性采样;
基于梯度相似性的投影模块:通过PCGrad投影法解决多目标优化过程中不同子网之间的梯度冲突问题;通过计算子网之间的梯度相似性,处理冲突的梯度,确保在多目标优化中实现稳定且高效的权重更新。