再读autoaug

目录
  • 再读autoaug
    • 算法总览
    • 关于operation的类型及搜索空间
    • 实验step
      • cifar
      • svhn
      • imagenet数
  • 加速的策略

再读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\times10\times 11)^2 \]

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

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

\[(16\times 10\times 11)^{2\times 5}\approx 2.9\times10^{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\times10^{32}\)采样得到15000中策略。
  • 在reduced上的小数据集上进行训练,在大数据集上进行full train。

你可能感兴趣的:(再读autoaug)