一种基于平坦度的轻量级神经网络架构搜索方法

文档序号:37496299发布日期:2024-04-01 14:04阅读:10来源:国知局
一种基于平坦度的轻量级神经网络架构搜索方法

本发明属于计算机视觉领域,更具体来说是深度学习方向的一种基于平坦度的神经网络架构搜索方法,在图像分类、目标检测和语义分割等任务上均可以应用。


背景技术:

1、深度学习是机器学习的一个重要分支,近年来深度学习在许多领域都取得了巨大的成功,这是由于深度学习的强大自动表示能力。事实证明,网络结构的设计对数据的特征表示和最终性能至关重要。为了获得数据的良好特征表示,研究人员设计了各种复杂的网络架构,然而,网络架构的设计在很大程度上依赖于研究人员的先验知识和经验,极大地限制了深度学习的发展。由于人类固有知识的局限性,人们很难跳出原有的思维范式,设计出一个最优的模型。即使是数据科学家也需要花费大量的时间和精力,通过不断的实验和调整参数才能使得设计的网络模型在特定数据集上达到最佳性能。随着深度学习领域的不断发展和深入,处理的数据量越来越大、网络越来越深,针对不同的任务,通常需要选定不同的神经网络才能提取出最佳的特征信息,这些问题给神经网络的设计和它的应用带来了许多不便,因此,神经架构搜索应运而生。

2、神经网络架构搜索是利用搜索算法在搜索空间中寻找最优神经网络架构,搜索空间指神经网络架构的候选集合。早期的神经网络架构搜索技术是通过强化学习和进化算法实现,这两种搜索方法需要消耗庞大的计算资源,并且搜索时间过长,导致无法在大数据集上完成搜索任务,很大程度上限制了神经网络架构搜索的发展和实际的应用。

3、如果我们能够找到一种启发式的,经过轻量级的训练甚至无需训练的指标,直接就可以衡量当前网络架构的最终性能,或者得到不同网络架构最终性能的相对排序。这样一来,就可以大大减少代价和时间。本发明根据神经网络的平坦度,并以此对初始架构进行评估,来衡量网络架构的最终性能,提出了一种更加高效更加便捷的神经网络架构搜索方法,并且以图像分类任务为例证明了良好效果。


技术实现思路

1、本发明要解决的问题是:对于机器学习任务,比如图像分类,使用网络架构搜索技术时,研究人员往往需要对已有的网络架构进行大量实验从而选择出性能最优的神经网络架构模型。然而,我们的目标不仅仅是找到最优的神经网络架构,我们还追求在搜索过程中降低所需时间和代价,尽可能地实现效率和优化的完美结合。本发明基于此提出了一种轻量级训练的基于平坦度的神经网络架构搜索方法,该方法通过对选取的网络搜索空间的所有网络计算初始化时的平坦度的值来衡量网络收敛时的泛化误差,并据此筛选出最优的网络架构,极大的减少了搜索最优架构的时间和资源。

2、本发明总体分为四大部分:

3、选取数据集,设置神经网络架构的搜索空间,空间中包含所有期待的网络架构,并在此空间中搜索最优的网络架构。

4、针对具体的图像分类任务,从搜索空间中不同的网络架构进行采样,计算每个网络初始时的平坦度,以此为指标来衡量网络的泛化误差。

5、计算不同网络架构的平坦度和最终泛化误差的相关系数,验证指标的正确性。

6、根据指标在整个网络空间进行搜索,筛选出最优的网络架构,并对网络进行训练,实现图像分类任务。

7、本发明实现上述发明目的所采用的技术方案如下:

8、1.我们选择了统一的神经网络架构搜索比较平台,即nas-bench-201,作为我们的搜索空间。这个空间基于cell的堆叠构造法,为大多数最新的nas算法提供了统一的基准测试。在这个空间中,我们采纳了cell重复堆叠的方案,将离散的网络架构通过松弛技术连续化,从而创建了一个连续的搜索空间,它包含了所有的候选网络模型。此搜索空间被模拟成一个有向无环图,这种图形可以代表卷积神经网络中的cell结构。在该图中,节点代表特征图的信息,而边则表示各种操作。为了控制搜索空间的大小,我们通过设定有向无环图中的节点数量和操作集合来进行调整。值得注意的是,除cell之外,不同架构间的其他结构设置都是相同的。因此,cell结构的多样性直接对应了候选结构的种类。详细来说,这种cell结构包含四个节点和五个相关操作。节点之间的连接关系是顺序编号的,编号较小的节点都与编号较大的节点相连,形成了六条连接边。这些连接边能够进行五种不同的操作,包括:convd 1x1的卷积操作、convd 3x3的卷积操作、avg_pool操作、skip-connect和zero操作。在有向无环图中,每一个中间节点都与其后继中间节点有五条有向连接边,每条边代表操作集合中的一种操作。中间节点的特征信息是由其所有前驱节点通过相应的有向边操作获得的特征提取结果共同组成的。综上所述,这个搜索空间可以表现为一个有向无环图,它能产生总计15625个cell候选对象,也就是说,在搜索空间共有15625个可能的候选架构。

9、2.设置完特定的搜索空间后,针对图像分类任务选定特定的数据集来验证具体架构在分类的任务中的表现

10、3.由于候选架构的数量过多,我们采取了采样策略来评估不同神经网络架构的平坦度,进而计算出平坦度与泛化误差之间的相关系数。在这次实验中,我们样本了100个不同的架构来分析平坦度和泛化误差的相关性。神经网络的泛化误差是一个衡量模型在新、未见数据上的表现的关键概念。它是理解和改进机器学习模型性能的重要部分。以下是与神经网络泛化误差相关的几个重要概念和它们的数学表达式:

11、1.经验误差(empirical error)

12、经验误差或训练误差是模型在训练数据上的错误率。如果我们有一个数据集{(x1,y1),(x2,y2),(x3,y3),...,(xn,yn)}和一个模型f(例如神经网络),那么经验误差rf可以表达为:

13、

14、其中l(yi,f(xi)是损失函数,例如均方误差或交叉熵损失。

15、2.期望损失(expected error)

16、泛化误差是指模型在新、未见数据上的平均错误率。数学上,泛化误差可以表达为模型f的期望损失:

17、r′f=e(x,y)~[l(y,f(x)]p

18、这里(x,y)是从数据的真实分布p中抽取的,这是一个理论上的量,因为真实分布通常是未知的。

19、3.泛化误差(generalization error)

20、gap=r′f-rf

21、这种相关性的具体数据和分析结果已在附图3中详细展示。

22、4.在验证了我们所选择的评价指标的准确性之后,我们开始对整个神经网络架构搜索空间进行全面探索。在每次迭代中,我们选择不同的候选网络架构并计算其平坦度,以便对这些架构进行排名。如果某个候选架构的平坦度大于我们之前保留的架构的平坦度,我们则认为平坦度更高的架构在性能上优于平坦度较低的架构。因此,我们会更新当前的候选架构。这一过程将持续进行,直到我们遍历完整个搜索空间。最终,我们将找到具有最小泛化误差上界的架构,这个架构就是本轮搜索的最优解。我们将重复这一过程多轮,每轮都尽量减少误差,直至经过多轮迭代后得到最优的神经网络架构。

23、5.将搜寻得到的架构模型确定为本次图像分类数据集的深度神经网络模型。接着,我们将利用深度学习中的一些常用优化技巧来训练这个精选出的网络架构,以实现图像的有效分类任务。

24、本发明具有以下有益效果:

25、本发明提出了一种基于平坦度的神经网络架构搜索方法,旨在找出性能更优的神经网络架构模型。相较于当前的技术,本方法在确认所选择的指标的准确性后,利用平坦度来评估不同网络架构模型的性能,终能锁定一个优质的神经网络架构。这样的方法能够通过减少训练来实现神经网络架构的搜索,大大降低了计算量和相应的时间消耗,减轻了神经网络架构搜索的沉重负担。

26、这不仅大大减少了计算资源的浪费,为技术专家节省了大量的时间,还可以为非技术人员或专业技能较低的人员提供便利,使他们能够更简单和方便地将此方法应用于图像分类任务及更广泛的人工智能领域。

27、值得注意的是,以上的一般性描述和后续的详细描述仅作为示例和解释,并不意味着本发明受到任何形式的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1