System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于同型算子分组的梯度优化的架构搜索方法技术_技高网

一种基于同型算子分组的梯度优化的架构搜索方法技术

技术编号:41175292 阅读:2 留言:0更新日期:2024-05-07 22:11
本发明专利技术公开了一种基于同型算子分组的梯度优化的架构搜索方法,包括以下:一、基于同型算子分组的重参数构建;二、Top k选择和accuracy drop选择;我们思路基于我们认为对于同一型的算子而言,处理不同输入的能力是一样的,于是对于node3而言,我们应该将同型算子的不同输入的map经过该型的算子处理的结果看成一个整体。本发明专利技术提出了基于同型算子分组的重参数构建方法和基于Top k选择和accuracy drop选择的方案,主要可以解决基于DARTS算法的无参数算子Skip‑connect聚集带来的性能崩溃的问题,可以搜索到更优的架构。

【技术实现步骤摘要】

本专利技术涉及图像、nas搜索领域,特别涉及一种基于同型算子分组的梯度优化的架构搜索方法


技术介绍

1、在nas(neural architecture search)提出之前,神经网络的构建和训练都是依赖人工设计,但是设计网络架构,需要设计者充分理解网络设计思想和网络设计的要求和规范,因此网络的设计极大地依赖设计者的专家经验,于是许多专家学者提出了一种通过计算机自动生成网络架构的思路,我们将这种方法称为nas搜索。

2、nas搜索包括三大要素:搜索空间,搜索策略,性能评估,具体的执行过程如图1所示;

3、nas搜索的过程首先需要定义搜索空间,在搜索空间中,含有大量的架构,我们需要寻求其中的最优,需要制定一种搜索策略来采样搜索空间中的架构,然后通过评估采样架构的性能来调整搜索策略,直到后续采样出的架构逐步靠近最优架构。目前的搜索策略有强化学习,进化算法,基于梯度等,基于梯度的nas搜索与强化学习,进化算法相比,具有巨大的效率和资源优势,基本上单卡一天就可以完成搜索。从而成为目前的主流研究方向。其中基于one-shot的nas搜索是目前的主流方法,该方法将搜索空间定义为超级网络(supernet),网络结构都被包含其中。构成整个搜索空间,这个方法最显著的特征就是在一个过参数化的大网络中进行搜索,交替地训练weight权重和架构权重,最终只保留其中一个子结构,其中最典型的代表就是darts,但是由于共享权重和梯度优化的问题,这种方法在后期搜索出的架构会出现性能崩溃的现象,一些学者也对这个问题进行了一系列的探究和优化。darts方案如图2所示;

4、不同颜色的线代表不同的算子,所有的算子种类和连接方式构成了一个one-shot的搜索空间(supernet),通过训练这个supernet,通过架构参数来选取最终的子网络作为最终的搜索结果。架构参数的构建方式如图3所示;

5、以node3为例,对于supernet来说,需要接受node1和node2的特征输入,这里设计了一个结构参数,对于图2上的搜索空间,node之间的连接共有6种,每两个node之间有3个算子,那么我们需要6*3的架构参数来代表每个节点之间算子的重要程度的衡量,参数之间目前是离散不可导的,于是使用了softmax进行了重参数化使得整个过程可导,从而可以使用梯度下降的方式训练supernet。假设算子的计算方式是op(*),重参数化的架构参数是node1到node3的连接输入的特征是x,node2到node3的连接输入的特征是y,对于node3,计算方式是:*op3(y)。其余node计算类似。训练supernet,不断更新架构参数和算子的weight直到supernet收敛后,通过架构参数的大小,来判断算子的重要性。选择最重要的算子即选择架构参数最大值所对应的算子。darts定义的算子有:'none','max_pool_3x3','avg_pool_3x3','skip-connect','sep_conv_3x3','sep_conv_5x5','dil_conv_3x3','dil_conv_5x5'。通过这种方式训练后,在后期选择算子的时候出现了大量的skip-connect这种无参数算子导致性能崩溃现象。


技术实现思路

1、本专利技术要解决的技术问题是克服现有技术的缺陷,提供一种基于同型算子分组的梯度优化的架构搜索方法,基于darts方法的基础上,主要解决darts训练后期性能崩溃的问题,darts后期性能崩溃主要是后期skip-connect算子聚集的问题,我们的设计一种基于同型算子分组的重参数构建和新的算子选择方案,使得这个问题得到了极大的缓解,能够得到更优的搜索结果。

2、本专利技术提供了如下的技术方案:

3、本专利技术提供一种基于同型算子分组的梯度优化的架构搜索方法,包括以下:

4、一、基于同型算子分组的重参数构建

5、我们思路基于我们认为对于同一型的算子而言,处理不同输入的能力是一样的,于是对于node3而言,我们应该将同型算子的不同输入的map经过该型的算子处理的结果看成一个整体,于是设计了以下方式:

6、以node3为例,对于搜索空间,这里有了层的概念,我们node1到node2为一层,node1,node2到node3为一层,node1,node2,node3到node4为一层,于是我们这种方式的结构参数只要3*3,假设算子的计算方式是op(*),重参数化的架构参数是node1到node3的连接输入的特征是x,node2到node3的连接输入的特征是y,对于node3,计算方式是其余node计算类似;于是同样通过梯度下降的方式训练supernet直到收敛,通过选择最大的架构参数的最大值对应的同型算子;但是这种方式导致每层选择的算子是一样的,于是我们将选择方式进行了优化,提出了一种新的选择方案;

7、二、top k选择和accuracy drop选择

8、对于同层选择的算子相同的问题,我们通过保留topk的方式,可以保留两组算子,假设通过训练后,留下了后两组的算子,共4个算子,对于这4个算子我们通过逐个删除计算删除这个算子所引起的accuracy drop,我们将accuracy drop最大的那个算子认为是最重要的算子;这种方式其实是通过验证的accuracy更加直观的衡量算子的重要度;流程如下:

9、step1:随机选择一层通过保留topk(k=2)的方式,保留两组op算子;

10、step2:每次保留一层的op算子,训练5个epoch使得精度回升;

11、step3:循环step1,step2,使得每一层都保留2组op算子;

12、step4:随机选择一层通过循环删除剩下两组的op算子,用数据做验证,看哪个op算子引起的accuracy drop最大,则认为是最优算子;

13、step5:循环step4保留下每层的accuracy drop最大的算子。

14、与现有技术相比,本专利技术的有益效果如下:

15、本专利技术提出了基于同型算子分组的重参数构建方法和基于topk选择和accuracydrop选择的方案,主要可以解决基于darts算法的无参数算子skip-connect聚集带来的性能崩溃的问题,可以搜索到更优的架构。

本文档来自技高网...

【技术保护点】

1.一种基于同型算子分组的梯度优化的架构搜索方法,其特征在于,包括以下:

【技术特征摘要】

1.一种基于同型算子分组的梯度优化的...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1