基于零阶近似的可微分神经网络架构搜索方法
未命名
07-27
阅读:112
评论:0
1.本发明属于人工神经网络技术领域,具体涉及一种基于零阶近似的可微分神经网络架构搜索方法。
背景技术:
2.深度学习作为一种端到端的人工智能技术,可以在不使用特征工程和专家经验的前提下,将特征提取的过程完全交由神经网络模型完成。目前该领域方法在图像、语音等任务取得了突出成果,但设计高效、高准确度的神经网络模型需要大量专业知识与人工调参过程,这极大阻碍了深度学习技术在大量实际问题上的应用。
3.为解决这一问题,人工智能领域内开始考虑使用神经网络架构搜索(neuralarchitecture search,nas)方法。darts算法是nas中一种代表性的可微结构搜索策略,其通过对候选操作赋予连续权重,在搜索时进行加权混合,从而使搜索空间连续化,形成一种可微双层优化问题,并使用梯度下降进行性能优化。优化结束后,darts将从混合操作中选取权重最大的操作,从而在丰富的搜索空间确定一种具有复杂拓扑结构的高性能神经网络框架。
4.但是现有的darts自动架构搜索算法对优化问题求解过程不够精确,且需要较大的时间开销,仍然存在低效、低准确度的缺陷。
技术实现要素:
5.本发明是为了解决上述问题而进行的,目的在于提供一种基于零阶近似的可微分神经网络架构搜索方法。
6.本发明提供了一种基于零阶近似的可微分神经网络架构搜索方法,用于通过训练数据集、验证数据集和a个神经网络操作得到对应的复杂神经网络,具有这样的特征,包括以下步骤:步骤s1,构建包括c个神经细胞和d个降采样块的初始神经网络,神经细胞包括k个连接边;步骤s2,从a个神经网络操作中选取b个神经网络操作作为神经网络操作集合步骤s3,将神经细胞的k个连接边分别对应神经网络操作集合的b个神经操作,得到对应的k*b个结构参数,根据k*b个结构参数构建结构参数矩阵α,设置迭代轮次p为1;步骤s4,根据结构参数矩阵α,设置极小值μ和随机单位向量u;步骤s5,根据结构参数矩阵α、极小值μ和随机单位向量u,得到震荡结构参数矩阵步骤s6,将初始神经网络的所有权重参数矩阵设为模型参数矩阵w,根据模型参数矩阵w设置震荡模型参数矩阵步骤s7,根据训练数据集、结构参数矩阵α和震荡结构参数通过第一损失函数和梯度下降方法,得到更新模型参数矩阵w'和更新震荡模型参数矩阵步骤s8,将验证数据集输入初始神经网络,通过第二损失函数和梯度下降方法,得到更新结构参数矩阵α';步骤s9,迭代轮次p加1,再判断迭代轮次p是否小于最大迭代轮次q,若是,则将更新结构参数矩阵α'作为结构参数矩阵α,进入步骤s4,若否,则进入步骤s10;步骤s10,分别选取更新结构参数矩阵α'中每个连
接边对应的b个结构参数中的最大值对应的神经网络操作,作为该连接边的神经网络操作,则得到复杂神经网络。
7.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,神经网络操作为任意保持数据维度的操作。
8.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,神经网络操作包括零操作、跳跃连接操作、1
×
1卷积操作、3
×
3卷积操作和3
×
3平均池化操作。
9.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,第一损失函数和第二损失函数均为交叉熵函数。
10.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,在步骤s4中,极小值μ=0.005||α||2,随机单位向量u的表达式如下:式中u'为具有k*b个元素且每个元素各自遵从正态分布的随机向量。
11.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,在步骤s5中,震荡结构参数矩阵的表达式如下:式中u”为随机单位向量u通过与结构参数矩阵α对齐维度得到的矩阵。
12.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,步骤s7包括以下子步骤:步骤s7-1,设置迭代轮次t=1;步骤s7-2,将训练数据集输入初始神经网络,结合结构参数矩阵α和震荡结构参数矩阵并根据第一损失函数和学习率ηw,更新模型参数矩阵w和震荡模型参数矩阵步骤s7-3,迭代轮次t加1,判断迭代轮次t是否小于最大迭代轮次tt,若是,则进入步骤s7-2,若否,则迭代轮次t为最大迭代轮次tt时,模型参数矩阵w更新结果为更新模型参数矩阵w',震荡模型参数矩阵更新结果为更新震荡模型参数矩阵
13.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,在步骤s7-2中,第一损失函数为损失函数和损失函数损失函数的值为根据训练数据集对模型参数矩阵w和结构参数矩阵α的计算结果,损失函数的值为根据训练数据集对震荡模型参数矩阵和震荡结构参数矩阵的计算结果,根据学习率ηw和损失函数对模型参数矩阵w的梯度通过梯度下降方法,计算得到更新模型参数矩阵w”,作为迭代轮次t+1时的模型参数矩阵w,根据学习率ηw和损失函数对震荡模型参数矩阵的梯度通过梯度下降方法,计算得到更新震荡模型参数矩阵作为迭代轮次t+1时的震荡模型参数矩阵
14.在本发明提供的基于零阶近似的可微分神经网络架构搜索方法中,还可以具有这样的特征:其中,在步骤s8中,第二损失函数为损失函数损失函数的值为根据验证数据集对模型参数矩阵w和结构参数矩阵α的计算结果,结构参数矩阵α的
近似梯度计算公式为:计算公式为:计算公式为:式中为对模型参数矩阵w的梯度,w'(α)表示在该梯度计算中将更新模型参数矩阵w'视为与结构参数矩阵α有关,为对结构参数矩阵α的梯度,w'()表示在该梯度计算中将更新模型参数矩阵w'视为定值与结构参数矩阵α无关,上标t为转置操作,根据设定学习率η
α
和结构参数矩阵α的近似梯度通过梯度下降方法,计算得到更新结构参数矩阵α'。
15.发明的作用与效果
16.根据本发明所涉及的基于零阶近似的可微分神经网络架构搜索方法,因为通过选定的多个神经网络操作构建神经网络操作集合,再根据神经网络操作集合构建结构参数矩阵,通过梯度下降方法更新结构参数矩阵,选取更新后结构参数矩阵中各个连接边对应的结构参数中的最大值作为对应连接边的神经网络操作,则得到复杂神经网络。所以,本发明的基于零阶近似的可微分神经网络架构搜索方法能够提高搜索复杂神经网络的效率和复杂神经网络的准确度。
附图说明
17.图1是本发明的实施例中基于零阶近似的可微分神经网络架构搜索方法的流程示意图;
18.图2是本发明的实施例中面向图像识别的复杂神经网络模型的架构示意图;
19.图3是本发明的实施例中本发明算法搜索所得模型和darts-v2算法搜索所得模型的神经细胞对比示意图。
具体实施方式
20.为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明基于零阶近似的可微分神经网络架构搜索方法作具体阐述。
21.图1是本发明的实施例中基于零阶近似的可微分神经网络架构搜索方法的流程示意图。
22.如图1所示,本实施例的基于零阶近似的可微分神经网络架构搜索方法,用于通过训练数据集、验证数据集和a个神经网络操作得到对应的复杂神经网络,包括以下步骤:
23.步骤s1,构建包括c个神经细胞和d个降采样块的初始神经网络,神经细胞包括k个连接边。
24.步骤s2,从a个神经网络操作中选取b个神经网络操作作为神经网络操作集合
25.其中,神经网络操作为任意保持数据维度的操作。
26.其中,神经网络操作包括零操作、跳跃连接操作、1
×
1卷积操作、3
×
3卷积操作和3
×
3平均池化操作。
27.步骤s3,将神经细胞的k个连接边分别对应神经网络操作集合的b个神经操作,
得到对应的k*b个结构参数,根据k*b个结构参数,构建结构参数矩阵α,设置迭代轮次p为1。
28.步骤s4,根据结构参数矩阵α,设置极小值μ和随机单位向量w。
29.其中,极小值μ=0.005||α||2,随机单位向量u的表达式如下:
[0030][0031]
式中u'为具有k*b个元素且每个元素各自遵从正态分布的随机向量。
[0032]
步骤s5,根据结构参数矩阵α、极小值μ和随机单位向量u,得到震荡结构参数矩阵
[0033]
其中,震荡结构参数矩阵的表达式如下:
[0034][0035]
式中u”为随机单位向量u通过与结构参数矩阵α对齐维度得到的矩阵。
[0036]
步骤s6,将初始神经网络的所有权重参数矩阵设为模型参数矩阵w,根据模型参数矩阵w设置震荡模型参数矩阵
[0037]
步骤s7,根据训练数据集、结构参数矩阵α和震荡结构参数矩阵通过第一损失函数和梯度下降方法,得到更新模型参数矩阵w'和更新震荡模型参数矩阵
[0038]
其中,步骤s7包括以下子步骤:
[0039]
步骤s7-1,设置迭代轮次t=1。
[0040]
步骤s7-2,将训练数据集输入初始神经网络,结合结构参数矩阵α和震荡结构参数矩阵并根据第一损失函数和学习率ηw,更新模型参数矩阵w和震荡模型参数矩阵
[0041]
其中,第一损失函数为损失函数和损失函数损失函数的值为根据训练数据集对模型参数矩阵w和结构参数矩阵α的计算结果,损失函数的值为根据训练数据集对震荡模型参数矩阵和震荡结构参数矩阵的计算结果,本实施例中第一损失函数为交叉熵函数。
[0042]
根据学习率ηw和损失函数对模型参数矩阵w的梯度通过梯度下降方法,计算得到更新模型参数矩阵w”,作为迭代轮次t+1时的模型参数矩阵w。
[0043]
本实施例中更新模型参数矩阵w”的计算公式为:
[0044][0045]
根据学习率ηw和损失函数对震荡模型参数矩阵的梯度通过梯度下降方法,计算得到更新震荡模型参数矩阵作为迭代轮次t+1时的震荡模型参数矩阵
[0046]
本实施例中更新震荡模型参数矩阵的计算公式为:
[0047][0048]
本实施例中学习率ηw的计算公式为:
[0049][0050]
式中为学习率最小值,为学习率最大值。
[0051]
步骤s7-3,迭代轮次t加1,判断迭代轮次t是否小于最大迭代轮次tt,若是,则进入步骤s7-2,若否,则迭代轮次t为最大迭代轮次tt时,模型参数矩阵w更新结果为更新模型参数矩阵w',震荡模型参数矩阵更新结果为更新震荡模型参数矩阵
[0052]
步骤s8,将验证数据集输入初始神经网络,通过第二损失函数和梯度下降方法,得到更新结构参数矩阵α'。
[0053]
其中,第二损失函数为损失函数损失函数的值为根据验证数据集对模型参数矩阵w和结构参数矩阵α的计算结果,本实施例中第二损失函数为交叉熵函数。
[0054]
结构参数矩阵α的近似梯度计算公式为:
[0055][0056][0057]
式中为对模型参数矩阵w的梯度,w'(α)表示在该梯度计算中将更新模型参数矩阵w'视为与结构参数矩阵α有关,为对结构参数矩阵α的梯度,w'()表示在该梯度计算中将更新模型参数矩阵w'视为定值与结构参数矩阵α无关,上标t为转置操作。
[0058]
根据设定学习率η
α
和结构参数矩阵α的近似梯度通过梯度下降方法,计算得到更新结构参数矩阵α'。本实施例中梯度下降方法为给定超参数的自适应矩估计算法。
[0059]
步骤s9,迭代轮次p加1,再判断迭代轮次p是否小于最大迭代轮次q,若是,则将更新结构参数矩阵α'作为结构参数矩阵α,进入步骤s4,若否,则进入步骤s10。
[0060]
步骤s10,分别选取更新结构参数矩阵α'中每个连接边对应的b个结构参数中的最大值对应的神经网络操作,作为该连接边的神经网络操作,则得到复杂神经网络。
[0061]
本实施例中针对面向图像识别的问题场景,在cifar-10数据集中随机选取两万五千张图片数据作为训练数据集,再从cifar-10数据集的剩余图片中随机选取两万五千张图片数据作为验证数据集,构建包括c=15个神经细胞和d=2个降采样块的初始神经网络,神经细胞包括4个数据节点和k=6个连接边,神经网络操作集合为b=5个神经网络操作,具体为零操作、跳跃连接操作、1
×
1卷积操作、3
×
3卷积操作和3
×
3平均池化操作,其中零操作表示将数据乘以0,设置tt=10、设定学习率η
α
=0.015和q=50,得到面向图像识别的复杂神经网络模型作为本发明模型。
[0062]
其中,数据节点i的数据x作为输入,通过混合操作计算后输出至数据节点j的数据的计算公式如下:
[0063][0064]
式中o和o'均为神经网络操作集合中的一个神经网络操作,为数据节点i到数据节点j的连接边为神经网络操作o时的结构参数,为数据节点i到数据节点j的连接边为神经网络操作o'时的结构参数,exp()为以e为底的指数函数,o(x)为输入x经过神经网络操作o的结果。
[0065]
图2是本发明的实施例中面向图像识别的复杂神经网络模型的架构示意图。
[0066]
如图2所示,得到的面向图像识别的复杂神经网络模型包括卷积网络、神经细胞、降采样块和全局平均池化。本实施例中卷积网络将输入数据即待识别图像的维度整理为神经细胞可计算维度,全局平均池化将经由神经细胞和降采样块计算后的特征数据进一步处理以便于获得最终结果即待识别图像的识别结果。
[0067]
将本发明的基于零阶近似的可微分神经网络架构搜索方法即本发明算法、通过针对双层优化内层问题使用一阶展开近似的darts算法darts-v1、通过针对双层优化内层问题使用二阶展开近似的darts算法darts-v2、通过利用隐梯度方法求解darts双层优化问题的结构搜索算法idarts、通过基于darts但减少单次搜索计算量的结构搜索算法pc-darts和通过将darts双层优化转化为单层优化问题的结构搜索算法milenas进行模型搜索,对各算法的搜索模型的消耗时间即搜索耗时进行比较,并通过nas-bench-201结构搜索数据集的api查询得到各个模型对该结构搜索数据集提供的cifar-10测试数据集的图像识别准确率,搜索所得模型图像识别准确率和搜索耗时由三次实验取平均值得到,则各算法的搜索耗时和搜索所得模型图像识别准确率如下表所示:
[0068][0069]
表中第一列为各个算法名称,第二列为各个算法对应的搜索耗时,第三列为各个算法搜索所得模型对应的图像识别准确率。例如第七行第三列的单元格表示本发明搜索所得模型的图像识别准确率为91.88
±
0.46%,0.46为标准差。由上表可得,本发明算法搜索
所得模型相较于其他五个算法在cifar-10数据集上得到的面向图像识别的模型,在图像识别准确率上有较高的准确率,并且所需的搜索耗时相较于其他准确率较高的方法大幅度降低,效率比其他五个方法要更为优秀。
[0070]
图3是本发明的实施例中本发明算法搜索所得模型和darts-v2算法搜索所得模型的神经细胞对比示意图。
[0071]
如图3所示,图(a)为面对图像识别的根据通过针对双层优化内层问题使用二阶展开近似的darts算法darts-v2进行搜索得到的模型的神经细胞中各个数据节点间的神经网络操作,具体为:数据节点0到数据节点1为跳跃连接操作,数据节点0到数据节点2为跳跃连接操作,数据节点0到数据节点3为跳跃连接操作,数据节点1到数据节点2为跳跃连接操作,数据节点1到数据节点3为跳跃连接操作以及数据节点2到数据节点3为跳跃连接操作,图(b)为面对图像识别的通过本发明的基于零阶近似的可微分神经网络架构搜索方法搜索所得模型的神经细胞中各个数据节点间的神经网络操作,具体为:数据节点0到数据节点1为3
×
3平均池化操作,数据节点0到数据节点2为跳跃连接操作,数据节点0到数据节点3为零操作,数据节点1到数据节点2为1
×
1卷积操作,数据节点1到数据节点3为1
×
1卷积操作以及数据节点2到数据节点3为1
×
1卷积操作。可见,本发明算法搜索所得的模型的神经细胞中仅包含一个跳跃连接操作,相较于darts-v2搜索所得模型可以保留足够的参数,因此本发明算法搜索所得的模型在图像识别上相较于darts-v2搜索所得的模型具有更高的准确率。
[0072]
实施例的作用与效果
[0073]
根据本实施例所涉及的基于零阶近似的可微分神经网络架构搜索方法,通过选定的多个神经网络操作构建神经网络操作集合,再根据神经网络操作集合构建结构参数矩阵,通过梯度下降方法更新结构参数矩阵,选取更新后结构参数矩阵中各个连接边对应的结构参数中的最大值作为对应连接边的神经网络操作,可以尽快地得到复杂神经网络,并且通过保留更多参数,提高了复杂神经网络的识别准确率。总之,本方法能够提高搜索复杂神经网络的效率和复杂神经网络的准确度。
[0074]
上述实施方式为本发明的优选案例,并不用来限制本发明的保护范围。
技术特征:
1.一种基于零阶近似的可微分神经网络架构搜索方法,用于通过训练数据集、验证数据集和a个神经网络操作得到对应的复杂神经网络,其特征在于,包括以下步骤:步骤s1,构建包括c个神经细胞和d个降采样块的初始神经网络,所述神经细胞包括k个连接边;步骤s2,从所述a个神经网络操作中选取b个所述神经网络操作作为神经网络操作集合步骤s3,将所述神经细胞的k个所述连接边分别对应所述神经网络操作集合的b个所述神经操作,得到对应的k*b个结构参数,根据所述k*b个结构参数,构建结构参数矩阵α,设置迭代轮次p为1;步骤s4,根据所述结构参数矩阵α,设置极小值μ和随机单位向量u;步骤s5,根据所述结构参数矩阵α、所述极小值μ和所述随机单位向量u,得到震荡结构参数矩阵步骤s6,将所述初始神经网络的所有权重参数矩阵设为模型参数矩阵w,根据所述模型参数矩阵w设置震荡模型参数矩阵步骤s7,根据所述训练数据集、所述结构参数矩阵α和所述震荡结构参数矩阵通过第一损失函数和梯度下降方法,得到更新模型参数矩阵w
′
和更新震荡模型参数矩阵步骤s8,将所述验证数据集输入所述初始神经网络,通过第二损失函数和所述梯度下降方法,得到更新结构参数矩阵α
′
;步骤s9,所述迭代轮次p加1,再判断所述迭代轮次p是否小于最大迭代轮次q,若是,则将所述更新结构参数矩阵α
′
作为所述结构参数矩阵α,进入所述步骤s4,若否,则进入步骤s10;步骤s10,分别选取所述更新结构参数矩阵α
′
中每个所述连接边对应的b个所述结构参数中的最大值对应的所述神经网络操作,作为该所述连接边的神经网络操作,则得到所述复杂神经网络。2.根据权利要求1所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:其中,所述神经网络操作为任意保持数据维度的操作。3.根据权利要求2所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:其中,所述神经网络操作包括零操作、跳跃连接操作、1
×
1卷积操作、3
×
3卷积操作和3
×
3平均池化操作。4.根据权利要求1所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:其中,所述第一损失函数和所述第二损失函数均为交叉熵函数。5.根据权利要求1所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:其中,在所述步骤s4中,所述极小值μ=0.005||α||2,所述随机单位向量u的表达式如下:式中u
′
为具有k*b个元素且每个元素各自遵从正态分布的随机向量。6.根据权利要求1所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:
其中,在所述步骤s5中,所述震荡结构参数矩阵的表达式如下:式中u
″
为所述随机单位向量u通过与所述结构参数矩阵α对齐维度得到的矩阵。7.根据权利要求1所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:其中,所述步骤s7包括以下子步骤:步骤s7-1,设置迭代轮次t=1;步骤s7-2,将所述训练数据集输入所述初始神经网络,结合所述结构参数矩阵α和所述震荡结构参数矩阵并根据所述第一损失函数和学习率η
w
,更新所述模型参数矩阵w和所述震荡模型参数矩阵步骤s7-3,所述迭代轮次t加1,判断所述迭代轮次t是否小于最大迭代轮次tt,若是,则进入所述步骤s7-2,若否,则所述迭代轮次t为最大迭代轮次tt时,所述模型参数矩阵w更新结果为所述更新模型参数矩阵w
′
,所述震荡模型参数矩阵更新结果为所述更新震荡模型参数矩阵8.根据权利要求7所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:其中,在所述步骤s7-2中,所述第一损失函数为损失函数和损失函数所述损失函数的值为根据所述训练数据集对所述模型参数矩阵w和所述结构参数矩阵α的计算结果,所述损失函数的值为根据所述训练数据集对所述震荡模型参数矩阵和所述震荡结构参数矩阵的计算结果,根据所述学习率η
w
和所述损失函数对所述模型参数矩阵w的梯度通过所述梯度下降方法,计算得到所述更新模型参数矩阵w
″
,作为迭代轮次t+1时的所述模型参数矩阵w,根据所述学习率η
w
和所述损失函数对所述震荡模型参数矩阵的梯度通过所述梯度下降方法,计算得到所述更新震荡模型参数矩阵作为所述迭代轮次t+1时的所述震荡模型参数矩阵9.根据权利要求1所述的基于零阶近似的可微分神经网络架构搜索方法,其特征在于:其中,在所述步骤s8中,所述第二损失函数为损失函数所述损失函数的值为根据所述验证数据集对所述模型参数矩阵w和所述结构参数矩阵α的计算结果,所述结构参数矩阵α的近似梯度计算公式为:计算公式为:式中为对所述模型参数矩阵w的梯度,w
′
(α)表示在该梯度计算中将所述更新模型参数矩阵w
′
视为与所述结构参数矩阵α有关,为对所述结构参数矩阵α的梯度,w
′
()表示在该梯度计算中将所述更新模型参数矩阵w
′
视为定值与所述结构参数矩阵α无关,上标t为转置操作,
根据设定学习率η
α
和所述结构参数矩阵α的近似梯度通过所述梯度下降方法,计算得到所述更新结构参数矩阵α
′
。
技术总结
本发明提供了一种基于零阶近似的可微分神经网络架构搜索方法,具有这样的特征,包括以下步骤:步骤S1,构建包括神经细胞和降采样块的初始神经网络;步骤S2至步骤S6,构建结构参数矩阵、震荡结构参数矩阵、模型参数矩阵和震荡模型参数矩阵;步骤S7,更新模型参数矩阵和震荡模型参数矩阵;步骤S8,将验证数据集输入初始神经网络,通过第二损失函数和梯度下降方法,得到更新结构参数矩阵;步骤S9,判断迭代是否完成;步骤S10,选取更新结构参数矩阵中每个连接边对应的结构参数中的最大值对应的神经网络操作,作为该连接边的神经网络操作,则得到复杂神经网络。总之,本方法能够提高搜索复杂神经网络的效率和复杂神经网络的准确度。复杂神经网络的效率和复杂神经网络的准确度。复杂神经网络的效率和复杂神经网络的准确度。
技术研发人员:谢仑辰 黄开宇 梁馨 史清江
受保护的技术使用者:同济大学
技术研发日:2023.04.26
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
