• Fast AutoAugment阅读笔记


    Fast AutoAugment

    作者说他提出一种基于稠密匹配的快速的AA方法。这种方法不需要子模型(child model)的重新训练。这种方法通过最大化匹配augmentated split和另外一个unaugmented split的分布来搜索增强的策略。

    在这篇文章中,作者提出的方法学习一种增强策略,并且将augmentated data作为一个训练数据的missing data来改善网络的泛化能力。想要实现这个目的,作者使用了一个efficient density matching algorithm。这种方法对网络的训练和每一个policy的评估,不需要任何的反向传播。

    作者提出的方法

    作者将之前的方法归为两类,一类是利用GAN啥的直接产生数据,另外一类是利用搜索的算法去搜索预先定义的operation

    PBA提出了一种新的based on population based training产生augmentation policy的策略的方法,作者的方法和PBA类似,作者使用了超参优化来寻找一个最优的策略,只不过实际实现的时候用的是Tree-structured parzen estimator(TPE).

    搜索空间

    和AA类似,每一个subpolicy ( au) 都是由(N_ au)的policy 组成,可以表示为

    image

    每个policy都包含其应用的概率(p)以及对应的幅度(lambda). 作者说他最终搜到的policy (mathcal{T}) 是由(N_mathcal{T})个subpolicy组成,以及在数据集(D)上的应用(mathcal{T})中的每一个subpolicy ( au in mathcal{T})得到一系列增强之后的图片记为

    [mathcal{T}(D) = cup_{ au in mathcal{T}}{( au(x), y):(x, y)in D} ]

    作者说他的搜索空间和之前的算法是类似的,只不过作者的概率(p)和幅度(lambda)是在([0, 1])区间的连续值,这种比离散的搜索具有更多的可能性。

    搜索策略

    作者将对augmentation policy的搜索定义为对一个pair的train dataset上的稠密匹配。假设 (mathcal{D})是一个 (mathcal{X} imesmathcal{Y})可能的分布,以及数据集(D)从该分布中采样。对于一个给定的分类模型(mathcal{M}(cdot| heta):mathcal{X} arrmathcal{Y})其参数为( heta), 则模型(mathcal{M}(cdot| heta))在数据集(D)上的期望精度和期望loss可以分别表示为(mathcal{R}( heta|D))(mathcal{L}( heta|D))

    对于任意给定的(D_{train})(D_{valid})的一个pair,我们的目标是通过搜索那些能够使得 (D_{train})的密度和增强之后的(D_{valid})的密度匹配的增强策略

    For any given pair of (D_{train}) and (D_{valid}), our goal is to improve the generalization ability by searching the augmentation policies that match the density of (D_{train}) with density of augmented (D_{valid}).

    对于上面这句话不是特别理解,不应该是增强之后的(D_{train})(D_{valid})概率密度匹配?通过阅读后文,其实会比较理解这里的说法,实际上作者将(D_{train})给分为两部分,寻找一个变换使得其和原始未增强的数据更像。

    然而,对某一个evaluation,通过对每一个candidate policy来比较这两个分布是不切实际的。

    因此,作者通过测量一个数据集在多大程度上遵循了另一个数据集的模式,利用模型在两个数据集上的预测来进行这种评估。

    细节上来讲,将(D_{train})分成(D_mathcal{M})(D_{mathcal{A}}),这两个数据集用来学习模型的参数,以及探索增强的策略(mathcal{T}),作者定义以下目标函数来得到一系列学习到的增强策略

    [mathcal{T}_* = arg max _{mathcal{T}} mathcal{R( heta^*|mathcal{T}(D_mathcal{A}))} ]

    其中模型参数( heta^*)在数据集(D_mathcal{M})上进行训练。在这个目标函数中,从使用相同的参数最大限度的提高两个模型的预测性能的角度出发,(mathcal{T_*})近似的最小化(D_mathcal{M})的密度和(mathcal{T}(D_mathcal{A}))的密度之间的距离。

    为了达到上述目标,作者提出了一个高效的增强策略搜索方法。首先作者做了(K)-fold的分层洗牌(K-fold stratified shuffling)来将train dataset分为(D_{train}^{(1)}, ..., D_{train}^{(K)}),其中,(D_{train}^{(k)})由两个数据集组成,(D_{mathcal{M}}^{(k)})(D_{mathcal{A}}^{(k)})。然后作者在(D_mathcal{M})上,不使用任何数据增强策略来训练模型的参数( heta)(from scratch)。

    和之前的方法相反,作者的方法不一定将给定的网络简化为子模型(child models)或proxy任务。

    得到训练参数之后,对每一个step(1 leq tleq T), 作者探索了(B)个候选的policies (mathcal{B}={mathcal{T}_1, ..., mathcal{T}_B})。探索(B)个候选的policy是通过bayes优化来获得,具体的步骤如下:从搜索空间(mathcal{S})中重复的采样一系列的sub-policies,然后构建一个policy (mathcal{T}={ au_1, ..., au_{N_ au}}),然后来调节对应的应用概率({p_1, ..., p_{N_{ au}}})和幅度({lambda_1, ..., lambda_{N_ au}})来使得期望的loss (mathcal{L}( heta|cdot))在增强之后的数据集上(mathcal{T}(D_mathcal{A}))最小。

    上述方法作者如果并没有训练模型的参数的情况下,好像确实是和固定权重来搜索ISP的参数是比较像的。

    值得注意的是,在expoloration-and-exploitation的过程中,作者提出的方法并不再从头训练模型的参数,所以提出的方法是快于AutoAugment的。

    之后对于bayes优化之后的(mathcal{B})个policies,作者选取了top-N个,将其merge到最终的增强集合之中。搜索完毕之后,作者从头开始训练网络的参数( heta),并且对于所有的训练数据都采用搜索之后的策略。

    整体算法如下

    image

    通过贝叶斯优化来探索策略(policy exploration)

    作者使用了如下的期望改善评价标准(Expected Improvement(EI) criterion)

    [EI(mathcal{T}) = mathbb{E}[min (mathcal{L}( heta|mathcal{T}(D_mathcal{A}))-mathcal{L}^*, 0)] ]

    并且作者说这个算法已经在tree structured parzen(TPE)中进行实现,并且可以使用HyperOpt这个库。

    实验部分

    作者说他follow AA的算法设置,比如每个sub-policy包含两个operation,每个policy包含5个subpolicy这样,以及搜索空间包含16个operation。不过从作者设定的算法来看,最后会有一个policy池(集合并集),实验的时候会从里面选,如下图作者做的选取的sub-policy的数量对实验结果的影响如下图

    image

    如下是和其他方法的对比

    image

    image

  • 相关阅读:
    uni-app引入自己ui写的icon
    2020.07.17
    读uni-app
    图片上传,配置php以及vue简单实现
    vue子给父组件传值
    vue父子传值以及监听这个值,把值拿到子组件使用不报警告
    vue局部跳转,实现一个类似选项卡tab功能
    vuex的一个demo,数据拿到界面上
    vue-day06&day07----路由、路由常用的配置项、vue路由的内置组件、vue路由跳转的方式、路由传值、路由解耦(路由传值的一种方式)、编程式导航、嵌套路由children、路由元信息meta、路由生命周期(路由守卫)、路由懒加载、vue/cli、webpack配置alias、vue/cli中配置alias、vue-router底层原理、单页面开发的缺点、路由报错
    vue-day06----过渡&动画(transition)、axios、axios以post方式请求数据、axios常用的配置项、axios拦截器、qs处理数据、vue中async和await的使用
  • 原文地址:https://www.cnblogs.com/yongjieShi/p/14812313.html
Copyright © 2020-2023  润新知