• 再读autoaug


    再读autoaug

    算法总览

    • 使用RNN做controller,并且每次采样得到一个policy (S),其中(S)包括使用哪种operation(数据增强操作),幅度是多少,以及应用的概率

    • 用validation上的精度(R)作为reward

    • 作者的搜索空间定为

      • policy 由5种sub-policy组成
      • 每个sub-policy由2种图像的操作方式(operation)组成
      • 每种操作方式有两个参数,一个是应用这个操作的概率,另外一个是这个操作的幅度

    在validation搜索到的policy,在训练阶段使用其进行数据增强。

    • 对于一个train batch的每一张图片,都从5中sub-policy随机的选取一个sub-policy对其进行增强,相当于是有一定概率的应用两次不同类型的operation
    • 一旦选取某个sub-policy,应用两个operation都是一定概率的,所以对于同一张图片,两次选取同一个sub-policy也可能得到不一样的结果(作者说增大随机性)
    • 但是一旦选取了某个sub-policy,并且也一定会用到两个operation的话,则两个operation的幅度是一定的。所以对于同一张图片,从5个policies中选取同一个sub-policy了的话,并且已经确定是否应用某个operation,则得到的结果是一样的

    下图是一个范例

    image-20200709101027621

    关于operation的类型及搜索空间

    作者一共选取16种operation类型(旋转,平移,色彩锐化啥的),每个operation的幅度都在一定范围内变化,作者将其幅度均匀地分成10个不同的离散候选值。对于应用这个操作的概率作者均匀地分为了11份。所以对于一个sub-policy,其搜索空间为

    [(16 imes10 imes 11)^2 ]

    注意作者假设每个sub-policy中的每个operation都是独立的,有可能sub-policy中的两个operation是一样的类型。概率从0-1,分成11份,所以有可能某个operation是一直不用(概率为0)或者一直用的(概率为1)。

    而5个这样的sub-policy构成一个policy,则每个sub-policy都是独立的话,则搜索空间为

    [(16 imes 10 imes 11)^{2 imes 5}approx 2.9 imes10^{32} ]

    搜索空间还是挺大的。

    值得注意的是,作者在论文中提到,在每个dataset上,controller大约采样15000 policies。其实不太明白这里的意思具体是什么,假设这个数量和validation有关的,这种不完备的采样,是否有意义?或者说这种不去遍布整个搜索空间的采样,可以得到不错的结果。

    实验step

    cifar

    作者说在大样本和少样本上的不影响搜索的结果,所以cifar10的train dataset减少到了4000,这也是一种训练省时的策略,但是前提是真的如作者说的这样,

    We find that for a fixed amount of training time, it is more useful to allow child models to train for more epochs rather than train for fewer epochs with more training data.

    作者称减少后的cifar为reduced-cifar10。

    在reduced-cifar10上搜索到的策略,作者将其应用到了之后所有的cifar数据的训练上(cifar10,cifar100,reduced-cifar10).

    作者实际实验的时候选取了最好的5个policy,所以一共是25个sub-policy。

    baseline是作者对数据归一化,50%的概率flip, random crop, zero padding

    svhn

    svhn包含73257张训练图片,作者从中选取了1000用于训练,作者这么选取的原因如上

    imagenet数

    训练集包含6000张图片,120个class,每个类50张图片,搜到的结果迁移到完整的Imagenet数据集上使用


    加速的策略

    • 采样到的policy比较少,从(2.9 imes10^{32})采样得到15000中策略。
    • 在reduced上的小数据集上进行训练,在大数据集上进行full train。
  • 相关阅读:
    Redis学习第二天
    Redis学习
    jQuery基础
    Hashtable 和 HashMap 的区别
    JSP页面乱码问题
    Day28 java8:Stream API
    转 链表中节点每k个一组反转
    day 27 lambda表达式(针对接口) & 函数式接口
    day20异常2
    day20 异常1
  • 原文地址:https://www.cnblogs.com/yongjieShi/p/14812161.html
Copyright © 2020-2023  润新知