论文提出超参数优化办法AABO,该办法外围基于贝叶斯优化和Sub-Sample办法,可能自适应的搜寻最优的anchor设置。从试验后果来看,AABO可能仅通过anchor设置优化,为SOTA指标检测办法带来1.4%~2.4%的性能晋升

起源:晓飞的算法工程笔记 公众号

论文: AABO: Adaptive Anchor Box Optimization for Object Detection via Bayesian Sub-sampling

  • 论文地址:https://arxiv.org/abs/2007.09336

Introduction


  目前,支流的指标检测算法应用多种形态的anchor box作为初始预测,而后对anchor box进行回归调整,anchor box的配置是检测算法中非常重要的超参数。一般而言,anchor box的配置都是简略地通过人为指定,比方Faster R-CNN经典的的9种形态,也能够像YOLO一样通过k-means对数据集进行剖析,得出特定的配置。
  为了人工设置超参数的环节,近年来很多对于超参数优化问题(HPO, hyper-parameter optimization)的钻研,最无效的办法为贝叶斯优化(BO)和bandit-based策略。在剖析了以后办法的优劣后,论文提出一种自适应的anchor box优化办法AABO,该办法基于贝叶斯优化和Sub-Sample办法,可能主动且高效地搜寻到最优的anchor设置,榨干支流指标检测算法的后劲。

Relative Method

  这里先对论文常常提及的3种超参数搜寻办法进行简略的介绍,不便上面的了解。

Bayesian optimization

  超参数的验证通常须要进行模型训练,会消耗大量的工夫,所以贝叶斯优化的外围是应用代替模型(prior function)来代理指标模型,代替模型个别为概率分布模型。在失去代替模型后,应用采集函数(acquisition function)从候选集中抉择一组适合的超参数进行测试,采集函数须要可能很好地均衡exploitation和exploration,测试则是应用指标模型进行失常的训练和验证,最初将以后后果退出观测数据中,用于训练代替模型,重复进行上述的操作。

  贝叶斯优化的残缺流程如下面所示,在每轮的迭代中基于代替模型和采集函数获取一组超参数,而后应用指标模型进行验证,最初将验证后果退出观测数据集并更新代替模型。

Hyperband

  Bandit-based办法在限定资源的状况以高效的策略寻找最优超参数,资源可为工夫、迭代次数等,而Hyperband是经典的bandit-based办法。Hyperband在Successive Halving算法的根底上进行了扩大,每次选取一批超参数进行多轮迭代,每轮迭代将资源$B$平均地调配给待验证的超参数组合,每轮完结时保留$1/\eta$超参数组合进行下一轮。

  Hyperband的残缺流程如下面所示,$R$为单超参数分组可调配的最大资源,蕴含两个循环,外循环负责管制每次验证的初始可调配的资源数$r$以及验证的分组数$n$,逐渐减少$r$和缩小$n$,分组由随机采样所得。内循环则进行Successive Halving算法,共进行$s$次迭代,逐渐减少每组的可分配资源,并且每次保留最优的$1/\eta$分组。

BOHB

  实际上,下面的两种经典超参数办法都有其各自的优缺点,贝叶斯优化尽管搜寻高效,然而容易陷入部分最优解,而Hyperband尽管搜寻比拟全面,但效率不够高。所以,BOHB联合了贝叶斯优化和Hyperband进行超参数优化。

  BOHO的残缺流程如上所示,可简略地认为将Hyperband的随机采样替换为贝叶斯优化进行采样,而后将Hyperband的超参数组合及其对应的输入退出到观测数据中,用于更新代替模型。须要留神的是,BOHO的代替模型是一个多维核密度估计(KDE)模型,相似于TPE(Tree Parzen Estimator)。如论文提到的,BOHO有一个比较严重的问题,对于难学习的样本,个别须要较长的训练周期,而因为BOHO应用HyperBand进行疾速验证,所以不肯定能残缺地测出超参数的实在准确率,导致最终的后果有偏差。

Preliminary Analysis


Default Anchors Are Not Optimal

  随机采样100组不同的anchor设置,每组蕴含3种尺寸和3种长宽比,而后与Faster R-CNN的默认anchor配置进行性能比照。后果如上图所示,红线为默认设置的性能,能够看到,默认设置并不是最优的。

Anchors Influence More Than RPN Structure

  应用BOHB同时搜寻RPN head构造以及anchor设置,RPN head的搜寻空间如上图所示。

  后果如上表所示,能够看到anchor设置搜寻带来的性能晋升在肯定水平上要高于RPN head构造搜寻。

Search Space Optimization for Anchors


  论文通过剖析指标bbox的散布个性,设计了严密的搜寻空间,次要基于以下两个个性。

Upper and Lower Limits of the Anchors

  论文对COCO数据集指标的尺寸和长宽比进行统计,并且失去了ratio的上界和下界:

  统计后果如上图所示,其中蓝点为每个指标,黄线别离为上界和下界,两头的彩色长方形为BOHB搜寻试验的搜寻空间。能够看到,有一部分的搜寻空间在上界和下界之外,是有效的搜寻,所以束缚搜寻空间在上界和下界之间是有必要的。另外,图中有5个红色的框,是论文为RPN的每层设定的对应搜寻空间,上面会提到。

Adaptive Feature-Map-Wised Search Space

  论文对FPN每层的输入进行了统计,后果如上图所示。能够看到,不同层蕴含不同数量和不同形态的输入,随着层数的减少,anchor的数量越少,长宽比范畴也越小。

  基于下面的剖析,论文设计了自适应FPN的搜寻空间,图4中的5个红框与上下界之间的区域即为FPN每层对应的搜寻空间。具体搜寻如上图所示,每层都有独立的搜寻空间,层数越大,anchor的数量、尺寸范畴和长宽比范畴越小。实际上,与图4的黑矩形框搜寻空间比照,这种自适应FPN搜寻空间更大,而且每层较小的搜寻空间有助于HPO算法的更集中地进行搜寻。

Bayesian Anchor Optimization via Sub-sampling


  论文提出的搜寻办法如图7所示,蕴含BO和子采样办法,别离用于抉择潜在的设置以及为不同的设置调配不同的计算资源。整体思路和BOHB相似,将其中的Hyperband替换成了Sub-Sample办法。

Bayesian Optimization

  论文在实现时,BO模块与与BOHB相似,应用TPE(Tree Parzen Estimator)作为核密度函数进行建模,TPE蕴含两个概率密度函数:$l(x)=p(y<\alpha | x, D)$和$g(x)=p(y>\alpha | x, D)$,别离示意后果好的概率和后果差的概率,其中$D=\{(x_0, y_0), \cdots, (x_n, y_n)\}$为以后的观测数据,$\alpha=min\{y_0, \cdots, y_n\}$为以后观测数据的最优后果,采样时取$l(x)/g(x)$最大的超参数组合。须要留神的是,因为Hyperband只保障最终输入的后果的准确性,其它后果因为在中途就进行了,资源有余,输入不肯定精确,间接用这些后果来对$g(x)$进行训练会造成很大的误差,所以须要一个更好的办法来解决这个问题。

Sub-Sample Method

  Sub-Sample也是bandit-based办法,在资源无限的状况,尽可能测试出优质的候选超参数组合。定义$\mathcal{I}=\{1,2,\cdots, K\}$为候选超参数组合,Sub-Sample办法基于观测数据$Y^{(k)}_1$进行抉择, $Y^{(k)}_1,Y^{(k)}_2,\cdots,1\le k\le K$为以后观测点绝对于上一个观测点的收益。

  Sub-Sample办法如上所示,首先对所有超参数组合进行最小资源$b$的测试,失去一批观测数据,而后每轮选取已应用资源最多超参数组合作为leader,若其它组合优于leader,则赋予其资源$b$,否则赋予leader资源$b$,判断以后组合$k^{'}$是否优于leader组合$k$有以下两个规定:

  第一条规定依据观测次数进行判断,$c_n$为非负枯燥阈值,用于管制每个超参数的最小观测次数,个别设为$\sqrt{\log n}$。第二条规定依据两个组合的近期收益进行判断,收益更高即为优。

Experiment


  COCO数据集上搜寻到的最优anchor组合。

  在不同的数据集上进行比照。

  嵌入SOTA办法进行比照。

  与其它办法的比照试验。

Conclustion


  论文提出超参数优化办法AABO,该办法外围基于贝叶斯优化和Sub-Sample办法,可能自适应的搜寻最优的anchor设置。从试验后果来看,AABO可能仅通过anchor设置优化,为SOTA指标检测办法带来1.4%~2.4%的性能晋升。

参考内容

  • BOHB -- https://nni.readthedocs.io/zh/latest/Tuner/BohbAdvisor.html



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】